default-config: Bind swap to h/j/k/l in service mode - #2246
Closed
freqyfreqy wants to merge 1 commit into
Closed
Conversation
'swap' is under-discoverable in the default config. Users learn 'alt-shift-h/j/k/l' as "move windows", hit the tree-restructuring surprises of 'move' (cross-container moves reorder unrelated windows), and never find the plain 2-window exchange they wanted. The service mode is exactly the right place for it: it already hosts join-with, so the mode becomes the "restructure" hub, and within it the bare h/j/k/l keys mirror the directional focus bindings of main mode. No key is stolen from existing default bindings (bare h/j/k/l are bound in neither mode; 'move' keeps its alt-shift chords in main mode). Unlike the join-with bindings, these carry no 'mode main' tail, so swaps can be chained while staying in service mode, with focus following the window. Escape still exits.
Owner
Thanks for the raised concern, but I am not sure that the problem is legit. Users can use mouse drag to discover it. Then it's a matter of assigning it in the default config if they prefer swap over move. |
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.
Changes
Adds four bindings to the default config's
servicemode:Rationale is in the commit message:
swapis under-discoverable (users only learnmoveand its tree-restructuring surprises); service mode already hostsjoin-with, so it becomes the complete restructure hub; bareh/j/k/lcollide with no existing default binding; nomode maintail so swaps chain,escexits as always.Testing
./test.sh— ✅ All tests have passed successfully (requires bash 5, installed via Homebrew to run it; the repo's ownscript/setup.shgate)testParseDefaultConfig(default config parses with 0 errors / 0 warnings),lint.sh,generate.sh+check-uncommitted-files.sh(TOML-only change; no generated-file drift)PR checklist
./test.shexits with zero exit code (suite passes).