Instead of guessing the primary monitor (unreliable on Niri), show the panel with action buttons on every monitor. All get keyboard exclusive so the focused monitor captures input. Also set exclusive_zone -1 to overlay Waybar, and delay initial focus grab via GLib.idle_add for layer shell readiness.
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
uv pip install .
Verwendung
# 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
# Pfad zum Hintergrundbild (optional)
background_path = "/usr/share/moonarch/wallpaper.jpg"
Wallpaper-Fallback: Konfiguration → /usr/share/moonarch/wallpaper.jpg → Package-Wallpaper
Entwicklung
# 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
Description
Languages
Rust
95%
CSS
3.6%
Shell
1.4%