The board is light or dark out of the box and follows your system. If you would rather it matched your editor and terminal, it takes a theme: two are built in, more are a download away, and your own is a short JSON file.
One line in the config.
Put the name in ~/.config/kelpie/config.json and restart kelpie:
{
"theme": "catppuccin"
}
The theme colours the whole board: the session list, the Chat tab, the Terminal view's
sixteen ANSI colours and the Diff tab's added and removed lines. While a theme is set, the
light and dark button in the masthead is hidden, since the theme decides. Set
"theme" back to "" to return to the board's own light and dark.
A file you save, and a path in the config.
Save one next to your config, point theme at it and restart kelpie:
{
"theme": "~/.config/kelpie/everforest.json"
}
Everforest is the palette by sainnhe, MIT licensed. These files work in any version of kelpie that takes a theme, and you can edit them like your own.
A base, and only the colours you want to change.
A theme is a JSON file with a base of "light" or
"dark" and a colors object. The base supplies every colour the
file leaves out, so a theme can be three lines or forty:
{
"base": "dark",
"colors": {
"ground": "#1e1e2e",
"accent": "#cba6f7",
"s-needs": "#fab387"
}
}
Save it anywhere and point theme at the path, ~ included:
{
"theme": "~/.config/kelpie/my-theme.json"
}
The board reads the file on every load, so once kelpie is pointed at it, an edit shows on
the next reload. Changing the theme setting itself needs a restart. Colours
are hex (#rgb to #rrggbbaa) or rgb() and
rgba(). A file kelpie cannot use, whether bad JSON, a missing base or a value
that is not a colour, is ignored as a whole, and the board names the problem as a setup
check instead of drawing half a theme.
The quickest start is a built-in one, which carries every name below: catppuccin.json or nord.json.
Every name a theme can set.
| Name | What it colours |
|---|---|
ground, surface, surface-2 | The page, the panels and rows on it, and what lifts off those: hovered menu items and options. |
ink, ink-soft, muted | Titles, body text, and the quiet text: times, repo names, hints. |
rule, rule-soft, edge | Dividers, the fainter ones inside menus and lists, and the strongest lines, like the masthead's separators. |
accent, accent-soft | Links, the selected tab and focus; the soft one tints notices and hovered chips. |
s-needs, s-running, s-snoozed, s-closed | Each group's colour: its heading, its row stripe and its state chips. Each has a -bg twin for its tinted background. |
s-fail | Failing checks, refusals, and a dev server that has stopped. |
term-ground, term-ink, term-0 … term-15 | The Terminal view: its background, default text, and the sixteen ANSI colours in the usual order, black to bright white. |
diff-add-bg, diff-add-ink, diff-add-gutter | Added lines in the Diff tab: the line, its text and the line-number gutter. |
diff-del-bg, diff-del-ink, diff-del-gutter | The same for removed lines. |