diff --git a/.claude/memory/journal.md b/.claude/memory/journal.md index e7c232a..bee589a 100644 --- a/.claude/memory/journal.md +++ b/.claude/memory/journal.md @@ -108,3 +108,6 @@ Done: copy-mode-vi WheelUp/DownPane rebound `-N 2` (stock 5), live reload OK. Me ## 2026-10-06 (pm, 7) — tmux ctrl+h/j/k/u in copy-mode Done: copy-mode-vi table had stock C-h cursor-left, C-u halfpage-up, C-j copy, so no-prefix pane moves became text nav once scrolled. Four keys rebound select-pane in copy-mode-vi, live reload OK. Merged bugfix/tmux-copy-mode-ctrl-nav → develop (8b6ed6b). Open: deployed ~/.config/tmux/tmux.conf on this Mac predates alt+v/wheel/this fix, `./install.sh` not re-run. + +## 2026-10-06 (pm, 8) — tmux drag "syntax error" in claude panes +Done: MouseDrag1Pane binding had `\"` inside '...' (literal since tmux 3.0); branch for mouse-tracking panes (claude fullscreen, vim mouse=a) failed to parse → "syntax error", no selection. Backslashes dropped, pitfall noted in conf. Deployed to ~/.config/tmux/tmux.conf + source-file, live binding verified (`forwarded-to-app`). Branch bugfix/tmux-drag-syntax-error (31f8400), not merged. Closes the "deployed conf stale" open item. diff --git a/tmux.conf b/tmux.conf index a3f7c84..6b76418 100644 --- a/tmux.conf +++ b/tmux.conf @@ -166,7 +166,7 @@ bind -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 2 scroll-up bind -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 2 scroll-down bind-key -T copy-mode-vi MouseDown1Pane select-pane -t = \; send-keys -X clear-selection bind-key -T copy-mode-vi MouseUp1Pane select-pane -t = \; send-keys -X cancel -bind -n MouseDrag1Pane if -Ft= '#{mouse_any_flag}' 'if -Ft= \"#{pane_in_mode}\" \"copy-mode -eM\" \"send-keys -M\"' 'copy-mode -eM' +bind -n MouseDrag1Pane if -Ft= '#{mouse_any_flag}' 'if -Ft= "#{pane_in_mode}" "copy-mode -eM" "send-keys -M"' 'copy-mode -eM' # (note) {{{ # A plain click (MouseDown then MouseUp, no drag) leaves copy-mode: back to # the prompt, selection dropped. A drag sends MouseDrag/MouseDragEnd instead @@ -176,6 +176,8 @@ bind -n MouseDrag1Pane if -Ft= '#{mouse_any_flag}' 'if -Ft= \"#{pane_in_mode}\" # MouseDrag1Pane, the only difference is that we use `copy-mode -eM` instead # of `copy-mode -M`, so that WheelDownPane can trigger copy-mode to exit when # copy-mode is entered by MouseDrag1Pane +# Inner quotes stay plain: `\"` is literal inside '...' since tmux 3.0, and the +# mouse-app branch (claude, vim) then dies with "syntax error" on every drag. # }}} bind-key k "split-window -v -b -c '#{pane_current_path}'"