GTKWAVERC(5)

πŸ“¦
version 3.3.128 Β· 4 versions
, in arch rolling, epel 10, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu resolute, ubuntu stonking

πŸ’– gtkwaverc(5) β€” GTKWave Configuration File πŸ’…

✨ NAME ✨

gtkwaverc β€” the GTKWave configuration file. It’s the little text file that tells gtkwave(1) how to behave, and bestie, this is where you customize the whole vibe.


πŸ›  SYNTAX πŸ› 

Okay so the config file is literally just a series of option and value pairs, like this:

option <value>

Comment lines that start with a # are totally allowed. Blank lines? Ignored. slay.


🌸 DESCRIPTION 🌸

This is the configuration file for gtkwave(1). If you don’t specify a path, the search path is the current working directory first, followed by the user’s home directory. highkey iykyk.


πŸ‘‘ OPTIONS πŸ‘‘

Ngl, this section is long, but it’s giving customization central. One bullet per option, no skipping, periodt.

  • accel <"pathvalue" accelerator> β€” lets you replace menu accelerator keys. Want examples of pathvalue and accelerator syntax? Peek at the .gtkwaverc file in the source distribution. The special accelerator value (null) means no accelerator is bound to that menu item. iconic.
  • alt_hier_delimeter <value> β€” lets you use another character besides hier_delimeter to delimit levels in the hierarchy for VCD. Only the first character in the value matters. Note: this is normally off. Intended use? Resolving hierarchies of netlist-based models that often contain slashes to delimit hierarchy inside of $var statements. no cap.
  • alt_wheel_mode <value> β€” default is on. Scrollwheel alone pans along a quarter at a time instead of a full page, so you don’t get lost. Ctrl+wheel zooms in/out around the mouse cursor position, not the marker position. Alt+wheel edges left/right based on the currently selected signal. This makes measuring deltas easier. obsessed.
  • analog_redraw_skip_count <value> β€” says how many overlapping analog segments can be drawn for a given X position onscreen. Default: 20. If there are gaps in analog traces, this value is too low. lowkey important.
  • append_vcd_hier <value> β€” lets you specify a prefix hierarchy for VCD files. You can do it in "pieces," so multiple layers of hierarchy are prepended to symbol names with the most significant addition occurring first (see .gtkwaverc in the examples/vcd directory). Intended use: add "project" prefixes so selecting everything from the tree hierarchy is easier. slay.
  • atomic_vectors <value> β€” speeds up vcd loading and takes up less memory. This option is deprecated; it is currently the default. deprecated alert.
  • autocoalesce <value> β€” a nonzero value enables autocoalescing of VCD vectors when applicable. This may be toggled dynamically during wave viewer usage. fr fr.
  • autocoalesce_reversal <value> β€” causes split vectors to be reconstructed in reverse order (only if autocoalesce is also active). iykyk.
  • autoname_bundles <value> β€” a nonzero value means GTKWave will create its own bundle names rather than prompting the user for them. main character energy.
  • clipboard_mouseover <value> β€” a nonzero value means when mouseover is enabled, all values generated for the tooltips will be automatically copied into the clipboard so they can be pasted into other programs such as text editors, etc. handy.
  • color_0 <value> β€” trace color when the value is 0. zero mood
  • color_1 <value> β€” trace color when the value is 1. one mood
  • color_1fill <value> β€” trace color inside the box when the value is 1. fill it
  • color_back <value> β€” background color. the backdrop
  • color_baseline <value> β€” middle mouse button marker color. mid-click marker
  • color_black <value> β€” color value for "black" in signal window. black
  • color_brkred <value> β€” brick red color for comments. brick red
  • color_dash <value> β€” trace color when don't care ("-"). don't care
  • color_dashfill <value> β€” trace color inside the box when don't care ("-"). don't care fill
  • color_dkblue <value> β€” color value for "dark blue" in signal window. dark blue
  • color_dkgray <value> β€” color value for "dark gray" in signal window. dark gray
  • color_gmstrd <value> β€” color value for trace groupings. groupings
  • color_grid <value> β€” grid color (use Alt-G/Shift-Alt-G to show/hide grid). This is also the color used for highlight_wavewindow when enabled. grid moment
  • color_grid2 <value> β€” grid color for secondary pattern search. secondary grid
  • color_high <value> β€” trace color when high ("H"). high
  • color_highfill <value> β€” trace color inside the box when high ("H"). high fill
  • color_low <value> β€” trace color when low ("L"). low
  • color_ltblue <value> β€” color for shadowed traces. shadowed
  • color_ltgray <value> β€” color value for "light gray" in signal window. light gray
  • color_mark <value> β€” color of the named markers. named markers
  • color_mdgray <value> β€” color value for "medium gray" in signal window. medium gray
  • color_mid <value> β€” trace color when floating ("Z"). floating Z
  • color_normal <value> β€” color value for "normal" GTK state in signal window. normal state
  • color_time <value> β€” text color for timebar. timebar text
  • color_timeb <value> β€” text color for timebar's background. timebar bg text
  • color_trans <value> β€” trace color when transitioning. transition
  • color_u <value> β€” trace color when undefined ("U"). undefined U
  • color_ufill <value> β€” trace color inside the box when undefined ("U"). undefined U fill
  • color_umark <value> β€” color of the unnamed (primary) marker. primary marker
  • color_value <value> β€” text color for vector values. vector values
  • color_vbox <value> β€” vector color (horizontal). horizontal vector
  • color_vtrans <value> β€” vector color (verticals/transitions). vertical vector
  • color_w <value> β€” trace color when weak ("W"). weak W
  • color_wfill <value> β€” trace color inside the box when weak ("W"). weak W fill
  • color_white <value> β€” color value for "white" in signal window. white
  • color_x <value> β€” trace color when undefined ("X") (collision for VHDL). undefined X
  • color_xfill <value> β€” trace color inside the box when undefined ("X") (collision for VHDL). undefined X fill
  • constant_marker_update <value> β€” a nonzero value means the values for traces listed in the signal window are updated constantly when the left mouse button is being held down rather than only when it is first pressed then when released (which is the default). the way that changes everything
  • context_tabposition <value> β€” use zero for tabbed viewing with named tabs at the top. Nonzero places numerically indexed tabs at the left. vibe check
  • convert_to_reals <value> β€” converts all integer and parameter VCD declarations to real-valued ones when set to a nonzero/yes value. Positive aspect: integers and parameters take up less space in memory and automatically display in decimal format. Negative aspect: integers and parameters are only displayable as decimals and can't be bit reversed, inverted, etc. tradeoff bestie
  • cursor_snap <value> β€” a nonzero value indicates the number of pixels the marker should snap to for the nearest signal transition. snappy
  • disable_ae2_alias <value> β€” a nonzero value means the AE2 loader is to ignore the aliasdb keyword and is not to construct facility aliases. no cap
  • disable_auto_comphier <value> β€” a nonzero value means the loaders that support compressed hierarchies should not automatically turn on compression if the threshold count of signals (500000) has been reached. big number energy
  • disable_empty_gui <value> β€” a nonzero value means if gtkwave is invoked without a dumpfile name, then an empty gtkwave session is to be suppressed. Default is a zero value: bring up an empty session which needs a file loaded or dragged into it. iykyk
  • disable_mouseover <value> β€” a nonzero value means signal/value tooltip pop up bubbles on mouse button presses should be disabled in the value window. A zero value means value tooltips should be active (default is disabled). periodt
  • disable_tooltips <value> β€” a nonzero value means tooltip pop up bubbles should be disabled. A zero value means tooltips should be active (default). slay
  • do_initial_zoom_fit <value> β€” a nonzero value means the trace should initially be crunched to fit the screen. A zero value means the initial zoom should be zero (default). fit check
  • dragzoom_threshold <value> β€” a nonzero value indicates the number of pixels in the x direction the marker must move in order for a dragzoom to be triggered. This is largely to handle noisy input devices. fr fr
  • dynamic_resizing <value> β€” a nonzero value means dynamic resizing should be initially enabled (default). A zero value means dynamic resizing should be initially disabled. resize queen
  • editor <"value"> β€” used to specify a string (quotes mandatory) for when gtkwave invokes a text editor (e.g., Open Source Definition). Examples are:
editor "vimx -g +%d %s"
editor "gedit +%d %s"
editor "emacs +%d %s"
editor "mate -l %d %s"

The last one is for OSX. The %d may be combined with other characters in a string such as +, etc. The %s argument must stand by itself. Note that if this rc variable is not set, then the environment variable GTKWAVE_EDITOR will be consulted next, then finally gedit will be used (if found). editor glow up

  • enable_fast_exit <value> β€” allows exit without bringing up a confirmation requester. The default is nonzero/yes. fast exit ate
  • enable_ghost_marker <value> β€” lets the user turn on/off the ghost marker during primary marker dragging. Default is enabled. ghostie
  • enable_horiz_grid <value> β€” a nonzero value means when grid drawing is enabled, horizontal lines are to be drawn. This is the default. grid moment
  • enable_vcd_autosave <value> β€” causes the vcd loader to automatically generate a .sav file (vcd_autosave.sav) in the cwd if a save file is not specified on the command line. Note that this mirrors the VCD $var defs and no attempt is made to coalesce split bitvectors back together. autosave bestie
  • enable_vert_grid <value> β€” a nonzero value means when grid drawing is enabled, vertical lines are to be drawn. This is the default. Note that all possible combinations of enable_horiz_grid and enable_vert_grid values are acceptable. mix and match
  • fill_waveform <value> β€” a zero value means the waveform should not be filled for 1/H values. This is the default. no fill default

okay bestie we're back and we are still in the config files, buckle up πŸ’–


  • fontname_logfile <value> β€” give it an argument and it's the name of the X11 font you wanna use for the logfile browser πŸŽ€. You can cook up good fontnames with the xfontsel program.
  • fontname_signals <value> β€” same deal, but this one names the X11 font you want for signals ✨. xfontsel is your bestie for making fontnames.
  • fontname_waves <value> β€” and this one is the X11 font for waves 🌊, also gen-able with xfontsel. > ⚠️ heads up bestie: the signal font has to be taller than the wave font or the viewer will complain and then terminate. it's giving dramatic πŸ’€
  • force_toolbars <value> β€” when enabled, this forces everything above the signal and wave windows to render as toolbars. which means you can detach them, which means more usable wave viewer space ✨. default is off.
  • headerbar <value> β€” decides whether the headerbar (you know, the one with the hamburger menu that is, quote unquote, "specifically disliked by many" πŸ™ˆ) gets rendered for GTK3. default is on. note that the -H/--noheader command line option always overrides this, no cap.
  • hide_sst <value> β€” hides the Signal Search Tree widget for GTK2.4 and greater so it's not embedded into the main viewer window 🫢. it's still reachable as an external widget through the menus, so don't panic.
  • hier_delimeter <value> β€” lets you use characters other than / to delimit levels in the hierarchy πŸ¦‹. only the first character in the value counts, so don't bother typing a whole essay.
  • hier_grouping <value> β€” for the tree widgets, this lets the hierarchies be grouped in one single place instead of being spread among the netnames πŸ‘‘
  • hier_ignore_escapes <value> β€” a nonzero value means the signal pane ignores escapes in identifiers when it's figuring out the hierarchy max depth. default is disabled, so escapes get examined.
  • hier_max_level <value> β€” sets the max hierarchy depth (counting from the right side) to display for trace names 🌈. fun fact: a value of zero displays the full hierarchy name.
  • highlight_wavewindow <value> β€” when enabled, traces you highlight in the signal window also get highlighted in the wave window πŸ’…. matching energy.
  • hpane_pack <value> β€” a nonzero value means the horizontal pane gets constructed using the gtk_paned_pack functions (this is the default and also recommended, bestie). a zero value means gtk_paned_add gets used instead.
  • ignore_savefile_pane_pos <value> β€” if nonzero, the pane position attributes (like signal window width size, whether SST is expanded, etc.) get ignored while the savefile is loading and skipped during saving. default is that the attribute is used.
  • ignore_savefile_pos <value> β€” if nonzero, the window position attribute gets ignored during savefile loading and skipped during saving. default is that the position attribute is used.
  • ignore_savefile_size <value> β€” if nonzero, the window size attribute gets ignored during savefile loading and skipped during saving. default is that the size attribute is used.
  • initial_signal_window_width <value> β€” sets the creation width for the signal pane when the GUI initializes ✨. it also sets another potential minimum value for dynamic resizing.
  • initial_window_x <value> β€” sets the size of the initial width of the wave viewer window. values less than or equal to zero will set the initial width equal to -1, which lets GTK figure out the minimum size.
  • initial_window_xpos <value> β€” sets the size of the initial x coordinate of the wave viewer window. -1 lets the window manager decide the position πŸŽ€
  • initial_window_y <value> β€” sets the size of the initial height of the wave viewer window. values less than or equal to zero will set the initial width equal to -1, which lets GTK determine the minimum size.
  • initial_window_ypos <value> β€” sets the size of the initial y coordinate of the wave viewer window. -1 lets the window manager pick the position πŸ’«
  • keep_xz_colors <value> β€” when nonzero, the original color scheme for non 0/1 signal values gets used when Color Format overrides are in effect 🌸. default is off.
  • left_justify_sigs <value> β€” when nonzero, the signal window signal name justification defaults to left. otherwise the justification is to the right (which is the default).
  • lxt_clock_compress_to_z <value> β€” for LXT (not LXT2!) this lets clocks compress to a 'z' value so that regular/periodic value changes can be noted πŸ•
  • lz_removal <value> β€” when nonzero, suppresses the display of leading zeros on non-filtered traces. no effect on filtered traces, soz.
  • max_fsdb_trees <value> β€” sets the max number of hierarchy and signal trees to process for an FSDB file. default = 0 = unlimited πŸ”₯. the whole point of this is to work around sim environments that accidentally call fsdbDumpVars multiple times (we've all been there).
  • page_divisor <value> β€” sets the scroll amount for page left and right operations (the buttons, not the hscrollbar). values over 1.0 are taken as 1/x and values equal to or less than 1.0 are taken literally. so 2 gives a half-page scroll and .67 gives 2/3. default is 1.0 ⭐
  • ps_maxveclen <value> β€” sets the max number of characters that can be printed for a value in the signal window portion of a postscript file (not counting the net name itself). legal values are 4 through 66 (which is the default).
  • ruler_origin <value> β€” sets the zero origin for alternate time tick marks πŸ“
  • ruler_step <value> β€” sets the left/right step value for the alternate time tick marks, measured from the origin. when this value is zero, alternate time tick marks are disabled.
  • scale_to_time_dimension <value> β€” the value can be any of the characters m, u, n, f, p, or s, which tells it which time dimension to convert the time values to ⏱️. the default is *, which means time dimension conversion is disabled.
  • show_base_symbols <value> β€” a nonzero value (default!) means the numeric base symbols for hexadecimal ('$'), binary ('%'), and octal ('#') get rendered. otherwise they get omitted πŸ’…
  • show_grid <value> β€” a nonzero value (default!) means a grid gets drawn behind the traces. a zero means no grid gets drawn 🌸
  • splash_disable <value> β€” turning this off enables the splash screen with the GTKWave mascot when loading a trace 🧚. default is on.
  • sst_dbl_action_type <value> β€” lets double-clicking be active in the SST signals pane, with these actions possible: insert (default), replace, append, prepend, none. the value is case insensitive and only the first letter is required. invalid action types default to none.
  • sst_dynamic_filter <value> β€” when true (default) the SST dialog signal filter filters signals while keys are being pressed ⌨️. otherwise you have to press enter to make the filter go active.
  • sst_expanded <value> β€” when true, the SST dialog (when it's not hidden) comes up already expanded πŸ¦‹
  • strace_repeat_count <value> β€” determines how many times edge search and pattern search will iterate on a search. this lets you, for example, skip ahead 10 clock edges instead of just 1 πŸ”₯
  • use_big_fonts <value> β€” a nonzero value means any text rendered into the wave window uses fonts that are four points larger than normal, which can help readability πŸ‘€. a zero value means normal font sizes get used.
  • use_fat_lines <value> β€” a nonzero value means any lines rendered into the wave window are two pixels wide instead of one pixel, which can help readability. a zero value means normal line widths get used.
  • use_frequency_delta <value> β€” lets you switch between the delta time and frequency display in the upper right corner of the main window when you're measuring distances between markers πŸ“. default behavior is that delta time is displayed (off).
  • use_gestures <value> β€” if it's supported by your GTK version, this enables gestures like swipe in the wave window πŸ‘†. default is that it's enabled if a touch screen is available (the value is "maybe"). values of on or off are also permissible.
  • use_full_precision <value> β€” when active, this does not round time values when the number of ticks per pixel onscreen is greater than 10. default is that this feature is disabled.
  • use_maxtime_display <value> β€” a nonzero value means the max time gets displayed in the upper right corner of the screen ⭐. otherwise, the current primary (unnamed) marker time gets displayed. you can toggle this at any time with the Toggle Max-Marker menu option.
  • use_nonprop_fonts <value> β€” allows accelerated redraws of the signalwindow, which is possible because the font width is constant πŸ’¨. default is off.
  • use_pango_fonts <value> β€” uses anti-aliased pango fonts (GTK2) instead of the bitmapped X11 ones πŸŽ€. default is on.
  • use_roundcaps <value> β€” a nonzero value means vector traces get drawn with rounded caps rather than perpendicular ones. the default for this is zero.
  • use_scrollbar_only <value> β€” a nonzero value means the page, shift, fetch, and discard buttons should not be drawn (so time manipulations go through the scrollbar only, not the front panel buttons). the default for this is zero.
  • use_scrollwheel_as_y <value> β€” a nonzero value means the scroll wheel on your mouse scrolls the signals up and down instead of scrolling the time value from left to right πŸ–±οΈ

  • use_standard_clicking value β€” bestie, this one is giving retired icon πŸ’€ it literally does nothing anymore. gtkwave just uses normal GTK click semantics in the signalwindow now. Move along, nothing to see.
  • use_standard_trace_select value β€” a nonzero value keeps the traces you've currently selected from getting deselected the moment you press a mouse button. That way drag and drop actually flows smoothly like it's supposed to ✨ Since this is not how GTK normally behaves, it's disabled by default (so, zero).
  • use_toolbutton_interface value β€” nonzero means you get a toolbar with buttons chilling at the top of the screen instead of the traditional-style gtkwave button groups. Default is on. Very main character toolbar energy πŸ‘‘
  • vcd_explicit_zero_subscripts value β€” nonzero means signal names get stored internally as name.bitnumber. When it's disabled, you get the more "normal" ordering of name[bitnumber] instead. Careful though: when disabled, the Bundle Up and Bundle Down options get disabled inside the Signal Search Regexp, Signal Search Hierarchy, and Signal Search Tree options. That's necessary because the internal data structures for signals are represented with one "less" level of hierarchy than when it's enabled, and those functions would not work properly. Not an issue though if atomic_vectors is enabled 🫢 Default for vcd_explicit_zero_subscripts is disabled.
  • vcd_preserve_glitches value β€” this says that any repeat equal values for a net that span different time values in the VCD/FST file are not to be compressed into a single value change, but should stay put so glitches can actually be present in that case. Default for vcd_preserve_glitches is disabled.
  • vcd_preserve_glitches_real value β€” same idea but for real nets: any repeat equal values for a real net spanning different time values in the VCD/FST file don't get compressed into a single value change, they stick around for this case. Default for vcd_preserve_glitches is disabled. The intended use is when you're viewing analog interpolated data, where deleting duplicate values would incorrectly deform the interpolation. So like, don't do that πŸ™ˆ
  • vcd_warning_filesize value β€” throws you a warning message if the VCD filesize is bigger than the argument's size in MB. Set it to zero to disable it entirely.
  • vector_padding value β€” how many pixels of extra whitespace get added to strings for the purpose of calculating text in vectors. Permissible values are 0 to 16, and the default is 4. A lil breathing room, as a treat 🌸
  • vlist_compression value β€” the value passed to zlib during vlist processing (which is what the VCD recoder uses). -1 disables compression, 0-9 correspond to the value zlib expects. 4 is the default.
  • vlist_prepack value β€” says the VCD recoder should pre-compress data going into the value change vlists so memory usage goes down. This happens before any potential zlib packing. Default is off.
  • vlist_spill value β€” says the VCD recoder should spill all generated vlists out to a tempfile on disk to reduce memory usage. Default is off. Your RAM says thank you πŸ’–
  • wave_scrolling value β€” nonzero enables scrolling by dragging the marker off the left or right sides of the wave window. Zero disables it.
  • zoom_base value β€” lets you set the zoom base to a value between 1.5 and 10.0. Default is 2.0.
  • zoom_center value β€” nonzero enables center zooming, zero disables it.
  • zoom_dynamic value β€” nonzero enables dynamic full zooming when you're using the partial VCD (incremental) loader, zero disables it.
  • zoom_dynamic_end value β€” nonzero enables dynamic zoom to the end when you're using the partial VCD (incremental) loader, zero disables it.
  • zoom_pow10_snap value β€” this one corresponds to the Zoom Pow10 Snap menu option. Default for this is disabled (zero).

πŸ‘‘ AUTHORS πŸ‘‘

Anthony Bybell <bybell@rocketmail.com>


πŸ¦‹ SEE ALSO πŸ¦‹

gtkwave(1)


and that's a wrap on the whole page, bestie!! this was GTKWAVERC(5) from the 3.3.81 era of gtkwave, written by the one and only Anthony Bybell πŸŽ€ go forth and configure your heart out, you absolute legend πŸ’…βœ¨