Home

Mastering kitty terminal

<2020-11-20 Fri>

kitty - the fast, featureful, GPU based terminal emulator

I've been using kitty for quite a long time now. Before it was iTerm and it was slow as my grand-mom's computer. Opening a new tab literally takes forever, I am always starting to type before it is loaded.

My life was desperate and wasteful before I found kitty.

kitty.jpg
Figure 1: kitty - an animal

Not that one, this one.

the-kitty.png
Figure 2: kitty - a terminal

I have tried and used different terminal emulators but prefer this one because it allows me to use less mouse, do the job faster and concentrate on the programming. As a person who uses Emacs in a terminal it's especially important to have a responsive environment.

One thing that I like about it is tabs. They were made as a simple text.

new-tab.png
Figure 3: Tabs are text

Kitty allows to control terminal in any way, like send some text to one of the tabs, jump to the tab by name, split windows and run in each of them some command.

One particular feature that I use every day is theme changer.

theme-changer.gif
Figure 4: Change theme on the fly

I wrote a script that loads all themes from the folder, pipes them to fzf and tells kitty to change the color scheme when selected.

Now let's find out about kittens - small terminal programs that can be used to extend kitty's functionality.

For example Unicode input.

unicode-input.gif
Figure 5: Choose Unicode and paste at cursor

Another example of kitten: press a shortcut and paste file path from the screen. I know that there are a lot of programs like fpp and a lot of plugins for tmux. I played with all of them and none of them worked as good as this one.

file-path-chooser.gif
Figure 6: Choose file path and paste

You can also choose/copy/insert lines, IPs, URLs or even write your own nice little kitten which will parse the screen by your pattern (e.g. parse and copy timestamps).

But sometimes you might need to select something specific. Well no problema amigo, press another shortcut and buffer output will be redirected to any program you want (vim in my example). Then few presses and voila it's in the clipboard.

clipboard.gif
Figure 7: Find and copy

Next, I use telegram in terminal so when notification comes and I press on it I will jump right to the correct tab.

jump-to-tab.gif
Figure 8: Bang, boom, jump to the tab

Now, window layouts. A layout is an arrangement of multiple kitty windows inside a top-level OS window. It's nothing new, every terminal has this feature already. But I found it more convenient. You can choose layout on the fly, split window however you want, move it around, etc.

layouts.gif
Figure 9: Split window however you want

There is nothing special nowadays to be able to view images in a terminal. It's working great, I use it regularly to view pictures/stickers from telegram.

icat.gif
Figure 10: Images in terminal

Conclusion

Kitty has a lot of other cool features and customization, check it out.

I don't want you to convince to use one terminal over another. I want to share my experience and will be happy if it will help somebody (or improve personal life).

P.S. If you did some cool stuff with kitty, please share it.