aboutsummaryrefslogtreecommitdiff
path: root/vis-clipboard
diff options
context:
space:
mode:
authorJeremy Bobbin <jer@jer.cx>2020-07-11 09:17:00 -0700
committerMarc André Tanner <mat@brain-dump.org>2020-07-17 15:30:39 +0200
commit9cb69f746312efa7c01c1dd4185bface3b30bb6d (patch)
tree802abcd76e734f500b9f72aaf7fd6dc2a6efe0c6 /vis-clipboard
parentf34f6d968e711f3cab019a12bb60da1bbf52161f (diff)
downloadvis-9cb69f746312efa7c01c1dd4185bface3b30bb6d.tar.gz
vis-9cb69f746312efa7c01c1dd4185bface3b30bb6d.tar.xz
support for primary clipboard
Diffstat (limited to 'vis-clipboard')
-rwxr-xr-xvis-clipboard44
1 files changed, 31 insertions, 13 deletions
diff --git a/vis-clipboard b/vis-clipboard
index 098fa8c..8397ee2 100755
--- a/vis-clipboard
+++ b/vis-clipboard
@@ -8,7 +8,7 @@ vc_fatal() {
}
vc_usage() {
- vc_fatal "`basename $0` [--usable|--copy|--paste]"
+ vc_fatal "`basename $0` [--selection sel] [--usable|--copy|--paste]"
}
vc_determine_command() {
@@ -30,6 +30,10 @@ vc_determine_command() {
done
fi
+ if [ "$sel" = "primary" ]; then
+ vc_fatal "clipboard primary selection is not supported on your platform"
+ fi
+
if type pbcopy >/dev/null 2>&1; then
echo 'mac'
return 0
@@ -76,27 +80,35 @@ vc_paste() {
}
vc_wlclipboard_copy() {
- wl-copy -t TEXT
+ if [ "$sel" = "primary" ]; then
+ wl-copy --primary -t TEXT
+ else
+ wl-copy -t TEXT
+ fi
}
vc_wlclipboard_paste() {
- wl-paste -t text
+ if [ "$sel" = "primary" ]; then
+ wl-paste --primary -t text
+ else
+ wl-paste -t text
+ fi
}
vc_xsel_copy() {
- xsel -bi
+ xsel --"$sel" -bi
}
vc_xsel_paste() {
- xsel -bo
+ xsel --"$sel" -bo
}
vc_xclip_copy() {
- xclip -selection clipboard -i >/dev/null 2>&1
+ xclip -selection "$sel" -i >/dev/null 2>&1
}
vc_xclip_paste() {
- xclip -selection clipboard -o
+ xclip -selection "$sel" -o
}
vc_mac_copy() {
@@ -115,11 +127,17 @@ vc_cygwin_paste() {
cat /dev/clipboard
}
-case "$1" in
- --usable) vc_usable;;
- --copy) vc_copy;;
- --paste) vc_paste;;
- *) ;;
-esac
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --usable) fn=vc_usable;;
+ --copy) fn=vc_copy;;
+ --paste) fn=vc_paste;;
+ --selection) shift; sel="$1";;
+ *) ;;
+ esac
+ shift
+done
+
+sel=${sel:-"clipboard"} $fn
vc_usage