Unlike bash, the fish shell puts wl-copy in the shell's process
group 1, which can be observed with "ps -o pid,pgid,comm,args".
On VSCode's integrated terminal, this causes the issue that Control+C
will kill wl-copy, clearing the clipboard. fish has worked around
this2 but still we should fix the command described above.
I'll try to look into changing the fish behavior but chances are
it's complicated.
Let's block SIGINT and SIGQUIT in the background process.
This will make wl-copy behave as if launched as
bash -c "wl-copy &"
because according to Bash documentation3 that's how background
commands in noninteractive shells should behave:
When job control is not in effect, asynchronous commands ignore
SIGINT and SIGQUIT in addition to these inherited handlers.
fish implements this too, but the bug happens on interactive shells.
Given a command like
Unlike bash, the fish shell puts wl-copy in the shell's process group 1, which can be observed with "ps -o pid,pgid,comm,args". On VSCode's integrated terminal, this causes the issue that Control+C will kill wl-copy, clearing the clipboard. fish has worked around this2 but still we should fix the command described above. I'll try to look into changing the fish behavior but chances are it's complicated.
Let's block SIGINT and SIGQUIT in the background process. This will make wl-copy behave as if launched as
because according to Bash documentation3 that's how background commands in noninteractive shells should behave:
fish implements this too, but the bug happens on interactive shells.