diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-08-08 16:26:47 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-08 16:26:47 +0300 |
| commit | 10974c822d607f03e20e9741ec027910f0c1f93a (patch) | |
| tree | 85453f5ba5bcfcc56c37cabdbbced8a7e701cbe3 /docs | |
| parent | 1d6d1fdc6ba8a4fd0385a2071f157504871201a2 (diff) | |
feat(input): add per-pane right-click routing (#2504)
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/next/CHANGELOG.md | 1 | ||||
| -rw-r--r-- | docs/next/api/herdr-api.schema.json | 42 | ||||
| -rw-r--r-- | docs/next/website/src/content/docs/cli-reference.mdx | 9 | ||||
| -rw-r--r-- | docs/next/website/src/content/docs/quick-start.mdx | 2 | ||||
| -rw-r--r-- | docs/next/website/src/content/docs/socket-api.mdx | 10 |
5 files changed, 61 insertions, 3 deletions
diff --git a/docs/next/CHANGELOG.md b/docs/next/CHANGELOG.md index 080f0710..343086aa 100644 --- a/docs/next/CHANGELOG.md +++ b/docs/next/CHANGELOG.md @@ -4,6 +4,7 @@ ### Added - 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. - Settings and `ui.status_indicators = "symbols"` can now use distinct static shapes for blocked, working, done, idle, and unknown agent states. (#2260) - The plugin marketplace now discovers valid manifests at repository roots and subdirectories, groups multiple plugins under each repository, and publishes their versions and exact default-branch commits. diff --git a/docs/next/api/herdr-api.schema.json b/docs/next/api/herdr-api.schema.json index 4183c2ba..1e8d7830 100644 --- a/docs/next/api/herdr-api.schema.json +++ b/docs/next/api/herdr-api.schema.json @@ -2536,6 +2536,21 @@ ], "type": "object" }, + "PaneInputSetParams": { + "properties": { + "pane_id": { + "type": "string" + }, + "right_click": { + "$ref": "#/schemas/request/$defs/PaneRightClickTarget" + } + }, + "required": [ + "pane_id", + "right_click" + ], + "type": "object" + }, "PaneLayoutParams": { "properties": { "pane_id": { @@ -2970,6 +2985,13 @@ ], "type": "object" }, + "PaneRightClickTarget": { + "enum": [ + "herdr", + "pane" + ], + "type": "string" + }, "PaneSendInputParams": { "properties": { "keys": { @@ -3051,6 +3073,10 @@ "null" ] }, + "right_click": { + "$ref": "#/schemas/request/$defs/PaneRightClickTarget", + "default": "herdr" + }, "target_pane_id": { "type": [ "string", @@ -5329,6 +5355,22 @@ { "properties": { "method": { + "const": "pane.input.set", + "type": "string" + }, + "params": { + "$ref": "#/schemas/request/$defs/PaneInputSetParams" + } + }, + "required": [ + "method", + "params" + ], + "type": "object" + }, + { + "properties": { + "method": { "const": "pane.rename", "type": "string" }, diff --git a/docs/next/website/src/content/docs/cli-reference.mdx b/docs/next/website/src/content/docs/cli-reference.mdx index d0f1509a..7ce6c314 100644 --- a/docs/next/website/src/content/docs/cli-reference.mdx +++ b/docs/next/website/src/content/docs/cli-reference.mdx @@ -174,7 +174,8 @@ herdr pane focus --direction left|right|up|down [--pane ID|--current] herdr pane resize --direction left|right|up|down [--amount FLOAT] [--pane ID|--current] herdr pane zoom [<pane_id>|--pane ID|--current] [--toggle|--on|--off] herdr pane rename <pane_id> <label>|--clear -herdr pane split [<pane_id>|--pane ID|--current] --direction right|down [--ratio FLOAT] [--cwd PATH] [--env KEY=VALUE] [--focus] [--no-focus] +herdr pane input [<pane_id>|--pane ID|--current] --right-click herdr|pane +herdr pane split [<pane_id>|--pane ID|--current] --direction right|down [--ratio FLOAT] [--cwd PATH] [--env KEY=VALUE] [--right-click herdr|pane] [--focus] [--no-focus] herdr pane swap --direction left|right|up|down [--pane ID|--current] herdr pane swap --source-pane ID --target-pane ID herdr pane move <pane_id> --tab <tab_id> --split right|down [--target-pane ID] [--ratio FLOAT] [--focus|--no-focus] @@ -188,6 +189,12 @@ For pane commands that accept `--current`, Herdr uses the calling pane's an explicit pane id or `--pane ID` splits that pane, `--current` splits the calling pane, and an omitted target keeps using the UI-focused pane. The split response exposes the new pane ID as `.result.pane.pane_id`. + +`pane input --right-click pane` forwards unmodified right-click gestures to a +mouse-reporting pane application. `herdr` restores the default pane menu. +Right-clicking the pane frame still opens Herdr's menu. `pane split +--right-click pane` applies the same policy to the new pane at creation. + After `pane move`, use `.result.move_result.pane.pane_id` for later commands. A cross-workspace move changes the workspace-qualified pane ID; the prior value remains at `.result.move_result.previous_pane_id`. The running process keeps its launch-time `HERDR_PANE_ID`, `HERDR_TAB_ID`, and `HERDR_WORKSPACE_ID`; Herdr retains the old pane ID as an alias for that terminal, so pane commands using `--current` still resolve it. A live agent name follows the terminal and continues to resolve after the move. Read output: diff --git a/docs/next/website/src/content/docs/quick-start.mdx b/docs/next/website/src/content/docs/quick-start.mdx index a8f95e7c..86d8bc8e 100644 --- a/docs/next/website/src/content/docs/quick-start.mdx +++ b/docs/next/website/src/content/docs/quick-start.mdx @@ -21,7 +21,7 @@ Herdr is mouse-native, so start by clicking. Click panes, tabs, workspaces, and Ctrl-click opens pane links when your terminal sends the modified click to Herdr. This works for OSC 8 hyperlinks and visible `http://` or `https://` URLs. On macOS, use Ctrl-click for Herdr-handled pane links while mouse capture is enabled; Cmd-click is only available through the terminal-native bypass path, such as Shift-Cmd-click or `ui.mouse_capture = false`. -If you configure `ui.right_click_passthrough_modifier`, that modifier plus right-click sends right-click, hold, and drag gestures to mouse-reporting pane apps. +If you configure `ui.right_click_passthrough_modifier`, that modifier plus right-click sends right-click, hold, and drag gestures to mouse-reporting pane apps. To make normal right-click go to one pane app, choose **Send right-clicks to pane** from that pane's menu or run `herdr pane input --current --right-click pane` inside it. Right-click the pane frame to reopen Herdr's menu. ## Run an agent diff --git a/docs/next/website/src/content/docs/socket-api.mdx b/docs/next/website/src/content/docs/socket-api.mdx index 0e9dd71b..bcf0f14c 100644 --- a/docs/next/website/src/content/docs/socket-api.mdx +++ b/docs/next/website/src/content/docs/socket-api.mdx @@ -145,7 +145,8 @@ like `ctrl+h`, `control+j`, `alt+x`, and `shift+tab`, function keys like {"id":"req_focus","method":"pane.focus_direction","params":{"direction":"right"}} {"id":"req_resize","method":"pane.resize","params":{"pane_id":"w1:p1","direction":"right","amount":0.1}} {"id":"req_zoom","method":"pane.zoom","params":{"pane_id":"w1:p1","mode":"toggle"}} -{"id":"req_split","method":"pane.split","params":{"direction":"right","ratio":0.333,"env":{"HERDR_ROLE":"tests"}}} +{"id":"req_input","method":"pane.input.set","params":{"pane_id":"w1:p1","right_click":"pane"}} +{"id":"req_split","method":"pane.split","params":{"direction":"right","ratio":0.333,"right_click":"pane","env":{"HERDR_ROLE":"tests"}}} {"id":"req_process","method":"pane.process_info","params":{"pane_id":"w1:p1"}} ``` @@ -153,6 +154,13 @@ like `ctrl+h`, `control+j`, `alt+x`, and `shift+tab`, function keys like Herdr returns that pane. When it is omitted, Herdr returns the active focused pane. +`pane.input.set` sets `right_click` to `herdr` or `pane` for one pane. `herdr` +is the default. `pane` forwards unmodified right-click hold and drag gestures +when the application requests terminal mouse reporting; otherwise Herdr falls +back to its pane menu. Right-clicking the pane frame always opens Herdr's menu. +`pane.split` accepts the same optional `right_click` value for the newly created +pane. + `PaneInfo` includes `scroll` when terminal scroll metrics are available: ```json |
