Kitty: Quick Setup Guide (Practical & Clean)
1️⃣ Install (Ubuntu)
sudo apt update
sudo apt install -y kitty
Verify:
kitty --version
2️⃣ Make kitty first-class (don’t launch from another terminal)
GNOME → Settings → Keyboard → Custom Shortcuts
Add:
-
Name:
Kitty -
Command:
kitty -
Shortcut:
Ctrl + Alt + Y (or whatever you like)
Now kitty launches as its own process with its own window background.
3️⃣ Create the config file
mkdir -p ~/.config/kitty
nano ~/.config/kitty/kitty.conf
4️⃣ Minimal, sane kitty.conf
This gives you:
- clear visuals
- distinct window background
- no noise
- nothing fancy
# -------- Font --------
font_family JetBrains Mono
font_size 11.0
# -------- Window --------
window_padding_width 12
background #1e1e2e
background_opacity 0.95
# -------- Cursor --------
cursor_shape block
cursor_blink_interval 0
# -------- Clipboard / Paste --------
confirm_paste yes
confirm_paste_size 200
# -------- Noise control --------
log_level error
# -------- Behavior --------
enable_audio_bell no
Restart kitty after saving.
5️⃣ TERM sanity (important for SSH + tmux)
Local machine (recommended)
Add to ~/.ssh/config:
Host *
SetEnv TERM=xterm-256color
Why:
- Kitty still renders perfectly
- Servers always understand
xterm-256color - Prevents ncurses / tmux failures
Server (once per server)
In ~/.tmux.conf:
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*:Tc"
Then:
tmux kill-server
tmux new
This locks tmux into a stable virtual terminal.
6️⃣ Copy / paste (muscle memory)
- Mouse drag + release → copied
- Middle click → paste
- Ctrl + Shift + C / V → copy / paste
- Ctrl + Shift + H → scrollback copy mode
- Ctrl + Shift + O → copy last command output (optional binding)
Optional add-on:
map ctrl+shift+o copy_last_cmd_output
7️⃣ Expected warnings (normal, safe)
You may see:
HISTCONTROLwarningApplication escape mode is not supported
These are informational only.
Setting log_level error already silences them.
8️⃣ How to think about kitty (mental model)
- Kitty = explicit terminal choice
- Shortcut = intent
- Window background = context
- tmux = server-side abstraction
- TERM = lowest common denominator
You are using kitty correctly when:
- you never start it from another terminal
- you don’t care about tabs
- you rely on OS shortcuts, not multiplexing
That’s exactly your setup.
9️⃣ What you can safely ignore for now
You do not need:
- kitty layouts
- kittens
- tab bars
- remote control
- fancy shell integration
All optional. All skippable.
TL;DR
Install
sudo apt install kitty
Bind it to a shortcut Use one clean config Downgrade TERM across SSH Let tmux abstract the rest