Kitty is a modern, fast, GPU-based terminal emulator written in Python and C. It leverages graphics hardware for high performance and offers features like tabs, layouts, and GPU-based rendering. Kitty is available in the NixOS ecosystem and can be configured through various methods.[1]

Installation

Shell

To temporarily use Kitty in a shell environment, you can run:

nix-shell -p kitty

This will provide a shell with Kitty available without adding it to your system configuration.

System setup

To install Kitty, add it to either the system-wide environment.systemPackages in /etc/nixos/configuration.nix or to the user-specific home.packages in ~/.config/nixpkgs/home.nix.[2]

# System-wide installation (in /etc/nixos/configuration.nix)
environment.systemPackages = with pkgs; [
  kitty
];

# User-specific installation (in ~/.config/nixpkgs/home.nix)
home.packages = with pkgs; [
  kitty
];

Then, rebuild your system or apply your Home Manager configuration:

# For system-wide installation
sudo nixos-rebuild switch

# For Home Manager
home-manager switch

Configuration

Basic

NixOS does not include a native module for Kitty. For basic Kitty configuration on NixOS, you need to manually follow the steps from Kitty's documentation.[3]

If you're using Home Manager, you can enable Kitty with a simple configuration:

programs.kitty.enable = true;

Advanced

For more advanced Home Manager configuration, you can specify various Kitty settings:

programs.kitty = lib.mkForce {
  enable = true;
  settings = {
    confirm_os_window_close = 0;
    dynamic_background_opacity = true;
    enable_audio_bell = false;
    mouse_hide_wait = "-1.0";
    window_padding_width = 10;
    background_opacity = "0.5";
    background_blur = 5;
    symbol_map = let
      mappings = [
        "U+23FB-U+23FE"
        "U+2B58"
        "U+E200-U+E2A9"
        "U+E0A0-U+E0A3"
        "U+E0B0-U+E0BF"
        "U+E0C0-U+E0C8"
        "U+E0CC-U+E0CF"
        "U+E0D0-U+E0D2"
        "U+E0D4"
        "U+E700-U+E7C5"
        "U+F000-U+F2E0"
        "U+2665"
        "U+26A1"
        "U+F400-U+F4A8"
        "U+F67C"
        "U+E000-U+E00A"
        "U+F300-U+F313"
        "U+E5FA-U+E62B"
      ];
    in
      (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
  };
};

Tips and tricks

Theming with Stylix

You can use Stylix to theme Kitty by enabling its built-in integration:[4]

stylix.targets.kitty.enable = true;

Troubleshooting

☶︎
This article or section needs to be expanded. Section incomplete, needs detailed troubleshooting steps Further information may be found in the related discussion page. Please consult the pedia article metapage for guidelines on contributing.

References