Looking for a modern and powerful terminal emulator for your Ubuntu system? Kitty is an excellent choice: fast, feature-rich, and GPU-accelerated. This tutorial guides you step-by-step to install it with mise and integrate it perfectly into your GNOME environment.
By the end of this tutorial, you’ll have Kitty as your default terminal, accessible from the application menu and context menus in your GNOME desktop.
Prerequisites Link to heading
This tutorial assumes you’re running Ubuntu with the GNOME desktop environment and know how to open a terminal and execute basic commands.
Step 1: Installing mise Link to heading
mise is a versatile tool manager that will allow us to easily install and manage many tools.
Open your current terminal and run:
curl https://mise.run | sh
You should see messages indicating that mise is being downloaded and installed. Once complete, a message will tell you to add mise to your shell configuration.
Close and reopen your terminal, then run:
mise --version
A version number should be displayed (for example 2024.x.x). This confirms that mise is installed and working correctly.
[!tip]- Example bash integration You can find here how I integrated mise into my own bash configuration: config-bash. In particular in this file https://gitea.logerais.com/xavier/config-bash/src/branch/master/rc.before.d/mise. I then use the chezmoi tool to manage my dot files including the mise configuration file
config.tomlwhich contains my selection of tools to install.
Verifying the installation Link to heading
Step 2: Configuring an alias for Kitty Link to heading
To simplify the installation and management of Kitty, we’ll configure an alias in mise. This will allow us to simply use kitty instead of the full path github:kovidgoyal/kitty.
Run this command:
mise alias set kitty github:kovidgoyal/kitty
This alias is now registered in your mise configuration (~/.config/mise/config.toml).
It will allow using the short name kitty in future mise commands rather than the complete syntax that includes the backend name and repo reference.
Step 3: Installing Kitty with mise Link to heading
Now that mise is operational and the alias is configured, we’ll install Kitty.
Run this command:
mise use --global kitty@latest
Thanks to the alias we created, mise knows it should install Kitty from the GitHub repository. The download and installation will begin. You’ll see the progress displayed. This may take a minute or two.
Verifying Kitty installation Link to heading
mise where kitty
You should see a path similar to /home/your-name/.local/share/mise/installs/kitty/latest/.... This indicates where mise installed Kitty.
Now try launching Kitty:
kitty
A new Kitty terminal window should appear! This confirms that Kitty is working. You can close this window.
Step 4: Integrating Kitty into GNOME Link to heading
To make Kitty appear in the GNOME application menu and become the default terminal, we’ll create a script that generates the necessary desktop files.
Creating the integration script Link to heading
Create a new file for our script:
vim ~/setup-kitty-gnome.sh
Copy and paste this entire script into the editor:
#!/bin/bash
# Kitty setup for GNOME
## Determine paths
KITTY_PATH=$(mise where kitty@latest)
LOCAL_SHARE="${XDG_DATA_HOME:-$HOME/.local/share}"
LOCAL_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}"
ICON_RELATIVE_PATH="share/icons/hicolor/256x256/apps/kitty.png"
## Create kitty.desktop file
cat "${KITTY_PATH}"/share/applications/kitty.desktop |
sed -E \
-e "/^TryExec/s,kitty,${LOCAL_SHARE}/mise/shims/kitty," \
-e "/^Exec/s,kitty,${LOCAL_SHARE}/mise/shims/kitty," \
-e "/^Icon/s,kitty,${KITTY_PATH}/${ICON_RELATIVE_PATH}," >"${LOCAL_SHARE}/applications/kitty.desktop"
## Create kitty-open.desktop file
cat "${KITTY_PATH}"/share/applications/kitty-open.desktop |
sed -E \
-e "/^TryExec/s,kitty,${LOCAL_SHARE}/mise/shims/kitty," \
-e "/^Exec/s,kitty,${LOCAL_SHARE}/mise/shims/kitty," \
-e "/^Icon/s,kitty,${KITTY_PATH}/${ICON_RELATIVE_PATH}," >"${LOCAL_SHARE}/applications/kitty-open.desktop"
## Create xdg-terminals.list file
echo "kitty.desktop" >"${LOCAL_CONFIG}/xdg-terminals.list"
Running the script Link to heading
bash ~/setup-kitty-gnome.sh
Restarting GNOME Shell Link to heading
Press Alt+F2 on your keyboard. A command prompt will appear. Type r then press Enter. Your screen will flicker briefly as GNOME Shell restarts.
Step 5: Verifying the integration Link to heading
Let’s verify that everything is working correctly.
Check the application menu Link to heading
- Press the
Superkey (Windows key) to open GNOME’s Activities view - Type “kitty” in the search bar
- Kitty should appear with its icon
Click on it. A new Kitty terminal window should open.
Test the context menu Link to heading
- Open Files (Nautilus)
- Navigate to any folder
- Right-click in an empty area
- You should see “Open in Terminal” in the context menu
- Click it - Kitty should open in that directory
Verify Kitty is the default terminal Link to heading
cat ~/.config/xdg-terminals.list
You should see:
kitty.desktop
This confirms that Kitty is set as your default terminal.
What we’ve accomplished Link to heading
You now have:
- ✅ mise installed and managing your tools
- ✅ A mise alias configured for Kitty
- ✅ Kitty terminal installed via mise
- ✅ Kitty integrated into the GNOME application menu
- ✅ Kitty set as your default terminal
- ✅ The ability to open Kitty from any folder in Files
To go further Link to heading
Now that Kitty is operational, you might explore:
- Kitty’s official documentation for customization options
- mise documentation to learn about managing other development tools
- Kitty’s configuration file at
~/.config/kitty/kitty.confto customize your terminal
Update tip: mise makes updating Kitty easy. Simply run:
mise upgrade kitty
Important: After updating, don’t forget to re-run the integration script to update the desktop files with the new installation path:
bash ~/setup-kitty-gnome.sh
You now have a modern, fast terminal emulator perfectly integrated into your Ubuntu GNOME desktop!