feat: initial moonset implementation — Wayland session power menu v0.1.0
5 Power-Aktionen (lock, logout, hibernate, reboot, shutdown), GTK4 + Layer Shell UI mit Catppuccin Mocha Theme, Multi-Monitor-Support, Inline-Confirmation, DE/EN i18n, TOML-Config mit Wallpaper-Fallback. 54 Tests grün.
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Moonset
|
||||
|
||||
Wayland Session Power Menu für das Moonarch-Ökosystem.
|
||||
|
||||
Per Keybind aufrufbares Fullscreen-Overlay mit 5 Aktionen:
|
||||
**Lock** · **Logout** · **Hibernate** · **Reboot** · **Shutdown**
|
||||
|
||||
## Features
|
||||
|
||||
- GTK4 + gtk4-layer-shell (OVERLAY Layer — über Waybar)
|
||||
- Catppuccin Mocha Theme
|
||||
- Multi-Monitor-Support (Wallpaper auf Sekundärmonitoren)
|
||||
- Inline-Confirmation für destruktive Aktionen
|
||||
- Escape oder Hintergrund-Klick zum Schließen
|
||||
- DE/EN Lokalisierung
|
||||
- Konfigurierbare Wallpaper (TOML)
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
uv pip install .
|
||||
```
|
||||
|
||||
## Verwendung
|
||||
|
||||
```bash
|
||||
# Direkt starten
|
||||
moonset
|
||||
|
||||
# Per Niri-Keybind (in ~/.config/niri/config.kdl)
|
||||
# binds {
|
||||
# Mod+Escape { spawn "moonset"; }
|
||||
# }
|
||||
```
|
||||
|
||||
## Konfiguration
|
||||
|
||||
Konfigurationsdatei: `~/.config/moonset/moonset.toml` oder `/etc/moonset/moonset.toml`
|
||||
|
||||
```toml
|
||||
# Pfad zum Hintergrundbild (optional)
|
||||
background_path = "/usr/share/moonarch/wallpaper.jpg"
|
||||
```
|
||||
|
||||
Wallpaper-Fallback: Konfiguration → `/usr/share/moonarch/wallpaper.jpg` → Package-Wallpaper
|
||||
|
||||
## Entwicklung
|
||||
|
||||
```bash
|
||||
# Tests
|
||||
uv run pytest tests/ -v
|
||||
|
||||
# Type-Check
|
||||
uv run pyright src/
|
||||
```
|
||||
|
||||
## Teil des Moonarch-Ökosystems
|
||||
|
||||
- **moonarch** — Reproduzierbares Arch-Linux-Setup
|
||||
- **moongreet** — greetd Greeter für Wayland
|
||||
- **moonlock** — Wayland Lockscreen
|
||||
- **moonset** — Session Power Menu
|
||||
Reference in New Issue
Block a user