From 4e31084495120674a0cf403a27d3d91c5efb34fe Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 9 Aug 2026 18:10:52 +0200 Subject: feat: add direct pane resize keybindings (#2558) --- docs/next/CHANGELOG.md | 1 + .../website/src/content/docs/configuration.mdx | 10 ++++++++- docs/next/website/src/data/config-reference.json | 24 ++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) (limited to 'docs/next') diff --git a/docs/next/CHANGELOG.md b/docs/next/CHANGELOG.md index 72d3b0f5..dba64077 100644 --- a/docs/next/CHANGELOG.md +++ b/docs/next/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased ### Added +- Optional `keys.resize_pane_left`, `keys.resize_pane_down`, `keys.resize_pane_up`, and `keys.resize_pane_right` bindings now resize the focused pane in one keystroke without entering resize mode. - Devin CLI, Cursor Agent CLI, MastraCode, Hermes Agent, and Grok CLI integrations now install and run natively on Windows. - Panes can now route normal right-click gestures to mouse-reporting applications through the pane menu, `herdr pane input`, `pane.input.set`, or the `pane split --right-click pane` launch option. - `theme.custom.sidebar_bg` can now give the desktop sidebar its own background without changing built-in theme defaults. diff --git a/docs/next/website/src/content/docs/configuration.mdx b/docs/next/website/src/content/docs/configuration.mdx index ce4db4e2..a170613f 100644 --- a/docs/next/website/src/content/docs/configuration.mdx +++ b/docs/next/website/src/content/docs/configuration.mdx @@ -137,7 +137,15 @@ A binding may also be an array when one action needs multiple shortcuts: next_tab = ["prefix+n", "ctrl+alt+]"] ``` -Optional actions are unset by default. Bind them with `prefix+` for prefix-mode behavior, or use an explicit modified chord when you intentionally want a direct shortcut. +Optional actions are unset by default. Bind them with `prefix+` for prefix-mode behavior, or use an explicit modified chord when you intentionally want a direct shortcut. For example, tmux-style one-keystroke pane resizing without entering resize mode: + +```toml +[keys] +resize_pane_left = "ctrl+shift+alt+left" +resize_pane_down = "ctrl+shift+alt+down" +resize_pane_up = "ctrl+shift+alt+up" +resize_pane_right = "ctrl+shift+alt+right" +``` Key strings accept plain keys, modifier combinations such as `ctrl+a`, `shift+n`, `alt+1`, `cmd+k`, and special keys such as `enter`, `tab`, `esc`, `left`, `right`, `up`, and `down`. Named punctuation such as `minus`, `comma`, `ampersand`, `plus`, and `backtick` is also accepted. Plain direct printable keys such as `n` are unsafe because they intercept typing; use `prefix+n` unless you intentionally want a direct binding. The `navigate_workspace_*` and `navigate_pane_*` fields are navigate-mode-only and may use plain keys such as `j` or `k`; they must not use `prefix+`, `esc`, `enter`, `tab`, `shift+tab`, `left`, `right`, or unmodified `1` through `9`. Left and right arrows are permanent aliases for pane-left and pane-right navigation. These navigate-mode shortcuts are independent from general action bindings such as `focus_pane_down = "prefix+j"`; when both use the same key, the navigate-mode shortcut wins while navigate mode is open. Alt, Cmd/Super, and punctuation with modifiers depend on your terminal and tmux settings. diff --git a/docs/next/website/src/data/config-reference.json b/docs/next/website/src/data/config-reference.json index a4732ffc..2147192d 100644 --- a/docs/next/website/src/data/config-reference.json +++ b/docs/next/website/src/data/config-reference.json @@ -523,6 +523,30 @@ "default": "\"prefix+r\"", "description": "Enter resize mode." }, + { + "key": "keys.resize_pane_left", + "type": "keybinding", + "default": "unset", + "description": "Resize the focused pane toward the left. Unset by default." + }, + { + "key": "keys.resize_pane_down", + "type": "keybinding", + "default": "unset", + "description": "Resize the focused pane downward. Unset by default." + }, + { + "key": "keys.resize_pane_up", + "type": "keybinding", + "default": "unset", + "description": "Resize the focused pane upward. Unset by default." + }, + { + "key": "keys.resize_pane_right", + "type": "keybinding", + "default": "unset", + "description": "Resize the focused pane toward the right. Unset by default." + }, { "key": "keys.toggle_sidebar", "type": "keybinding", -- cgit v1.2.3