Skip to main content

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.

Learning Focus

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) │
└───────────────────────────────────────────┘
ShortcutAction
Ctrl+Shift+leftFocus window to the left
Ctrl+Shift+rightFocus window to the right
Ctrl+Shift+upFocus window above
Ctrl+Shift+downFocus window below
Ctrl+Shift+oFocus next window (cycle)

Resizing Windows​

ShortcutAction
Ctrl+Shift+Alt+leftWiden focused window
Ctrl+Shift+Alt+rightNarrow focused window
Ctrl+Shift+Alt+upShorten focused window
Ctrl+Shift+Alt+downTaller 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 window terminology

Kitty also uses the word "window" for panes/splits inside a tab. Ctrl+Shift+F10 affects the outer OS window, not a single split.

tip

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
note

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):

LayoutBehavior
fatEqual sized vertical splits
gridBalanced grid arrangement
horizontalSide by side (default for new windows)
splitsManual split-based layout
stackOnly one window visible at a time
tallOne main window on left, rest stack on right
verticalWindows 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​

PitfallSymptomFix
Too many windows in one tabCramped, unreadable splitsUse multiple tabs instead
Window resize not workingModifier conflict with window managerRemap resize keys, or use Ctrl+Shift+Alt+arrows
Ctrl+Shift+q closes whole tabOnly one window leftCreate more windows first, or add a second tab
Mouse drag not reorderingFeature disabledEnable 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

What's Next​