'kitty' Terminal Emulator

'kitty' Terminal Emulator
Share on:

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

kitty 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 want 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

kitty is a “true colour” terminal, 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:

cd /usr/share/doc/kitty
cp 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 each and 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:

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

The contents of my session file looks like this:

## TAB 1
new_tab SYSTEM
enabled_layouts tall
layout tall
launch bpytop
launch nvtop

## TAB 2
new_tab RANGER
enabled_layouts tall
layout tall
launch ranger

## TAB 3
new_tab MUSIC
enabled_layouts tall, grid
layout tall
launch ncmpcpp
launch curseradio-improved
launch pulsemixer
launch cava

## TAB 4
new_tab NEWSBOAT
enabled_layouts tall
layout tall
launch newsboat

## TAB 5
new_tab CALCURSE
enabled_layouts tall
layout tall
launch calcurse

## TAB 6
new_tab OTHER
enabled_layouts tall
layout tall
launch 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 Alcritty terminal, but want a lot more in the way of features - check out kitty.