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

66 lines
1.9 KiB
Markdown

# noctalia-greeter
A QuickShell QML login greeter for [greetd](https://git.sr.ht/~kennylevinsen/greetd), styled to match the [noctalia-shell](https://github.com/nocturnalastro/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
```sh
sudo ./install.sh
```
Requires: `greetd`, `niri`, `quickshell` (`qs`), `dbus`, `inotify-tools`.
## Rollback
Edit `/etc/greetd/config.toml`:
```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
```sh
./test/check-syntax.sh
```