All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 4s
Waybar's include directive cannot merge arrays, making per-machine module customization impossible without duplicating the entire config. moonarch-waybar merges an optional ~/.config/waybar/userconfig with the system config, supporting prepend/append on module arrays and object merge for module definitions. Generates user style.css with @import of system styles on first run. System waybar config converted from JSONC to valid JSON for jq compatibility. Niri startup and hotkey updated to use the wrapper.
50 lines
2.6 KiB
Markdown
50 lines
2.6 KiB
Markdown
# 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-Scripts
|
|
- `packages/` — Paketlisten (offiziell + AUR), getrennt gepflegt
|
|
- `defaults/` — 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-threshold` persistiert und beim Boot via systemd-Service wiederhergestellt
|
|
- udev-Regel gibt Gruppe `wheel` Schreibzugriff 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):
|
|
- `wlsunset` startet per Niri-Autostart mit fester Nacht-Temperatur (5000K)
|
|
- Klick auf das Nightlight-Modul in `group/brightness` toggled wlsunset an/aus (kill/restart)
|
|
- 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 erweitern `modules-left`/`modules-center`/`modules-right` Arrays
|
|
- 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.css` mit `@import` der System-Styles falls nicht vorhanden
|
|
- Benötigt `jq` (in PKGBUILD als Dependency)
|
|
- System-Config muss valides JSON sein (kein JSONC)
|
|
|
|
## 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
|
|
|
|
## Ich bin Apollo
|
|
|
|
Benannt nach dem Programm, das Menschen zum Mond gebracht hat — passend für ein Projekt namens Moonarch.
|