Skip to content

Theme Guide

github-actions[bot] edited this page Jul 29, 2026 · 1 revision

Quick start: Create ~/.config/sipnab/sipnab.toml with a [theme] section to customize colors. Or copy one of the preset themes below.

sipnab's TUI uses 11 semantic color slots (plus highlight, a legacy alias for selected) 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
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 is chosen to stay readable on both dark and light terminals.

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 — 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.

Example Themes

Each theme below pairs a TOML block to copy into your config with a preview of the call list under that palette. The previews carry their colors inline, so a renderer that strips inline styles (the GitHub wiki) shows the same layout in plain text.

Dark (built-in default)

The built-in theme works on dark terminal backgrounds without any configuration. It is deliberately palette-neutral: background is reset (your terminal's own background shows through) and 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 = "white"
header = "cyan"
selected = "yellow"
accent = "magenta"
good = "green"
warning = "yellow"
bad = "red"
muted = "dark_gray"
border = "white"
Default Theme
  #  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"
Catppuccin Mocha
  #  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"
Nord
  #  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"
Solarized Dark
  #  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"
Gruvbox Dark
  #  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"
Light Terminal
  #  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"
High Contrast
  #  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 reset for background to 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-config to verify your theme is being loaded.
  • The highlight key is a legacy alias for selected. If both are set, selected takes precedence.

See the Configuration Reference for the full [theme] key table and every other config section.

Clone this wiki locally