qubes-run-terminal: use gnome-terminal --wait, if supported

Fixes QubesOS/qubes-issues#4606.
This commit is contained in:
Pawel Marczewski 2020-01-23 11:47:19 +01:00
parent eac2e79483
commit 6f4d6dc9bb
No known key found for this signature in database
GPG Key ID: DE42EE9B14F96465

View File

@ -1,10 +1,29 @@
#!/bin/sh #!/bin/sh
# Try to find a terminal emulator that's installed and run it. # Try to find a terminal emulator that's installed and run it.
for terminal in x-terminal-emulator gnome-terminal xfce4-terminal konsole urxvt rxvt termit terminator Eterm aterm roxterm termite lxterminal mate-terminal terminology st xterm; do is_command() {
# bogus warning from ShellCheck < 0.5.0 # bogus warning from ShellCheck < 0.5.0
# shellcheck disable=SC2039 # shellcheck disable=SC2039
if type "$terminal" >/dev/null 2>&1 ; then type "$1" >/dev/null 2>&1
}
if is_command x-terminal-emulator; then
exec x-terminal-emulator
fi
if is_command gnome-terminal; then
# Check if our gnome-terminal version supports --wait
# (we can't just run it and check exit code, because if it works, it will
# return the exit code of the child process)
if gnome-terminal --help-terminal-options | grep --silent -- --wait; then
exec gnome-terminal --wait
else
exec gnome-terminal
fi
fi
for terminal in xfce4-terminal konsole urxvt rxvt termit terminator Eterm aterm roxterm termite lxterminal mate-terminal terminology st xterm; do
if is_command "$terminal" ; then
exec "$terminal" exec "$terminal"
fi fi
done done