Mercurial > dotfiles
changeset 480:4c5814d3cfd8
afcopy: some enhancements from Bryan's dotfiles
This makes `afcopy` able to drop things in the clipboard over ssh. Wild stuff.
See
https://bitbucket.org/bcmills/dotfiles/src/101956eeb90160f1d225ae23c8e6566c9df91c5c/bin/clip?at=default&fileviewer=file-view-default
for some details.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Thu, 14 Mar 2019 10:38:49 -0400 |
parents | 601884c45f8a |
children | b2a3bee0d975 |
files | unixSoft/bin/afcopy |
diffstat | 1 files changed, 18 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/unixSoft/bin/afcopy +++ b/unixSoft/bin/afcopy @@ -2,5 +2,22 @@ if [ `uname` = Darwin ] ; then pbcopy else - xclip -selection clipboard + if [ -z "${TMUX:-}" ]; then + DATA="$(cat)" + # Copy the data to the terminal clipboard using OSC 52 escape codes. + # See http://invisible-island.net/xterm/ctlseqs/ctlseqs.html, “Ps = 5 2”. + echo -en '\e]52;c;' + echo -n "$DATA" | base64 -w0 + echo -en '\a' + else + tmux set-buffer -- "$DATA" + # Use a double-escape to send escape codes directly to the terminal. + # See https://github.com/tmux/tmux/commit/79e30daeae1d49a1cf1dc4618edf1ec82804a80c. + echo -en '\ePtmux;\e\e]52;c;' + echo -n "$DATA" | base64 -w0 + echo -en '\a\e\\' + fi + if [ -n "${DISPLAY:-}" ] ; then + xclip -selection clipboard + fi fi