.tmux: Cannot copy to my system clipboard when I run tmux on a remote server and connect using SSH

Created on 23 Nov 2017  路  14Comments  路  Source: gpakosz/.tmux

I am using Oh-My-Tmux on my laptop which is a MacBook running MacOS Sierra. Tmux version is 2.6. I have latest XQuartz installed as well. My /etc/ssh/ssh_config settings have been modified to forward X11:

# XAuthLocation added by XQuartz (http://www.xquartz.org)
Host *
    XAuthLocation /opt/X11/bin/xauth
    ForwardX11 yes

The terminal app I am using is iTerm 2 and I am connecting remotely to an Ubuntu 16.04 droplet on Digital Ocean using the function below. I am running latest Tmux (2.6) on my Ubuntu droplet and have installed xclip (and xsel) as well.:

function ssht () {/usr/bin/ssh -X -t $@ "tmux attach -t development || tmux new -s development";}

To connect, I type:

ssht <ssh-config-alias-for-my-host>

Simple dragging of any text on my remote server using my mouse copies it to the Tmux buffer. I can see them when I run Ctrl + a P. __However, they are not getting copied to my Mac's system clipboard.__

Any suggestions on what I am doing wrong?

branch available enhancement waiting for feedback

Most helpful comment

Hello @indrayam,

I think the os-clipboard branch will interest you. It's now possible to copy from a remote machine to the local system clipboard.

Here are the pre-requisites:

  • have a remote machine configured to use the os-clipboard branch of this configuration
  • have tmux_conf_copy_to_os_clipboard=true (in ~/.tmux.conf.local) on that remote machine

Now,

  • ssh into the remote server
  • launch tmux there, or attach to a session
  • enter copy mode then copy some text (using your copy-selection bindings)
  • what you copied on the remote side is now in your local clipboard

All 14 comments

The behavior you're seeing is tmux's normal behavior when mouse mode is on.

If turn mouse mode off, then iTerm2 will handle the selection and pasting to your Mac's clipboard.

If you want to use your mouse to resize or select panes but you don't want it to handle entering in copy mode and selecting text you have to unbind MouseDrag* bindings:

$ tmux list-keys | MouseDrag
bind-key    -T copy-mode    MouseDrag1Pane    select-pane ; send-keys -X begin-selection
bind-key    -T copy-mode    MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
bind-key    -T copy-mode-vi MouseDrag1Pane    select-pane ; send-keys -X begin-selection
bind-key    -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
bind-key    -T root         MouseDrag1Pane    if-shell -F -t = "#{mouse_any_flag}" "if -Ft= \"#{pane_in_mode}\" \"copy-mode -M\" \"send-keys -M\"" "copy-mode -M"
bind-key    -T root         MouseDrag1Border  resize-pane -M

Wow, that's good to know. Never thought of that. Let me play with it and see if I can unbind the MouseDrag* bindings.

Hello @indrayam,

Are we good?

Unfortunately, I decided to move on without diving further into it. My apologies.

Hello @indrayam,

I think the os-clipboard branch will interest you. It's now possible to copy from a remote machine to the local system clipboard.

Here are the pre-requisites:

  • have a remote machine configured to use the os-clipboard branch of this configuration
  • have tmux_conf_copy_to_os_clipboard=true (in ~/.tmux.conf.local) on that remote machine

Now,

  • ssh into the remote server
  • launch tmux there, or attach to a session
  • enter copy mode then copy some text (using your copy-selection bindings)
  • what you copied on the remote side is now in your local clipboard

I don't know if mac terminal works like linux one but one simple solution to me is keep SHIFT key pressed when I select what I want to copy, use the right button to copy and it sends the content to the clipboard,

@amioranza Just a supplement. On mac, keep the option key instead of SHIFT key when selecting. Also, use command+v to paste.

@haoransh: On my current setup, it works if I set the remote tmux with mouse on and use "SHIFT+CMD" together with the mouse (left button) to copy to the local clipboard (using iTerm2). Not sure this is by design or simply luck...

@gpakosz I used the os-clipboard and it works like a charm, any chance we can merge it to master? :)

Just checking up on this, I'd like to be able to 1. Select things in a pane like "normal" (mouse mode on), and ahve things show up in both the tmux paste buffer, as well as in my mac clipboard for pasting. Thanks!

Any plans on having this merged to master branch?

Hello @notrev,

Merging the branch requires requiring tmux >= 2.4 instead of >= 2.1. That may be the right time

I don't know if mac terminal works like linux one but one simple solution to me is keep SHIFT key pressed when I select what I want to copy, use the right button to copy and it sends the content to the clipboard,

This works unless I have a window split vertically, i.e. two panes side by side. Selecting with the shift key causes the selection to sort of "bleed" into the next pane, and the text that gets copied has lots of garbage in it, including pipe symbols '|' where the pane bled into the next pane.

Can this work with mouse?
I find I cannot copy text from my ssh tmux session which is over my local tmux session

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ww7 picture ww7  路  4Comments

danielporto picture danielporto  路  8Comments

billowqiu picture billowqiu  路  8Comments

AtomicCoding picture AtomicCoding  路  3Comments

shortspecialbus picture shortspecialbus  路  3Comments