Without this, app.quit() destroys windows instantly, creating a jarring pop-out. Now all windows fade out over 250ms (matching the fade-in) before the app exits. Uses the same CSS opacity transition — just removes the "visible" class and defers quit via glib timeout.
2.8 KiB
2.8 KiB
Changelog
All notable changes to this project will be documented in this file. Format based on Keep a Changelog.
[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