78 Commits

Author SHA1 Message Date
2b8e40f37f docs: update README and DECISIONS for Walker moonarch theme
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s
2026-04-07 13:13:44 +02:00
ef8ff7099f feat: rename Walker theme to moonarch, add explicit Catppuccin colors
Rename gtk-inherit theme to moonarch with fixed Colloid-Grey-Dark-
Catppuccin color definitions. Reduces border brightness and shadow
weight for a subtler appearance.

Closes #3
2026-04-07 13:11:06 +02:00
7a2b1ece05 docs: update README and DECISIONS for archinstall v4 and kanshi fixes 2026-04-07 12:24:07 +02:00
62495d8e3d fix: prevent kanshi config from breaking wdisplays-persistent
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s
Remove ABOUTME comments from kanshi default config — they broke
the profile parser in wdisplays-persistent store.c, preventing
config saves. Also skip kanshi in transform.sh when user profiles
already exist, since display layouts are machine-specific.
2026-04-07 12:23:06 +02:00
76f5602b47 Migrate archinstall config to v4 format
archinstall v4.1 introduced new canonical key names. Update
user_configuration.json to the current schema:
- audio_config → nested under app_config
- bootloader → bootloader_config with explicit uki flag
- gfx_driver value updated to "All open-source (default)"
- custom-commands → custom_commands (underscore)
2026-04-07 11:56:01 +02:00
466ba773dc docs: fix remaining stale references in README and CLAUDE.md
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
- scripts/: replace update.sh with moonarch-update, fix description
- Update section: remove stale "syncs repo, deploys XDG" claim
- User services: add stasis to table
- CLAUDE.md: mention systemd user services in defaults/ description
2026-04-07 11:37:44 +02:00
9f994d03fb docs: update README for swaync, cliphist service, /usr/bin paths
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
- dunst → swaync throughout
- Clipboard section: cliphist + Walker, wiped on session start
- Helper scripts: /usr/local/bin → /usr/bin (package-managed)
- User services: moved to /etc/systemd/user/, added cliphist/nautilus
- Startup diagram: swaync, nm-applet, systemd services listed
- moonarch-dnd removed (dunst-specific)
2026-04-07 11:34:30 +02:00
80c395fc14 feat: add cliphist service, move user services to /etc/systemd/user/
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
- Add cliphist.service that wipes clipboard history on session start
  (crash-safe: cleans up at next boot, not at shutdown)
- Move kanshi, walker, nautilus services from ~/.config/systemd/user/
  to /etc/systemd/user/ (system-level defaults, consistent with
  moonarch's config philosophy)
- Remove cliphist spawn-sh-at-startup from niri config (managed by
  systemd service now)
- Add cliphist to USER_SERVICES in post-install.sh and transform.sh

Closes #1
2026-04-07 11:27:49 +02:00
25baf88a2a fix: move paru repo config into moonarch.install to break bootstrap loop
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s
The paru PKGBUILD repo config was only set up by post-install.sh and
transform.sh. If the config was missing on an existing system,
moonarch-git couldn't update — the fix required the package that
delivers the fix.

Now moonarch.install sets up the config on every install/upgrade.
post-install.sh keeps it for first-time bootstrap (before moonarch-git
exists). transform.sh no longer manages it.
2026-04-07 11:11:58 +02:00
29550b8a14 fix: audit remediation — 6 fixes across quality, performance, security
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
Q-01: Fix broken upower regex in moonarch-btnote (lookaheads never matched)
Q-02: Fix transform.sh paru repo section name ([moonarch] → [moonarch-pkgbuilds]),
      config path (~/.config → /etc), and partial sync (-Sy → -Syu)
Q-03: Add missing stasis package to aur.txt (idle management broken on fresh install)
S-01: Switch CI git clones from HTTP to HTTPS (MITM risk in Docker network)
S-02: Restrict CI builder sudo to /usr/bin/pacman only
P-01: Refactor moonarch-waybar-gpustat — remove while loop, use jq --arg style
2026-04-07 10:50:57 +02:00
27247a4ffb fix: remove duplicate VPN notifications from moonarch-vpn
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
nm-applet already sends notifications for VPN state changes.
The script's own notify-send calls caused duplicates on every toggle.

Closes #4
2026-04-07 10:19:41 +02:00
fdedc8071f Add nautilus preload service for faster file manager startup
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
xdg-open ~ (Super+E) cold-starts Nautilus every time, causing
noticeable delay. A GApplication service keeps Nautilus warm in the
background so subsequent opens are near-instant. Follows the same
pattern as the existing walker.service.

Closes #2
2026-04-07 09:03:18 +02:00
0fba63571c fix: harden GPG key import with fingerprint verification and cleanup
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
The registry signing key was imported without verifying its fingerprint,
allowing a MITM or compromised server to inject a rogue key. Now checks
the downloaded key against a pinned fingerprint before import. Also adds
trap EXIT for tempfile cleanup and rejects empty curl responses.
2026-04-06 23:08:01 +02:00
23a14e95d5 fix: enable stasis idle manager in user services
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s
stasis ships its own systemd user service but was missing from the
USER_SERVICES array in both post-install and transform scripts.
2026-04-06 22:55:33 +02:00
52a49bfcc3 Fix swaync fullscreen background by raising CSS priority to user level
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s
libadwaita overrides application-level CSS, causing a visible
background behind the control center overlay. Setting cssPriority
to "user" ensures custom styles take precedence.
2026-04-02 12:03:04 +02:00
047ff53091 fix: remove -- from nmcli calls in moonarch-vpn
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
nmcli 1.56 treats -- as a connection name instead of end-of-options,
causing "Unknown connection --" errors when toggling VPN connections.
2026-04-02 10:23:55 +02:00
24b81df63c Add rebuild-detector to system packages
Detects AUR packages broken by shared library upgrades (Python, OpenSSL,
etc.) so they can be rebuilt promptly after system updates.
2026-04-02 10:20:04 +02:00
1004a0b986 Fix paru PKGBUILD repo name collision with pacman registry
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
Both the pacman package registry and the paru PKGBUILD repo used
[moonarch] as section name, causing paru to fail resolving PKGBUILD
upgrade targets against the wrong repo. Renamed PKGBUILD repo to
[moonarch-pkgbuilds] and moved config from ~/.config/paru/paru.conf
to system-wide /etc/paru.conf.
2026-04-02 08:52:26 +02:00
ba4a413097 Move GTK theme from moongreet config to system-wide gtk-4.0 settings
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s
Remove gtk-theme from moongreet.toml and set gtk-theme-name and
gtk-icon-theme-name in /etc/xdg/gtk-4.0/settings.ini instead.
2026-04-02 08:27:56 +02:00
cf9eae1edc Fix swaync theme to use upstream compiled CSS from catppuccin/swaync v1.0.1
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
Hand-converted @define-color CSS was not rendering correctly.
Replaced with pre-built release CSS, accent changed from Blue
to Lavender (#b4befe), font set to UbuntuSans Nerd Font.
2026-04-01 19:11:31 +02:00
8faca0ed48 Add gtk-theme to moongreet config for greeter session
The greeter runs as the greeter user, so user-level gsettings
don't apply. Explicit gtk-theme ensures Colloid-Grey-Dark-Catppuccin
is used in the login screen.
2026-04-01 18:50:23 +02:00
7f06c8e501 Add Moonarch package registry setup with signed packages
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 1s
Import Gitea Arch registry key dynamically and configure pacman
with SigLevel = Required DatabaseOptional. Key ID is extracted
from the downloaded key file to avoid hardcoding.
2026-04-01 18:09:10 +02:00
93ff264824 Add custom Arch-based act_runner image
Runner based on archlinux:base-devel with git, curl, makepkg.
Runs as non-root builder user so makepkg works natively without
permission workarounds. Registration data stored in /data volume.
2026-04-01 18:09:09 +02:00
d4eec1c506 Add custom Arch-based act_runner image, revert workflow workaround
The runner image is now built on archlinux:base-devel with git,
curl, makepkg and a non-root builder user baked in. This removes
the need for per-workflow pacman installs and enables host mode.
2026-04-01 18:09:09 +02:00
6b21b6d50c Fix CI: install git in Arch container for update-pkgver
The runner now uses docker mode with archlinux:base-devel which
does not include git by default.
2026-04-01 18:09:09 +02:00
997f7d90a0 Fix swaync notification icon size in waybar
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
Remove explicit 16pt Pango span wrapper so the icon inherits
the default waybar font size, matching all other modules.
2026-04-01 15:31:27 +02:00
3673b22009 Add CI workflow to auto-update pkgver in moonarch-pkgbuilds
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s
Same pattern as moongreet/moonlock/moonset — pushes to main
trigger a pkgver bump so paru detects updates.
2026-04-01 14:59:33 +02:00
7f509eff95 Add swaync notification widget to waybar, remove dunst remnants
custom/notification (swaync-client) was defined but not in the
module list. Replaces the removed custom/dnd (dunstctl) slot.
2026-04-01 14:44:27 +02:00
8c7e9407c6 Replace dunst with swaync for fractional scaling support
Dunst lacks wp_fractional_scale_v1, causing jagged font rendering
on external monitors in mixed-DPI setups (laptop 2.5x + externals 1x).
swaync (GTK4) handles fractional scaling natively.

Style based on catppuccin/swaync with Lavender accent.
2026-04-01 14:41:42 +02:00
7cd34f2ace Swap moonset and keyboard-shortcuts-inhibit keybindings
Mod+Escape is more intuitive for the session/power menu,
Super+Alt+L moves to keyboard shortcuts inhibit toggle.
2026-04-01 14:41:36 +02:00
aa1567487f Add OpenMoji emoji font to AUR package list 2026-03-31 12:49:59 +02:00
5b37bfe525 Pin linux-zen kernel in archinstall config, add quiet boot param
- Set kernels to linux-zen in user_configuration.json to skip
  interactive kernel selection during install
- Add post-install step to append quiet to non-fallback systemd-boot
  entries for clean boot output
2026-03-31 11:17:36 +02:00
1e19f08776 fix: shell script quoting and argument injection hardening
Audit fixes for command injection risks in helper scripts:
- moonarch-cpugov: eval for quoted COMMANDS expansion (pkexec context)
- moonarch-btnote: while+read with process substitution, quoted vars
- moonarch-vpn: -- guard before connection name in nmcli calls
- post-install.sh: else-logging when USER_DEFAULTS dir missing
2026-03-31 11:06:14 +02:00
491a3cd3e2 Fix xdg-desktop-portal-gtk spam in greeter session
The greeter's niri session triggered D-Bus activation of
xdg-desktop-portal-gtk, which failed 17x on every boot because
WAYLAND_DISPLAY is not set in the greeter's D-Bus scope.
Setting GTK_USE_PORTAL=0 prevents GTK from requesting portal
services the greeter does not need.
2026-03-31 10:35:37 +02:00
077e852b3b Use system zsh plugins, remove redundant waybar network modules
- Source zsh-autosuggestions and zsh-syntax-highlighting from
  /usr/share/zsh/plugins/ instead of oh-my-zsh custom dir
- Add both as official packages
- Remove waybar network and custom/vpn modules (nm-applet covers this)
- Move tray from modules-left to first position in modules-right
2026-03-31 10:27:53 +02:00
ca7f9bb79e Remove non-existent walker providers, add nirisessions set
Remove prefixes and actions for providers not installed as
elephant packages: windows, symbols, websearch, archlinuxpkgs.
Add provider set for nirisessions.
2026-03-31 09:58:13 +02:00
f2a28f8577 docs: fix README, remove gtklock and wlogout remnants
README: fix keybind (wlogout → moonset), remove gtklock from project
structure, correct package counts, remove nonexistent install-themes.sh,
mark update.sh as legacy wrapper.
Remove gtklock packages (5) and wlogout from package lists.
Remove defaults/xdg/gtklock/ config directory.
Remove stale foot/waybar overrides from transform.sh.
2026-03-31 09:36:20 +02:00
684d54e0c2 Deploy moonarch config overrides for walker, foot, and waybar
These configs are owned by their respective packages in /etc/xdg/ so
the XDG copy loop installs the package defaults instead of ours.
Overwrite with moonarch versions from /usr/share/moonarch/ after the
loop.
2026-03-30 23:45:52 +02:00
3acb71a210 Fix GTK4 theme comment to match Grey accent 2026-03-30 23:34:26 +02:00
4eca6190f2 Remove packages from aur.txt that are hard deps of moonarch-git
walker-bin, elephant-bin, stasis, colloid-catppuccin-gtk-theme-git,
and waypaper are already pulled in as dependencies of moonarch-git.
Duplicating them in aur.txt caused package conflicts during transform.
2026-03-30 23:09:36 +02:00
c011672bc2 Install packages from package lists in transform script
The pre-flight summary already computed missing packages but never
installed them. Now installs both official and AUR packages after
moonarch-git.
2026-03-30 23:03:58 +02:00
9dde069e3e Replace timeshift with snapper + snap-pac for btrfs snapshots
snap-pac provides automatic pre/post snapshots on pacman transactions
via pacman hook.
2026-03-30 22:59:46 +02:00
f5d199fa5a Fix foot terminal font: use monospace variant of UbuntuSans NF 2026-03-30 22:56:33 +02:00
59a0e500f2 Fix transform failing on root-owned XDG config dirs
cp -r from /etc/xdg/ preserved root ownership on directories,
causing rm -rf to fail on subsequent runs. Add --no-preserve=ownership
to cp and escalated rm fallback for existing root-owned dirs.
2026-03-30 22:49:42 +02:00
65e2e54024 Remove custom cd function from default zshrc
Overriding a builtin like cd causes issues with tooling and
scripts that expect standard cd behavior.
2026-03-30 22:40:53 +02:00
2fba1b571d Make backup optional in transform script 2026-03-30 22:32:54 +02:00
a86b95dd58 Add WireGuard support to VPN manager, use nm-applet for auth
nm-applet replaces the foot terminal workaround for VPN authentication,
providing a proper NetworkManager secret agent. moonarch-vpn now handles
both VPN and WireGuard connection types. Waybar indicator switched from
tun0 interface check to nmcli active connection query with signal-based
instant refresh.
2026-03-30 19:14:10 +02:00
d1874dca6b Add cd auto-listing and extract helper to default zshrc
Port cd() wrapper (auto eza listing on directory change) and
extract() function (universal archive extraction) from active
user config into moonarch defaults.
2026-03-30 17:26:48 +02:00
5947d9af43 fix: use paru -Syu instead of -Sy to avoid partial upgrade state 2026-03-30 16:09:06 +02:00
4d9cbe7ce2 Replace Rofi with Walker as application launcher
Walker (GTK4 + Elephant backend) replaces rofi-lbonn-wayland-git as the
central launcher and menu framework.

Native Walker providers replace 5 custom rofi scripts:
- App launcher (desktopapplications provider)
- Clipboard (clipboard provider, replaces cliphist frontend)
- Bluetooth (bluetooth provider, replaces bluetoothctl script)
- Volume/audio (wireplumber provider)
- Sink switcher (wireplumber provider)

3 scripts ported to Walker dmenu mode:
- moonarch-vpn (nmcli)
- moonarch-cpugov (auto-cpufreq)
- moonarch-sink-switcher (pactl)

Settings menu (moonarch-setmen) removed — apps are findable via Walker
app search directly.

Walker theme (gtk-inherit) inherits all colors from the active GTK4
theme instead of hardcoding Catppuccin values.

Walker and Elephant run as systemd user services for instant startup.

Also standardizes GTK theme to Colloid-Grey-Dark-Catppuccin across all
config files (was inconsistent between gsettings and file configs).

Old rofi configs preserved in legacy/rofi/ for reference.
2026-03-30 12:06:25 +02:00