Skip to main content

Kitty.conf Reference

The ~/.config/kitty/kitty.conf file controls every aspect of kitty's behavior. This reference groups all options by category with defaults and descriptions.

Learning Focus

Use this as a lookup reference. You don't need to memorize options — bookmark this page and search it when you need a specific setting.

Font Settings

SettingDefaultDescription
font_familymonospacePrimary font family
bold_fontautoFont for bold text (auto = derived from font_family)
italic_fontautoFont for italic text
bold_italic_fontautoFont for bold-italic text
font_size11.0Font size in points
font_featuresnoneOpenType feature tags (e.g., FiraCode +zero +cv01)
disable_ligaturesneverDisable ligatures: never, always, cursor
adjust_line_height0Extra line height in points (positive = taller)
adjust_column_width0Extra column width in points
font_family_monospacenoneFont used when $LANG Unicode width differs
symbol_mapnoneMap Unicode codepoints to specific fonts
force_ltrnoForce left-to-right text direction
narrow_symbolsnoneTreat specific Unicode chars as narrow

Cursor Settings

SettingDefaultDescription
cursor_shapeblockCursor shape: block, beam, underline
cursor_blink_interval-1Blink interval in ms (-1 = no blink, 0 = system default)
cursor_stop_at_powerlinenoStop cursor at powerline glyphs (avoid visual gap)
cursor_trail0Cursor trail length (0 = off, 1-3 are reasonable)
cursor_beam_thickness1.5Thickness of beam cursor in points
cursor_underline_thickness2.0Thickness of underline cursor in points
cursor_shape_unfocusedunderlineCursor shape when window is unfocused

Scrollback Settings

SettingDefaultDescription
scrollback_lines10000Number of lines kept in scrollback buffer
scrollback_indicator_opacity0.0Opacity of scrollback indicator (0-1, 0 = hidden)
scrollback_pager_history_size5Number of history lines shown in pager
scrollback_fill_enlarged_windownoFill new window area with scrollback content

Mouse Settings

SettingDefaultDescription
mouse_hide_wait2.0Seconds before hiding mouse cursor (-1 = never hide)
url_color#0087bdColor for underlined URLs
url_stylecurlyURL underline style: none, single, double, curly
url_prefixesftp ssh git http https rsyncProtocols detected as clickable URLs
open_url_withdefaultCommand to open URLs (default = xdg-open)
click_interval-1.0Double-click interval (-1 = system default)
focus_follows_mousenoWindow focus follows mouse movement
pointer_shape_when_grabbedarrowCursor shape when pointer is grabbed

Performance Settings

SettingDefaultDescription
repaint_delay10Min delay between screen repaints (ms, lower = smoother)
input_delay3Min delay between input event processing (ms)
sync_to_busyyesSync rendering to application output rate
repaint_defer_delay5Delay after input before repaint (ms)
flush_when_urgent_inputyesRepaint immediately on urgent (bell) input
fullscreen_new_windownoCreate new windows in fullscreen mode
confirm_os_window_close0Prompt on close: 0 = no, 1 = always, 2 = if multiple windows

Bell Settings

SettingDefaultDescription
visual_bell_duration0.0Duration of visual bell flash (seconds, 0 = off)
enable_audio_bellyesEnable system bell sound
bell_on_tab🔔Text/label shown on tab when bell occurs
visual_bell_colornoneColor for visual bell flash
window_alert_on_bellyesFlash taskbar/dock on bell
urgent_on_bellyesMark window as urgent on bell

Window Settings

SettingDefaultDescription
background_opacity1.0Window background opacity (0.0-1.0, requires compositor)
background_blur0Background blur radius (requires compositor with blur)
window_padding_width0Internal padding in pixels (number or NxM)
window_margin_width0External margin in pixels (number or NxM)
placement_strategycenterWindow placement: center, top-left, top-right, etc.
remember_window_sizeyesRemember and restore window size
initial_window_width640Initial window width in pixels
initial_window_height400Initial window height in pixels
hide_window_decorationsnoHide title bar (requires WM with CSD support)
resize_debounce_time0.1Delay before resizing after window resize (seconds)
resize_in_stepsnoResize in cell-size steps only
window_border_width0.0Active window border width in points

Tab Bar Settings

SettingDefaultDescription
tab_bar_stylepowerlineTab bar style: hidden, powerline, slanted, separator, custom
tab_bar_edgetopTab bar position: top or bottom
tab_bar_min_tabs2Minimum tabs before bar appears
tab_separatorSeparator between tabs (if tab_bar_style = separator)
tab_activity_symbolnoneSymbol shown on tabs with activity
active_tab_foreground#000Active tab text color
active_tab_background#eeeActive tab background color
inactive_tab_foreground#444Inactive tab text color
inactive_tab_background#999Inactive tab background color
tab_bar_margin_width0.0Margin around tab bar

Colors

SettingDefaultDescription
foreground#ddddddDefault text color
background#000000Default background color
selection_foreground#000000Selected text color
selection_background#fffacdSelection highlight color
color0 through color15ANSI paletteStandard 16 ANSI terminal colors
color16 through color255Extended paletteExtended 256-color palette
mark1_foreground#000First highlight color (e.g., search match)
mark1_background#98d8c8First highlight background
mark2_foreground#000Second highlight color
mark2_background#f4d03fSecond highlight background
mark3_foreground#000Third highlight color
mark3_background#e74c3cThird highlight background
url_color#0087bdURL highlight color

Advanced Settings

SettingDefaultDescription
shell. (login shell)Program to run inside kitty windows
termxterm-kittyValue of $TERM environment variable
envnoneAdditional environment variables (ENV_NAME VALUE)
clipboard_controlwrite-clipboard clipboardClipboard access: read-clipboard, write-clipboard, etc.
allow_remote_controlnoEnable remote control: no, yes, socket-only, password
listen_onnoneRemote control socket path
strip_trailing_spacessmartStrip trailing spaces on paste: never, smart, always
input_delay3Min delay between input processing (ms)
kitty_modctrl+shiftModifier key prefix for shortcuts
clear_all_shortcutsnoRemove all default shortcuts (for fully custom mapping)
file_transfer_confirmationalwaysConfirmation for file transfers: always, never, large
sync_protocolnoEnable synchronized update protocol
copy_on_selectnoAuto-copy selection to clipboard

Deprecated / Removed

SettingReplacementNotes
cursor_colorUse color0/color1 or shell-level cursor control
cursor_text_colorCursor text color depends on background contrast
dynamic_background_opacitybackground_opacityRenamed in kitty 0.20
font_family_emojisymbol_mapUse symbol_map to map emoji codepoints

Complete Config Validation

# Check your whole config for errors
kitty --debug-config 2>&1

# See effective settings (including defaults)
kitty @ get-colors

# Dump all options with current values
grep -v "^#" ~/.config/kitty/kitty.conf | grep -v "^$" | head -100

# Check a specific setting
grep "^background_opacity" ~/.config/kitty/kitty.conf

Common Pitfalls

PitfallSymptomFix
Syntax error (missing space)Setting ignored silentlyUse format: setting value (space separated)
Wrong value typeKitty falls back to defaultCheck types: numbers, strings, colors (#rrggbb)
background_opacity has no effectNo compositor runningInstall picom (X11) or use Wayland with native blur
kitty_mod not workingShortcuts use old prefixChange kitty_mod before any other key mapping
Color names instead of hexColor not appliedAlways use hex format: #rrggbb
allow_remote_control not setkitty @ commands failRestart kitty after setting allow_remote_control yes
Tab bar not visibletab_bar_style hiddenSet tab_bar_style powerline or tab_bar_style slanted

Hands-On Practice

# 1. View your complete effective config
kitty @ get-colors
grep -v "^#" ~/.config/kitty/kitty.conf | grep -v "^$"

# 2. Validate your config
kitty --debug-config 2>&1

# 3. Test a temporary setting change
echo "background_opacity 0.8" >> ~/.config/kitty/kitty.conf
kitty @ load-config
# Remove it if you don't want it permanently

# 4. Create a minimal working config
cat > /tmp/minimal-kitty.conf << 'EOF'
font_family monospace
font_size 12
cursor_shape beam
scrollback_lines 5000
tab_bar_style powerline
EOF

# Test it
kitty --config /tmp/minimal-kitty.conf &

What's Next