Skip to content

fix: improve Herdr usability with mouse capture disabled#18

Merged
kunchenguid merged 1 commit into
mainfrom
fm/dpub-herdr-usability-cfg-s6
Jul 12, 2026
Merged

fix: improve Herdr usability with mouse capture disabled#18
kunchenguid merged 1 commit into
mainfrom
fm/dpub-herdr-usability-cfg-s6

Conversation

@kunchenguid

Copy link
Copy Markdown
Owner

Intent

Ship two approved, additive-only Herdr/WezTerm config changes to this PUBLIC dotfiles repo for parity with the already-shipped mouse_capture=false mitigation (PR #17). Both changes are direct consequences of that mitigation, so anyone following this setup hits the same issues.

  1. home/.config/herdr/config.toml: inside the SAME existing [ui] table that holds mouse_capture=false, add agent_panel_sort = "spaces" with an explanatory comment. Rationale: with mouse_capture=false the Herdr header click-toggle for the agents-panel sort is unreachable, so the sort must be pinned explicitly to its default ("spaces", grouped by space; the alternative is "priority").

  2. home/.config/wezterm/wezterm.lua: before the final 'return config', add config.alternate_buffer_wheel_scroll_speed = 0 with an explanatory comment, matching the file's existing style. Rationale: with mouse_capture=false the Herdr client is a full-screen alt-screen app enabling no mouse reporting, so WezTerm would otherwise synthesize Up/Down arrow keys for wheel scroll (default speed 3) and a pane REPL reads them as history navigation; 0 disables that synthesis. Scrollback still works via PageUp/PageDown or copy-mode (prefix+y).

Deliberate constraints (do NOT flag as mistakes): mouse_capture stays false and is intentionally unchanged; no [keys] binding or any other line is touched; both edits are purely additive (net +11 lines, comments included) and the comments are reader-facing on purpose since this is a public repo. No AGENTS.md/CLAUDE.md agent files are added. Footprint is exactly these two additions.

What Changed

  • Pin Herdr’s agents panel sort to spaces because its header toggle is unavailable when mouse capture is disabled.
  • Disable WezTerm’s alternate-buffer wheel-to-arrow synthesis to prevent wheel input from navigating REPL history, while retaining PageUp/PageDown and copy-mode scrolling.

Risk Assessment

✅ Low: The change is narrowly scoped, purely additive, matches the authoritative intent exactly, and introduces no substantiated correctness or compatibility risks.

Testing

Verified the exact two-file, additive-only +11-line footprint, launched Herdr with the changed configuration and observed spaces on the real agents-panel surface, loaded the WezTerm configuration successfully through WezTerm itself, captured a reviewer-readable evidence transcript, and confirmed the worktree remained clean.

Evidence: End-to-end configuration evidence

Herdr rendered the agents-panel header as "spaces"; WezTerm loaded the changed configuration successfully. The transcript also records the exact two-file, +11-line additive footprint.

End-to-end configuration evidence

Herdr runtime launch:
  Command: HOME=.test-home HERDR_CONFIG_PATH=<worktree>/home/.config/herdr/config.toml herdr --no-session
  Result: launched successfully in a PTY; the real Herdr agents-panel header rendered "spaces".

WezTerm native config load:
  Command: wezterm --config-file <worktree>/home/.config/wezterm/wezterm.lua show-keys
  Exit status: 0
  Result: WezTerm accepted and evaluated the complete changed configuration.

Configured values:
19:mouse_capture = false
21:# Set explicitly because with mouse_capture=false the header click-toggle is
23:agent_panel_sort = "spaces"
18:config.alternate_buffer_wheel_scroll_speed = 0
20:return config

Commit footprint:
 home/.config/herdr/config.toml   | 4 ++++
 home/.config/wezterm/wezterm.lua | 7 +++++++
 2 files changed, 11 insertions(+)

Changed paths:
home/.config/herdr/config.toml
home/.config/wezterm/wezterm.lua

Net line counts:
4	0	home/.config/herdr/config.toml
7	0	home/.config/wezterm/wezterm.lua

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • git diff --stat, git diff --name-only, git diff --numstat, and the full scoped diff from 207ffe8d7f45baa4e8c20c16f77244d8eeb74b08 to 7bffee9ec00e7b6f1246ecd07d35420a67d38753
  • HOME=.test-home HERDR_CONFIG_PATH=&#34;$PWD/home/.config/herdr/config.toml&#34; herdr --no-session in an interactive PTY, confirming the real agents-panel header rendered spaces
  • wezterm --config-file &#34;$PWD/home/.config/wezterm/wezterm.lua&#34; show-keys, confirming WezTerm accepted and evaluated the complete configuration
  • git status --short and transient .test-home check after cleanup
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

…l arrows

Both settings are consequences of the mouse_capture=false mitigation.
With the host mouse capture disabled, the Herdr header click-toggle for
agent panel sort is unreachable, so pin agent_panel_sort="spaces"
explicitly. Likewise WezTerm would synthesize Up/Down arrows for wheel
scroll in the alt-screen Herdr client (a pane REPL then reads them as
history navigation), so set alternate_buffer_wheel_scroll_speed=0.
@kunchenguid
kunchenguid merged commit b9ea27a into main Jul 12, 2026
1 check passed
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.

1 participant