Replace env_logger with systemd-journal-logger for consistent logging across moonset/moonlock/moongreet. Add MOONSET_DEBUG env var and debug statements across all modules. Also includes shared blur cache for multi-monitor and detached moonlock spawn for lock action.
3.4 KiB
3.4 KiB
Changelog
All notable changes to this project will be documented in this file. Format based on Keep a Changelog.
[0.6.0] - 2026-03-28
Added
- Systemd journal logging (
journalctl -t moonset) replacing env_logger stderr output MOONSET_DEBUGenv var to enable debug-level journal output- Debug logging across all modules (config resolution, wallpaper source, avatar loading, power actions, locale detection, blur cache)
- Shared blur cache for multi-monitor — GPU blur computed once, reused by all windows
Changed
- Lock action spawns moonlock as detached process instead of blocking via run_command — moonset can quit immediately while moonlock runs independently
[0.4.1] - 2026-03-28
Added
- Fade-in/fade-out animation (250ms ease-in) for panel and wallpaper windows via CSS opacity transition
Fixed
- Fix pixel format mismatch in blur path —
texture.download()yields BGRA but was passed toRgbaImagewithout channel swap, now explicitly converts B↔R - Logout action now calls
app.quit()to dismiss the menu immediately (previously only Lock did) - Log TOML parse errors to stderr instead of silently falling back to defaults
Changed
- Replace magic string
"lock"comparison withquit_afterfield onActionDeffor type-safe action dispatch - Remove
compressed="true"from JPEG wallpaper in GResource — JPEG is already compressed, zlib overhead hurts startup for negligible size savings
[0.4.0] - 2026-03-28
Added
- Optional background blur via
background_blurconfig option (Gaussian blur,imagecrate) - Disk cache for blurred wallpaper (
~/.cache/moonset/) — avoids re-blurring on subsequent starts
[0.1.1] - 2026-03-28
Fixed
- Use absolute paths for all system binaries (
systemctl,loginctl,niri,moonlock) to prevent PATH hijacking - Implement
POWER_TIMEOUT(30s) viatry_wait()polling — previously declared but unused, leaving power actions able to block indefinitely - Prevent panic in
load_background_texturewhen GResource path contains non-UTF-8 bytes — now falls back to known wallpaper resource - Fix fallback user UID from
0(root) tou32::MAXas a safe sentinel value - Fix CSS comment incorrectly describing circular buttons as "square card"
Changed
- Compress wallpaper in GResource bundle (
compressed="true") to reduce binary size - Merge double
idle_add_local_onceinto single idle cycle for faster keyboard focus on launch - Centralize
GRESOURCE_PREFIXaspub(crate) constinmain.rs(was duplicated inconfig.rs,users.rs, and literal strings inpanel.rs) - Translate README.md and config comments from German to English
- Remove stale
journal.md(one-time development notes, not actively maintained)
[0.1.0] - 2026-03-27
Added
- Rust rewrite of the Python power menu (gtk4-rs + gtk4-layer-shell)
- 5 power actions: Lock, Logout, Hibernate, Reboot, Shutdown
- Inline confirmation for destructive actions (all except Lock)
- Multi-monitor wallpaper support via shared
gdk::Texture - DE/EN localization with automatic locale detection
- TOML configuration for custom wallpaper path
- GResource bundle for CSS, wallpaper, and default avatar
- Async power actions via
glib::spawn_future_local+gio::spawn_blocking - Async avatar loading (file-based avatars decoded off UI thread)
- Cached icon loading at startup
- 45 unit tests