The X clipboard allows a user to copy and paste content between different X windows, e.g. copying text from Chrome into a Terminal. Copy/pasting with the X clipboard it well supported in GUI Emacs, but not so well in terminal Emacs (i.e `emacs -nw` or `emacsclient -t`) without resorting to using the mouse, since terminal Emacs has no awareness of X. There are several incomplete Elisp solutions out that work for the most part, but may not have cross-platform support, or may fail over SSH with X forwarding or within a `tmux` session. This layer adds support for OSX, Linux, Windows, and Cygwin using the relevant binary on each system. For example on Linux, it uses `xsel` or `xclip` to interface with the clipboard, depending which one is available. It also adds support for ssh'ing into a different OS with X forwarding via `ssh -Y hostname`, and copy/pasting to and from a remote terminal Emacs. It also supports an edge case of continuing to work in an Emacs instance running inside a `tmux` session which may have been started by a different ssh session, which relies on explicitly reseting the `$DISPLAY` environment variable before calling the relevant binary. Yank code inspired by https://github.com/tmux-plugins/tmux-yank. Fix #4662. Tried to add xclip support but removed it since it freezes.
527 B
527 B
xclipboard layer
Description
This layer adds copy/paste support to the X-clipboard from the terminal.
Key Bindings
Key Binding | Description |
---|---|
SPC x y |
Copy selection to clipboard |
SPC x p |
Paste clipboard contents at cursor position |