fix(overview): decouple navigation from Hyprland dispatch#83
Open
enhulsman wants to merge 2 commits intoAxenide:mainfrom
Open
fix(overview): decouple navigation from Hyprland dispatch#83enhulsman wants to merge 2 commits intoAxenide:mainfrom
enhulsman wants to merge 2 commits intoAxenide:mainfrom
Conversation
Introduce local workspace tracking (trackedWorkspaceId) so Tab/arrow key navigation, window clicks, and Enter-with-empty-search no longer dispatch Hyprland IPC commands while the focus grab is active. This prevents the overview from closing itself mid-interaction due to IPC-triggered onCleared events. Changes: - Tab/Shift-Tab/Arrow keys update trackedWorkspaceId locally - Enter with empty search closes overview, then dispatches workspace - Single-click on window emits workspaceNavigated signal (no dispatch) - Double-click on window closes overview first, then focuses - Remove focuswindow dispatch on hover (prevents cursor warping) - Add "workspace" to HyprlandData IPC ignore list - Dynamic badge sizing (12% of min dimension, floor 12px) - Workspace tile background color prevents white bleed-through - focusedWorkspaceIndicator z:10 for correct render order
Animate border.color instead of border.width on hover. The width 0→2 animation caused geometry changes that produced a brief visual glitch on the screencopy preview.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
I noticed some odd behavior in the overview while using it on my dual-monitor setup. Pressing Tab to browse workspaces would close the overview entirely, because it dispatches
workspace r+1to Hyprland and the IPC event triggersHyprlandFocusGrab.onCleared. Moving my mouse over windows would jump the cursor around sincefocuswindowis dispatched on hover. With an empty search field, pressing Enter did nothing when I expected it to close the overview and go to whatever workspace I was looking at. And clicking a window would occasionally close the overview before the transition finished because the focus dispatch happens immediately.These all turned out to be the same underlying problem: the overview dispatches Hyprland commands while the focus grab is active, and the resulting IPC events feed back and close it.
Solution
Decouple the overview from Hyprland dispatch by introducing local workspace tracking:
Worth noting: when the search field has text but zero matching windows, `navigateToSelectedWindow()` still returns early (no match to navigate to). I left this as-is since Enter with a non-matching query being a no-op feels less surprising than closing the overview and losing the user's typed query.
Files Changed
Testing