Theme Guide - NormB/sipnab GitHub Wiki
Quick start: Create
~/.config/sipnab/sipnab.tomlwith a[theme]section to customize colors. Or copy one of the preset themes below.
sipnab's TUI uses 11 semantic color slots. There is also highlight, a legacy alias for selected.
- The slots control every visual element.
- Customize them via the
[theme]section in your config file.
| Slot | Default | What It Affects |
|---|---|---|
background |
reset (terminal default) |
Terminal background color |
foreground |
reset (terminal default) |
Default text color. The status band and key bar pick their own text color against status_bg
|
header |
cyan |
Status bar, column headers, endpoint labels in call flow |
selected |
yellow |
Selected/highlighted row, cursor position, focused item |
accent |
magenta |
Correlation info, PDD annotations, extended flow labels |
good |
green |
Positive quality (MOS > threshold), success states (InCall, Registered) |
warning |
yellow |
Medium quality, caution states (Ringing, CANCEL) |
bad |
red |
Poor quality, failures, errors, high loss/jitter |
muted |
dark_gray |
Separators, pipe characters, disabled text, timestamps |
border |
white |
Widget borders, panel frames |
status_bg |
#303040 |
Status bar background band, kept distinct from the terminal background so the status line stays visible |
highlight |
-- | Legacy alias for selected (backward compatibility only) |
status_bg is configurable like every other color above. Its dark blue-gray
default stays readable on both dark and light terminals.
blackwhiteredgreenyellowbluemagentacyan-
gray(orgrey) -
dark_gray(ordark_grey,darkgray,darkgrey) -
reset(ordefault)
Names are case-insensitive. An unrecognized name draws a warning. It leaves that slot at its built-in default.
Use the "#RRGGBB" format, for example "#ff8800", "#1a1a2e". This requires a terminal with true-color (24-bit) support.
- Create or edit your config file.
- sipnab loads the first one found.
- See File Locations in the Config Reference.
- Then add a
[theme]section with the color values you want to override. - Omitted fields use the built-in defaults.
Each theme below has two parts:
- a TOML block to copy into your config,
- a preview of the call list under that palette.
The previews carry their colors inline. A renderer that strips inline styles (the GitHub wiki) shows the same layout in plain text.
The built-in theme works on dark terminal backgrounds without any configuration. It is deliberately palette-neutral:
-
backgroundandforegroundarereset.- Your terminal's own colors show through.
- So it reads on light terminals too.
- Every other slot is an ANSI color name.
- So your terminal's palette picks the exact shades.
The preview below stands in a representative xterm palette for those names.
[theme]
background = "reset"
foreground = "reset"
header = "cyan"
selected = "yellow"
accent = "magenta"
good = "green"
warning = "yellow"
bad = "red"
muted = "dark_gray"
border = "white"# Method From To State ▸ 1 INVITE alice bob InCall 2 REGISTER admin -- Registered 3 INVITE charlie dave Ringing 4 INVITE +15551234 +15559876 Failed 5 INVITE 1005 1006 Completed
Pastel palette inspired by the Catppuccin color scheme.
[theme]
background = "#1e1e2e"
foreground = "#cdd6f4"
header = "#89b4fa"
selected = "#f9e2af"
accent = "#cba6f7"
good = "#a6e3a1"
warning = "#fab387"
bad = "#f38ba8"
muted = "#585b70"
border = "#6c7086"# Method From To State ▸ 1 INVITE alice bob InCall 2 REGISTER admin -- Registered 3 INVITE charlie dave Ringing 4 INVITE +15551234 +15559876 Failed 5 INVITE 1005 1006 Completed
Low-contrast theme based on the Nord palette. It is easy on the eyes for long monitoring sessions.
[theme]
background = "#2e3440"
foreground = "#d8dee9"
header = "#88c0d0"
selected = "#ebcb8b"
accent = "#b48ead"
good = "#a3be8c"
warning = "#ebcb8b"
bad = "#bf616a"
muted = "#4c566a"
border = "#616e88"# Method From To State ▸ 1 INVITE alice bob InCall 2 REGISTER admin -- Registered 3 INVITE charlie dave Ringing 4 INVITE +15551234 +15559876 Failed 5 INVITE 1005 1006 Completed
[theme]
background = "#002b36"
foreground = "#839496"
header = "#268bd2"
selected = "#b58900"
accent = "#d33682"
good = "#859900"
warning = "#cb4b16"
bad = "#dc322f"
muted = "#586e75"
border = "#657b83"# Method From To State ▸ 1 INVITE alice bob InCall 2 REGISTER admin -- Registered 3 INVITE charlie dave Ringing 4 INVITE +15551234 +15559876 Failed 5 INVITE 1005 1006 Completed
Warm, retro-inspired color scheme.
[theme]
background = "#282828"
foreground = "#ebdbb2"
header = "#83a598"
selected = "#fabd2f"
accent = "#d3869b"
good = "#b8bb26"
warning = "#fe8019"
bad = "#fb4934"
muted = "#665c54"
border = "#7c6f64"# Method From To State ▸ 1 INVITE alice bob InCall 2 REGISTER admin -- Registered 3 INVITE charlie dave Ringing 4 INVITE +15551234 +15559876 Failed 5 INVITE 1005 1006 Completed
For light terminal backgrounds (white/cream). It uses darker colors for readability.
[theme]
background = "reset"
foreground = "black"
header = "blue"
selected = "#b35900"
accent = "#8b008b"
good = "#006400"
warning = "#b8860b"
bad = "#cc0000"
muted = "gray"
border = "dark_gray"# Method From To State ▸ 1 INVITE alice bob InCall 2 REGISTER admin -- Registered 3 INVITE charlie dave Ringing 4 INVITE +15551234 +15559876 Failed 5 INVITE 1005 1006 Completed
Maximum readability for accessibility or bright environments.
[theme]
background = "black"
foreground = "white"
header = "cyan"
selected = "#ffff00"
accent = "#ff00ff"
good = "#00ff00"
warning = "#ffaa00"
bad = "#ff0000"
muted = "gray"
border = "white"# Method From To State ▸ 1 INVITE alice bob InCall 2 REGISTER admin -- Registered 3 INVITE charlie dave Ringing 4 INVITE +15551234 +15559876 Failed 5 INVITE 1005 1006 Completed
- Use
resetforbackgroundto inherit your terminal's background color. This is usually the best choice. - Hex colors require true-color terminal support. Most modern terminals have it: iTerm2, Alacritty, kitty, WezTerm, Windows Terminal.
- Use
sipnab --dump-configto confirm sipnab picked up your theme. - The
highlightkey is a legacy alias forselected. If a config carries both,selectedwins.
See the Configuration Reference for the full [theme]
key table and every other config section.