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.toml which 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

  1. Press the Super key (Windows key) to open GNOME’s Activities view
  2. Type “kitty” in the search bar
  3. Kitty should appear with its icon

Click on it. A new Kitty terminal window should open.

Test the context menu Link to heading

  1. Open Files (Nautilus)
  2. Navigate to any folder
  3. Right-click in an empty area
  4. You should see “Open in Terminal” in the context menu
  5. 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:

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!