Skip to content

feat(tui): jump to a split pane by its ordinal badge - #1257

Merged
edwin-zvs merged 1 commit into
mainfrom
pane-ordinal-keys
Aug 16, 2026
Merged

feat(tui): jump to a split pane by its ordinal badge#1257
edwin-zvs merged 1 commit into
mainfrom
pane-ordinal-keys

Conversation

@edwin-zvs

Copy link
Copy Markdown
Contributor

What

The pane-ordinal badges from #1251 are now an address, not just a locator. One rule everywhere: digit N goes to the pane wearing badge N; digit 0 goes to the session list.

  • M-1..M-9 / M-0 — the accelerator that works in every terminal (emacs winum convention; Alt+digit arrives ESC-prefixed even without kitty protocol).
  • C-1..C-9 / C-0 — the same jump for kitty-protocol terminals.
  • Vim C-w 1..C-w 9 / C-w 0 — the same numbering behind the existing window-command prefix.
  • Clicking a list-row badge focuses that pane (outranks the disclosure toggle the badge may be covering). Clicking a pane's corner badge already focused it; that stays.

Digits 1..9 only fire while badges are on screen (two or more panes), so a lone focused child PTY keeps its own Alt/Ctrl+digit bindings. Digit 0 is the always-available list jump.

Breaking change

C-1 used to jump to the session list and C-2 to the first pane. Once badges were painted that read as a bug (badge 1 + C-1 focused the other pane). The list jump moved to digit 0. C-x Tab is unchanged.

Spec

specs/0199-split-pane-ordinal-badges.md now records the addressing rule. specs/0140-terminal-keyboard-disambiguation.md and the lineage-section spec are updated so they no longer describe the old C-1 = list mapping.

Testing

  • digit_0_keystroke_jumps_focus_to_the_session_listC-0 / M-0 jump to the list from any split window.
  • digit_keystroke_focuses_the_pane_wearing_that_badgeC-1 / M-2 / C-3 match badges; out-of-range is a no-op.
  • pane_digits_fall_through_when_there_are_no_badgesC-1 no longer steals a single-pane PTY; M-0 still jumps to the list.
  • vim_c_w_digit_focuses_the_matching_pane + keymap C-w 0..9 bindings.
  • clicking_a_list_row_badge_focuses_that_pane.

This PR only touches crates/cli → relevant binary is construct.

M-1..M-9 and C-1..C-9 focus the pane wearing that number; digit 0
focuses the session list. This replaces the old C-1=list / C-2=first-pane
mapping so the digit matches the badge. The vim profile also binds
C-w 0..9. Clicking a list-row badge focuses that pane.
@edwin-zvs edwin-zvs added the enhancement New feature or request label Aug 16, 2026
@edwin-zvs
edwin-zvs merged commit c2dc1f9 into main Aug 16, 2026
1 of 2 checks passed
@edwin-zvs
edwin-zvs deleted the pane-ordinal-keys branch August 16, 2026 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant