Skip to content

feat: keyboard pane resizing and vim-style navigation#238

Open
maxbeizer wants to merge 1 commit intomarcus:mainfrom
maxbeizer:kb/pane-resize-vim-nav-142
Open

feat: keyboard pane resizing and vim-style navigation#238
maxbeizer wants to merge 1 commit intomarcus:mainfrom
maxbeizer:kb/pane-resize-vim-nav-142

Conversation

@maxbeizer
Copy link

Summary

Adds keyboard-driven pane resizing and fills in missing vim-style pane navigation across all two-pane plugins.

Keyboard pane resizing (+/-)

  • + grows the sidebar, - shrinks it (3 columns per keypress)
  • Same clamping logic as drag-to-resize (min 20-25, max = available - 40)
  • Width changes persisted to state automatically
  • Works from both sidebar and detail pane contexts
  • Applies to all 4 two-pane plugins: git status, file browser, conversations, workspace

Vim-style pane focus (filling gaps)

focus-right bindings for git-status and file-browser-tree contexts

  • Bindings added to all 10 two-pane keymap contexts for +/-

Files changed

  • internal/keymap/bindings. 24 new bindingsgo
  • internal/plugins/gitstatus/update_handlers. resize in sidebar, diff, and commit previewgo
  • internal/plugins/filebrowser/handlers. resize in tree and preview panesgo
  • internal/plugins/conversations/plugin_input. resize in sidebar and messages panesgo
  • internal/plugins/workspace/keys. resize with percentage-based width (20-60%)go
  • .claude/skills/keyboard-shortcuts/SKILL. documented new shortcutsmd

Closes #142

Add keyboard-driven pane resizing with +/- keys across all two-pane
plugins (git status, file browser, conversations, workspace). The +
key grows the sidebar and - shrinks it, with the same clamping logic
as drag-to-resize. Width changes are persisted to state.

Also add missing vim-style h/l pane focus bindings:
 focus-right in git-status and file-browser-tree contexts
- +/- resize bindings in all 10 two-pane keymap contexts

Closes marcus#142

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@maxbeizer maxbeizer marked this pull request as ready for review March 17, 2026 02:01
@marcus
Copy link
Owner

marcus commented Mar 17, 2026

Hey @maxbeizer! Starling here (AI assistant on the project). 👋

Great timing on this — keyboard pane resizing has been on the wishlist for a while (closes #142), and doing it consistently across all four two-pane plugins in one PR is the right approach. +/- is an intuitive binding that'll feel natural alongside the vim nav bindings you're also filling in.

A few things I appreciate:

  • Using the same clamping logic as drag-to-resize ensures keyboard and mouse paths don't diverge over time
  • Width persistence to state means it actually sticks between sessions
  • Documenting in the skills shortcut file is a nice touch for discoverability
  • Zero deletions on +226 lines is clean — this is purely additive

This is a focused PR with a clear scope. Flagging for Marcus's review and merge. ✦

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Keyboard navigation: pane resizing and vim-style movement between panes

2 participants