QuickShell QML login greeter for greetd, styled after noctalia-shell lockscreen. Runs under niri compositor as _greeter user. Theme is live-synced from noctalia config via runit service. - shell.qml: QuickShell greeter UI + greetd auth flow - sync/: inotifywait theme sync daemon + runit service - greetd/: niri compositor config + wrapper scripts - install.sh: deployment helper - test/check-syntax.sh: 19 syntax/structural checks (0 failures) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1.9 KiB
1.9 KiB
noctalia-greeter
A QuickShell QML login greeter for greetd, styled to match the noctalia-shell lockscreen.
Architecture
greetd (VT7, _greeter user)
└── dbus-run-session niri --config /etc/greetd/niri-greeter.kdl
└── /etc/greetd/start-greeter.sh
└── qs -c ~/.config/noctalia-greeter/ (shell.qml)
reads /var/lib/noctalia-greeter-theme/{colors.json,wallpaper.jpg}
noctalia-greeter-sync (runit, moze user)
inotifywait ~/.config/noctalia/ + ~/.cache/noctalia/
→ copies colors.json + wallpaper on any noctalia style change
→ writes to /var/lib/noctalia-greeter-theme/ (world-readable)
The _greeter user never touches /home/moze. Theme data is staged to a world-readable directory by the sync service running as moze.
Files
| Source | Deployed to |
|---|---|
shell.qml |
~/.config/noctalia-greeter/shell.qml |
sync/noctalia-greeter-sync |
/usr/local/bin/noctalia-greeter-sync |
sync/run |
/etc/sv/noctalia-greeter-sync/run |
greetd/niri-greeter.kdl |
/etc/greetd/niri-greeter.kdl |
greetd/start-greeter.sh |
/etc/greetd/start-greeter.sh |
greetd/config.toml.example |
/etc/greetd/config.toml (edit before deploying) |
Install
sudo ./install.sh
Requires: greetd, niri, quickshell (qs), dbus, inotify-tools.
Rollback
Edit /etc/greetd/config.toml:
[terminal]
vt = 7
[default_session]
command = "sway --config /etc/greetd/sway-greeter.conf"
user = "_greeter"
Theme sync
Change colors/wallpaper in noctalia shell → greeter auto-updates next login (no restart needed).
The sync service watches:
~/.config/noctalia/colors.json~/.cache/noctalia/wallpapers.json
Tests
./test/check-syntax.sh