Windows Basics
Windows in kitty are like terminal splits inside a single tab. Each window runs an independent shell process, and you can arrange them side by side or in a grid.
Use this lesson to get comfortable creating, navigating, and resizing windows for efficient multi-tool workflows.
Creating Windows
# from inside kitty
Ctrl+Shift+Enter → New window (vertical split — side by side)
Ctrl+Shift+Alt+Enter → New window (horizontal split — top/bottom)
# from the command line
kitty @ new-window
kitty @ new-window --cwd /var/log
kitty @ new-window --cwd /etc --title "config"
Window Splits Visual
Vertical split (Ctrl+Shift+Enter):
┌─────────────────────┬─────────────────────┐
│ │ │
│ Window 0 │ Window 1 │
│ (shell) │ (vim) │
│ │ │
└─────────────────────┴─────────────────────┘
Horizontal split (Ctrl+Shift+Alt+Enter):
┌───────────────────────────────────────────┐
│ Window 0 │
│ (shell) │
├───────────────────────────────────────────┤
│ Window 1 │
│ (htop) │
└───────────────────────────────────────────┘
Navigating Between Windows
| Shortcut | Action |
|---|---|
Ctrl+Shift+left | Focus window to the left |
Ctrl+Shift+right | Focus window to the right |
Ctrl+Shift+up | Focus window above |
Ctrl+Shift+down | Focus window below |
Ctrl+Shift+o | Focus next window (cycle) |
Resizing Windows
| Shortcut | Action |
|---|---|
Ctrl+Shift+Alt+left | Widen focused window |
Ctrl+Shift+Alt+right | Narrow focused window |
Ctrl+Shift+Alt+up | Shorten focused window |
Ctrl+Shift+Alt+down | Taller focused window |
Ctrl+Shift+Alt+= | Reset window sizes (equal) |
From the command line:
# resize by percentage
kitty @ resize-window --increment 5
# reset to equal sizes
kitty @ resize-window --reset
Maximizing the Kitty OS Window
Ctrl+Shift+F10 → Toggle maximized state for the kitty OS window
This maximizes or restores the whole kitty application window. Press Ctrl+Shift+F10 again to return to the previous desktop window size.
Kitty also uses the word "window" for panes/splits inside a tab. Ctrl+Shift+F10 affects the outer OS window, not a single split.
Use OS-window maximize when you need more screen space for the whole terminal. Use layouts such as stack when you want one kitty split to occupy the tab area.
Closing Windows
# inside the window
exit
# force close current window
Ctrl+Shift+q
# close from command line
kitty @ close-window
Closing the last window in a tab closes the tab. Closing the last tab closes the kitty window (but not the server — it stays running for remote control).
Moving and Swapping Windows
# from the command line
kitty @ neighboring_window left
kitty @ neighboring_window right
You can also use mouse drag to reorder windows (if enabled in config).
Window Layouts
Kitty offers several layouts that control how windows are arranged (see Layouts and Tiling):
| Layout | Behavior |
|---|---|
fat | Equal sized vertical splits |
grid | Balanced grid arrangement |
horizontal | Side by side (default for new windows) |
splits | Manual split-based layout |
stack | Only one window visible at a time |
tall | One main window on left, rest stack on right |
vertical | Windows stacked top to bottom |
Common Window Workflow: Monitoring
# start kitty, then inside a tab:
# Ctrl+Shift+Enter → split vertically (left: shell, right: empty)
# Ctrl+Shift+Alt+Enter → split right side horizontally (right-top, right-bottom)
# Ctrl+Shift+arrows → navigate between all three
# Result:
# ┌─────────────────────┬─────────────────────┐
# │ │ htop │
# │ tail -f app.log ├─────────────────────┤
# │ │ watch df -h │
# └─────────────────────┴─────────────────────┘
Common Pitfalls
| Pitfall | Symptom | Fix |
|---|---|---|
| Too many windows in one tab | Cramped, unreadable splits | Use multiple tabs instead |
| Window resize not working | Modifier conflict with window manager | Remap resize keys, or use Ctrl+Shift+Alt+arrows |
Ctrl+Shift+q closes whole tab | Only one window left | Create more windows first, or add a second tab |
| Mouse drag not reordering | Feature disabled | Enable mouse_map in kitty.conf |
Hands-On Practice
Try this inside kitty:
# Step 1: Create a vertical split
# Ctrl+Shift+Enter
# Step 2: Create a horizontal split on the right
# Ctrl+Shift+Alt+Enter (with focus on right window)
# Step 3: Navigate between windows
# Ctrl+Shift+arrows
# Step 4: Run different commands
# Window 0: watch -n 1 'date'
# Window 1: ping -c 10 localhost
# Window 2: echo "hello from window 3"
# Step 5: Maximize the kitty OS window
# Ctrl+Shift+F10
# Step 6: Restore the kitty OS window size
# Ctrl+Shift+F10
# Step 7: Resize windows
# Ctrl+Shift+Alt+left (widen current window)
# Step 8: Close windows
# Ctrl+Shift+q on each, or exit