bugaevc / wl-clipboard

Command-line copy/paste utilities for Wayland
GNU General Public License v3.0
1.56k stars 61 forks source link

wl-copy hangs reading stdin if it is not run from a pseudoterminal #228

Open dkg opened 3 months ago

dkg commented 3 months ago

I'm using wl-clipboard 2.2.1-1 on debian.

I have a machine running a wayland session (with sway as a compositor) on wayland-1. If i ssh into that machine and do env WL_DISPLAY=wayland-1 wl-copy then i can type on stdin, and hit ctrl-D to end the input, and it gets placed in the wayland clipboard.

Alternately, from the ssh session, i can do:

echo test | env WAYLAND_DISPLAY=wayland-1 wl-copy

and it puts the string test in the wayland clipboard and terminates. Success so far!

however, if i do this all in one go from outside the machine, it hangs:

echo test | ssh $MACHINE env WAYLAND_DISPLAY=wayland-1 wl-copy

i've tried using strace to understand what's happening, but it looks like there are subprocesses i don't understand (cat and file)

dkg commented 3 months ago

does this have something to do with wl-copy forking into the background?

jidanni commented 2 months ago

Maybe we could make a shell script wrapper so that I can even call my-wl-copy on a region in emacs and it won't hang.

P.S., I checked but don't unhttps://www.emacswiki.org/emacs/CopyAndPaste#h5o-4