From b6ba588fa303a01b45d49b9aadc02e5c2cef0b53 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 10 Nov 2025 10:54:41 +0100 Subject: [PATCH] Switch to Ghostty as the default terminal --- applications/Alacritty.desktop | 21 -------------- bin/omarchy-install-terminal | 50 +++++++++++++++++++++------------- config/xdg-terminals.list | 3 ++ install/omarchy-base.packages | 2 +- migrations/1762768186.sh | 3 ++ 5 files changed, 38 insertions(+), 41 deletions(-) delete mode 100644 applications/Alacritty.desktop create mode 100644 config/xdg-terminals.list create mode 100644 migrations/1762768186.sh diff --git a/applications/Alacritty.desktop b/applications/Alacritty.desktop deleted file mode 100644 index f53c813e..00000000 --- a/applications/Alacritty.desktop +++ /dev/null @@ -1,21 +0,0 @@ -[Desktop Entry] -Type=Application -TryExec=alacritty -Exec=alacritty -Icon=Alacritty -Terminal=false -Categories=System;TerminalEmulator; -Name=Alacritty -GenericName=Terminal -Comment=A fast, cross-platform, OpenGL terminal emulator -StartupNotify=true -StartupWMClass=Alacritty -Actions=New; -X-TerminalArgExec=-e -X-TerminalArgAppId=--class= -X-TerminalArgTitle=--title= -X-TerminalArgDir=--working-directory= - -[Desktop Action New] -Name=New Terminal -Exec=alacritty diff --git a/bin/omarchy-install-terminal b/bin/omarchy-install-terminal index 0cea1a4c..e962f3f3 100755 --- a/bin/omarchy-install-terminal +++ b/bin/omarchy-install-terminal @@ -9,31 +9,43 @@ 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 - ;; +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 - # Copy custom desktop entry for alacritty with X-TerminalArg* keys - if [ "$package" = "alacritty" ]; then + if [[ $package == "alacritty" ]]; then mkdir -p ~/.local/share/applications - cp "$OMARCHY_PATH/applications/Alacritty.desktop" ~/.local/share/applications/ + cat > ~/.local/share/applications/Alacritty.desktop << EOF +[Desktop Entry] +Type=Application +TryExec=alacritty +Exec=alacritty +Icon=Alacritty +Terminal=false +Categories=System;TerminalEmulator; +Name=Alacritty +GenericName=Terminal +Comment=A fast, cross-platform, OpenGL terminal emulator +StartupNotify=true +StartupWMClass=Alacritty +Actions=New; +X-TerminalArgExec=-e +X-TerminalArgAppId=--class= +X-TerminalArgTitle=--title= +X-TerminalArgDir=--working-directory= + +[Desktop Action New] +Name=New Terminal +Exec=alacritty +EOF fi # Update xdg-terminals.list to prioritize the proper terminal diff --git a/config/xdg-terminals.list b/config/xdg-terminals.list new file mode 100644 index 00000000..bc27bcf6 --- /dev/null +++ b/config/xdg-terminals.list @@ -0,0 +1,3 @@ +# Terminal emulator preference order for xdg-terminal-exec +# The first found and valid terminal will be used +com.mitchellh.ghostty.desktop diff --git a/install/omarchy-base.packages b/install/omarchy-base.packages index 74b8de66..26d123f7 100644 --- a/install/omarchy-base.packages +++ b/install/omarchy-base.packages @@ -4,7 +4,6 @@ 1password-beta 1password-cli aether -alacritty asdcontrol avahi bash-completion @@ -32,6 +31,7 @@ fd ffmpegthumbnailer fontconfig fzf +ghostty github-cli gnome-calculator gnome-keyring diff --git a/migrations/1762768186.sh b/migrations/1762768186.sh new file mode 100644 index 00000000..93bc3634 --- /dev/null +++ b/migrations/1762768186.sh @@ -0,0 +1,3 @@ +echo "Ensure config/uwsm/default uses generic terminal exec" + +sed -i 's/export TERMINAL=.*/export TERMINAL=xdg-terminal-exec/' ~/.config/uwsm/default