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.
76 lines
3.4 KiB
Markdown
76 lines
3.4 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
Format based on [Keep a Changelog](https://keepachangelog.com/).
|
|
|
|
## [0.6.0] - 2026-03-28
|
|
|
|
### Added
|
|
|
|
- Systemd journal logging (`journalctl -t moonset`) replacing env_logger stderr output
|
|
- `MOONSET_DEBUG` env 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 to `RgbaImage` without 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 with `quit_after` field on `ActionDef` for 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_blur` config option (Gaussian blur, `image` crate)
|
|
- 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) via `try_wait()` polling — previously declared but unused, leaving power actions able to block indefinitely
|
|
- Prevent panic in `load_background_texture` when GResource path contains non-UTF-8 bytes — now falls back to known wallpaper resource
|
|
- Fix fallback user UID from `0` (root) to `u32::MAX` as 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_once` into single idle cycle for faster keyboard focus on launch
|
|
- Centralize `GRESOURCE_PREFIX` as `pub(crate) const` in `main.rs` (was duplicated in `config.rs`, `users.rs`, and literal strings in `panel.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
|