Two defects, found while porting moonix's switch back.
Nothing installed a GTK theme. settings.ini named
Colloid-Grey-Dark-Catppuccin and the PKGBUILD symlinked
/usr/share/themes/Colloid-Grey-Dark-Catppuccin/gtk-4.0/ into /etc/xdg, but
no package in either list ships it: colloid-catppuccin-theme-git is a split
package of colloid-icon-theme-git running `install.sh -s catppuccin`, which
installs icons only, and kvantum-theme-catppuccin-git is Qt. A fresh
install got Adwaita and three dangling symlinks. post-install.sh already
had the error branch for this — "GTK4 theme not found … libadwaita apps
will use fallback theme" — firing on every fresh machine.
The package name is what hid it: colloid-catppuccin-theme-git reads like a
GTK theme and is an icon set. aur.txt now says so in a comment, and the
icon entry stays — there is no Mocha icon counterpart and none is needed.
The theme was also never Mocha. Colloid's catppuccin tweak produces Frappé
with a grey accent (base #292c3c, selection #ccd0da); #1e1e2e and #b4befe
appear nowhere in its gtk.css. Kvantum, Zed and the lock screen were all
Mocha, so GTK was the one layer out of step, unnoticed because the two dark
bases sit close together.
catppuccin-gtk-theme-mocha is maintained by Catppuccin itself and ships the
upstream 1.0.3 release zips. No change in shape: their GTK theme is
Colloid, carried as a git submodule and recolored, so widget shapes and
spacing are exactly what they were.
The name will not match moonix, ever. Arch installs the release zips, whose
directories carry the full build name including the +default tweak marker;
nixpkgs builds the same 1.0.3 from source without tweaks and drops the
suffix. moonix therefore keeps rewriting this one value when it deploys
settings.ini — a permanent difference now, not a migration step.
The quickshell launcher and NetworkPopout start apps through app2unit so
each one gets its own transient systemd scope instead of inheriting
quickshell's cgroup. app2unit is an AUR package and was never listed, so
on Arch the binary is absent and Quickshell.execDetached fails silently:
the launcher opens, filters entries and starts nothing, leaving no trace
in the quickshell log. NixOS carries app2unit in the system environment,
which is why the switch went unnoticed there.
Not a PKGBUILD depends — pacman cannot resolve AUR packages
(moonarch-pkgbuilds/DECISIONS.md, 2026-04-21). moonarch-update reports it
as missing and offers to install it from aur.txt.
auto-cpufreq switches the scaling governor, but under amd-pstate in
active mode the platform decides from the min/max and EPP registers and
ignores the governor. power-profiles-daemon writes exactly those knobs,
and its polkit policy allows switch-profile for the active session, so
the popout no longer loses focus to a pkexec prompt.
- CpuGovService.qml: powerprofilesctl get/set, no pkexec
- indicator + popout: powersave -> power-saver, Auto (reset) -> balanced
- moonarch-cpugov, moonarch-waybar-cpugov: same switch, the Waybar module
now reads the profile instead of scaling_governor
- power-profiles-daemon moves from aur.txt to official.txt (it is in extra)
- post-install.sh and moonarch-doctor name it in their service lists
Qt apps (e.g. VLC) rendered in the default Fusion style — GTK theming
does not cover Qt. Add the Kvantum style engine + Catppuccin Mocha
Lavender theme, wired via QT_STYLE_OVERRIDE, which covers both Qt5 and
Qt6 (QT_QPA_PLATFORMTHEME can select only one plugin at a time).
Also move all GUI-toolkit env vars (QT_*/GDK/SDL/CLUTTER) from zshrc to
niri's environment{} block: niri is systemd-started, so zsh exports
never reached niri-spawned GUI apps (verified via /proc/environ), only
terminal-launched ones — the app launcher included.
- packages: kvantum, kvantum-qt5, qt6ct + kvantum-theme-catppuccin-git (AUR)
- niri config.kdl: environment{} block; zshrc: GUI-toolkit vars removed
- qt6ct.conf (style=kvantum, icon_theme=Colloid), Kvantum/kvantum.kvconfig
(theme=catppuccin-mocha-lavender, the Lavender accent)
- CLAUDE.md + DECISIONS.md
stasis ignores browser audio (pactl, browser-excluded), so windowed/muted browser video let the screen sleep. Add wayland-pipewire-idle-inhibit (AUR + user service) holding a Wayland idle-inhibitor while audio plays. Enabled on fresh installs and checked by moonarch-doctor.
Long-standing gaps in post-install.sh plus cleanup:
- post-install.sh:18 was `sudo pacman -S paru` on the wrong
assumption paru had landed in [extra]. Verified: paru/paru-bin
are AUR-only. Restored the original git-clone + makepkg
bootstrap, added the rust buildep that archinstall does not
pull in.
- post-install.sh never installed AUR extras — walker, elephant,
waypaper, stasis, themes all silently skipped. Now pulls
packages/aur.txt after moonarch-git.
- packages/official.txt: drop glab, go, npm (unused) and rustup
(only needed for the paru build, handled imperatively now).
- packages/aur.txt: add walker-bin (was missing entirely).
- transform.sh + legacy update.sh shim removed — transform was
never used in practice.
- Apollo persona block out of CLAUDE.md, prior DECISIONS entries
rewritten from Apollo/Ragnar to ClaudeCode.
- README Transform section and scripts/ listing trimmed.
- lib.sh ABOUTME updated — only post-install.sh sources it now.
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.
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.
- Add kanshi to official package list and spawn at niri startup
- Add empty default kanshi config in defaults/xdg/kanshi/
- Replace wdisplays-git with wdisplays-persistent-gettext in AUR list
Enforce the repo convention that committed text is English.
Translates ABOUTME headers, code comments, log/error messages,
shell prompts, and documentation across all files.
CLAUDE.md files remain in German per policy.
- GTK-Theme von catppuccin-mocha-lavender auf Colloid-Catppuccin umgestellt
- Systemweite GTK4-Symlinks in /etc/xdg/gtk-4.0/ für libadwaita Dark-Mode
- gsettings für Theme, Color-Scheme, Icon-Theme und Font im post-install
- Alle Fonts (Hack, JetBrainsMono, MonarchOS) auf UbuntuSans Nerd Font
- Paketlisten: Colloid-Pakete statt catppuccin-gtk/newaita, ttf-ubuntusans-nerd
Niri-basierter Wayland-Desktop mit greetd/regreet, Catppuccin Mocha
Theming, Rofi-Menus, Waybar und vollstaendiger Post-Install-Automatisierung.
Archinstall-Config klont das Repo automatisch via custom-commands,
danach genuegt ein einzelner Befehl fuer die komplette Einrichtung.