aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.tmux.conf10
-rwxr-xr-xbin/clipboard-wrapper14
2 files changed, 21 insertions, 3 deletions
diff --git a/.tmux.conf b/.tmux.conf
index 16c3173..2ea510c 100644
--- a/.tmux.conf
+++ b/.tmux.conf
@@ -62,9 +62,13 @@ setw -g mode-keys vi
bind-key -T copy-mode-vi v send -X begin-selection
bind-key -T copy-mode-vi y send -X copy-selection
# clipboard settings
-set -s set-clipboard on
-bind-key C-p run "xclip -o | tmux load-buffer - ; tmux paste-buffer"
-bind-key C-y run "tmux save-buffer - | xclip -i"
+set-option -s set-clipboard off
+# mouse selection gets copied to system clipboard
+bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "~/bin/clipboard-wrapper -i"
+# visual selection gets copied to system clipboard
+bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "~/bin/clipboard-wrapper -i"
+# paste (doesn't do anything yet)
+bind-key -T copy-mode-vi p run "~/bin/clipboard-wrapper -o | tmux load-buffer - ; tmux paste-buffer"
# set first window to index 1 (not 0) to map more to the keyboard layout...
set -g base-index 1
diff --git a/bin/clipboard-wrapper b/bin/clipboard-wrapper
new file mode 100755
index 0000000..5ac3dec
--- /dev/null
+++ b/bin/clipboard-wrapper
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+set -euo pipefail
+IFS=$'\n\t'
+
+if [ $(uname) == "Darwin" ]; then
+ if [ "$@" == "-i" ]; then
+ pbcopy
+ elif [ "$@" == "-o" ]; then
+ pbpaste
+ fi
+else
+ xclip "$@"
+fi
+exit 0