Assets (default-avatar.svg, Icons) von data/ nach src/moongreet/data/ verschoben, damit sie automatisch im Wheel landen. Pfadauflösung in greeter.py und main.py auf importlib.resources umgestellt. Dev-Fallback in config.py entfernt — nur noch /etc/moongreet/moongreet.toml. Beispiel-Configs für System-Deployment und AUR PKGBUILD ergänzt.
1.2 KiB
1.2 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 loginctlgreeter.py— GTK4 UI (Overlay-Layout)main.py— Entry Point, GTK App, Layer Shell Setup