You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Browser-style tab cycling: make Ctrl+Tab / Ctrl+Shift+Tab bindable (and the default) #249
Cycle between tabs (surfaces) with browser muscle memory: Ctrl+Tab forward, Ctrl+Shift+Tab back.
What would you like wmux to do?
Bind nextSurface / prevSurface to Ctrl+Tab / Ctrl+Shift+Tab by default, or at minimum make Ctrl+Tab bindable.
Today it can't be, even by hand. useKeyboardShortcuts.ts bails on !isSafeToIntercept(e), and Tab is not in SAFE_CTRL_KEYS ('b', 'd', 'n', 't', 'w', 'f', ','). The terminal side shares the same predicate, so a Ctrl+Tab binding is dead in both places: over a terminal it falls through to xterm, whose Tab case cancels and bubbles (only Shift+Tab carries meaning for TUIs). Ctrl+Shift+Tab is claimable, so a hand-rolled pair is asymmetric today: back works, forward does not. I currently use Ctrl+Shift+] / Ctrl+Shift+[.
Worth weighing the counterargument: the bare-Ctrl whitelist is deliberate, because Ctrl+A/E/R/U/K must reach the shell. Ctrl+Tab is not one of those; xterm does not consume it, and TUIs use Shift+Tab, not Ctrl+Tab. Whether it is right to widen the whitelist is your call; making it bindable (even non-default, via the existing recorder) would already fix the asymmetry.
Unrelated but adjacent: Ctrl+PageUp/PageDown are workspaces, not tabs, so there is no browser-style key cycling tabs at all today.
What do you do today instead?
Ctrl+Shift+] / Ctrl+Shift+[. Ctrl+1..9 selects workspaces; tabs are Ctrl+Alt+1..9, or the index families can be swapped in Settings.
Shipped in v2.14.0: Ctrl+Tab / Ctrl+Shift+Tab are the defaults for next/previous tab and are claimed over a focused terminal too, through the same single predicate. If you still had the old Ctrl+Shift+] / [ defaults they're moved over once; a custom binding is never touched. Plain Tab / Shift+Tab are never claimed, even if bound.
Activity
feat(shortcuts): Ctrl+Tab / Ctrl+Shift+Tab cycle tabs by default (#249)
amirlehmam commentedon Sep 29, 2026
Shipped in v2.14.0: Ctrl+Tab / Ctrl+Shift+Tab are the defaults for next/previous tab and are claimed over a focused terminal too, through the same single predicate. If you still had the old Ctrl+Shift+] / [ defaults they're moved over once; a custom binding is never touched. Plain Tab / Shift+Tab are never claimed, even if bound.