This guide explains step by step how to install the kitty terminal on Xubuntu, configure it correctly, and replace bash with zsh as the default shell. The kitty project is available here: https://github.com/kovidgoyal/kitty.

__ Kitty is a modern, fast, and configurable terminal, particularly suited to demanding developers. </think> (Empty output)

Why choose Kitty and Zsh?

Kitty is distinguished by:

  • Superior performance thanks to GPU acceleration,

  • A configuration entirely based on a single text file,

  • An excellent support for fonts and ligatures

Zsh, for its part, is a powerful interactive shell offering:

  • An intelligent completion,

  • A customizable prompt,

  • Great compatibility with bash.

By combining Kitty and Zsh, you benefit from a productive and aesthetic environment.

@startuml
title Simplified architecture Kitty + Zsh
actor User

User --> Kitty : Lance le terminal
Kitty --> Zsh : Initialise le shell interactif
Zsh --> System : Interagit avec le système (fichiers, commandes)
@enduml

This guide is deliberately limited to installation via script and Xubuntu.

System prerequisites

Before you start, make sure you have:

  • Xubuntu installed,

  • internet access,

  • a functional bash shell to launch the script

Check your environment:

uname -a
lsb_release -a

Download and installation of Kitty

Kitty recommends installing it via an official script that places the files in`~/.local/kitty.app`.

This method is independent of package managers (no`apt`).

Download the installation script

Execute the following command:

curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin

This command performs:

  • downloading the binaries,

  • extraction in`~/.local/kitty.app`,

  • creation of the symbolic links.

@startuml
title Downloading and installing Kitty
start
:curl -L installer.sh;
:sh /dev/stdin;
:Décompression dans ~/.local/kitty.app;
:create symlinks;
stop
@enduml

In order to be able to invoke`kitty`from the terminal, create a symbolic link :

ln -s ~/.local/kitty.app/bin/kitty ~/.local/bin/kitty

Add`~/.local/bin`Add to your PATH if it’s not already done:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

You can check the installation:

kitty --version

Integration of Kitty in Xubuntu

For Kitty to appear in the applications menu:

Copy the desktop file

Copy the file`.desktop`provided :

cp ~/.local/kitty.app/share/applications/kitty.desktop ~/.local/share/applications/

Edit the desktop file

Edit the file:

nano ~/.local/share/applications/kitty.desktop

Check or modify the following lines:

[Desktop Entry]
Version=1.0
Type=Application
Name=Kitty Terminal
Comment=Fast GPU-based terminal emulator
Exec=/home/$USER/.local/kitty.app/bin/kitty
Icon=kitty
Categories=System;TerminalEmulator;

Replace`YOURUSER`by your username.

@startuml
title Process of integrating Kitty into the Xubuntu menu
start
:Copier .desktop;
:Editer les chemins;
:Sauvegarder;
:Menu Applications;
stop
@enduml

Set Kitty as the default terminal (optional)

So that Kitty is the default terminal:

sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator ~/.local/kitty.app/bin/kitty 50
sudo update-alternatives --config x-terminal-emulator

Select`kitty`in the proposed menu.

Installation of Zsh

If Zsh is not yet installed, run:

sudo apt install zsh

Check the installation:

zsh --version

Set Zsh as default shell

You can change your shell globally or only in Kitty.

Global method (for all terminals)

Identify the absolute path:

which zsh

In general`/usr/bin/zsh`.

Change the default shell:

chsh -s /usr/bin/zsh

Log out and then log back in.

@startuml
title Global shell change
actor User

User --> Bash : Session actuelle
User --> System : chsh -s /usr/bin/zsh
System --> "/etc/passwd" : Modifie le shell
note right of "/etc/passwd" : Shell par défaut mis à jour
@enduml

Kitty-specific method

If you prefer to only change the shell in Kitty, edit the configuration file:

nano ~/.config/kitty/kitty.conf

Add this line:

shell zsh

Save and restart Kitty.

Configuration of Zsh (optional)

To customize your Zsh:

Create a .zshrc file

touch ~/.zshrc
nano ~/.zshrc

Example of minimal configuration

export ZSH_THEME="robbyrussell"
export PATH="$HOME/.local/bin:$PATH"
alias ll="ls -la"

Summary of the complete workflow

The diagram below summarizes the whole process:

@startuml
title Installation and configuration workflow
start
:Téléchargement script Kitty;
:Installation dans ~/.local;
:Création symlink;
:Ajout ~/.local/bin au PATH;
if (Zsh installé ?) then (non)
  :sudo apt install zsh;
endif
:Configurer Kitty.desktop;
:Optionnel - changer terminal par défaut;
:Optionnel - chsh -s /usr/bin/zsh;
stop
@enduml

Final verification

Launch Kitty :

kitty

You should see that`zsh`is active :

echo $SHELL

Expected result:

/usr/bin/zsh

To change the font size inKitty, it is necessary to adjust the parameter`font_size`in the configuration file. Here is the detailed procedure:

📂 Open the configuration file

The main configuration file is usually located in :

~/.config/kitty/kitty.conf

If this file does not yet exist, you can create it. Example :

nano ~/.config/kitty/kitty.conf

�🖋️ Add or modify `font_size

Add the following directive, or modify it if it already exists:

font_size 14.0

Here`14.0`matches the desired size. You can set any decimal value, for example`12.0`, 15.5, etc.

💾 Save and restart Kitty

  • Save (Ctrl + O, then`Entrée`) and leave (Ctrl + X) if you are using`nano`.

  • Close all Kitty windows, then restart the terminal for the change to take effect.

✅ Dynamic adjustment (Temporary zoom)

If you want to temporarily zoom in/out without changing the settings, use the default keyboard shortcuts:

  • Increase the font size:

Ctrl + Shift + =

  • Decrease the font size:

Ctrl + Shift + -

  • Reset the size:

Ctrl + Shift + Backspace

These settings do not persist after the terminal is closed.

Installation and configuration of Oh My Zsh

Once Zsh is installed and configured as your default shell, you can enrich your environment with Oh My Zsh, a framework for managing Zsh configuration, offering:

  • a collection of themes for the prompt,

  • many plugins,

  • a clear organization of the configuration.

Installation of Oh My Zsh

Make sure that Zsh is active:

zsh --version

If necessary, launch:

zsh

Then download and run the official installation script:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

This script :

  • creates the folder`~/.oh-my-zsh`,

  • Optionally save your file`~/.zshrc`,

  • automatically activates the new prompt.

Change the theme

Open your configuration file:

nano ~/.zshrc

Modify the variable`ZSH_THEME`to choose another theme (for example`agnoster`):

ZSH_THEME="agnoster

Save then reload the configuration:

source ~/.zshrc

Verification

Launch Kitty and verify that the prompt has changed correctly. You can confirm that Oh My Zsh is active by executing:

echo $ZSH

The result should be similar to:

/home/your_user/.oh-my-zsh

Use case diagram

@startuml
title Use case installation and usage of Oh My Zsh
actor Utilisateur as User

package "Kitty Terminal" {
  component "Zsh Shell" as Zsh
}

component "Oh My Zsh Framework" as OhMyZsh

User --> Kitty : Lance Kitty
Kitty --> Zsh : Initialise Zsh
Zsh --> OhMyZsh : Charge configuration (~/.zshrc, thèmes, plugins)
User --> OhMyZsh : Personnalise le thème et les plugins

@enduml

Enable translucency in Kitty

One of Kitty’s most appreciated features is the ability to add transparency to the terminal background. This allows you to faintly see the underlying environment (window, desktop, etc.), which is particularly useful for multitasking.

Prerequisites for transparency

Transparency in Kitty is based on thewindow composerused by the graphical environment. On Xubuntu (based on XFCE), make sure that thecomposition is activated.

To verify :
  • right-click on the desktop > Settings >Window manager settings,

  • tabComposer: the Activer la composition box must be checked.

@startuml
title Use Case - Enable transparency in Kitty
actor Utilisateur

rectangle "Graphical environment (XFCE/Xubuntu)" {
  usecase "Enable composition" as UC1
}

rectangle "Kitty Terminal" {
  usecase "Set transparency in kitty.conf" as UC2
}

Utilisateur --> UC1
Utilisateur --> UC2

@enduml

Configuration of transparency in kitty.conf

Open your configuration file`~/.config/kitty/kitty.conf`</think>

nano ~/.config/kitty/kitty.conf

Add or modify the following lines:

background_opacity 0.85

This parameter accepts values between:

  • 1.0→ opaque (no transparency),

  • 0.0→ completely transparent (unusable)

  • intermediate values like`0.90`, 0.75, etc.

A good visual compromise is usually between`0.85` et 0.95.

Restart Kitty

Close all instances of Kitty, then launch a new window for the changes to take effect:

kitty

Possible complements

If you use a custom terminal background, you can also set a background color with transparency (in RGBA):

background #1e1e2eff

The last component`ff`) indicates the opacity (of`00` à ff).

Sequence diagram - Kitty initialization with transparency

@startuml
title Kitty startup sequence with transparency
actor User
participant "Kitty" as Kitty
participant "XFCE Compositor" as XFCE
participant "GPU/Window Manager" as WM

User -> Kitty : Lance Kitty
Kitty -> kitty.conf : Lit configuration
Kitty -> XFCE : Vérifie composition activée
XFCE --> Kitty : Composition = active
Kitty -> WM : Demande allocation fenêtrée transparente
WM --> Kitty : OK (rendu avec alpha < 1)
Kitty -> User : Affiche terminal translucide

@enduml

Known limitations

Translucency does not work if : - the XFCE compositor is disabled, - an incompatible window manager is being used, - you are using Kitty in a tmux mode in the background without transparency support.

Disable the audible bell

By default, Kitty emits a beep sound when an erroneous command is entered or a terminal event triggers it. This noise can quickly become annoying, especially in an intensive development environment.

To disable this behavior, add the following directive to the file`~/.config/kitty/kitty.conf`:

audible_bell no

You can also enable a visual feedback instead of the beep sound with:

visual_bell yes

Update of Kitty

Since Kitty is installed via a script and not a package manager, updating is done by rerunning the official installation script. This allows you to download the latest version and update your existing installation in`~/.local/kitty.app`.

The suffix`.app`in the path`~/.local/kitty.app`is the Kitty installation convention on Linux via its official script, and in no way indicates exclusive compatibility with macOS.

Before running the update command, make sure you are in your home directory (~)

Run the following command from your home directory:

curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin

This script will handle:

  • Download the binaries of the new version.

  • Extract the files in`~/.local/kitty.app`.

  • Update symbolic links if necessary.

After the update, it is recommended to close all instances of Kitty and restart them to ensure that the new version is properly taken into account.

Conclusion

You now have:

  • of a modern and high-performance terminal (Kitty)

  • of a powerful and customizable shell (Zsh)

  • of a clean configuration independent of system packages

  • of an aesthetic and functional terminal equipped with Oh My Zsh

Related articles