feat: initial noctalia-greeter release

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>
This commit is contained in:
Moze
2026-04-30 01:45:37 +02:00
commit 1dd16d3e99
9 changed files with 749 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
[terminal]
vt = 7
[default_session]
command = "/usr/sbin/dbus-run-session /usr/sbin/niri --config /etc/greetd/niri-greeter.kdl"
user = "_greeter"

3
greetd/niri-greeter.kdl Normal file
View File

@@ -0,0 +1,3 @@
// Minimal niri config for the greetd greeter session.
// Spawns the QuickShell greeter; quits niri when qs exits.
spawn-at-startup "sh" "-c" "/etc/greetd/start-greeter.sh"

4
greetd/start-greeter.sh Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
# Launch QuickShell greeter; quit niri when it exits (NIRI_SOCKET inherited from niri env).
/usr/sbin/qs -c /home/moze/.config/noctalia-greeter
/usr/sbin/niri msg action quit --skip-confirmation 2>/dev/null || true