Skip to main content

Installation and First Run

This lesson walks through installing kitty and completing your first session: launch, open tabs and windows, navigate, and close cleanly.

Learning Focus

Leave this lesson with kitty installed, a working terminal session, and a clear mental model for window/tab management and configuration.

Install Kitty

# curl-based install (recommended — always up to date)
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin

# Debian/Ubuntu
sudo apt install -y kitty

# Fedora/RHEL
sudo dnf install -y kitty

# Arch Linux
sudo pacman -S kitty
info

The curl installer places kitty in ~/.local/kitty.app/. Package manager versions may be older but are fine for most uses.

Verify Installation

kitty --version

Expected output:

kitty 0.35.2 (or similar)

Your First Session (Full Workflow)

Step 1: Launch Kitty

kitty &

Your terminal window is now a kitty terminal. You will see the kitty status bar at the bottom (if enabled in config).

Step 2: Create a Window Split

Inside kitty, press:

Ctrl+Shift+Enter → Create a vertical split (new window beside current)

You now have two independent terminal shells side by side.

Step 3: Navigate Between Windows

Ctrl+Shift+←/↑/→/↓ → Move focus between windows

Step 4: Create a Tab

Ctrl+Shift+t → Create a new tab
Ctrl+Shift+←/→ → Navigate between tabs

Step 5: Run a Command in One Window

# in one window, run something continuous
ping google.com

Step 6: Close Windows and Tabs

Ctrl+Shift+q → Close current window or tab
exit → Or just exit the shell

Session Lifecycle Summary

┌──────────┐ Ctrl+Shift+Enter ┌──────────┐
│ Launch │ ──────────────────────→│ Active │
│ kitty │ │ Session │
└──────────┘ └────┬─────┘

┌──────────────┼──────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ New Tab │ │ New Win │ │ Navigate │
│ Ctrl+Sh+t│ │Ctrl+Sh+En│ │ Arrows │
└──────────┘ └──────────┘ └──────────┘
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────┐
│ exit or Ctrl+Shift+q │
│ → window/tab closes │
└──────────────────────────────────────┘

The Status Bar

Kitty's tab bar appears at the top by default (configurable). It shows:

┌─ kitty ───────────────────────────────────────────────────┐
│ [main] [logs*] [config] [bash] [bash] │
│ │
│ <your terminal content here> │
│ │
└────────────────────────────────────────────────────────────┘
  • Square brackets show tab names, * = active tab
  • The OS window title shows the active tab name
  • Window/tab bar can be styled via kitty.conf

Common Setup Check

CheckCommandExpected
kitty installedkitty --versionVersion number printed
Kitty launcheskitty &New terminal window appears
Window split worksCtrl+Shift+EnterTwo shells side by side
Tab creation worksCtrl+Shift+tNew tab created
Config file existsls ~/.config/kitty/kitty.confFile exists (or can be created)

Common Pitfalls

PitfallSymptomFix
Default terminal not changedKitty launches but system still uses xtermSet kitty as default: sudo update-alternatives --set x-terminal-emulator /usr/bin/kitty
Ctrl+Shift conflicts with IMEShortcuts don't fireRemap keys in kitty.conf or change IME settings
Old kitty versionMissing featuresUse the curl installer instead of OS packages
GPU not availableFalls back to CPU (slow)Check with kitty --debug-rendering

Hands-On Practice

Try this complete workflow:

# launch kitty
kitty &

# inside kitty:
# Step 1: Create two windows
# Ctrl+Shift+Enter (vertical split)
# Ctrl+Shift+Alt+Enter (horizontal split)

# Step 2: Navigate between them
# Ctrl+Shift+arrows

# Step 3: Run different commands in each
# Left window: htop
# Right top: watch -n 1 date
# Right bottom: ping -c 10 localhost

# Step 4: Create a second tab
# Ctrl+Shift+t

# Step 5: Name the tab
# Ctrl+Shift+Alt+t, type "monitoring", Enter

# Step 6: Close everything
# exit in each shell, or Ctrl+Shift+q on each window

# verify kitty process is gone
pgrep -la kitty 2>/dev/null || echo "kitty closed cleanly"

What's Next