Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/tmux/tmux/llms.txt

Use this file to discover all available pages before exploring further.

tmux provides extensive color and styling capabilities for customizing the visual appearance of the status line, panes, borders, and more.

Color Support

From colour.c:45-88, tmux supports multiple color systems:

Color Formats

FormatExampleDescription
Namedred, blue, greenBasic 16-color names
Brightbrightred, brightblueBright variants (90-97)
Indexedcolour0 through colour255256-color palette
RGB#ff0000, #abcTrue color RGB values
DefaultdefaultTerminal default color
TerminalterminalCurrent terminal color

Basic Colors (0-15)

From colour.c:144-181, these are the standard color names:
# Basic 8 colors (0-7)
black, red, green, yellow, blue, magenta, cyan, white

# Bright colors (90-97, or 8-15 in 256 mode)
brightblack, brightred, brightgreen, brightyellow
brightblue, brightmagenta, brightcyan, brightwhite

# Special colors
default      # Terminal default (8)
terminal     # Current terminal setting (9)

256 Color Palette

# Use colour0 through colour255
set -g status-bg colour235
set -g status-fg colour254

# Or use color (American spelling)
set -g status-bg color235
The 256-color palette includes:
  • Colors 0-15: Standard terminal colors
  • Colors 16-231: 6×6×6 RGB cube
  • Colors 232-255: Grayscale ramp

RGB Colors

From colour.c:234-242, RGB colors support hex notation:
# Full hex notation
set -g status-bg "#1a1a1a"
set -g pane-active-border-style "fg=#ff5500"

# RGB notation
set -g status-bg "rgb:ff/00/00"

# Decimal notation
set -g status-bg "255,0,0"

X11 Color Names

From colour.c:399-1006, tmux supports X11 color names:
set -g status-bg "DarkSlateGray"
set -g status-fg "LightSteelBlue"
set -g pane-active-border-style "fg=CornflowerBlue"
Examples: AliceBlue, AntiqueWhite, DarkOliveGreen, MediumPurple, PaleVioletRed

Grayscale

From colour.c:989-1000, grayscale colors:
# Named grays (grey0-grey100 or gray0-gray100)
set -g status-bg grey20
set -g status-fg grey80

# Equivalent to RGB with equal components
set -g status-bg "#333333"  # grey20

Style Syntax

From style.c:59-252, styles are specified as comma-separated attributes:

Basic Style Format

# Format: attribute[,attribute,...]
set -g status-style "fg=colour,bg=colour,attribute"

Foreground and Background

# Foreground color
fg=red
fg=colour208
fg=#ff5500

# Background color  
bg=black
bg=colour235
bg=#1a1a1a

# Underscore/underline color (if supported)
us=blue
us=#0000ff

Text Attributes

From style.c:217-241, available text attributes:
# Single attributes
bright      # Bold/bright text
bold        # Bold text
dim         # Dim/faint text
underscore  # Underlined text
underline   # Underlined text (alias)
blink       # Blinking text
reverse     # Reverse video
hidden      # Hidden text
italics     # Italic text
strikethrough # Strikethrough text

# Special attributes
none        # No attributes
noattr      # Clear all attributes
default     # Use default style

# Negate attributes (remove specific attribute)
nobright, nobold, nodim, nounderscore, noblink
noitalics, nostrikethrough, noreverse, nohidden

Combined Styles

# Multiple attributes
set -g status-style "fg=white,bg=black,bold"
set -g window-status-current-style "fg=black,bg=green,bold,underscore"

# Complex styles
set -g pane-border-style "fg=colour240,bg=default,dim"

Style Options

Status Line Styles

# Overall status line
set -g status-style "bg=green,fg=black"

# Status line sections
set -g status-left-style "bg=blue,fg=white,bold"
set -g status-right-style "bg=yellow,fg=black"

Window Status Styles

# Default window style
set -g window-status-style "fg=colour240"

# Current/active window
set -g window-status-current-style "bg=colour235,fg=colour15,bold"

# Last visited window
set -g window-status-last-style "fg=colour208"

# Window with activity
set -g window-status-activity-style "bg=colour235,fg=colour208"

# Window with bell
set -g window-status-bell-style "bg=colour235,fg=colour196,blink"

Pane Styles

# Pane borders
set -g pane-border-style "fg=colour240"
set -g pane-active-border-style "fg=colour208"

# From example_tmux.conf and options-table.c:1270-1276
set -g pane-active-border-style "#{?pane_in_mode,fg=yellow,#{?synchronize-panes,fg=red,fg=green}}"

# Pane content styles
set -g window-style "bg=colour235"
set -g window-active-style "bg=colour234"

Message Styles

# Command prompt and messages
set -g message-style "bg=yellow,fg=black"

# Command mode (vi mode)
set -g message-command-style "bg=black,fg=yellow"

Mode Styles

# Copy mode and other modes
set -g mode-style "bg=yellow,fg=black"

# Copy mode specific
set -g copy-mode-match-style "bg=cyan,fg=black"
set -g copy-mode-current-match-style "bg=magenta,fg=black"
set -g copy-mode-mark-style "bg=red,fg=black"

Color Conversion

From colour.c:298-396, tmux can convert between color formats:

RGB to 256 Color

The colour_find_rgb() function converts RGB to closest 256-color:
// Maps RGB to 6x6x6 color cube or 24-step grayscale
// Colors 0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff for cube
// Grayscale: 8, 18, 28... 238 for grays

256 to RGB

From colour.c:299-370, the color table converts 256 colors to RGB:
# These are equivalent:
colour1    # Maps to 0x800000 (RGB)
red        # Standard red

256 to 16 Color

From colour.c:372-396, tmux can map 256 colors to basic 16:
# For terminals that only support 16 colors
# colour1 through colour255 map to 0-15

Advanced Style Features

From style.c:105-242, tmux supports advanced styling:

Alignment

# Text alignment in status line
align=left
align=centre
align=right
align=absolute-centre

Range Coloring

# Color specific ranges
range=left       # Status left section
range=right      # Status right section  
range=window|N   # Specific window index
range=pane|%N    # Specific pane ID
range=session|$N # Specific session ID

Fill Color

# Fill color for unused space
fill=colour235

List Styling

# For window/pane lists
list=on          # Enable list styling
list=focus       # Focus item styling
list=left-marker # Left marker
list=right-marker # Right marker

Style Stack

# Push/pop default styles
push-default     # Save current default
pop-default      # Restore saved default
set-default      # Set new default

Color Schemes

Dark Theme Example

# From example configuration patterns
set -g status-style "bg=colour235,fg=colour15"
set -g pane-border-style "fg=colour240"
set -g pane-active-border-style "fg=colour208"
set -g window-status-style "fg=colour240"
set -g window-status-current-style "bg=colour238,fg=colour15,bold"
set -g message-style "bg=colour238,fg=colour15"
set -g mode-style "bg=colour238,fg=colour15"

Light Theme Example

set -g status-style "bg=colour254,fg=colour235"
set -g pane-border-style "fg=colour250"
set -g pane-active-border-style "fg=colour33"
set -g window-status-style "fg=colour240"
set -g window-status-current-style "bg=colour231,fg=colour33,bold"
set -g message-style "bg=colour231,fg=colour33"
set -g mode-style "bg=colour231,fg=colour33"

Solarized Dark

# Solarized dark colors
set -g status-style "bg=#002b36,fg=#93a1a1"
set -g pane-border-style "fg=#073642"
set -g pane-active-border-style "fg=#268bd2"
set -g window-status-style "fg=#586e75"
set -g window-status-current-style "bg=#073642,fg=#268bd2,bold"
set -g message-style "bg=#073642,fg=#268bd2"

Nord Theme

# Nord color scheme
set -g status-style "bg=#2e3440,fg=#d8dee9"
set -g pane-border-style "fg=#3b4252"
set -g pane-active-border-style "fg=#88c0d0"
set -g window-status-style "fg=#4c566a"
set -g window-status-current-style "bg=#3b4252,fg=#88c0d0,bold"
set -g message-style "bg=#3b4252,fg=#88c0d0"

Terminal Compatibility

Checking Color Support

# Set terminal features for RGB color
set -sa terminal-features ",xterm-256color:RGB"

# Override terminal capabilities
set -sa terminal-overrides ",xterm-256color:Tc"

# Set default terminal
set -g default-terminal "tmux-256color"

Terminal Feature Flags

From options-table.c:524-534:
# Terminal features
terminal-features "xterm*:clipboard:ccolour:cstyle:focus:title"

# Features:
# RGB - True color support
# clipboard - Clipboard support
# ccolour - Cursor color
# cstyle - Cursor style  
# focus - Focus events
# title - Window title setting

Cursor Styling

From options-table.c:62-65 and 326-339:
# Cursor style (one of):
set -g cursor-style default
set -g cursor-style blinking-block
set -g cursor-style block  
set -g cursor-style blinking-underline
set -g cursor-style underline
set -g cursor-style blinking-bar
set -g cursor-style bar

# Cursor color
set -g cursor-colour red
set -g cursor-colour "#ff0000"

# Prompt cursor
set -g prompt-cursor-colour blue
set -g prompt-cursor-style blinking-block

Palette Override

From colour.c:1125-1157, you can override the color palette:
# Override specific palette colors
set -g pane-colours[1] "#ff0000"   # Override color 1
set -g pane-colours[2] "#00ff00"   # Override color 2

Display Panes Colors

# Colors for display-panes indicator
set -g display-panes-colour blue           # Inactive panes
set -g display-panes-active-colour red     # Active pane
set -g display-panes-time 1000             # Display time (ms)

Style Testing

Test colors and styles:
# Show current styles
show -g status-style
show -w window-status-current-style

# Test with temporary changes
set -g status-style "bg=red,fg=white" \; \
  display "Testing..." \; \
  run "sleep 2" \; \
  set -g status-style "bg=green,fg=black"

Style Best Practices

1

Use consistent color palette

Choose 4-6 colors and use them consistently throughout your configuration
2

Ensure readability

Test foreground/background combinations for sufficient contrast
3

Consider terminal support

Not all terminals support all features (RGB, italics, etc.)
4

Use semantic colors

Use colors that convey meaning (red for errors, green for success)
5

Test in different lighting

Verify your color scheme works in both bright and dim environments
RGB color support requires a terminal that supports true color and proper terminal-features or terminal-overrides configuration.
Use format variables to create dynamic styles that change based on tmux state:
set -g pane-active-border-style "#{?pane_in_mode,fg=yellow,fg=green}"

Build docs developers (and LLMs) love