greetd-moongreet/README.md
nevaforget 3db69e30bc feat: deployment-readiness — Assets ins Package, importlib.resources, AUR PKGBUILD
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.
2026-03-26 11:06:18 +01:00

1.4 KiB
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 .

System Setup

  1. Copy configuration:

    sudo mkdir -p /etc/moongreet
    sudo cp config/moongreet.toml /etc/moongreet/moongreet.toml
    
  2. Edit /etc/moongreet/moongreet.toml — set an absolute path for the wallpaper.

  3. Create cache directory:

    sudo mkdir -p /var/cache/moongreet
    sudo chown greeter:greeter /var/cache/moongreet
    
  4. Configure greetd (/etc/greetd/config.toml):

    [default_session]
    command = "moongreet"
    user = "greeter"
    

Development

# Run tests
uv run pytest tests/ -v

# Type checking
uv run pyright src/

# Run locally (without greetd)
uv run moongreet

License

MIT