summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2018-05-20 02:38:04 -0400
committerJesse Luehrs <doy@tozt.net>2018-05-20 02:38:22 -0400
commit23a3336c0d2c65306a9cb1aeb386bbe24f8b38a5 (patch)
tree0211b5d94168f89b83a2c77aba638d4b54f0686b /bin
parent6105354d5d2038a835613eb22c2c14eb187669e8 (diff)
downloadconf-23a3336c0d2c65306a9cb1aeb386bbe24f8b38a5.tar.gz
conf-23a3336c0d2c65306a9cb1aeb386bbe24f8b38a5.zip
allow using either the primary or clipboard selections on linux
Diffstat (limited to 'bin')
-rwxr-xr-xbin/tmux-clipboard22
1 files changed, 18 insertions, 4 deletions
diff --git a/bin/tmux-clipboard b/bin/tmux-clipboard
index 1e10fcf..7f939e1 100755
--- a/bin/tmux-clipboard
+++ b/bin/tmux-clipboard
@@ -20,13 +20,20 @@ END { $fifo_file->remove }
mkfifo("$fifo_file", 0700);
if ($ARGV[0] eq 'copy') {
+ my $selection = $ARGV[1] || 'primary';
+
if (fork) {
close STDIN;
close STDOUT;
close STDERR;
- open my $clipboard, '|-', COPY_CMD
- or die "can't copy from clipboard using ${\COPY_CMD}: $!";
+ my $copy_cmd = COPY_CMD;
+ if ($Config{osname} eq 'linux') {
+ $copy_cmd .= " -selection $selection";
+ }
+
+ open my $clipboard, '|-', $copy_cmd
+ or die "can't copy from clipboard using $copy_cmd: $!";
$clipboard->print($fifo_file->slurp);
$clipboard->close;
}
@@ -35,13 +42,20 @@ if ($ARGV[0] eq 'copy') {
}
}
elsif ($ARGV[0] eq 'paste') {
+ my $selection = $ARGV[1] || 'primary';
+
if (fork) {
close STDIN;
close STDOUT;
close STDERR;
- open my $clipboard, '-|', PASTE_CMD
- or die "can't paste from clipboard using ${\PASTE_CMD}: $!";
+ my $paste_cmd = PASTE_CMD;
+ if ($Config{osname} eq 'linux') {
+ $paste_cmd .= " -selection $selection";
+ }
+
+ open my $clipboard, '-|', $paste_cmd
+ or die "can't paste from clipboard using $paste_cmd: $!";
my $contents = do { local $/; <$clipboard> };
$clipboard->close;
$fifo_file->spew(iomode => 'a', $contents);