Docs Change the terminal UI colors

Change the terminal UI colors

Customize sipnab's TUI colors with 11 semantic color slots and preset themes.

On this page

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

Color slots

SlotDefaultWhat It Affects
backgroundreset (terminal default)Terminal background color
foregroundreset (terminal default)Default text color. The status band and key bar pick their own text color against status_bg
headercyanStatus bar, column headers, endpoint labels in call flow
selectedyellowSelected/highlighted row, cursor position, focused item
accentmagentaCorrelation info, PDD annotations, extended flow labels
goodgreenPositive quality (MOS > threshold), success states (InCall, Registered)
warningyellowMedium quality, caution states (Ringing, CANCEL)
badredPoor quality, failures, errors, high loss/jitter
muteddark_graySeparators, pipe characters, disabled text, timestamps
borderwhiteWidget borders, panel frames
status_bg#303040Status 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.

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)

Names are case-insensitive. sipnab refuses an unrecognized name at startup and names the slot:

invalid config value: [theme] background = "bogus" is not a color: give a name (red, dark_gray, reset, ...) or #rrggbb

Hex RGB

Use the "#RRGGBB" format, for example "#ff8800", "#1a1a2e". This 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 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.

Dark (built-in default)

The built-in theme works on dark terminal backgrounds without any configuration. It is deliberately palette-neutral:

  • background and foreground are reset.
    • 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"
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. 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"
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). 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"
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 have it: iTerm2, Alacritty, kitty, WezTerm, Windows Terminal.
  • Use sipnab --dump-config to confirm sipnab picked up your theme.
  • The highlight key is a legacy alias for selected. If a config carries both, selected wins.

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