39573125e4971b34e26f4cb3aaa210a74ea6ca34

Author
Marc Cornellà <hello@mcornella.com>
Committer
Marc Cornellà <hello@mcornella.com>
Date

Message

feat(lib): wait for input to copy to the clipboard (#10953)

Diff

 1diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh
 2index 272b415982b996c0a7f293844fc1f987c700e403..aab21a28a502c14f93f2e1adacfbe72c85f83e96 100644
 3--- a/lib/clipboard.zsh
 4+++ b/lib/clipboard.zsh
 5@@ -52,37 +52,37 @@ function detect-clipboard() {
 6   emulate -L zsh
 7 
 8   if [[ "${OSTYPE}" == darwin* ]] && (( ${+commands[pbcopy]} )) && (( ${+commands[pbpaste]} )); then
 9-    function clipcopy() { pbcopy < "${1:-/dev/stdin}"; }
10+    function clipcopy() { cat "${1:-/dev/stdin}" | pbcopy; }
11     function clippaste() { pbpaste; }
12   elif [[ "${OSTYPE}" == (cygwin|msys)* ]]; then
13     function clipcopy() { cat "${1:-/dev/stdin}" > /dev/clipboard; }
14     function clippaste() { cat /dev/clipboard; }
15   elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )); then
16-    function clipcopy() { wl-copy < "${1:-/dev/stdin}" &>/dev/null &|; }
17+    function clipcopy() { cat "${1:-/dev/stdin}" | wl-copy &>/dev/null &|; }
18     function clippaste() { wl-paste; }
19   elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xclip]} )); then
20-    function clipcopy() { xclip -in -selection clipboard < "${1:-/dev/stdin}" &>/dev/null &|; }
21+    function clipcopy() { cat "${1:-/dev/stdin}" | xclip -selection clipboard -in &>/dev/null &|; }
22     function clippaste() { xclip -out -selection clipboard; }
23   elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xsel]} )); then
24-    function clipcopy() { xsel --clipboard --input < "${1:-/dev/stdin}"; }
25+    function clipcopy() { cat "${1:-/dev/stdin}" | xsel --clipboard --input; }
26     function clippaste() { xsel --clipboard --output; }
27   elif (( ${+commands[lemonade]} )); then
28-    function clipcopy() { lemonade copy < "${1:-/dev/stdin}"; }
29+    function clipcopy() { cat "${1:-/dev/stdin}" | lemonade copy; }
30     function clippaste() { lemonade paste; }
31   elif (( ${+commands[doitclient]} )); then
32-    function clipcopy() { doitclient wclip < "${1:-/dev/stdin}"; }
33+    function clipcopy() { cat "${1:-/dev/stdin}" | doitclient wclip; }
34     function clippaste() { doitclient wclip -r; }
35   elif (( ${+commands[win32yank]} )); then
36-    function clipcopy() { win32yank -i < "${1:-/dev/stdin}"; }
37+    function clipcopy() { cat "${1:-/dev/stdin}" | win32yank -i; }
38     function clippaste() { win32yank -o; }
39   elif [[ $OSTYPE == linux-android* ]] && (( $+commands[termux-clipboard-set] )); then
40-    function clipcopy() { termux-clipboard-set < "${1:-/dev/stdin}"; }
41+    function clipcopy() { cat "${1:-/dev/stdin}" | termux-clipboard-set; }
42     function clippaste() { termux-clipboard-get; }
43   elif [ -n "${TMUX:-}" ] && (( ${+commands[tmux]} )); then
44     function clipcopy() { tmux load-buffer "${1:--}"; }
45     function clippaste() { tmux save-buffer -; }
46   elif [[ $(uname -r) = *icrosoft* ]]; then
47-    function clipcopy() { clip.exe < "${1:-/dev/stdin}"; }
48+    function clipcopy() { cat "${1:-/dev/stdin}" | clip.exe; }
49     function clippaste() { powershell.exe -noprofile -command Get-Clipboard; }
50   else
51     function _retry_clipboard_detection_or_fail() {