Skip to main content

Keyboard Shortcuts Reference

Kitty uses Ctrl+Shift as its modifier prefix. Every keyboard shortcut combines these modifiers with another key — pressed simultaneously, not sequentially like tmux.

Learning Focus

Building muscle memory for the essential kitty shortcuts is the single fastest way to boost terminal productivity. Focus on window splitting, tab management, and the command palette first.

Core Idea

Kitty shortcuts use simultaneous modifier+key chords (e.g., Ctrl+Shift+Enter). Hold all keys at once. This differs from tmux where you press the prefix, release, then press the command key.

Shortcut Hierarchy

┌─────────────────────────────┐
│ Ctrl+Shift (prefix) │
└──────────┬──────────────────┘

┌──────────────────┼──────────────────┐
▼ ▼ ▼
Window Mgmt Tab Mgmt Misc/UI
│ │ │
┌─────────┴──────┐ ┌──────┴──────┐ ┌──────┴──────┐
▼ ▼ ▼ ▼ ▼ ▼
Enter Alt+Enter q t ↑/↓ 1-9 p l s F5
split split hoz cls new switch go cmd lay relo.
vert tab tab tab pal out conf

Modifier Legend

ChordMeaning
Ctrl+Shift+KeyStandard kitty binding
Ctrl+Shift+Alt+KeyExtended binding (alt modifier)
Ctrl+Shift+F5Special function binding

Window Management Shortcuts

ShortcutAction
Ctrl+Shift+EnterNew window (vertical split — right half)
Ctrl+Shift+Alt+EnterNew window (horizontal split — bottom half)
Ctrl+Shift+arrowsFocus adjacent window
Ctrl+Shift+jFocus window below
Ctrl+Shift+kFocus window above
Ctrl+Shift+hFocus window left
Ctrl+Shift+lFocus window right
Ctrl+Shift+Alt+arrowsMove window in direction
Ctrl+Shift+qClose focused window
Ctrl+Shift+zToggle window zoom (maximize/restore)
Ctrl+Shift+1-0Jump to window by number (0-9)
Ctrl+Shift+wShow window switcher (interactive)
Ctrl+Shift+rResize window interactively

Tab Management Shortcuts

ShortcutAction
Ctrl+Shift+tNew tab
Ctrl+Shift+qClose current tab (if last window)
Ctrl+Shift+↑Previous tab
Ctrl+Shift+↓Next tab
Ctrl+Shift+Alt+tMove tab forward
Ctrl+Shift+Alt+↑Move tab to previous position
Ctrl+Shift+Alt+↓Move tab to next position

Scrolling and Font Shortcuts

ShortcutAction
Ctrl+Shift+↑Scroll line up
Ctrl+Shift+↓Scroll line down
Ctrl+Shift+HomeScroll to top
Ctrl+Shift+EndScroll to bottom
Ctrl+Shift+PageUpScroll page up
Ctrl+Shift+PageDownScroll page down
Ctrl+Shift++Increase font size
Ctrl+Shift+-Decrease font size
Ctrl+Shift+0Reset font size to default

Layout Management Shortcuts

ShortcutAction
Ctrl+Shift+lNext layout (cycle layouts)
Ctrl+Shift+Alt+lPrevious layout
Ctrl+Shift+Alt+1Tall layout
Ctrl+Shift+Alt+2Stack layout
Ctrl+Shift+Alt+3Fat layout
Ctrl+Shift+Alt+4Grid layout
Ctrl+Shift+Alt+5Horizontal layout
Ctrl+Shift+Alt+0Reset to default layout
Layout Cycling

Press Ctrl+Shift+l repeatedly to cycle through all available layouts. Use Ctrl+Shift+w to see the current layout name in the window switcher.

The Command Palette

Ctrl+Shift+p opens the command palette — a fuzzy-searchable list of every kitty action. This is the fastest way to discover shortcuts and run commands without remembering specific keybindings.

┌──────────────────────────────────────┐
│ > new window ↵ │
│ ────────────────────────────────── │
│ new window │ │
│ new window (horizontal split) │ │
│ new tab │ │
│ close window │ │
│ next layout │ │
│ set font size 12 │ │
│ ... │ │
└──────────────────────────────────────┘

Type to filter; press Enter to execute. The palette shows the keyboard shortcut for each action on the right.

Showing Active Shortcuts

# list all active shortcuts from the command line
kitty @ ls

# show key bindings in a human-readable format
kitty @ get-text-encoding

# inside kitty, use the command palette (Ctrl+Shift+p)
# and search for "shortcut" or "keyboard"

Customizing Shortcuts via kitty.conf

Shortcuts are configured in ~/.config/kitty/kitty.conf:

~/.config/kitty/kitty.conf
# Map Ctrl+Shift+n to new window
map ctrl+shift+n new_window

# Map Ctrl+Shift+Alt+v to new window with vertical split
map ctrl+shift+alt+v new_window

# Move focus with Alt+hjkl (vim-style)
map alt+h neighboring_window left
map alt+j neighboring_window down
map alt+k neighboring_window up
map alt+l neighboring_window right

# Custom: reload config with Ctrl+Shift+F5 (default already)
map ctrl+shift+f5 load_config_file

# Custom: open a new tab in a specific directory
map ctrl+shift+o new_tab /home/user/projects

# Disable a default shortcut
map ctrl+shift+q none
warning

When you disable a default shortcut with map ... none, make sure you have an alternative binding or workflow. Some defaults like Ctrl+Shift+q (close window) are critical.

Common Pitfalls

PitfallSymptomFix
Pressing prefix like tmux (release-then-press)Shortcuts don't registerHold Ctrl+Shift simultaneously with the command key
Conflicting with host terminalShortcuts captured by host appUse kitty @ commands or change the conflicting binding
Disabling a shortcut without replacementCan't close windows or tabsAlways verify you have an alternative before setting to none
Case-insensitive map syntaxBinding ignoredUse lowercase modifier names: ctrl+shift+n not Ctrl+Shift+N
Forgetting to reload configNew shortcuts not activePress Ctrl+Shift+F5 or run kitty @ load-config

Hands-On Practice

# inside kitty, practice these essential shortcuts:

# 1) Split vertically
# Press: Ctrl+Shift+Enter

# 2) Split horizontally in the new window
# Press: Ctrl+Shift+Alt+Enter

# 3) Navigate between windows
# Press: Ctrl+Shift+arrows

# 4) Open a new tab
# Press: Ctrl+Shift+t

# 5) Open the command palette
# Press: Ctrl+Shift+p, then type "new window"

# 6) Cycle layouts
# Press: Ctrl+Shift+l several times

# 7) List all shortcuts from shell
kitty @ ls | grep -i map | head -30

# 8) Check your current config shortcuts
grep -E "^map" ~/.config/kitty/kitty.conf 2>/dev/null || echo "no custom maps yet"

What's Next