Colors and Themes
VisiData uses a 256-color terminal palette for its interface. Colors are controlled via color_* and disp_* options — configurable in the Options Sheet or ~/.visidatarc.
Learning Focus
Use the Options Sheet (Shift+O) to preview color changes live before writing them to .visidatarc. You can see results immediately without restarting.
How Color Options Work
All color options follow this pattern:
color_<element> <curses color spec>
Color specs can be:
- Named colors:
white,black,red,green,blue,cyan,magenta,yellow - 256-color numbers:
68(blue),214(orange),46(green) - Combinations:
bold white on 238,italic on 68 blue - Reverse video:
reverse
Change a Color Live in the Options Sheet
vd ~/github/practice-folder/visidata/03-join/01-servers.csv
# Press Shift+O → Options Sheet opens
# Press / → type: color_current_row → press Enter
# Press e → type: bold white on 27 (blue background)
# Press Enter → cursor row color changes immediately on the source sheet
Before:
web01 webserver active sg ← cursor row: default highlight
After bold white on 27:
web01 webserver active sg ← cursor row: white text on blue background
Set Colors in .visidatarc
# ~/.visidatarc
# Default foreground/background
color_default = 'white on black'
# Column header row
color_default_hdr = 'bold white on black'
# Cursor row (highlighted row)
color_current_row = 'reverse'
# Cursor column background
color_current_col = 'bold on 232'
# Selected rows (yellow by default)
color_selected_row = '215 yellow'
# Key column color (blue)
color_key_col = '81 cyan'
# Status bar
color_status = 'bold on 238'
# Error messages
color_error = '202 1'
# Warning messages
color_warning = '166 15'
Dark Mode Starter Config
# ~/.visidatarc — dark mode color scheme
# Base colors
color_default = 'white on 232'
color_default_hdr = 'bold 39 on 236'
color_current_row = '232 on 214'
color_current_col = 'on 236'
color_selected_row = '226 yellow on 235'
color_key_col = '51 cyan'
# Status bar
color_status = 'bold white on 234'
color_error = 'bold 196 red'
color_warning = '214 orange'
# Sidebar
color_sidebar = 'white on 234'
color_sidebar_title = 'bold white on 236'
Sidebar and Menu Colors
# Sidebar background
color_sidebar = 'black on 114 blue'
# Sidebar title
color_sidebar_title = 'black on yellow'
# Menu items
color_menu = 'black on 68 blue'
# Active menu item
color_menu_active = '223 yellow on black'
Graph Colors
# Plot color palette (list of colors for distinct series)
options.plot_colors = '214 46 51 196 226 201 47 27 165 9'
# Hidden graph layer
color_graph_hidden = '238 blue'
# Selected graph points
color_graph_selected = 'bold'
Display Characters
Beyond colors, display characters control separators and indicators:
# Column separator
options.disp_column_sep = '│'
# Key column separator
options.disp_keycol_sep = '║'
# Null value indicator
options.disp_note_none = '⌀'
# Truncation indicator
options.disp_truncator = '…'
# Sort ascending/descending characters
options.disp_sort_asc = '↑↟⇞⇡⇧⇑'
options.disp_sort_desc = '↓↡⇟⇣⇩⇓'
Troubleshooting
| Problem | Cause | Fix |
|---|---|---|
| Colors look wrong | Terminal not 256-color | export TERM=xterm-256color |
| Color numbers out of range | Color > 255 | Use values 0–255 only |
| Bold not rendering | Terminal doesn't support bold | Test with tput bold |
| Theme option invalid | Unknown theme name | Leave blank or remove the line |
Hands-On Practice
vd ~/github/practice-folder/visidata/03-join/01-servers.csv
# 1. Press Shift+O to open Options Sheet
# 2. Press / and search for: color_current_row
# 3. Press Enter → type: bold white on 27 (blue background)
# 4. Press Enter → cursor row color changes immediately
# 5. Navigate back to source sheet to see the effect
# 6. If you like it: Shift+O → Ctrl+S to save to ~/.visidatarc