I recently noticed that Ghostty was finally added to Ubuntu’s 26.04 official repository , which means I no longer have to use the Snap version. I used it for a while, but Snaps are just terribly slow. I had been using terminator as my default terminal for several years, mostly because of its multiplexing capabilities. It’s okay, but not as swift as iTerm2 or urxvt
, which I used in the past. That is something that has been bothering me more and more lately. Our computers are becoming faster and faster, but applications are becoming increasingly sluggish. This is the curse of web-based applications, which add significant boilerplate to otherwise fast software. This applies to all Electron-based apps like Slack, VS Code (or Atom earlier), Spotify, Discord, Obsidian, etc. Most of them function as both websites and “desktop” versions, which are essentially web wrappers. There are benefits to this, such as easier portability, but the results are large installations with many dependencies, and loading them all makes them slow. I’ll end my rant here.
On the bright side, not all applications follow this pattern. I recently found a few that do not: Zed (a really responsive editor), prek as an alternative to pre-commit, and many Go apps (which are usually incredibly fast). Since I spend a lot of my daily time working in the shell, I started looking for a better terminal, especially on Linux, as I’m happy with iTerm2 on macOS. I found three worth checking: kitty , Alacritty , and ghostty .
The first is incredibly simple - I would even call it spartan. I was surprised to see recently that they plan to add a scroll bar to the UI. Alacritty, for Ubuntu/Debian installation had instruction on how to compile it. I wanted something more feature-complete, and that is where I found Ghostty . It’s fast because the UI is GPU-accelerated and it supports multiplexing. I also found some shortcuts similar to those in iTerm2 and Terminator; after a few adjustments, I was able to start using it immediately. It was a great feeling to have everything respond so quickly.
There was one problem with this story: I was on Ubuntu 25.10, where the most convenient way to install Ghostty was via Snap. I simply hate Snaps. Starting one for the first time can take seconds, which is not something I want to deal with hundreds of times a day when I need a terminal. This was a deal-breaker for me. But today, I upgraded to Ubuntu 26.04, where an official package was added. I wanted to switch to it as my default, but it wasn’t that easy.
I tried my usual method, but Ghostty wasn’t listed:
$ update-alternatives --config x-terminal-emulator
There are 3 choices for the alternative x-terminal-emulator (providing /usr/bin/x-terminal-emulator).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/terminator 50 auto mode
1 /usr/bin/gnome-terminal.wrapper 40 manual mode
2 /usr/bin/ptyxis 40 manual mode
3 /usr/bin/terminator 50 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Then I discovered that since 25.04, there’s a new way of setting the default terminal: via the ~/.config/ubuntu-xdg-terminals.list file.
However, the documentation doesn’t explain how to set Ghostty there. Let’s see what the desktop file is named:
$ dpkg-query -L ghostty | grep desktop
/usr/share/applications/com.mitchellh.ghostty.desktop
/usr/share/kio/servicemenus/com.mitchellh.ghostty.desktop
Now, let me set it:
echo com.mitchellh.ghostty.desktop > ~/.config/ubuntu-xdg-terminals.list
I hit my keyboard shortcut, and voilà - Ghostty is there, ready to serve and as fast as it should be.
