Install the Kitty terminal and set Zsh as the default shell on Xubuntu
Published on 07 May 2026 Updated on 2026-05-07
- Why choose Kitty and Zsh?
- System prerequisites
- Download and installation of Kitty
- Integration of Kitty in Xubuntu
- Installation of Zsh
- Set Zsh as default shell
- Configuration of Zsh (optional)
- Summary of the complete workflow
- Final verification
- Installation and configuration of Oh My Zsh
- Enable translucency in Kitty
- Disable the audible bell
- Update of Kitty
- References
- Conclusion
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
Creation of symbolic links
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.
-
right-click on the desktop > Settings >Window manager settings,
-
tabComposer: the
Activer la compositionbox 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:
|
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.
References
If you wish to delve deeper into customization, see the official documentation :
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