52 Commits

Author SHA1 Message Date
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
ee5940dec1 DRY rofi applet themes via shared base
Extract common applet pattern (no-icon dmenu layout) into applet.rasi.
Reduce clipboard, vpn, cpugov, volume, and bluetooth themes to pure
overrides — eliminates ~380 lines of duplication. Also fixes broken
fonts.rasi import in bluetooth.rasi.
2026-03-30 10:04:49 +02:00
eb1db750c9 Fix dunst config loading, modernize notification handling
- Point dunst to /etc/xdg/dunst/dunstrc via -conf flag (dunst with
  SYSCONFDIR=/etc does not search XDG_CONFIG_DIRS)
- Update dunstrc: fix legacy offset syntax, replace missing
  Tela-purple-dark icon theme with Colloid-Grey-Catppuccin-Dark
- Replace dunstify with notify-send in moonarch-cpugov for
  daemon-agnostic notifications, fix broken icon path
- Replace dbus-monitor based moonarch-dnd script with inline
  waybar polling (interval 2s), fixing process accumulation bug
- Add #custom-dnd to waybar CSS padding rule
2026-03-30 09:40:26 +02:00
07264510dd Fix audit findings, replace wlogout with moonset
Bug fixes from quality and security audits:
- moonarch-capsnote: use value[0] instead of value[2]
- moonarch-btnote: guard empty PER_INT before integer comparison
- moonarch-clipboard + niri config: use XDG_RUNTIME_DIR instead of UID 1000
- moonarch-waybar-hidpp: use charging icon when charging
- moonarch-waybar-gpustat: find gpu_busy_percent dynamically across hwmon*
- post-install/transform: use systemctl --user cat for service detection
- post-install/transform: install paru from [extra] instead of AUR clone

Replace wlogout with moonset in niri keybind and waybar on-click.
Remove moonarch-session (dead code, replaced by moonset) and wlogout
layout config.
2026-03-29 21:23:03 +02:00
7d7cbec2ca Delegate file deployment to moonarch-git package
Refactor post-install.sh and transform.sh to install moonarch-git via
paru instead of manually copying configs, scripts, and themes. Remove
install-themes.sh (replaced by sweet-cursors-git dependency). Replace
update.sh with deprecation notice that forwards to the package-provided
moonarch-update in /usr/bin/.
2026-03-29 18:53:57 +02:00
a6a5a709a0 Add moonarch-update for package-based system maintenance
Simplified updater that reads package lists from /usr/share/moonarch/
instead of syncing a git repo. Designed to be shipped by the
moonarch-git package as /usr/bin/moonarch-update.
2026-03-29 17:15:07 +02:00
1679fcfb30 Make /opt/moonarch root-owned for multi-user support
Remove chown from archinstall custom-commands so the repo stays
root:root. Use sudo for git operations in update.sh. Any user with
sudo can now run moonarch-update without owning the repo.
2026-03-29 15:23:39 +02:00
6ca8931f04 Document --dry-run flag and chown step in transform instructions 2026-03-29 15:14:12 +02:00
72c221897f Add --dry-run flag to transform.sh
Shows pre-flight summary with package diff, config change counts,
and detected conflicts without modifying the system.
2026-03-29 15:12:41 +02:00
9d26f04af6 Add transform script for existing Arch+Wayland systems
Extract shared helpers into lib.sh (log, err, confirm, path constants)
and refactor post-install.sh + update.sh to source it.

New transform.sh converts an existing Arch+Wayland system to Moonarch:
pre-flight summary, config backup, DM conflict resolution, PulseAudio
removal, full package install, and hard overwrite of all configs.

Also migrate kanshi from niri spawn-at-startup to systemd user service.
2026-03-29 15:03:44 +02:00
24d70db2cf fix: migrate swww to awww, add per-user GTK4 symlinks
swww was renamed to awww (codeberg.org/LGFae/awww). Update package
list, README references, and add compatibility symlinks in post-install
so waypaper keeps working until it supports awww natively.

Also add per-user ~/.config/gtk-4.0/ symlinks — libadwaita ignores the
system-wide /etc/xdg/ fallback, so apps like Nautilus need user-level
CSS links to pick up the Catppuccin theme.
2026-03-29 14:14:06 +02:00
d873985930 fix icon theme references, replace Newaita with Colloid-Catppuccin
- Update gtk-3.0/settings.ini icon theme to match gsettings
- Replace hardcoded Newaita icon path in moonarch-btnote with
  generic icon name (uses active theme automatically)
- Update README to reflect correct icon theme
2026-03-29 14:10:54 +02:00
eaf30724aa fix missing packages, remove dead code, replace ponymix with pactl
- Add wl-clipboard, libnotify, upower, bluez, bluez-utils to official.txt
- Remove stow (installed but never used)
- Remove dead moonlock.service cp block from post-install.sh
- Rewrite moonarch-sink-switcher and moonarch-volume to use pactl
  instead of ponymix (already available via libpulse)
2026-03-29 14:00:51 +02:00
541b701773 add kanshi for dynamic output management, fix wdisplays package
- 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
2026-03-29 13:46:53 +02:00
0a266510e0 i18n: migrate all German text to English
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.
2026-03-28 14:53:23 +01:00
ef78e32394 fix: clean up cpugov scripts and waybar polling
Replace infinite loop with single execution (waybar handles polling
via interval), fix unquoted variables, simplify jq invocation.
2026-03-28 14:31:00 +01:00
f5d94e8bc0 fix: replace manual moongreet/moonset installs with paru repo
The old fallbacks used git clone + makepkg and uv pip install, which
are fragile and bypass the moonarch-pkgbuilds repo. Now sets up the
paru custom repo and installs all three packages via paru -S.
2026-03-28 14:30:09 +01:00
8f248d2a7a HID++ Batterie-Modul für Waybar mit dynamischer Geräteerkennung
Das bisherige battery#keyboard Modul nutzte eine feste hidpp_battery_N
Nummer, die sich bei jedem Boot ändern kann. moonarch-waybar-hidpp
findet den richtigen Eintrag dynamisch per MODEL_NAME Argument.
2026-03-28 00:03:39 +01:00
44dee82f35 User-Config-Defaults für Waybar mit Include der systemweiten Config
Post-Install kopiert defaults/user/ nach ~/.config/, aber nur wenn
die Dateien noch nicht existieren. Waybar-Beispiele zeigen wie man
die systemweite Config per include/import erweitert (z.B. Peripherie-Akkus).
2026-03-27 17:03:38 +01:00
8e59f9298a moonset-Installation und moonlock-Service in post-install ergänzen
Post-Install klont und installiert moonset aus Gitea und
richtet den moonlock systemd User-Service ein.
2026-03-27 15:26:45 +01:00
3acfe42ece Rofi Clipboard-Menü mit Catppuccin-Theme und eigenem Script
Clipboard-History (Super+C) nutzte bisher rofi ohne Theme.
Neues clipboard.rasi und moonarch-clipboard Script analog zu
den anderen Rofi-Menüs (vpn, volume, session etc.).
2026-03-27 15:13:03 +01:00
c3213cc0ce Rofi/Waybar aufräumen: tote Scripts entfernen, Themes konsolidieren
- GTK-Style-Script und Template-System entfernt (Catppuccin fest)
- 15 tote/inkompatible Scripts gelöscht (Hyprland, X11, Duplikate)
- Rasi-Themes von Einzelordnern in themes/ konsolidiert
- Waybar: Timezone fix, BAT0, JSON-Struktur, Icons restored
- Waybar: GTK-Menu durch wlogout on-click ersetzt
- Alle Script-Pfade auf /etc/xdg/rofi/themes/ aktualisiert
- moonarch-session als Rofi-basierte Übergangslösung hinzugefügt
- moonarch-dnd: broken pipe bei Waybar-Restart behoben
- Style.css vom System übernommen
2026-03-27 13:19:48 +01:00
b43720082d Theming auf Colloid-Catppuccin und UbuntuSans Nerd Font vereinheitlichen
- 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
2026-03-26 22:17:03 +01:00
ae904436f0 Run moongreet inside Niri compositor via greetd
Moongreet needs a Wayland compositor — greetd now starts Niri with
a minimal greeter-only config (no keybinds, no gaps, auto-quit).
2026-03-26 21:33:54 +01:00
312924e2a8 Add stasis idle manager configuration
Configures screen dimming, DPMS, moonlock, and suspend timers
for AC and battery profiles. Includes app inhibit patterns for
media players, gaming, VMs, and rendering workloads.
2026-03-26 21:32:49 +01:00
f79128b1a6 feat: regreet durch moongreet ersetzen, einheitliches Default-Wallpaper
Greeter von regreet (niri-Wrapper) auf moongreet (GTK4 + gtk4-layer-shell)
umgestellt. moongreet wird direkt aus dem Gitea-Repo gebaut.

Ein einziges Wallpaper unter /usr/share/moonarch/wallpaper.jpg dient jetzt
als Default fuer Desktop (waypaper), Lockscreen (gtklock) und Greeter
(moongreet).
2026-03-26 12:17:18 +01:00
78bd87359b fix: manuellen xwayland-satellite-Start entfernen
Seit niri 25.08 wird xwayland-satellite automatisch verwaltet.
Der manuelle spawn-at-startup fuehrte zu doppelten Prozessen.
2026-03-24 07:09:12 +01:00