Colloid-Catppuccin theme loaded via ~/.config/gtk-4.0/gtk.css at PRIORITY_USER (800) was overriding moonset's PRIORITY_APPLICATION (600), causing action buttons to lose their circular border-radius. - Use STYLE_PROVIDER_PRIORITY_USER for app CSS provider - Replace border-radius: 50% with 9999px (GTK4 CSS percentage quirk)
4.9 KiB
4.9 KiB
Changelog
All notable changes to this project will be documented in this file. Format based on Keep a Changelog.
[0.7.2] - 2026-03-29
Fixed
- Fix CSS priority so app styles override GTK4 user theme (Colloid-Catppuccin) — use
STYLE_PROVIDER_PRIORITY_USERinstead ofSTYLE_PROVIDER_PRIORITY_APPLICATION - Replace
border-radius: 50%with9999px— GTK4 CSS does not reliably support percentage-based border-radius
[0.7.1] - 2026-03-28
Fixed
- Fix edge darkening on blurred wallpaper — GskBlurNode sampled transparent pixels outside texture bounds, now renders with 3x-sigma padding and crops back
[0.7.0] - 2026-03-28
Added
- Blur validation:
background_blurmust be 0.0–200.0 (negative, NaN, infinite, and extreme values are rejected with a warning) detect_locale_with()testable DI function for locale detection (4 new tests)- Path canonicalization for
~/.faceand AccountsService avatar paths (resolves symlinks, prevents passing arbitrary files to gdk-pixbuf)
Changed
- Replace busy-loop polling (
try_wait+sleep(100ms)) inrun_commandwith blockingchild.wait()+ timeout thread — eliminates poll latency and thread waste - Move config loading from
activate()tomain()— filesystem I/O no longer blocks the GTK main loop - Click-to-dismiss now attached to overlay instead of background picture (works with or without wallpaper)
Removed
- Embedded fallback wallpaper from GResource bundle — moonarch provides
/usr/share/moonarch/wallpaper.jpgat install time, binary size dropped from ~3.2MB to ~1.3MB - GResource fallback path in
resolve_background_path— returnsOption<PathBuf>now,Nonefalls through to CSS background
[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