aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-05 17:09:21 +0300
committerIgor Soarez <igor@soarez.org>2026-10-05 17:09:21 +0300
commitb79e6822209fa45fc357ddfd3d7caf1598f9af37 (patch)
tree5bdb8cb6ef845938cd53cd00da1859830510ae5d
parent13a3934d76ecf0687905df97cd9b75b28bd1dabf (diff)
tmuxrdr: mouse selections copy on release; drag-enters-copy-mode on the roadmap
-rw-r--r--tmuxrdr/ROADMAP.md17
-rw-r--r--tmuxrdr/config/config.toml13
2 files changed, 24 insertions, 6 deletions
diff --git a/tmuxrdr/ROADMAP.md b/tmuxrdr/ROADMAP.md
index e9147758..aff7a4ac 100644
--- a/tmuxrdr/ROADMAP.md
+++ b/tmuxrdr/ROADMAP.md
@@ -150,7 +150,22 @@ files where it can live apart, so the lines that touch upstream's stay few.
`pane send-text` already uses (`encode_api_text`,
`src/app/api_helpers.rs`), delete for `-`. Medium.
-### 11. `D` choose-client
+### 11. A mouse drag enters copy mode
+- tmux: a drag enters copy mode (`MouseDrag1Pane` -> `copy-mode -M`); this
+ machine's tmux.conf unbinds `copy-mode-vi MouseDragEnd1Pane`, so the
+ selection stays there for `y` (its copy-pipe binding), `Enter`, or more
+ vi movement; double- and triple-click do the same with a word or a line.
+- Gap: herdr's mouse selection is separate from copy mode (`mouse.rs`): kept
+ (copy_on_select = false) it copies only on Ctrl+C, and `y` goes to the
+ pane. tmuxrdr's config copies on release meanwhile.
+- Patch: on drag release (and double/triple click), enter copy mode for that
+ pane with the selection carried over -- copy mode's selection is an anchor
+ and a cursor (`ClientCopySelection::Character`), in the same absolute pane
+ coordinates as the mouse selection (`sync_copy_selection`). Logic in a
+ tmuxrdr file, hooked from `mouse.rs` and `word_selection.rs`. Small to
+ medium.
+
+### 12. `D` choose-client
- tmux: lists attached clients; pick one to detach.
- Gap: no client list in the CLI or UI.
- Patch: a client registry query on the server and a picker. Medium; low
diff --git a/tmuxrdr/config/config.toml b/tmuxrdr/config/config.toml
index 82e4bca3..59d4d06e 100644
--- a/tmuxrdr/config/config.toml
+++ b/tmuxrdr/config/config.toml
@@ -326,11 +326,14 @@ description = "show-messages (tmux ~)"
# tmux.conf: set-option -g mouse on -- herdr's default, left explicit.
mouse_capture = true
-# tmux.conf unbinds copy-mode-vi MouseDragEnd1Pane ("stay in copy mode on drag
-# end"): a dragged selection stays on screen until y copies it. herdr's
-# copy_on_select false keeps the selection until Ctrl+C or a host-forwarded
-# Cmd+C copies and clears -- the closest match.
-copy_on_select = false
+# Mouse selections copy on release, herdr's default -- a deliberate departure
+# from this tmux.conf. In tmux a drag enters copy mode (MouseDrag1Pane ->
+# copy-mode -M), and the tmux.conf unbinds copy-mode-vi MouseDragEnd1Pane so
+# the selection stays there until y copies it. herdr's mouse selection is not
+# copy mode: y would go to the pane, and only Ctrl+C copies a kept selection.
+# Until tmuxrdr makes a drag enter copy mode (ROADMAP.md), release copies. The
+# keyboard is tmux's either way: prefix+[, v, y.
+copy_on_select = true
# tmux.conf: WheelUp/DownPane -N 3 scroll -- "3 lines at a time instead of
# default 5". herdr's default is already 3, left explicit.