45 lines
1.9 KiB
Markdown
45 lines
1.9 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.4.0] - 2026-03-28
|
|
|
|
### Added
|
|
|
|
- Optional background blur via `background_blur` config option (Gaussian blur, `image` crate)
|
|
|
|
## [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
|