diff options
author | Jesse Luehrs <doy@tozt.net> | 2018-05-20 02:38:04 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2018-05-20 02:38:22 -0400 |
commit | 23a3336c0d2c65306a9cb1aeb386bbe24f8b38a5 (patch) | |
tree | 0211b5d94168f89b83a2c77aba638d4b54f0686b /bin | |
parent | 6105354d5d2038a835613eb22c2c14eb187669e8 (diff) | |
download | conf-23a3336c0d2c65306a9cb1aeb386bbe24f8b38a5.tar.gz conf-23a3336c0d2c65306a9cb1aeb386bbe24f8b38a5.zip |
allow using either the primary or clipboard selections on linux
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/tmux-clipboard | 22 |
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); |