mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Switch to xdg-terminal-exec
Solves the issue from ae10133b5e the right
way using the actual xdg-terminal-exec package and provides resillient
fallbacks no matter what the user might do.
This also removes the need to restart after changing terminals at all.
fixes #2198
fixes #2329
fixes #2673
fixes #1754
This commit is contained in:
@@ -7,15 +7,41 @@ fi
|
||||
|
||||
package="$1"
|
||||
|
||||
# Map package name to desktop entry ID
|
||||
case "$package" in
|
||||
alacritty)
|
||||
desktop_id="Alacritty.desktop"
|
||||
;;
|
||||
ghostty)
|
||||
desktop_id="com.mitchellh.ghostty.desktop"
|
||||
;;
|
||||
kitty)
|
||||
desktop_id="kitty.desktop"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown terminal: $package"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Install package
|
||||
if omarchy-pkg-add $package; then
|
||||
# Set as default terminal
|
||||
echo "Setting $package as new default terminal..."
|
||||
sed -i "/export TERMINAL=/ c\export TERMINAL=$package" ~/.config/uwsm/default
|
||||
|
||||
# Restart is needed for new default to take effect
|
||||
echo
|
||||
gum confirm "Restart to use new terminal?" && systemctl reboot --no-wall
|
||||
# Copy custom desktop entry for alacritty with X-TerminalArg* keys
|
||||
if [ "$package" = "alacritty" ]; then
|
||||
mkdir -p ~/.local/share/applications
|
||||
cp "$OMARCHY_PATH/applications/Alacritty.desktop" ~/.local/share/applications/
|
||||
fi
|
||||
|
||||
# Update xdg-terminals.list to prioritize the proper terminal
|
||||
cat > ~/.config/xdg-terminals.list << EOF
|
||||
# Terminal emulator preference order for xdg-terminal-exec
|
||||
# The first found and valid terminal will be used
|
||||
$desktop_id
|
||||
EOF
|
||||
else
|
||||
echo "Failed to install $package"
|
||||
fi
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec setsid uwsm-app -- alacritty --class=Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s'
|
||||
exec setsid uwsm-app -- xdg-terminal-exec --app-id=com.omarchy.Omarchy -e bash -c 'fastfetch; read -n 1 -s'
|
||||
|
||||
@@ -4,7 +4,7 @@ omarchy-cmd-present "$EDITOR" || EDITOR=nvim
|
||||
|
||||
case "$EDITOR" in
|
||||
nvim | vim | nano | micro | hx | helix)
|
||||
exec setsid uwsm-app -- "$TERMINAL" -e "$EDITOR" "$@"
|
||||
exec setsid uwsm-app -- xdg-terminal-exec "$EDITOR" "$@"
|
||||
;;
|
||||
*)
|
||||
exec setsid uwsm-app -- "$EDITOR" "$@"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
cmd="$*"
|
||||
exec setsid uwsm-app -- alacritty -o font.size=9 --class=Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"
|
||||
exec setsid uwsm-app -- xdg-terminal-exec --app-id=com.omarchy.Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec setsid uwsm-app -- "${TERMINAL:-alacritty}" -e "$@"
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec setsid uwsm-app -- "$TERMINAL" --class=Impala -e impala "$@"
|
||||
exec setsid uwsm-app -- xdg-terminal-exec --app-id=com.omarchy.Impala -e impala "$@"
|
||||
|
||||
@@ -37,7 +37,7 @@ menu() {
|
||||
}
|
||||
|
||||
terminal() {
|
||||
alacritty --class=Omarchy -e "$@"
|
||||
xdg-terminal-exec --app-id=com.omarchy.Omarchy "$@"
|
||||
}
|
||||
|
||||
present_terminal() {
|
||||
@@ -178,7 +178,7 @@ show_setup_menu() {
|
||||
options="$options\n Defaults\n DNS\n Security\n Config"
|
||||
|
||||
case $(menu "Setup" "$options") in
|
||||
*Audio*) $TERMINAL --class=Wiremix -e wiremix ;;
|
||||
*Audio*) xdg-terminal-exec --app-id=com.omarchy.Wiremix -e wiremix ;;
|
||||
*Wifi*)
|
||||
rfkill unblock wifi
|
||||
omarchy-launch-wifi
|
||||
|
||||
Reference in New Issue
Block a user