I wanted to use a window-manager key binding to open fzf in
xterm and then open the chosen file. So I bound a key to
spawn xterm -e fzf-open, and put this in fzf-open:
#!/usr/bin/bash
# fzf-open: find a file and open it
if file=$(find ~ -type f -name "*.pdf" |
fzf); then
xdg-open "$file" &
# disown
fi
But this only works when run from the terminal. The key binding
doesn't work, unless I remove the & and let the dedicated
xterm window hang while the opened file is open.
I take it this means that, when xterm dies, it takes its
children with it. The appropriate programme is run, but killed
when xterm dies. I tried to put disown after the xdg-open
... line, but that didn't make any difference.
How can I prevent xterm from taking the programme with it when
it dies?
(trap '' HUP; xdg-open "$file" >/dev/null 2>&1 &). See this for an explanation. – Mar 04 '20 at 22:41