This commit is contained in:
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Purpose : Run a command in a new terminal window, for notifications that
|
||||
# start something when clicked (system/update-check, system/email-watch).
|
||||
#
|
||||
# run-in-terminal <command>, e.g. run-in-terminal update
|
||||
#
|
||||
# bash -i reads ~/.bashrc, as if the user had typed the command themselves, and
|
||||
# the window stays open to show how it went.
|
||||
|
||||
run=(bash -ic "$1; echo; read -rp \"Press Enter to close this window.\"")
|
||||
if command -v xdg-terminal-exec &> /dev/null; then
|
||||
terminal=(xdg-terminal-exec)
|
||||
elif command -v kgx &> /dev/null; then
|
||||
terminal=(kgx --)
|
||||
elif command -v ghostty &> /dev/null; then
|
||||
terminal=(ghostty -e)
|
||||
elif command -v kitty &> /dev/null; then
|
||||
terminal=(kitty)
|
||||
else
|
||||
notify-send --app-name=CoreDesktop "No terminal found" "Open a terminal and run $1."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Run the terminal as its own unit: when the service that called this exits,
|
||||
# systemd stops everything still running in it, which would close the terminal
|
||||
exec systemd-run --user --quiet --collect -- "${terminal[@]}" "${run[@]}"
|
||||
Reference in New Issue
Block a user