Skip to main content

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)

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:

  • HISTCONTROL warning
  • Application 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