Skip to main content

Overview

Kitty is a fast, feature-rich, GPU-based terminal emulator that provides excellent performance and extensive customization options. This configuration focuses on a clean, efficient setup with the Iosevka font and sensible defaults.

Features

  • GPU Acceleration: Hardware-accelerated rendering for smooth performance
  • Font Ligatures: Full support for programming ligatures
  • Multiple Layouts: Flexible window management with tabs and splits
  • Mouse Support: Click URLs, copy on select, and visual feedback
  • Keyboard Shortcuts: Extensive keyboard-driven workflow

Installation

brew install kitty

Configuration

The main configuration file is located at ~/.config/kitty/kitty.conf.

Font Configuration

This setup uses Iosevka SS15, a versatile programming font with excellent readability:
font_family      Iosevka ss15
bold_font        Iosevka ss15 Bold
italic_font      Iosevka ss15 Italic
bold_italic_font auto

font_size 12.0
Install Iosevka from https://github.com/be5invis/Iosevka or use kitty list-fonts to see available fonts on your system.

Cursor Configuration

cursor_shape block
cursor_beam_thickness 1.5
cursor_underline_thickness 2.0
cursor_blink_interval -1  # No blinking (system default)
cursor_stop_blinking_after 15.0

Scrollback

scrollback_lines 2000
scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
wheel_scroll_multiplier 5.0

Mouse Behavior

mouse_hide_wait 3.0
url_style single
copy_on_select yes  # Auto-copy on selection
detect_urls yes
copy_on_select yes is a security risk as all programs can read clipboard. Set to no or use a private buffer name if concerned.

Window Layout

remember_window_size yes
initial_window_width 640
initial_window_height 400
enabled_layouts *
window_border_width 0.5pt
draw_minimal_borders yes
window_padding_width 0

Performance Tuning

repaint_delay 10      # ~100 FPS
input_delay 3         # Fast response
sync_to_monitor yes   # Prevent screen tearing

Tab Bar

tab_bar_edge bottom
tab_bar_style fade
tab_bar_min_tabs 2
tab_switch_strategy previous
tab_separator " ┇"
active_tab_font_style bold-italic

Key Bindings

Kitty uses ctrl+shift as the default modifier (referred to as kitty_mod).

Essential Shortcuts

ShortcutAction
ctrl+shift+cCopy to clipboard
ctrl+shift+vPaste from clipboard
ctrl+shift+sPaste from selection
shift+insertPaste from selection
ShortcutAction
ctrl+shift+enterNew window
ctrl+shift+nNew OS window
ctrl+shift+wClose window
ctrl+shift+]Next window
ctrl+shift+[Previous window
ctrl+shift+rStart resizing window
ctrl+shift+1-9Jump to window 1-9
ShortcutAction
ctrl+shift+tNew tab
ctrl+shift+qClose tab
ctrl+shift+rightNext tab
ctrl+shift+leftPrevious tab
ctrl+shift+.Move tab forward
ctrl+shift+,Move tab backward
ShortcutAction
ctrl+shift+upScroll line up
ctrl+shift+downScroll line down
ctrl+shift+page_upScroll page up
ctrl+shift+page_downScroll page down
ctrl+shift+homeScroll to top
ctrl+shift+endScroll to bottom
ShortcutAction
ctrl+shift+equalIncrease font size
ctrl+shift+minusDecrease font size
ctrl+shift+backspaceReset font size

Hints Mode

Kitty’s hints kitten allows keyboard-driven text selection:
map ctrl+shift+e kitten hints
map ctrl+shift+p>f kitten hints --type path --program -
map ctrl+shift+p>l kitten hints --type line --program -
map ctrl+shift+p>w kitten hints --type word --program -
map ctrl+shift+p>h kitten hints --type hash --program -

Theme Configuration

The configuration includes a separate theme file:
include kitty-theme.conf
Create ~/.config/kitty/kitty-theme.conf for your color scheme. Browse themes at Kitty Themes.

Advanced Features

Background Opacity

background_opacity 1.0
dynamic_background_opacity no
Enable dynamic opacity control:
map ctrl+shift+a>m set_background_opacity +0.1
map ctrl+shift+a>l set_background_opacity -0.1
map ctrl+shift+a>1 set_background_opacity 1

Ligatures

disable_ligatures never
Options: never, always, or cursor (disable when cursor is over them).

Remote Control

allow_remote_control no
listen_on none
Enable for programmatic control of kitty from scripts.

Customization Tips

1

List available fonts

kitty list-fonts
2

Test font features

kitty + list-fonts --psnames | grep <FontName>
3

Debug keyboard shortcuts

kitty --debug-keyboard
4

Edit configuration

Press ctrl+shift+f2 or edit ~/.config/kitty/kitty.conf

Troubleshooting

Ensure the font is installed system-wide. Use kitty list-fonts to verify availability.
Check your TERM variable:
echo $TERM  # Should be xterm-kitty
Verify your font supports ligatures and disable_ligatures is set to never.

Resources

Build docs developers (and LLMs) love