Theme Guide
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 that control every visual element. Customize them via the [theme] section in your config file.
Color Slots
| Slot | Default | What It Affects |
|---|---|---|
background | reset (terminal default) | Terminal background color |
foreground | white | Default text color |
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 |
highlight | – | Legacy alias for selected (backward compatibility only) |
The internal status_bg color (dark blue-gray #303040) is not configurable and is used for the status bar background.
Supported Color Syntax
Named Colors
black, white, red, green, yellow, blue, magenta, cyan, gray (or grey), dark_gray (or dark_grey, darkgray, darkgrey), reset (or default)
Hex RGB
"#RRGGBB" format, e.g., "#ff8800", "#1a1a2e". Requires a terminal with true-color (24-bit) support.
How to Apply
Create or edit your config file at one of these locations (searched in order):
- Path specified via
--config <FILE> $SIPNAB_CONFIGenvironment variable~/.config/sipnab/sipnab.toml~/.sipnabrc/etc/sipnab/sipnab.toml
Add a [theme] section with the color values you want to override. Omitted fields use the built-in defaults.
Example Themes
Each theme below includes a TOML config block and a live preview showing how it renders in sipnab’s TUI.
Default (Ayu Mirage)
The built-in theme works on dark terminal backgrounds without any configuration.
[theme]
background = "reset"
foreground = "white"
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
Catppuccin Mocha
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
Nord
Low-contrast theme based on the Nord palette. 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
Solarized Dark
[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
Gruvbox Dark
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
Light Terminal
For light terminal backgrounds (white/cream). 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
High Contrast
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
Tips
- Use
resetforbackgroundto inherit your terminal’s background color. This is usually the best choice. - Hex colors require true-color terminal support (most modern terminals: iTerm2, Alacritty, kitty, WezTerm, Windows Terminal).
- Use
sipnab --dump-configto verify your theme is being loaded. - The
highlightkey is a legacy alias forselected. If both are set,selectedtakes precedence.