Skip to content

Adam Chalmers

My Kitty terminal config

I've been using Kitty terminal for five years now, and I'm really happy with it. Recently I got curious about how to make it look prettier (inspired by all the beautiful terminals I see in some programmer subreddits). So, keep reading for a little explanation of my Kitty config file.

I also made a video showing how I configure a totally fresh Kitty terminal from nothing.

But if you prefer text, keep reading.

Firstly, I like using programmer ligatures, so that fn my_func() -> String the arrow actually uses an arrow glyph. This feature is what originally pulled me towards Kitty terminal in the first place (iTerm 2 didn't support both GPU rendering and ligatures simultaneously, but Kitty did). Fira Code is a nice font my friend and mentor Areg showed me when I started working, so let's use it.

font_family     FiraCode Nerd Font Mono
font_size       14.0

Next, let's make Kitty look pretty. I use its multiplexed windows very often. By default they look kinda ugly, but I really like the way they look now.

window_margin_width     10
background_image        /Users/adamchalmers/Downloads/night_desert.png
background_image_layout scaled
background_tint         0.97
background_tint_gaps    -10.0

window_border_width     1pt
active_border_color     #44ffff

I think this looks pretty nice, personally.

Kitty with the window config described above

If I only have one multiplexer window, then I don't really need the nice gaps and borders though.

single_window_margin_width 0

Setting the enabled_layouts lets me choose the default layout. Personally I prefer the Tall layout. You might not. Check the docs for more options, or press ctrl+shift+l to cycle through the different window layouts and choose your favourite.

enabled_layouts Tall, *

This makes the Alt key work properly for keyboard shortcuts, which is really helpful for some CLIs like Helix.

macos_option_as_alt yes

Finally, some custom keybindings. Now f1 opens a new Kitty multiplexer window, just like ctrl+shift+enter would, but in the same directory. And f2 opens Helix (my preferred editor, currently) in the same window.

map f1 new_window_with_cwd
map f2 launch --cwd=current $EDITOR .

Finally, I think kitty's tab bar looks ugly by default, but it's easy to make it look nicer.

tab_bar_style       powerline
tab_powerline_style slanted

This is really just scratching the surface. Kitty has a lot of other config options, you can read its docs for more. I also really like its SSH support and inline image display. Let me know if there's a great feature I should be using that I'm not. You can view my full kitty config and other dotfiles on GitHub.