Greeter fällt auf mitgeliefertes Package-Wallpaper zurück, wenn kein Background konfiguriert ist. Wallpaper ersetzt durch Daniel Leone's "Snowy Mountain" (Unsplash License).
1.4 KiB
1.4 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/— Quellcodesrc/moongreet/data/— Package-Assets (Default-Avatar, Icons) — werden mit dem Wheel ausgelieferttests/— pytest Testsdata/— User-Assets (wallpaper.jpg) — nicht Teil des Packagesconfig/— Beispiel-Konfigurationsdateien für/etc/moongreet/und/etc/greetd/
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 loginctli18n.py— Locale-Erkennung (LANG / /etc/locale.conf) und String-Tabellen (DE/EN)greeter.py— GTK4 UI (Overlay-Layout), Faillock-Warnung nach 2 Fehlversuchenmain.py— Entry Point, GTK App, Layer Shell Setup