From f545be6b3f82688c7bb2880281181634cd36027e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 25 Apr 2017 21:57:49 -0400 Subject: [PATCH] Rewrite bin/{pb,rclip} --- bin/pb | 4 ++-- bin/rclip | 39 ++++++++++++++------------------------- 2 files changed, 16 insertions(+), 27 deletions(-) diff --git a/bin/pb b/bin/pb index fe5241f3..b05205a2 100755 --- a/bin/pb +++ b/bin/pb @@ -5,7 +5,7 @@ if [[ -t 0 ]]; then if command -v xclip >/dev/null; then - xclip -selection clipboard -out + xclip -display :0 -selection clipboard -out elif command -v xsel >/dev/null; then xsel --clipboard --output elif command -v pbpaste >/dev/null; then @@ -16,7 +16,7 @@ if [[ -t 0 ]]; then fi else if command -v xclip >/dev/null; then - xclip -selection clipboard -in + xclip -display :0 -selection clipboard -in elif command -v xsel >/dev/null; then xsel --clipboard --input elif command -v pbcopy >/dev/null; then diff --git a/bin/rclip b/bin/rclip index 8b7dcc60..88c827b8 100755 --- a/bin/rclip +++ b/bin/rclip @@ -1,30 +1,24 @@ #!/usr/bin/env bash -# Remote clipboard insertion via SSH -# By Henrik Lissner -# -# A simple script for sending data to another computer's clipboard via SSH. Acts as -# a universal clipboard. This script must be available on the remote. Pipe through gpg -# if you want the contents encrypted. + +# A simple script for sending data to another computer's clipboard via SSH. Acts +# as a universal clipboard. This script must be available on the remote. Pipe +# through gpg if you want the contents encrypted. # # It helps if your ssh connection is pubkey authenticated and password-less. # -# If the destination (or host) is a mac, use pbcopy and pbpaste instead. +# Requires: pb (script, in same folder) # # Workflow: -# host $ echo "Hello world!" | rclip.sh guest -# guest $ rclip.sh +# host $ echo "Hello world!" | rclip guest +# guest $ rclip # Hello world! # OR # host $ echo "Hello world!" | gpg -e | rclip.sh guest -# guest $ rclip.sh | gpg -d +# guest $ rclip | gpg -d # Hello world! -pb=/tmp/rcopy-pb bin="${0##*/}" -copy() { [[ $OSTYPE == darwin* ]] && pbpaste; } - -target="$1" flags= while getopts p:i:l: opt; do case $opt in @@ -38,20 +32,15 @@ while getopts p:i:l: opt; do done shift $((OPTIND-1)) -if [[ -t 1 || $force_output ]]; then - if [[ $target ]]; then - ssh $flags -qt "$target" "$bin" - elif [[ $OSTYPE == darwin* ]]; then - pbpaste - elif [[ -f $pb ]]; then - cat "$pb" +target="$1" +if [[ $target ]]; then + if [[ -t 0 ]]; then + pb | $bin $target else - exit 1 + ssh $flags -qt "$target" "pb" && echo "Sent to $target" fi -elif [[ $target ]]; then - ssh $flags -q "$target" "$bin" else - tee "$pb" | copy + pb fi # vim:set ft=sh: