Skip to content

ports · Terminals

SP Night for kitty

The 16-colour ANSI mapping, plus cursor, selection, splits, the tab bar and the three mark slots.

Preview

kitty themed with SP Night Noite Paulistakitty themed with SP Night Garoakitty themed with SP Night Pico do Jaraguá

All three are dark, by decision. The previews below are synthetic — drawn from the palette itself, so they can never drift from what you install.

Install

the file goes here
~/.config/kitty/sp_night_noite.conf
the file goes here
~/.config/kitty/sp_night_garoa.conf
the file goes here
~/.config/kitty/sp_night_jaragua.conf
then add this
include sp_night_noite.conf
then add this
include sp_night_garoa.conf
then add this
include sp_night_jaragua.conf

Those are the paths for the flavour selected in the header — switch it and they follow.

kitty reads a theme through an include in its own config, so the file goes next to kitty.conf and nothing overwrites it.

Grab the flavour you want (or all three):

sh
mkdir -p ~/.config/kitty
curl -Lo ~/.config/kitty/sp_night_noite.conf \
  https://raw.githubusercontent.com/sp-night/kitty/main/themes/sp_night_noite.conf

Then add the include to ~/.config/kitty/kitty.conf:

conf
include sp_night_noite.conf

Reload with ctrl+shift+f5 (cmd+ctrl+, on macOS), or open a new window.

Prefer a checkout? Clone and copy — the files are plain text, there is no build:

sh
git clone https://github.com/sp-night/kitty.git
cp kitty/themes/*.conf ~/.config/kitty/

What gets themed

kitty key role what it is
color0color15 ansi.* the full 16-colour ANSI mapping
background / foreground ui.bg / ui.fg laje under the main text
cursor / cursor_text_color ui.cursor / ui.on_accent the sódio cursor, dark text inside it
selection_background / _foreground ui.selection / ui.fg vidro, glass reflecting the street
url_color ui.link links in marginal, the expressway sign
active_border_color / inactive_border_color ui.border_active / ui.border the focused split in sódio, the rest in fiação
bell_border_color diagnostic.warn a bell is a warning, not an accent
active_tab_* / inactive_tab_* ui.selection / ui.panel the active tab lifts to glass, the others stay concrete
tab_bar_background ui.bg_deep the tab bar recedes into the vão
mark1_backgroundmark3_background ui.accent / syntax.type / syntax.function three marks that have to be told apart, so they differ by hue

kitty.conf.tmpl is the full record of which kitty key means which role — the table above in complete form. The files in themes/ are what it resolves to, one per flavour.

You never need it to use the theme: the shipped files are plain text and final. It is here so the mapping survives, and so a retuned palette can be rolled through this port without anyone re-deciding what a bell border means.

What each role means →

Where the colours come from

No hex in this repo was picked by hand. Every value comes from the SP Night palette through its role layer, both published as data: palette.json and roles.json. The contrast floors those colours have to clear are written down in the spec and enforced in CI.