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).
1.1 KiB
1.1 KiB
Moongreet
Name: Selene (Mondgöttin — passend zu Moon-greet)
Projekt
Moongreet ist ein greetd-Greeter für Wayland, gebaut mit Python + GTK4 + gtk4-layer-shell. Teil des Moonarch-Ökosystems.
Tech-Stack
- Python 3.11+, PyGObject (GTK 4.0)
- gtk4-layer-shell für Wayland Layer Shell
- greetd IPC über Unix Domain Socket (length-prefixed JSON)
- pytest für Tests
Projektstruktur
src/moongreet/— Quellcodetests/— pytest Testsdata/— Assets (Icons, Default-Avatar)config/— Konfigurationsdateien
Kommandos
# Tests ausführen
uv run pytest tests/ -v
# Typ-Checks
uv run pyright src/
# Greeter starten (nur zum Testen, braucht normalerweise greetd)
uv run moongreet
Architektur
ipc.py— greetd Socket-Kommunikation (length-prefixed JSON)users.py— Benutzer aus /etc/passwd, Avatare, GTK-Themessessions.py— Wayland/X11 Sessions aus .desktop Filespower.py— Reboot/Shutdown via loginctlgreeter.py— GTK4 UI (Overlay-Layout)main.py— Entry Point, GTK App, Layer Shell Setup