view unixSoft/bin/afcopy @ 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 b5178986dcbb
children
line wrap: on
line source

#!/bin/sh
if [ `uname` = Darwin ] ; then
  pbcopy
else
    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