greetd-moongreet/README.md
nevaforget 87c2e7d9c8 feat: initial Moongreet greeter implementation
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).
2026-03-26 09:47:19 +01:00

992 B
Raw Blame History

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 100065533)
  • Avatars — AccountsService icons, ~/.face fallback, 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