Configuration Options

The tables below list every option accepted by set, set-option, setw, and set-window-option. Option names are case-sensitive and aliases are listed separately because the parser accepts each token. Runtime set-option uses the same option parser. A "Global or session" entry means set-option <option> <value> creates an override for the current session, set-option -t <target> <option> <value> targets another session by name or ID, set-option -u <option> clears the session override, and set-option -g <option> <value> updates the global fallback. A "Global only" entry must use -g at runtime because the option is resolved by the client or by server-wide startup state and cannot be represented as a per-session server override.

Boolean options enable on on, true, or 1; any other value disables them unless noted.

Prefix and keys

Option Accepted value(s) Default Description Runtime set-option
prefix Key name such as C-a through C-z C-b Sets the command prefix key. Global only
command-alias name=command Built-in tmux-compatible short aliases Adds or overrides a command alias. The alias name is one token; the value may include command arguments, e.g. set -g command-alias sp=split-window -h. Repeating the option appends or overrides aliases. Global only

Key bindings use the bind/bind-key and unbind/unbind-key directives, not set options. See Root key bindings, Custom key tables, and Mouse bindings. Command lines can contain top-level ; separators; use \; for a literal semicolon.

Shell and terminal

Option Accepted value(s) Default Description Runtime set-option
default-shell Command name or path token System default shell Sets the shell executable used when wtmux starts new sessions. Global only
default-shell-args String Not set Appends arguments to default-shell. Global only
default-shell-arg String Not set Alias for default-shell-args. Global only
default-command String Not set Overrides the command run in new panes/windows. wtmux passes the command string directly to ConPTY; when unset, panes use default-shell plus default-shell-args. Runtime changes apply to future panes/windows in sessions created with the default pane command; sessions created with an explicit command keep using that command. Global or session
default-terminal String Not set Sets $TERM for panes created after the option is set; an explicit set-environment TERM ... override wins. Global or session
set-titles on/off (true/1 also on) off When on, sets the host terminal title from set-titles-string while attached (restoring the original title on detach). Global or session
set-titles-string Format string #S:#I:#W The host terminal title format when set-titles is on; expands the same variables as the status bar (#S, #I, #W, #P, #T, #H, etc.). Global or session

Windows and panes

Option Accepted value(s) Default Description Runtime set-option
base-index Integer 0 Sets the number of the first window; status formats, window switching, and new-window targets use this numbering. Runtime changes renumber existing windows. Global or session
pane-base-index Integer 0 Sets the number of the first pane shown by #P and display-panes; runtime changes update display and picker numbering. Global or session
automatic-rename on/off (true/1 also on) on Enables automatic window renaming from the active pane title for new sessions/windows. Global or session
remain-on-exit on/off (true/1 also on) off Keeps panes visible after their command exits, preserving final output with a [dead] marker until the pane is closed or respawned. Global or session
synchronize-panes on/off (true/1 also on; empty or toggle toggles at runtime) off Duplicates typed input to every live pane in the target window. set -g sets the default for newly created windows; runtime set-window-option without -g changes the target window. Window (set-window-option)
history-limit Integer 10000 Sets scrollback rows for panes created after the option is applied. Global or session

Activity, bell, and silence monitoring

Option Accepted value(s) Default Description Runtime set-option
monitor-activity on/off (true/1 also on) off Flags background windows that receive output. Global or session
monitor-bell on/off (true/1 also on) off Flags windows whose output contains BEL (0x07). Global or session
monitor-silence Integer seconds, on/true (30 seconds), or off/false/0 0 (off) Flags windows with no output for the configured interval. Global or session
activity-action any, none, current, or other other Selects which windows are eligible for activity alerts. Global or session
bell-action any, none, current, or other any Selects which windows may forward a host-terminal BEL and receive monitored bell alerts. Global or session
silence-action any, none, current, or other other Selects which windows are eligible for silence alerts. Global or session
visual-activity off, on, or both off Shows a transient status-line message for activity alerts when enabled. Global or session
visual-bell off, on, or both off off forwards the host-terminal BEL only; on uses the monitored transient visual alert only; both emits both. Enable monitor-bell for the visual alert/window flag. Global or session
visual-silence off, on, or both off Shows a transient status-line message for silence alerts when enabled. Global or session

wtmux can flag windows in the status bar when something needs attention:

set -g monitor-activity on      # mark background windows that receive output
set -g monitor-bell on          # mark windows whose output contains BEL (0x07)
set -g monitor-silence 60       # mark windows with no output for 60 seconds; 0/off disables

Alert scope options control which windows are eligible to trigger an alert. activity-action current has no effect for activity monitoring because activity is only tracked for non-current windows.

Visual alert options control whether an alert also shows a transient status-line message for display-time milliseconds. Pane BEL events are forwarded to the host terminal by default when bell-action allows their window, so Windows Terminal can apply its configured sound/flash behavior. For visual-bell, off keeps the host BEL only, on suppresses it in favor of the monitored visual message, and both provides both. Enable monitor-bell to set the ! flag and show the visual message:

set -g visual-activity on
set -g visual-bell both
set -g visual-silence on

The default window-status formats include #F, so flags appear automatically. Activity (#) and bell (!) flags clear when you switch to the flagged window; silence (~) clears when that window produces output again.

Status bar

Option Accepted value(s) Default Description Runtime set-option
status on/off (true/1 also on) on Shows or hides the status bar; when hidden, panes use the reclaimed row. Global or session
status-position top or bottom bottom Places the status bar at the top or bottom of the terminal. Global or session
status-left Format string  [#S]  Sets left status content before the window list. Global or session
status-right Format string  %H:%M  Sets right-aligned status content. Global or session
status-style Style string with fg=<color> and/or bg=<color> Not set (inverse video) Sets status foreground/background colors in one option. Global or session
status-fg Color Not set Sets the status foreground color. Global or session
status-foreground Color Not set Alias for status-fg. Global or session
status-bg Color Not set Sets the status background color. Global or session
status-background Color Not set Alias for status-bg. Global or session
status-interval Integer seconds 15 Interval in seconds between periodic status-bar refreshes, including clocks and other time-based status-right content. The effective tick is at least 1 second and may be more frequent when monitor-silence is lower. Global or session
window-status-current-format Format string  #I:#W#F  Sets the active window entry format in the status bar. Global or session
window-status-format Format string  #I:#W#F  Sets inactive window entry formats in the status bar. Global or session

#{prefix_highlight} is a format variable, not a set option; it renders the configured prefix key when the prefix is active.

Mouse

Option Accepted value(s) Default Description Runtime set-option
mouse on/off (true/1 also on) off Enables mouse reporting, pane selection, border dragging, and scrollback mouse defaults. Global only

Environment

Environment is configured with directives rather than set options.

Directive Accepted value(s) Default Description Runtime set-option
set-environment / setenv [-g] NAME VALUE or [-g] -u NAME Inherited process environment Sets or unsets variables passed to panes created after the change. No; use set-environment
show-environment / showenv [-g] Current environment map Recognized by config parsing and the CLI for tmux compatibility. No

Miscellaneous

Option Accepted value(s) Default Description Runtime set-option
clock-mode-style 12 or 24 24 Selects 12-hour or 24-hour display for clock-mode. Global only
clock-mode-colour Color green Sets the foreground color for the large digits in clock-mode. Accepts the same named, colourN/colorN, and numeric palette values as status colors. Global only
display-time Integer milliseconds 750 Sets how long temporary status messages are displayed. Global or session
set-clipboard on, off, or external (true/1 also on; false/0 also off) external Controls whether copy-mode yanks write to the Windows clipboard. off only updates wtmux paste buffers; on and external both use the Windows clipboard path because wtmux strips OSC 52 from server frames. Global only
destroy-unattached on/off (true/1 also on) off Destroys a session once its last attached client detaches, switches away, or disconnects. Global or session

User options (@)

Options whose name begins with @ are user options: arbitrary named values that wtmux stores but does not otherwise interpret, following the tmux convention. Set them like any other option — set -g @my_theme dark in the config file or wtmux set-option -g @my_theme dark at runtime — and read them back with #{@my_theme} in any format string or with wtmux show-option -g @my_theme. wtmux show-options -g lists the user options that are set alongside the built-in options. User option names are case-sensitive, the value may contain spaces when quoted, and an unset @ variable expands to an empty string. They are primarily used to configure plugins (a plugin reads its own @ options through the host API — see Plugins).