'kitty' Terminal Emulator

kitty Terminal Emulator

One of my favourite terminal emulators on Linux has always been "Alacritty". It's lightweight and fast. Recently however, I've found myself using the "kitty" terminal a lot more. Here is a run-down of some features that I like about it.

GPU Rendering

The kitty terminal feels just as fast as "Alacritty" as it uses GPU offloading for rendering its windows. This means that any graphically intensive output in the terminal or actions like scrolling through terminal history will feel really smooth. In the video below I show kitty running cxxmatrix — a tool designed to test the performance of terminal emulators.

Windows

One of the things I love about kitty, is its multiplexing ability. This means you can split your main window into additional terminal windows inside the same terminal session. If you've ever used the "Terminator" terminal emulator or "tmux", you probably already know what this is. This allows you to have more than one "TUI" (Text User Interface) app open at once by creating additional windows, tabs or sessions.

When I use Alacritty, if I need more than one terminal open at a time, I have to press Super + Return a few times to launch multiple terminals on my screen, or use tmux with it. However, with kitty, I can open one kitty session and create additional windows inside it by pressing Ctrl + Shift + Return. If I need multiplexing in my multiplexing - I can use tmux on a separate kitty tab or window.

Tabs

If I want to separate or group my terminal tasks, I can create tabs by pressing Ctrl + Shift + t. This means I can have one tab for system monitoring, one for audio, RSS feeds, calendar or any other tools I wish to use. I find this method far better for doing terminal work, and can quickly switch between the tabs to access the tools I'm using.

You can quickly add tabs from within the terminal session by pressing the Ctrl + Shift + t hot key. To close a tab it's Ctrl + Shift + w.

Images

The kitty terminal is "true colour", meaning it can display up to sixteen million colours in a window. One of the instant benefits of this, is that I can use my terminal file manager named "ranger", along with a kitty "Kitten" program named "icat", which can then allows me to display images in full colour. Check out the other kitty - "Kittens" here.

Config File

The default configuration file for kitty is located in /usr/share/doc/kitty and can be copied to the user folder by typing:

1cd /usr/share/doc/kitty
2cp kitty.conf $HOME/.config/kitty/kitty.conf

The kitty config file is huge, and it allows for a lot of customization. Therefore, I'd recommend taking a look at the kitty webpage to understand every configuration option.

Session File

By making use of the "session" file, I can launch kitty once, and it will automatically load all the TUI apps that I use most often. Apps like "Ranger", "Newsboat", "Calcurse" and "ncmpcpp". This means that I don't have to repeatedly type their names into a terminal window when I want to use them all at once.

The session file is located inside the kitty folder and can be called to run like this:

1kitty --session ~/.config/kitty/session

The contents of my session file looks like this:

 1## TAB 1
 2new_tab SYSTEM
 3enabled_layouts tall
 4layout tall
 5launch bpytop
 6launch nvtop
 7
 8## TAB 2
 9new_tab RANGER
10enabled_layouts tall
11layout tall
12launch ranger
13
14## TAB 3
15new_tab MUSIC
16enabled_layouts tall, grid
17layout tall
18launch ncmpcpp
19launch curseradio-improved
20launch pulsemixer
21launch cava
22
23## TAB 4
24new_tab NEWSBOAT
25enabled_layouts tall
26layout tall
27launch newsboat
28
29## TAB 5
30new_tab CALCURSE
31enabled_layouts tall
32layout tall
33launch calcurse
34
35## TAB 6
36new_tab OTHER
37enabled_layouts tall
38layout tall
39launch zsh

Once open, you can navigate through the tabs by pressing the Ctrl + Shift + Arrow Keys. Pressing Ctrl + Shift + [ & ] you can cycle through each window split in a tab. You can find a full list of all the other shortcut keys here.

Memory Usage

After launching four Alacritty terminal windows, I noticed that they were using 10 MB GPU RAM and 88 MB of HOST memory each, whereas with one kitty session and multiple windows and tabs open was using 8 MB GPU memory and 175 MB HOST memory. That's pretty good considering all the stuff I have going on in my terminal windows.

Summary

There is a lot more to kitty than what I have outlined in this brief overview here. If you love the speed of the Alacritty terminal, but want a lot more in the way of features - check out kitty.