greetd-Greeter für Wayland mit Python + GTK4 + gtk4-layer-shell. Enthält IPC-Protokoll, User/Session-Erkennung, Power-Actions, komplettes UI-Layout und 36 Tests (Unit + Integration).
Moongreet
A greetd greeter for Wayland, built with Python + GTK4 + gtk4-layer-shell. Part of the Moonarch ecosystem.
Features
- greetd IPC — Communicates via
$GREETD_SOCK(length-prefixed JSON) - User list — Parsed from
/etc/passwd(UID 1000–65533) - Avatars — AccountsService icons,
~/.facefallback, default SVG - Sessions — Discovered from
/usr/share/wayland-sessions/and/usr/share/xsessions/ - Last user — Remembered in
/var/cache/moongreet/last-user - Power actions — Reboot / Shutdown via
loginctl - Layer Shell — Fullscreen via gtk4-layer-shell
Requirements
- Python 3.11+
- GTK 4, PyGObject
- gtk4-layer-shell (for Wayland fullscreen)
- greetd
Installation
uv pip install -e .
Usage
Configure greetd to use Moongreet:
[default_session]
command = "moongreet"
Development
# Run tests
uv run pytest tests/ -v
# Type checking
uv run pyright src/
License
MIT
Description
Languages
Rust
97.8%
CSS
1.4%
Shell
0.8%