Skip to content

feat(linux-rust): add window hotkey settings - #740

Open
AFAskar wants to merge 8 commits into
librepods-org:linux/rustfrom
AFAskar:linux/rust
Open

feat(linux-rust): add window hotkey settings#740
AFAskar wants to merge 8 commits into
librepods-org:linux/rustfrom
AFAskar:linux/rust

Conversation

@AFAskar

@AFAskar AFAskar commented Aug 22, 2026

Copy link
Copy Markdown

Problem

LibrePods has no configurable keyboard shortcuts for closing the window or quitting the application. App preferences are also read independently in several places with ad hoc JSON parsing, which makes adding new persisted settings harder.

Fix

  • Centralize theme, tray text mode, stem control, and hotkey preferences in AppSettings
  • Add remappable Close window and Quit application shortcuts, defaulting to Ctrl+W and Ctrl+Q
  • Support Escape to cancel recording and Backspace to unbind a shortcut
  • Prevent shortcuts from firing when a widget has captured the key event
  • Normalize shortcuts across keyboard layouts and letter case
  • Reject duplicate bindings while preserving the existing shortcuts
  • Cancel shortcut recording when leaving Settings or closing the window

Testing

  • Added regression coverage for recording, unbinding, duplicate bindings, captured events, keyboard layouts, letter case, lifecycle handling, and settings compatibility
  • cargo test --features dbus/vendored (22 passed)
  • cargo build --release --features dbus/vendored

@AFAskar
AFAskar changed the base branch from main to linux/rust August 22, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant