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).
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# 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 1000–65533)
|
||||
- **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
|
||||
|
||||
```bash
|
||||
uv pip install -e .
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Configure greetd to use Moongreet:
|
||||
|
||||
```ini
|
||||
[default_session]
|
||||
command = "moongreet"
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Run tests
|
||||
uv run pytest tests/ -v
|
||||
|
||||
# Type checking
|
||||
uv run pyright src/
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user