nevaforget 3dfa596f9a fix: greetd-Session nach Auth-Fehler sauber canceln
Nach fehlgeschlagenem Login (falsches Passwort) wurde die greetd-Session
nicht gecancelt — beim nächsten Versuch kam "a session is already being
configured". Jetzt wird cancel_session gesendet nach Auth-Fehler, und
bei create_session-Fehler wird einmal cancel + retry versucht.

Außerdem: GTK-Theme-Name und PKGBUILD-pkgver aktualisiert.
2026-03-26 15:26:12 +01:00

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

Description
No description provided
Readme 5.9 MiB
Languages
Rust 97.8%
CSS 1.4%
Shell 0.8%