My favourite kitty terminal features
After using iTerm2 for over 10 years I decided it was time to try something else because I was finding iTerm2 to be too slow for my needs. I've tried Alacritty (with and without Zellij), WezTerm and kitty for a few weeks each and I ended up going with kitty since then.
Here are my favourite features (so far):
kitty-scrollback
Kittens are plugins for kitty that can be written in python. kitty comes with a few out-of-the-box kittens like the theme selector or the unicode input tool.
Having a nice search on the scrollback was super handy on iTerm2 but I've found this amazing kitten called kitty-scrollback.nvim that grabs the scrollback and opens on neovim for you to work with it so you can manipulate however you want it. Much more than simply searching, one can operate on the text using your fully configured neovim editor. On exit it also gives you easy ways to copy or copy and execute whatever you selected.
Here is a GIF from the project's README:
Hints
kitty has a hints mode to select and act on arbitrary text snippets currently visible on the screen.
It means that you can select hashes (like git commit hashes), URLs, file + line and number and act on them. Examples of actions that can be performed on these hints:
- Open your editor on the file and line number.
- Open the URL in your browser.
- Copy the hash to your clipboard to
git-cherry-pick
Much more information here
Layouts and "zoom"
kitty comes with a few handy layouts that automatically tile windows (where iTerm2 calls them panes). I essentially use only two layouts: Tall and Stack.
Tall goes like this when new windows are created:
┌──────────────────────────────┐
│ │
│ │
│ │
│ │
│ │
│ 1 │
│ │
│ │
│ │
│ │
│ │
└──────────────────────────────┘
┌──────────────┬───────────────┐
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ 1 │ 2 │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
└──────────────┴───────────────┘
┌──────────────┬───────────────┐
│ │ │
│ │ │
│ │ 2 │
│ │ │
│ │ │
│ 1 ├───────────────┤
│ │ │
│ │ │
│ │ 3 │
│ │ │
│ │ │
└──────────────┴───────────────┘
┌──────────────┬───────────────┐
│ │ │
│ │ 2 │
│ │ │
│ ├───────────────┤
│ │ │
│ 1 │ 3 │
│ │ │
│ ├───────────────┤
│ │ │
│ │ 4 │
│ │ │
└──────────────┴───────────────┘
Stack is much simpler as it simply displays one window at a time and all new windows are inserted "behind" the existing ones forming a stack.
kitty also allows you to toggle a layout using a command like this:
map kitty_mod+z toggle_layout stack
Which essentially allows me to type ctrl + shift + z
to "zoom" into the main tall window by switching back and forth to the stack layout. Here is a GIF:
At the moment I don't miss any feature from iTerm2 so overall I'm happy that I switched to use kitty. kitty is maintained by Kovid Goyal and has an active community so I'm sure it will continue to improve. If you also like kitty maybe consider supporting Kovid
Posted on December 15, 2024