LinuxCommandLibrary

kitty

Kitty: GPU-accelerated terminal emulator

TLDR

Open a new terminal

$ kitty
copy

Open a terminal with the specified title for the window
$ kitty --title "[title]"
copy

Start the theme-chooser builtin
$ kitty +kitten themes
copy

Display an image in the terminal
$ kitty +kitten icat [path/to/image]
copy

Copy the contents of stdin to the clipboard
$ echo [example] | kitty +kitten clipboard
copy

SYNOPSIS

kitty [options]
kitty [options] command [arguments...]
kitty +kitten <kitten_name> [kitten_options]
kitty @ <command> [arguments...]

PARAMETERS

-h, --help
    Display a help message and exit.

-v, --version
    Show kitty version information and exit.

-c <CONFIG_FILE>, --config <CONFIG_FILE>
    Specify an alternate configuration file to use instead of the default.

-o <SETTING=VALUE>, --override <SETTING=VALUE>
    Override a single setting from the configuration file. This option can be used multiple times.

--directory <DIR>
    Start the terminal in the specified directory instead of the current working directory.

--session <SESSION_FILE>
    Load a window layout, commands, and options from the specified session file.

--single-instance
    Ensure only one instance of kitty is running. New windows will open in the existing instance.

--hold
    Keep the terminal window open after the launched command exits.

command [arguments...]
    Execute the specified command with its arguments instead of the default shell.

+kitten <kitten_name>
    Launch a specific kitten, which is a small, text-based utility included with kitty.

@ <command>
    Send a command to a running kitty instance for remote control purposes.

DESCRIPTION

kitty is a modern, cross-platform, GPU-accelerated terminal emulator designed for high performance and extensibility. It offloads all rendering to the GPU, leading to exceptionally smooth scrolling, low input latency, and faster performance, especially when dealing with large amounts of text or complex graphical output. Beyond speed, kitty offers a rich set of features including tabs, tiling windows, Unicode support, true colors, and ligatures for programming fonts.

It is highly configurable via a simple text file, allowing users to customize every aspect from fonts and colors to keybindings and application behavior. kitty also integrates a powerful text-based `kitten` framework, enabling users to extend its functionality with custom tools and integrations. Its architecture prioritizes minimal latency and high throughput, making it a robust and popular choice among developers and power users.

CAVEATS

While kitty is highly performant on systems with dedicated GPUs, its primary advantage is diminished on systems without one, where it falls back to CPU-based rendering. Its extensive configuration options, while powerful, can be overwhelming for new users unfamiliar with text-based configuration files. The `kitten` framework, while extensible, requires a degree of scripting knowledge to fully leverage.

<B>KITTENS</B>

Kittens are small, text-based utilities that ship with kitty and can be run inside the terminal, often performing tasks that would traditionally require a separate GUI application or complex shell scripts. Examples include icat for displaying images, diff for comparing files, and termgraph for plotting data directly within the terminal.

<B>REMOTE CONTROL</B>

kitty features a powerful remote control mechanism, enabled by the @ syntax. This allows external programs or scripts to send commands to a running kitty instance, enabling dynamic window management, session manipulation, and other programmatic interactions without needing to launch a new instance.

<B>CONFIGURATION FILE</B>

The primary configuration for kitty is managed through a simple, human-readable text file, typically located at ~/.config/kitty/kitty.conf. This file allows extensive customization of everything from keybindings, fonts, and colors to advanced rendering and networking settings, giving users fine-grained control over their terminal experience.

HISTORY

Developed by Kovid Goyal, kitty was first publicly released around 2017. It was conceived to address performance and feature limitations of existing terminal emulators, with a strong emphasis on leveraging GPU acceleration for rendering. This design choice set it apart, aiming for minimal latency and high throughput. Over the years, it has continuously evolved, adding features like a robust configuration system, the `kitten` framework for extensibility, and support for modern terminal capabilities like ligatures and true colors, establishing itself as a powerful tool for developers and power users.

SEE ALSO

xterm(1), alacritty(1), gnome-terminal(1), tmux(1), screen(1), bash(1), zsh(1)

Copied to clipboard