Add F1-F5 as default tab-switching shortcuts - #67
Draft
HoneyHazard wants to merge 1 commit into
Draft
Conversation
With 5 possible tabs (Playback/Recording/Output/Input/Configuration), cycling one at a time with H/L or Tab/Shift+Tab is slow if you want to jump straight to a specific one. This has been asked for before (tsowell#38 - closed by the reporter themselves once they found the workaround, not because it was rejected): SelectTab(N) already exists and already works exactly for this, but has no default binding, so users have to know to add it themselves via the README's own "Use F-keys to select tabs" customization example. Makes that the default instead: F1-F5 bound to SelectTab(0..4). SelectTab already silently no-ops on an out-of-range index (see Action::handle), so binding all 5 unconditionally is safe even with `tabs` configured to fewer than 5 entries - unused F-keys just do nothing rather than erroring. Updated the README's keybinding table and its now-redundant "F-keys to select tabs" example, which is rewritten to show remapping F-keys to something else (e.g. Alt+1..5) for anyone whose terminal/WM intercepts function keys, since the original example no longer demonstrates anything you don't already get by default. Tested: cargo test (145/145, including a new test asserting all 5 F-key defaults resolve to the expected SelectTab index), cargo fmt --check / cargo clippy -- -D warnings / cargo doc (matching wiremix's CI) all clean.
HoneyHazard
force-pushed
the
fkey-tab-shortcuts
branch
from
August 6, 2026 10:29
29f7b6b to
4d480c4
Compare
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.
That being said, I hope these can be helpful and useful additions that users could appreciate.
With 5 possible tabs (Playback/Recording/Output/Input/Configuration), cycling one at a time with H/L or Tab/Shift+Tab is slow if you want to jump straight to a specific one.
This has been asked for before - #38, closed by the reporter themselves once they found the workaround, not because it was rejected.
SelectTab(N)already exists and already works exactly for this, but has no default binding, so users have to know to add it themselves via the README's own "Use F-keys to select tabs" customization example.Makes that the default instead:
SelectTab(0..4).SelectTabalready silently no-ops on an out-of-range index (seeAction::handle), so binding all 5 unconditionally is safe even withtabsconfigured to fewer than 5 entries - unused F-keys just do nothing rather than erroring.New default keybindings:
Like every other default binding, these are fully overridable/removable from the config file.
Tested:
cargo test: 145/145 passing, including a new test asserting all 5 F-key defaults resolve to the expectedSelectTabindexcargo fmt --check/cargo clippy -- -D warnings/cargo doc(matching this repo's CI): all cleanDrafted with AI assistance (Claude); reviewed by me before opening. Left as a draft while I finish going through it - not requesting review yet.