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.
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.
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
| Chord | Meaning |
|---|---|
Ctrl+Shift+Key | Standard kitty binding |
Ctrl+Shift+Alt+Key | Extended binding (alt modifier) |
Ctrl+Shift+F5 | Special function binding |
Window Management Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Shift+Enter | New window (vertical split — right half) |
Ctrl+Shift+Alt+Enter | New window (horizontal split — bottom half) |
Ctrl+Shift+arrows | Focus adjacent window |
Ctrl+Shift+j | Focus window below |
Ctrl+Shift+k | Focus window above |
Ctrl+Shift+h | Focus window left |
Ctrl+Shift+l | Focus window right |
Ctrl+Shift+Alt+arrows | Move window in direction |
Ctrl+Shift+q | Close focused window |
Ctrl+Shift+z | Toggle window zoom (maximize/restore) |
Ctrl+Shift+1-0 | Jump to window by number (0-9) |
Ctrl+Shift+w | Show window switcher (interactive) |
Ctrl+Shift+r | Resize window interactively |
Tab Management Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Shift+t | New tab |
Ctrl+Shift+q | Close current tab (if last window) |
Ctrl+Shift+↑ | Previous tab |
Ctrl+Shift+↓ | Next tab |
Ctrl+Shift+Alt+t | Move tab forward |
Ctrl+Shift+Alt+↑ | Move tab to previous position |
Ctrl+Shift+Alt+↓ | Move tab to next position |
Scrolling and Font Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Shift+↑ | Scroll line up |
Ctrl+Shift+↓ | Scroll line down |
Ctrl+Shift+Home | Scroll to top |
Ctrl+Shift+End | Scroll to bottom |
Ctrl+Shift+PageUp | Scroll page up |
Ctrl+Shift+PageDown | Scroll page down |
Ctrl+Shift++ | Increase font size |
Ctrl+Shift+- | Decrease font size |
Ctrl+Shift+0 | Reset font size to default |
Layout Management Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Shift+l | Next layout (cycle layouts) |
Ctrl+Shift+Alt+l | Previous layout |
Ctrl+Shift+Alt+1 | Tall layout |
Ctrl+Shift+Alt+2 | Stack layout |
Ctrl+Shift+Alt+3 | Fat layout |
Ctrl+Shift+Alt+4 | Grid layout |
Ctrl+Shift+Alt+5 | Horizontal layout |
Ctrl+Shift+Alt+0 | Reset to default layout |
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:
# 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
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
| Pitfall | Symptom | Fix |
|---|---|---|
| Pressing prefix like tmux (release-then-press) | Shortcuts don't register | Hold Ctrl+Shift simultaneously with the command key |
| Conflicting with host terminal | Shortcuts captured by host app | Use kitty @ commands or change the conflicting binding |
| Disabling a shortcut without replacement | Can't close windows or tabs | Always verify you have an alternative before setting to none |
| Case-insensitive map syntax | Binding ignored | Use lowercase modifier names: ctrl+shift+n not Ctrl+Shift+N |
| Forgetting to reload config | New shortcuts not active | Press 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"