Files
moonset/README.md
T
nevaforget 7dae48f6cc feat(power): logout via loginctl, not Niri-locked
Default `loginctl terminate-session $XDG_SESSION_ID`; `logout_command`
TOML override for other compositors.
2026-06-17 12:40:24 +02:00

1.8 KiB

Moonset

Wayland Session Power Menu for the Moonarch ecosystem.

A fullscreen overlay triggered by keybind with 5 actions: Lock · Logout · Hibernate · Reboot · Shutdown

Features

  • Rust + gtk4-rs + gtk4-layer-shell (OVERLAY layer — above Waybar)
  • Catppuccin Mocha theme
  • Multi-monitor support (wallpaper on secondary monitors)
  • Inline confirmation for destructive actions
  • Escape or background click to dismiss
  • DE/EN localization
  • Configurable wallpaper (TOML)

Requirements

  • A Wayland compositor with wlr-layer-shell (Moonarch targets Niri)
  • A systemd-logind session for the default logout (loginctl terminate-session); other setups can override via logout_command
  • Runtime: gtk4, gtk4-layer-shell
  • Build: cargo, git

Installation

cargo build --release
install -Dm755 target/release/moonset /usr/bin/moonset

Or via PKGBUILD:

cd pkg && makepkg -si

Usage

# Launch directly
moonset

# Via Niri keybind (in ~/.config/niri/config.kdl)
# binds {
#     Mod+Escape { spawn "moonset"; }
# }

Configuration

Config file: ~/.config/moonset/moonset.toml or /etc/moonset/moonset.toml

# Path to background image (optional)
background_path = "/usr/share/moonarch/wallpaper.jpg"

# Logout command override (optional)
# Default: loginctl terminate-session $XDG_SESSION_ID
logout_command = "niri msg action quit"

Wallpaper fallback: config → /usr/share/moonarch/wallpaper.jpg → bundled package wallpaper

Development

# Tests
cargo test

# Release build
cargo build --release

Part of the Moonarch ecosystem

  • moonarch — Reproducible Arch Linux setup
  • moongreet — greetd greeter for Wayland
  • moonlock — Wayland lockscreen
  • moonset — Session power menu

License

MIT