don't focus window until super+tab is released

This commit is contained in:
2026-07-26 18:33:15 -07:00
parent ab47c01cf7
commit 67562f4e92
2 changed files with 20 additions and 38 deletions
+8 -7
View File
@@ -6,8 +6,8 @@ commands for application and same-application window switching.
The application HUD groups windows by Hyprland `class`, orders applications and
their windows by most-recent focus, and resolves names and icons from installed
desktop files. Selecting an application raises all of its windows and focuses
its most-recent window.
desktop files. Cycling changes only the HUD selection; accepting that selection
raises all of the application's windows and focuses its most-recent window.
This implementation uses only standard Hyprland IPC. It does not depend on the
custom `cycleapp` or `cycleappwindow` dispatchers.
@@ -16,7 +16,7 @@ custom `cycleapp` or `cycleappwindow` dispatchers.
- `Super+Tab` / `Super+Shift+Tab`: show the application HUD and move selection.
- Release `Super` or press `Enter`: accept the selection.
- `Escape`: cancel and restore the original application.
- `Escape`: cancel without changing application focus or window stacking.
- `Super+grave` / `Super+Shift+grave`: cycle windows in the current application.
- `Super+H`: hide every window in the current application.
@@ -91,10 +91,11 @@ Set `RUST_LOG=hypr_switcher=debug` on the daemon command for diagnostics.
- `src/main.rs` owns the daemon command socket, switch sessions, GTK HUD, and
keyboard handling.
The daemon freezes MRU updates while the HUD is previewing applications so its
own focus requests do not reorder the active switch session. Final focus is
sent shortly after the layer-shell HUD closes, allowing its exclusive keyboard
grab to be released first.
The daemon freezes MRU updates while the HUD is active, keeping the application
order stable throughout the switch session. It does not raise or focus the
highlighted application while cycling. Final focus is sent shortly after the
layer-shell HUD closes, allowing its exclusive keyboard grab to be released
first.
## Troubleshooting