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.
68 lines
1.4 KiB
Markdown
68 lines
1.4 KiB
Markdown
# 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 .
|
||
```
|
||
|
||
## System Setup
|
||
|
||
1. Copy configuration:
|
||
```bash
|
||
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:
|
||
```bash
|
||
sudo mkdir -p /var/cache/moongreet
|
||
sudo chown greeter:greeter /var/cache/moongreet
|
||
```
|
||
|
||
4. Configure greetd (`/etc/greetd/config.toml`):
|
||
```ini
|
||
[default_session]
|
||
command = "moongreet"
|
||
user = "greeter"
|
||
```
|
||
|
||
## Development
|
||
|
||
```bash
|
||
# Run tests
|
||
uv run pytest tests/ -v
|
||
|
||
# Type checking
|
||
uv run pyright src/
|
||
|
||
# Run locally (without greetd)
|
||
uv run moongreet
|
||
```
|
||
|
||
## License
|
||
|
||
MIT
|