Files
noctalia-greeter/README.md
Moze 1dd16d3e99 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>
2026-04-30 01:45:37 +02:00

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