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