Sup y'all. Back with another post on my terminal setup. This time we've migrated away from iTerm2, after maybe a decade of use, and into kitty. It's an open source fast, feature-rich, GPU based terminal emulator. And I mean fast. It's blazing fast. This guide is macOS
specific, but it should be easy to adapt to other platforms.
Step 1: Installing Kitty
First, you'll need to install kitty
. We're gonna use brew
to do this.
brew install kitty
Step 2: Configuring Kitty
There are so many options, so def explore. Luckily all config is basically inside one file. There's a standard template you can use to get started. Kitty offers versatile customization, from keyboard shortcuts to FPS rendering. Explore its extensive personalized options.
Access Kitty's config file using the shortcut Ctrl
+ Shift
+ F2
(Cmd
+ ,
on macOS) for easy customization. You can also use kitty +kitten config
to open the config file in a text editor.
This file is located in ~/.config/kitty/kitty.conf
typically. You can change this path, more info here. I've truncated the file overal for brevity, but typically the default config is quite extensive with vim folding and comments.
The first plugin (integration) I'd recommend is kitty-kitten-search
. It's a plugin that allows you to search for text in all open Kitty windows. Here's a link.
I trigger the ssearch with cmd
+ f
or cmd
+ /
via:
map kitty_mod+/ launch --location=hsplit --allow-remote-control kitty +kitten search.py @active-kitty-window-id map kitty_mod+f launch --location=hsplit --allow-remote-control kitty +kitten search.py @active-kitty-window-id
I also use kitty-themes
to set my theme. Here's a link to the repo.
My kitty
config, as of October, 2nd, 2024 is below:
# vim:fileencoding=utf-8:ft=conf # map cmd+left previous_tab # Go to previous tab # map cmd+right next_tab # Go to next tab # map cmd+t new_tab # Create new tab # map kitty_mod+alt+t set_tab_title # Set tab title active_border_color #0c0c0c adjust_line_height 130% allow_remote_control yes background_blur 25 background_opacity 0.90 bell_on_tab yes bold_font family='Hack Nerd Font Mono' postscript_name=HackNFM-Bold bold_italic_font family='Hack Nerd Font Mono' postscript_name=HackNFM-BoldItalic copy_on_select yes cursor_beam_thickness 2.0 cursor_blink_interval -1 cursor_shape block cursor_stop_blinking_after 15.0 cursor_underline_thickness 2.0 dim_opacity 0.50 disable_ligatures never draw_minimal_borders yes enable_audio_bell no enable_audio_bell yes # enabled_layouts tall,fat,horizontal,vertical enabled_layouts fat:bias=50;full_size=1;mirrored=false,horizontal,vertical focus_follows_mouse no font_family family='Hack Nerd Font Mono' postscript_name=HackNFM-Regular font_features none font_size 11 hide_window_decorations yes inactive_border_color #0c0c0c inactive_text_alpha 0.4 include ./theme.conf italic_font family='Hack Nerd Font Mono' postscript_name=HackNFM-Italic kitty_mod cmd listen_on unix:/tmp/kitty macos_show_window_title_in none map cmd+down scroll_line_down # Scroll down one line map cmd+up scroll_line_up # Scroll up one line map kitty_mod+[ previous_window map kitty_mod+] next_window map kitty_mod+/ launch --location=hsplit --allow-remote-control kitty +kitten search.py @active-kitty-window-id map kitty_mod+end scroll_end # Scroll to bottom map kitty_mod+f launch --location=hsplit --allow-remote-control kitty +kitten search.py @active-kitty-window-id map kitty_mod+home scroll_home # Scroll to top map kitty_mod+page_down scroll_page_down # Scroll down one page map kitty_mod+page_up scroll_page_up # Scroll up one page map kitty_mod+shift+n new_window map kitty_mod+d new_window map kitty_mod+w close_window map kitty_mod+x scroll_to_prompt 1 # Scroll to next prompt map kitty_mod+z scroll_to_prompt -1 # Scroll to previous prompt modify_font strikethrough_position 12px modify_font underline_position 3 modify_font underline_thickness 150% mouse_hide_wait 3.0 open_url_modifiers cmd open_url_with default remember_window_size no scrollback_lines 10000 scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER select_by_word_characters @-./_~?&=%+# shell_integration enabled no-title startup_session default_session.kitty symbol_map U+f101-U+f27d nonicons touch_scroll_multiplier 1.0 url_prefixes http https file ftp git url_style curly wheel_scroll_multiplier 3.0 window_alert_on_bell yes window_alert_on_bell yes window_margin_width 15 window_padding_width 15 window_resize_step_cells 2 window_resize_step_lines 2 allow_hyperlinks yes
Here's some awesome examples of what some other people have done with kitty
.
No previews, great reference
With previews
Hope you give kitty
a try and find it useful and the speed refreshing as I do.