kitty
Generates a single-file colour theme for kitty, Kovid Goyal's GPU-accelerated terminal emulator. The file lives in kitty's themes/ directory and is wired into your kitty.conf with a one-line include.
Installation
Built into tinct — nothing to install separately. tinct generate -o kitty works out of the box.
Quick start
tinct generate -i image -p ~/Pictures/wallpaper.jpg -o kitty
Generated files
| File | Path | Role |
|---|---|---|
tinct.conf | ~/.config/kitty/themes/tinct.conf | Single-file theme — foreground, background, cursor, selection, URL, tab bar, borders, mark colours and the 16-colour color0..color15 ANSI palette. |
Generated format
# Kitty theme generated by tinct
foreground #cdd6f4
background #1e1e2e
selection_foreground #1e1e2e
selection_background #f5e0dc
cursor #f5e0dc
cursor_text_color #1e1e2e
# Black
color0 #45475a
color8 #585b70
# Red
color1 #f38ba8
color9 #f38ba8
# Green
color2 #a6e3a1
color10 #a6e3a1
# Yellow
color3 #f9e2af
color11 #f9e2af
# Blue
color4 #89b4fa
color12 #89b4fa
# Magenta
color5 #f5c2e7
color13 #f5c2e7
# Cyan
color6 #94e2d5
color14 #94e2d5
# White
color7 #bac2de
color15 #a6adc8
Integration
Add a single line to your ~/.config/kitty/kitty.conf:
include themes/tinct.conf
(kitty resolves include paths relative to kitty.conf's directory.) After saving, send the reload signal — or just save kitty.conf from inside kitty and use Ctrl+Shift+F5 to reload.
Heads up —
kitten themesconflict. If you previously rankitten themesit added a# BEGIN_KITTY_THEME/current-theme.confblock to yourkitty.conf. If that block sits after yourinclude themes/tinct.confline, it overrides tinct's colours. The plugin detects this on each run and prints a warning telling you to either delete the kitten block or move the tinct include below it.
Reload behaviour
Automatic
After writing the file, the plugin broadcasts SIGUSR1 to every running kitty process:
pkill -USR1 -x kitty
kitty's signal handler re-reads kitty.conf (and all included files) and applies the new colours in-place. On Windows the signal mechanism is unavailable — the hook warns and skips the broadcast.
Manual fallback
If kitty wasn't running at generate time, or you skipped the signal:
- In-app:
Ctrl+Shift+F5(reload config). - Out-of-band:
kitten @ set-colors --all ~/.config/kitty/themes/tinct.conf(requiresallow_remote_control yesinkitty.conf).
Uninstall / revert
-
Remove the include line from your
~/.config/kitty/kitty.conf:Delete the
include themes/tinct.confline. -
Delete the generated file:
rm ~/.config/kitty/themes/tinct.conf -
Reload to drop the theme:
pkill -USR1 -x kitty -
External state: this plugin only writes to
~/.config/kitty/themes/. No further cleanup is required. If you'd previously usedkitten themes, thecurrent-theme.confit manages is untouched.
Flags
| Flag | Default | Description |
|---|---|---|
--kitty.output-dir | ~/.config/kitty/themes | Override the output directory |
Colour role mapping
| kitty key | Tinct role |
|---|---|
foreground | foreground |
background | background |
selection_foreground | background |
selection_background | accent1 |
cursor | accent1 |
cursor_text_color | background |
url_color | info |
tab_bar_background | background |
active_tab_foreground / active_tab_background | background / accent1 |
inactive_tab_foreground / inactive_tab_background | foreground / accent1Muted (falls back to backgroundMuted) |
active_border_color | accent1 |
inactive_border_color | border (falls back to accent2Muted) |
bell_border_color | warning |
mark1_* / mark2_* / mark3_* | accent1 / accent2 / accent3 |
color0..color7 | ANSI black..white |
color8..color15 | ANSI brightblack..brightwhite |
Customising the template
Extract the default template to override it:
tinct plugins templates dump -o kitty -l ~/.config/tinct/templates/kitty
This writes ~/.config/tinct/templates/kitty/tinct.conf.tmpl. Tinct uses your version in preference to the embedded default.
See the templating reference for the available functions and palette accessors.
Troubleshooting
Warning: "Conflicting theme configuration detected"
Your kitty.conf includes both themes/tinct.conf and current-theme.conf (from the kitten themes picker), with the kitten block ordered after tinct's include — so kitten's colours win. Fix by either deleting the # BEGIN_KITTY_THEME ... # END_KITTY_THEME block, or moving include themes/tinct.conf below it.
Colours don't change after generation
Verify the include made it in and the signal was delivered:
grep tinct.conf ~/.config/kitty/kitty.conf
pgrep -x kitty && pkill -USR1 -x kitty
If kitty was running on Wayland under a different user namespace, pkill may not reach it — reload from inside the terminal with Ctrl+Shift+F5.
kitten not on PATH
kitten ships with kitty but some distros split it out. It's optional here — it's only used for the manual @ set-colors reload path; the automatic reload uses SIGUSR1, not kitten.