hypr-swap never grabs keys. It registers two named global shortcuts over
hyprland-global-shortcuts-v1, and your hyprland.conf decides which keys trigger them
(FR-022, FR-022b). This file is the exact text to copy; hypr-swap --help prints the same
lines, and a unit test asserts the two cannot drift apart.
The two lines
# Hold ALT, tap TAB to browse, release ALT to switch
bind = ALT, TAB, global, hypr-swap:switcher
# Jump to a new empty workspace on the current monitor
bind = SUPER, N, global, hypr-swap:new-workspace
Start the daemon with your session as well:
exec-once = hypr-swap
Check the compositor has been told about the shortcuts with hyprctl globalshortcuts. The two
names it lists are hypr-swap:switcher and hypr-swap:new-workspace.
The key combinations are yours
ALT, TAB and SUPER, N are suggestions. Any combination works. The protocol is anonymous:
the application is never told which keys triggered a shortcut, and never reads the keyboard except
while its own overlay holds focus.
Use bind, not binde
binde is Hyprland’s repeating bind. Held down, it fires the shortcut continuously, which this
application reads as continuous navigation — the highlight would race through the workspace list
for as long as you held the key. Use plain bind.
A modifier in the switcher bind is what makes hold-and-release work
The gesture is: hold the modifier, tap the key to move the highlight, release the modifier to
commit. The overlay discovers which modifiers to watch from the ones you are holding when it takes
keyboard focus — it cannot ask the compositor which keys you bound (research.md R15).
Bound to a bare key with no modifier, there is no release to commit on, so the overlay falls
back to sticky mode: it stays open, Tab and the arrow keys move the highlight, Enter
commits, and Escape cancels.
Either line may be left out
Both binds are optional and independent. With neither present the daemon starts, runs, and does
nothing until you add one — an unbound shortcut is silently inert, produces no diagnostic, and has
no effect on the other one (FR-022b).
In-overlay keys are fixed
These are handled by the overlay’s own keyboard focus and need no binding at all. They are not
configurable (FR-004a).
| Key | Action |
|---|---|
Tab, Right, Down |
Next entry (wraps to the first) |
Shift+Tab, Left, Up |
Previous entry (wraps to the last) |
Escape |
Cancel — no workspace change, no history change |
Enter |
Commit. Only reachable in sticky mode; harmless otherwise |
A key the compositor has bound is consumed by the compositor and never reaches the overlay. That
is exactly why tapping the switcher bind again advances the highlight instead of opening a second
overlay.