Skip to content

tmux 3.7: trial candidate features #26

Description

@connorads

Status (2026-07-07)

Bump + patch rebase are done and live — this issue now tracks only the candidate-feature trials.

  • On tmux 3.7b (nixpkgs point-bumped 3.7 → 3.7b; patches rebased for 3.7 apply with zero fuzz to 3.7b). Running server on the main socket is 3.7b, patched (colour_dim + status_split_top_bottom symbols present in the resolved binary).
  • Patch rebase landed in bd4c5fd (also excludes *.patch from hk whitespace fixers, which were corrupting diffs).
  • None of the candidate features below have been started yet.

Context

Started on tmux 3.6a (nixpkgs-unstable). tmux 3.7 released 2026-06-26. The bump was parked deliberately: two days old (vs the repo's 4-day-quarantine ethos), nixpkgs hadn't shipped it, and the payoff features sit behind a 3-patch rebase over the most-churned subsystem.

The no-risk wins from the same audit were already done on 3.6a:

  • tmux: theme copy-mode search highlighting (Catppuccin)
  • tmux: revert update-environment to default
  • zsh: self-heal SSH agent socket symlink on fresh login

Precondition — DONE

  • nixpkgs-unstable ships tmux 3.7 (met: overlay appends patches to prev.tmux, no src override; landed as 3.7 then 3.7b).

Patch rebase — DONE (bd4c5fd)

Local patches in .config/nix/patches/, cut against 3.6a, rebased to 3.7 (apply clean on 3.7b). Bump procedure in patches/README.md.

  • split-status-top-bottom.patch → 3.7 (9 hunks re-anchored; the highest-risk one).
  • dim-inactive-panes.patch → 3.7 (screen-redraw draw_pane hunk).
  • force-redraw-on-focus-change.patch → 3.7 (applied clean, untouched).
  • Verify: colour_dim + status_split_top_bottom symbols present in compiled binary; full darwin-system build green; server restarted onto the new binary.

Candidate features — each is a test, not a blind adopt

  • escape-time: dropped the 30 workaround → 10 (3.7 default) in aa648f1b. Both root-cause issues fixed upstream (tmux #4793, opentui #490); 3.7 also lengthens escape delay on buffered partial paste-end. Verified: throwaway parse + live reload + hand-checked opencode start/exit & Esc in kitty.

  • pane-scrollbars — tested modal (Mocha-styled) on 3.7b; the live trial coincided with a server crash on this patched build (scrollbars redraw through the same path the dim + split-status patches hook). Declined — cosmetic, not worth the risk. Stale comment corrected in 4dae0873.

  • copy-mode-line-numbers hybrid + line-number styles — verify against the dim patch.

  • message-format / message overlay styling — verify against split-status-top-bottom.patch + message-line 1; likeliest fight.

  • get-clipboarddefault on 3.7b is buffer, not off (verified -f /dev/null): a pane requesting the clipboard already gets tmux's newest paste buffer. request/both escalate to the real system clipboard. Given many agent panes hold secrets, this is a security call (hold buffer or tighten to off), not a utility adopt — do not enable request. Test per-terminal + over SSH if changing.

  • focus-follows-mouse — day-trial with mouse on; keep or bin.

  • Floating panes (new-pane, default prefix + *) — trial as a persistent sidecar (logs/monitors/btm); keep popups for modal tools (lazygit, jjui, fzf pickers). Check interaction with dim/split patches. Optional pane_floating_flag status hint. Note: move/resize is mouse-only in 3.7.

  • remain-on-exit key / new-pane -k — keep build/test panes open until a keypress instead of a popup.

  • tree-mode-preview-* — themed the new 3.7 choose-tree preview indicator (and prefix + q display-panes, same source) to Mocha via display-panes-colour/-active-colour (active pink, others blue); default format + style kept. Commit "tmux: theme display-panes + tree-mode-preview to Mocha" (f10b3f57, hashes churn — match by title). Tested on 3.7b: throwaway parse clean, live reload took, agent panes survived, prefix + q + choose-tree previews hand-checked in kitty.

Explicitly skipped (decided)

  • list-keys -F/-O live help popup — a future command palette will own searchable-fire-actions; keep curated help.md for grouping/prose; do not rebind prefix + / (already the help search).
  • allow-set-title off — would break pane-border-format's #{pane_title} (apps set it via this option).
  • explicit update-environment list — already reverted to default; don't reintroduce a hand-maintained list.

Notes

  • WAYLAND_DISPLAY / XDG_* are 3.7 additions to the default update-environment (not in 3.6a) — a freebie now that we're bumped, no action needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions