I'm trying to bring up a terminal to interactively ask for a file, and open it using a GUI program:
foot /bin/sh -c 'file=`fzf`;(setsid xdg-open "$file" &)'
I'm using setsid
, because otherwise the terminal takes down the xdg-open
with it when it exits.
The command above, however, doesn't work: it still exits without showing anything on the screen. However, when I add a sleep
at the end, it does work:
foot /bin/sh -c 'file=`fzf`;(setsid xdg-open "$file" &); sleep 0.0000000001'
The terminal exits, but the process started by xdg-open
remains running.
What is going on here? Is there a cleaner way such that I can avoid the sleep (because I assume the exact time to sleep depends on the system).
I tried using disown
, but this doesn't work at all (even with the sleep
).