Skip to main content

Kitty Terminal Configuration

Kitty is the default terminal emulator in Config-Sway, chosen for its GPU acceleration, extensive customization, and excellent font rendering.

Configuration File

Location: ~/.config/kitty/kitty.conf This file is dynamically updated when switching themes. Each theme provides its own kitty/kitty.conf which replaces the active configuration.

Font Configuration

Primary Font

~/.config/kitty/kitty.conf
JetBrains Mono Nerd Font is required for proper icon rendering. Install it with:

Emoji Support

Maps Unicode emoji ranges to the Noto Color Emoji font for proper emoji rendering. Install emoji font:

Appearance

Cursor Configuration

  • Color: Purple (#ad8ee6)
  • Shape: Vertical beam (like insert mode in editors)
  • Thickness: 1.8 pixels
Change cursor_shape to block for a traditional terminal cursor, or underline for a subtle underline cursor.

Transparency

95% opacity provides subtle transparency while keeping text readable.

URL Styling

  • URLs are highlighted in blue
  • Curly underline style distinguishes them from regular text
Click URLs: Hold Ctrl and click any URL to open it in your browser.

Keybindings

Move Focus Between Windows

Use Ctrl + Arrow Keys to move between split terminal windows.
Kitty supports multiple copy-paste buffers:
Usage:
  1. Select text
  2. Press F1 to copy to buffer A (or F3 for buffer B)
  3. Press F2 to paste from buffer A (or F4 for buffer B)
Use buffer A for temporary snippets and buffer B for frequently-used commands or paths.

Create New Windows/Tabs

  • Ctrl + Shift + Enter - New window in current directory
  • Ctrl + Shift + T - New tab in current directory
Both commands inherit the current working directory.

Rename Tab

Ctrl + Shift + N opens a prompt to rename the current tab.

Layout Toggle

Ctrl + Shift + Z toggles between normal layout and stack layout (one window maximized).

Tab Bar Styling

  • Style: Powerline (angled separators)
  • Active tab: Green background (#98c379)
  • Inactive tabs: Red background (#e06c75)
  • Text: Black for contrast
Tab colors are defined in the base config, but theme-specific color files may override them via include colors.ini.

Performance Settings

  • repaint_delay 10 - Redraw every 10ms (smooth rendering)
  • input_delay 3 - Process input every 3ms (responsive typing)
  • sync_to_monitor yes - Sync redraws to monitor refresh rate (eliminates tearing)
These settings optimize for smoothness. If you experience high CPU usage, try increasing repaint_delay to 15 or 20.

Mouse Behavior

  • Hide mouse cursor after 3 seconds of inactivity
  • Auto-detect URLs for Ctrl+Click opening

Shell Configuration

Sets Zsh as the default shell. Change to bash or fish if preferred.

Blur Effect (Compositor)

Enables background blur when using a compositor like Sway’s built-in compositor.
Blur effects may impact performance on older hardware. Disable by setting to false if you experience lag.

Color Scheme

Including Theme Colors

The colors.ini file (if present) defines the 16 ANSI colors used by terminal applications. This file is theme-specific.

Manual Color Configuration

If not using colors.ini, define colors directly:
Colors 0-7 are normal variants, while colors 8-15 are bright variants (used with bold text or explicit codes).

Advanced Configuration

Enables programming ligatures (e.g., -> renders as →, != as ≠).Options:
  • never - Always show ligatures
  • always - Never show ligatures
  • cursor - Disable ligatures where the cursor is
Disables the terminal bell sound. Set to yes if you want audio alerts.
Add padding inside terminal windows:
Creates an 8-pixel padding around the text area.
Configure terminal history:
  • Keeps 10,000 lines of scrollback history
  • Uses less for viewing long scrollback
  • copy_on_select yes - Auto-copy selected text to clipboard
  • strip_trailing_spaces smart - Remove trailing whitespace intelligently

Theme Integration

When you switch themes using Super + A, the theme switcher:
  1. Backs up current config:
  2. Copies theme config:
  3. Kitty auto-reloads the configuration (no restart needed)
Kitty watches its config file for changes and reloads automatically. You’ll see colors update instantly when switching themes.

Kitty Extensions

Kittens

Kitty includes utility scripts called “kittens”:

Diff Files

Shows a side-by-side diff with syntax highlighting.

Image Viewer

Displays images directly in the terminal.

SSH Integration

SSH with full Kitty feature support (including image display) on the remote host.

Unicode Input

Searchable Unicode character picker.

Troubleshooting

Solution: Install Nerd Font
Verify it’s active:
Force config reload:
  1. Edit ~/.config/kitty/kitty.conf (add a space)
  2. Save the file
  3. Kitty should reload automatically
Or restart Kitty:
Ensure your compositor supports transparency:
Check Kitty config:
Reduce rendering frequency:
Disable blur:
Verify clipboard manager is running:
Install wl-clipboard:

Kitty Tips & Tricks

Keyboard: Ctrl + Shift + E opens URL hints modeType the letter next to a URL to open it.
Ctrl + Shift + H opens scrollback in pager with search enabled.In pager: Type / to search forward, ? to search backward.
Add custom keybindings:
  • Horizontal split: Ctrl + Shift + S
  • Vertical split: Ctrl + Shift + V
Override colors for specific sessions:
Opens Kitty with black background and green text (Matrix style).
Edit remote files locally:
File opens in your local editor, saves back to remote automatically.

Sway Configuration

Terminal launcher keybinding (Super + Enter)

Theme System

How themes update Kitty colors automatically

Neovim Configuration

Editor configuration for terminal development

Additional Resources

Explore the full Kitty config with:
This shows all available commands and options.