Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Config file

This page documents the user configuration file loaded by Surfer on native builds. You only need to specify the settings you want to change; any omitted setting keeps its default value.

The complete default configuration lives in default_config.toml.

Example

theme = "dark+"
default_variable_name_type = "Global"
snap_distance = 10

[default_time_format]
format = "SI"
show_space = true
show_unit = true

[layout]
show_ticks = false
hierarchy_style = "Tree"
waveforms_text_size = 12.0

[behavior]
arrow_key_bindings = "Scroll"
primary_button_drag_behavior = "Measure"

Load order

On native builds, configuration is loaded in this order, with later sources overriding earlier ones:

  1. Built-in defaults from default_config.toml
  2. The per-user config.toml in Surfer’s configuration directory
  3. Deprecated surfer.toml in the current working directory, if present
  4. Any .surfer/config.toml files found from the filesystem root down to the current directory
  5. Environment variables with the SURFER prefix

Top-level settings

KeyDefaultValuesDescription
default_variable_name_type"Unique"Local, Unique, GlobalDefault signal name display style.
default_clock_highlight_type"Line"Line, Cycle, NoneDefault clock highlighting mode.
snap_distance6non-negative numberCursor snap distance in pixels.
theme""theme nameTheme to load. Leave empty to use the built-in default theme.
undo_stack_size50integerMaximum number of undo steps to keep.
autoreload_files"Ask"Always, Never, AskWhat to do when loaded waveform files change on disk.
autoload_sibling_state_files"Ask"Always, Never, AskWhether matching state files should be loaded automatically.
animation_time0.1non-negative numberDuration of UI animations in seconds.
animation_enabledtruebooleanEnable or disable UI animations entirely.
show_divider_textfalsebooleanShow divider labels inline in the waveform area.
max_url_length65534integerMaximum URL length used for remote connections. Useful when a proxy enforces a limit.

The remaining top-level keys are tables documented below: default_time_format, layout, gesture, behavior, wcp, server, and shortcuts.

[default_time_format]

Controls how time values are rendered in the UI.

KeyDefaultValuesDescription
format"No"No, Locale, SINumeric formatting style. Locale uses the current locale. SI groups digits using SI-style spacing.
show_spacetruebooleanInsert a space between the numeric part and the unit.
show_unittruebooleanShow the time unit suffix.

[layout]

Controls the initial UI layout and waveform rendering behavior.

KeyDefaultValuesDescription
show_hierarchytruebooleanShow the hierarchy panel.
show_menutruebooleanShow the menu bar.
show_toolbartruebooleanShow the toolbar.
show_tickstruebooleanShow vertical tick lines in the waveform area.
show_tooltiptruebooleanShow tooltips for variables.
show_scope_tooltipfalsebooleanShow tooltips for scopes.
show_overviewtruebooleanShow the overview panel.
show_statusbartruebooleanShow the status bar.
show_variable_indicestruebooleanShow signal indices in the variable list when available.
show_variable_directiontruebooleanShow direction icons or indicators for variables.
show_default_timelinetruebooleanAdd a timeline row by default.
show_empty_scopesfalsebooleanShow scopes that contain no visible items.
show_hierarchy_iconsfalsebooleanShow scope and variable icons in the hierarchy.
parameter_display_location"Scopes"Variables, Scopes, Tooltips, NoneWhere parameter values are displayed in the hierarchy UI.
window_width1920integerInitial window width in pixels.
window_height1080integerInitial window height in pixels.
window_x_position0integerInitial window x-position in pixels.
window_y_position0integerInitial window y-position in pixels.
align_names_rightfalsebooleanRight-align names in the item list.
hierarchy_style"Separate"Separate, Tree, VariablesLayout style used for the hierarchy and variable list.
waveforms_text_size11.0non-negative numberText size for waveform values, in points.
waveforms_line_height16.0non-negative numberBase line height for waveforms, in points.
waveforms_gap2.5non-negative numberVertical gap above and below waveform traces. Basically, how far the background is drawn.
waveforms_line_height_multiples[1, 2, 4, 8, 16]list of non-negative numbersAvailable line-height multipliers for taller rows.
analog_waveform_multiplier4non-negative numberDefault height multiplier applied when a variable is switched from digital to analog rendering.
transactions_line_height30.0non-negative numberLine height for transaction streams.
zoom_factors[0.5, 0.75, 0.9, 1.0, 1.1, 1.25, 1.5, 2.0, 2.5]list of non-negative numbersAvailable UI zoom factors.
default_zoom_factor1.0non-negative numberInitial UI zoom factor.
highlight_focusedfalsebooleanHighlight the waveform of the focused item.
move_focus_on_inserted_markertruebooleanMove focus to newly inserted markers.
fill_high_valuestruebooleanFill the high state in boolean waveforms.
use_dinotrace_stylefalsebooleanUse Dinotrace-style digital waveform drawing. This means no upper line and a bold lower line for all zeros vector values and a bold upper line for all ones vector values.
transition_value"Next"Previous, Next, BothWhich value to show when the cursor is exactly on a transition.

[gesture]

Controls the radial mouse-gesture overlay shown when using gesture mode.

KeyDefaultValuesDescription
size300non-negative numberSize of the gesture help overlay.
deadzone20non-negative numberMinimum squared drag distance before a gesture action is triggered.
background_radius1.35non-negative numberBackground circle radius as a factor of size / 2.
background_gamma0.75number between 0 and 1Background opacity factor. Lower values are more opaque.

[gesture.mapping]

Maps each drag direction to a gesture action.

Supported actions are Cancel, ZoomIn, ZoomOut, ZoomToFit, GoToEnd, and GoToStart.

DirectionDefault
north"Cancel"
northeast"ZoomOut"
east"ZoomIn"
southeast"GoToEnd"
south"Cancel"
southwest"GoToStart"
west"ZoomIn"
northwest"ZoomToFit"

[behavior]

Controls a small set of interaction defaults.

KeyDefaultValuesDescription
keep_during_reloadtruebooleanKeep variables/items when they are unavailable after a reload.
arrow_key_bindings"Edge"Edge, ScrollMake left/right arrow keys jump between edges or scroll the viewport.
primary_button_drag_behavior"Cursor"Cursor, MeasureDefault behavior for primary-button dragging. Holding Shift temporarily selects the other mode.

[wcp]

Waveform Control Protocol server settings.

KeyDefaultValuesDescription
autostartfalsebooleanStart the WCP server automatically on launch.
address"127.0.0.1:54321"host:port stringBind address for the WCP server.

[server]

Settings for Surver’s HTTP server.

KeyDefaultValuesDescription
bind_address"127.0.0.1"host or IP stringAddress to bind the server to.
port8911integerTCP port to listen on.

[shortcuts]

The shortcuts table maps an action name to a list of key chords. Each value is an array of strings such as "Command+O" or "PageDown", where each value in the list is one shortcut, not a sequence. Hence, each action can have multiple alternative shortcuts.

Command corresponds to ⌘ on Mac and Ctrl on all other platforms. For a list of key names, see Key.

The default configuration defines these actions:

ActionDefault binding
open_fileCommand+O
switch_fileCommand+Shift+O
undoCommand+Z, U
redoCommand+Shift+Z, Command+Y
toggle_side_panelB
toggle_toolbarT
goto_endE
goto_startS
goto_topHome
goto_bottomEnd
save_state_fileCommand+S
group_newG
item_focusF
select_allCommand+A
select_toggleA
reload_waveformR
zoom_inPlus, Equals
zoom_outMinus
ui_zoom_inCommand+Plus
ui_zoom_outCommand+Minus
scroll_upPageUp
scroll_downPageDown
delete_selectedDelete, X
marker_addM
toggle_menuAlt+M
show_command_promptSpace
rename_itemF2
divider_addD
zoom_to_fitShift+F
go_to_timeCommand+G

Notes

  • Floating-point values that are documented as non-negative are clamped to 0 if a negative value is provided.
  • Values documented as being between 0 and 1 are clamped to that range.
  • Theme files are documented separately in the configuration section’s themes page.