stasis.rune is copied into the home once and never overwritten, so an
existing install keeps calling gtklock directly and the monitor fix
reaches nobody. The -d variant is rewritten before the bare rule, or
that one rewrites the inner quotes and -d never matches.
The swaylock and moonlock rules are dropped: neither locker is in use
anywhere, and the rewrite to gtklock has shipped in every update since
2026-09-11. The moonlock rule also resolved to a -d form that is wrong
for a lock_screen step, where stasis waits for the locker.
The three symlinks into /etc/xdg/gtk-4.0/ named
Colloid-Grey-Dark-Catppuccin, which no package installed — see moonarch's
DECISIONS entry for 2026-09-12. They now name
catppuccin-mocha-lavender-standard+default, which catppuccin-gtk-theme-mocha
does install; the directory layout is identical (gtk.css, gtk-dark.css,
assets), so only the name changes.
Follows moonarch 4f36035. depends gains gtklock plus the userinfo and
powerbar modules, all three from extra; the explicit install line for
defaults/etc/swaylock/config goes, because the new config lives at
defaults/xdg/gtklock/config.ini and rides the generic defaults/xdg sweep —
gtklock searches $XDG_CONFIG_DIRS, which swaylock could not.
Both pre_upgrade blocks built for the swaylock config are dead now: there
is no /etc/swaylock/config to reclaim from a manual deploy, and no seeded
home copies to retire.
The stasis migration is the one that matters. stasis.rune is copied into
the user home once and never overwritten, so without a rewrite an existing
install keeps calling a locker that is no longer installed — and stasis
fails silently on a missing binary: it logs the action as started, sees the
immediate exit, treats the step as finished and stops there. The block that
already pointed moonlock at swaylock now points both at gtklock. Rule order
matters: the `swaylock -f` rule has to run before the bare one, or the bare
rule rewrites the inner quotes first and -f never matches.
swaylock never reads /etc/xdg/, so the config is installed explicitly to
/etc/swaylock/config — its SYSCONFDIR path — instead of going through the
generic defaults/xdg/ sweep. The home seeding drops out; pre_upgrade
retires the pristine copies it left behind (cmp against the still-old
/etc/xdg file, so an edited copy survives) and clears a manually deployed
/etc/swaylock/config that pacman would refuse to overwrite.
wallpaper-blur.jpg ships next to the plain wallpaper as the lock screen
background.
The power menu is a Quickshell popout now, which retired moonset and
with it the last caller of moonlock. Only sweet-cursors is left from the
own registry. pkgrel 19 to trigger the build.
Drops the moongreet dependency and adds the two upstream packages, so
pacman lets moongreet go on the clients. moonlock stays: moonset spawns
it by name.
The reference configs deployed into /etc/greetd/ are now regreet.toml and
regreet.css. post_install seeds ~/.config/swaylock/config, pre_upgrade
rewrites moonlock to swaylock -f in stasis configs that were seeded
before — that file is never overwritten, so an existing install would
otherwise keep calling a package on its way out.
The moongreet and moonlock PKGBUILD directories stay: the CI only builds
what changed, and deleting them would break the build step's cd.
moonarch-camera.service switches all cameras off on boot. System units are
installed file by file here, so a new one needs its own install line; the
enable is hardware-gated in post_install, like the batsaver service.
The four moonarch-camera-* scripts and the quickshell components need no
packaging change — they are covered by the defaults/bin glob and the
defaults/xdg find loop.