All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 3s
The `[moonarch-pkgbuilds]` paru-repo check was a false failure: that mechanism was retired on 2026-04-20 and the install hook strips the legacy paru.conf section on upgrade. Audit of the rest of the doctor surfaced two related gaps — the user-services loop skipped `walker.service` and `nautilus.service`, even though moonarch-git ships both and enables them via graphical-session.target.wants. Added them to the loop and filled in the missing `wlsunset` in the CLAUDE.md listing.
3.2 KiB
3.2 KiB
Moonarch
Reproduzierbares Arch-Linux-Setup basierend auf archinstall + Post-Install-Automatisierung.
Projektstruktur
config/— archinstall-Konfiguration (inkl. custom-commands die das Repo nach /opt/moonarch klonen, root-owned)scripts/— Post-Install- und Helper-Scriptspackages/— Paketlisten (offiziell + AUR), getrennt gepflegtdefaults/— XDG-Configs, Shell-Config, Helper-Binaries, systemd Services, udev-Regeln, greetd/moongreet-Config, Wallpaper
Battery Conservation Mode
Laptops mit charge_control_end_threshold-Support (ThinkPad, Framework, etc.) erhalten einen Waybar-Toggle:
- Klick auf das Battery-Modul schaltet zwischen 80% und 100% Ladegrenze um
- Bei aktiver Conservation erscheint ein ♥-Icon neben der Battery-Anzeige
- Zustand wird in
/var/lib/moonarch/batsaver-thresholdpersistiert und beim Boot via systemd-Service wiederhergestellt - udev-Regel gibt Gruppe
wheelSchreibzugriff auf den Threshold (kein sudo nötig) - Auf Desktops ohne Battery-Support versteckt sich das Feature komplett
Nightlight (Blaufilter)
Waybar-Toggle für wlsunset (Wayland-nativer Blaufilter), persistenter Zustand via systemd:
wlsunset.service(systemd User-Service) mitAfter=kanshi.service— startet erst wenn alle Outputs konfiguriert sind- Klick auf das Nightlight-Modul in
group/brightnesstoggled wlsunset an/aus (enable --now/disable --now) - Zustand überlebt Reboots (enabled/disabled bleibt bestehen)
- Aktiver Zustand zeigt in Catppuccin Yellow, inaktiv in Standard-Textfarbe
- Signal SIGRTMIN+11 für sofortiges Waybar-Refresh
- Scripts:
moonarch-nightlight(Toggle),moonarch-waybar-nightlight(Status-JSON)
Waybar Config Merger (moonarch-waybar)
Waybar wird über moonarch-waybar gestartet (nicht direkt). Der Wrapper merged eine optionale User-Config (~/.config/waybar/userconfig) mit der System-Config (/etc/xdg/waybar/config):
prepend/append-Keys in der userconfig erweiternmodules-left/modules-center/modules-rightArrays- Alle anderen Top-Level-Keys werden als Modul-Definitionen per Object-Merge eingefügt
- Merge wird nur bei Änderungen ausgeführt (Timestamp-Vergleich)
- Bei Fehler:
notify-send+logger, Waybar startet mit System-Config - Generiert
~/.config/waybar/style.cssmit@importder System-Styles falls nicht vorhanden - Benötigt
jq(in PKGBUILD als Dependency) - System-Config muss valides JSON sein (kein JSONC)
System Health Check (moonarch-doctor / moondoc)
Diagnose-Script das den Systemzustand gegen moonarch-Defaults prüft:
- Pakete (official.txt + aur.txt installiert? Orphans?)
- System-Services (NetworkManager, bluetooth, greetd, ufw, auto-cpufreq, etc.)
- User-Services (kanshi, wlsunset, stasis, walker, nautilus, cliphist-text, cliphist-image)
- Config-Dateien (SHA256-Vergleich deployed vs. moonarch-Default)
- Helper-Scripts + Symlinks (moonup, moondoc)
- System-Config (UFW, Pacman/Paru Repos, Default Shell)
- Verzeichnisse + Permissions
Konventionen
- Paketlisten sind einfache Textdateien, ein Paket pro Zeile, Kommentare mit
# - Shell-Scripts müssen POSIX-kompatibel oder explizit bash/zsh sein
- Alle Pfade im archinstall-Config relativ zum Installationsziel