feat(power): logout via loginctl, not Niri-locked

Default `loginctl terminate-session $XDG_SESSION_ID`; `logout_command`
TOML override for other compositors.
This commit is contained in:
2026-06-17 12:40:24 +02:00
parent 115cfe6bb1
commit 7dae48f6cc
10 changed files with 225 additions and 46 deletions
+56
View File
@@ -3,6 +3,62 @@
All notable changes to this project will be documented in this file.
Format based on [Keep a Changelog](https://keepachangelog.com/).
## [0.9.0] - 2026-06-17
### Changed
- Logout is no longer Niri-locked — default terminates the logind session via `loginctl terminate-session $XDG_SESSION_ID` (compositor-agnostic)
### Added
- `logout_command` config key — override the logout command (e.g. `niri msg action quit`) for non-logind or compositor-specific setups
## [0.8.5] - 2026-04-24
### Changed
- Require `MOONSET_DEBUG=1` (not mere presence of the variable) to raise log verbosity, so path information is not written to the journal by accident
### Fixed
- Warn when the home directory cannot be resolved instead of silently searching for `.face` in the current working directory
### Removed
- Drop the unused `uid` field from `users::User` and its obsolete `u32::MAX` fallback sentinel
## [0.8.4] - 2026-04-24
### Security
- Restrict wallpaper paths to an image-extension allowlist (jpg, jpeg, png, webp), reject symlinks, and cap file size at 10 MB — narrows the gdk-pixbuf parser attack surface
### Fixed
- Free the `spawn_blocking` slot on every `wait()` exit path (RAII guard) so a failed `wait()` no longer pins a thread for the full 30 s timeout; distinguish the timeout's own SIGKILL from an external OOM-kill
- Honor POSIX locale precedence (`LC_ALL``LC_MESSAGES``LANG`) before `/etc/locale.conf`, so an English install with `LC_ALL=de_DE.UTF-8` shows the German UI
- Disable the action buttons while an action runs, so a double-click or key repeat cannot trigger the same power action twice
## [0.8.3] - 2026-04-24
### Fixed
- Discard child stdout in `run_command` to remove a latent pipe-deadlock risk when a command writes more than one OS pipe buffer (~64 KB); stderr is still captured for error reporting
## [0.8.2] - 2026-04-06
### Fixed
- Restore keyboard focus to the action buttons after cancelling a confirmation — under layer-shell exclusive keyboard mode the menu otherwise became keyboard-unreachable
## [0.8.1] - 2026-03-31
### Changed
- Optimize the release profile (LTO, single codegen unit, symbol stripping)
- Compress the bundled GResource assets (CSS, SVG)
- Inherit moonlock's stderr so its errors surface in the journal instead of being discarded
## [0.8.0] - 2026-03-30
### Changed