moonix switched first; this follows so the two distributions agree again and moonix can drop the two substitute derivations that were rewriting these configs at deploy time. Two things made it worth doing. gtklock's modules show an avatar, a clock and power buttons, none of which swaylock can do at all. And the old objection is gone: 4.0.0 links libgtk-session-lock.so.0, so it speaks ext-session-lock-v1 exactly like swaylock and the compositor still holds the lock if the process dies. Only the <=2.x versions used layer-shell, where a crash unlocked the screen. The config location is the real prize. gtklock searches $XDG_CONFIG_DIRS, so defaults/xdg/gtklock/config.ini rides the generic sweep and takes effect through the package alone. Everything built for swaylock in 2026-08-18 goes with it: the explicit install line in the PKGBUILD, the pre_upgrade retirement of seeded home copies, check_swaylock_config in moonarch-doctor, the comment in post-install.sh. swaylock needed all of that because its sysconfdir was not an XDG path. The blur stays baked into the wallpaper. gtklock cannot blur either — GTK3 has no filter CSS property and it takes no screenshot of the session, so there is nothing to blur at lock time. playerctl-module is deliberately not installed; it needs playerctld, which nothing here starts. The other two are named bare in modules= because gtklock's compiled-in module directory really is /usr/lib/gtklock on Arch. All three packages are in extra, so official.txt covers them. Both callers keep spawning the locker directly. There is no Wayland protocol for "lock the session" — ext-session-lock-v1 is how a client becomes the lock — and no portal either; logind's Session.Lock only emits a signal nothing here subscribes to. Routing the popout through `stasis trigger lock-screen` would name the locker once instead of twice, at the price of a Lock button that fails silently whenever stasis is down. The reason to want it does not exist: the plan continues after a manual lock anyway, because stasis takes the state from logind's LockedHint rather than from having started the locker. The PKGBUILD side of this is a separate commit in moonarch-pkgbuilds, and it carries the part that fails silently if forgotten: pre_upgrade rewrites already-seeded ~/.config/stasis/stasis.rune, which is copied once and never overwritten. Without it an existing install keeps calling a locker that is no longer there.
35 lines
1.7 KiB
INI
35 lines
1.7 KiB
INI
# ABOUTME: Moonarch default gtklock configuration.
|
|
# ABOUTME: Installed to /etc/xdg/gtklock/config.ini; callers pass -d themselves.
|
|
#
|
|
# gtklock searches $XDG_CONFIG_HOME/gtklock/config.ini and gtklock/config.ini
|
|
# under every $XDG_CONFIG_DIRS entry, so /etc/xdg is enough and this file takes
|
|
# effect through the package alone. It goes through the generic defaults/xdg/
|
|
# sweep in the PKGBUILD like any other XDG config -- unlike swaylock before it,
|
|
# whose sysconfdir was not an XDG path and needed an install line of its own.
|
|
#
|
|
# Every option here is also a command-line flag; `gtklock --help-config` lists
|
|
# them. A user copy in ~/.config/gtklock/config.ini wins over this one.
|
|
|
|
[main]
|
|
|
|
# Blurred variant of the default wallpaper. gtklock has no blur of its own --
|
|
# GTK3 has no `filter` CSS property at all -- and it takes no screenshot of the
|
|
# session, so there is nothing to blur at lock time either way. The blur is
|
|
# baked into the image at build time, as it was for swaylock.
|
|
background=/usr/share/moonarch/wallpaper-blur.jpg
|
|
|
|
# Bare names resolve against gtklock's compiled-in module directory, which is
|
|
# /usr/lib/gtklock here. playerctl-module is deliberately absent: it needs
|
|
# playerctld, which nothing in moonarch starts.
|
|
modules=userinfo-module;powerbar-module
|
|
|
|
# No gtk-theme key on purpose. gtklock is GTK3 and reads the session theme from
|
|
# /etc/xdg/gtk-3.0/settings.ini, so the theme name lives in exactly one place.
|
|
#
|
|
# powerbar needs no configuration: its built-in commands are `systemctl reboot`,
|
|
# `systemctl -i poweroff` and `systemctl suspend`.
|
|
#
|
|
# userinfo takes the avatar from AccountsService, which resolves to ~/.face.
|
|
# With no such file it warns once and falls back to avatar-default-symbolic from
|
|
# the icon theme; there is no option for the path.
|