Add named keyboard binding modes (#32)

Add named keyboard shortcut maps with an Escape exit and a panel indicator. Keep press/release ownership across transitions, validate remapped Escape keys, and cancel stale repeats and focus previews.

Give the indicator ownership of the panel while a mode is active. Close popovers, collapse Morph, and keep Live Activities data current without resizing the hidden panel. Document configuration and transition behavior.

Validation: 1,519 workspace Rust tests passed; 70 Python tests passed. Workspace build, formatting, Clippy, and Settings configuration validation passed. Opt-in native desktop checks were not rerun because Weston is absent.

Related: #5.
This commit is contained in:
Samuel Onoja authored and GitHub committed 2026-10-12 23:22:02 +01:00
1 parent 6b0d903ad0
commit 7d58eeb65d
28 files changed
+1258 -35

No files matched your search

+10 -8
View File
@@ -381,15 +381,17 @@ impl FereseShell {
}
// Compact ranking changes must not replay the expanded panel's
// crossfade: its live rows update in place, preserving focus/scroll.
if before != runtime.activities.selection.visible
&& matches!(
runtime.hub.mode(),
ferese_panel::morph::Mode::Idle | ferese_panel::morph::Mode::Peek
)
{
runtime.hub.replace_content();
if self.snapshot.binding_mode.is_none() {
if before != runtime.activities.selection.visible
&& matches!(
runtime.hub.mode(),
ferese_panel::morph::Mode::Idle | ferese_panel::morph::Mode::Peek
)
{
runtime.hub.replace_content();
}
runtime.refresh_activity_size();
}
runtime.refresh_activity_size();
}
}
pub fn activity_tick_subscription(&self) -> Subscription<()> {