GTKWAVERC(5)
π 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 ofpathvalueandacceleratorsyntax? Peek at the.gtkwavercfile 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 besideshier_delimeterto 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$varstatements. 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+wheelzooms in/out around the mouse cursor position, not the marker position.Alt+wheeledges 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.gtkwavercin theexamples/vcddirectory). 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 is0. zero moodcolor_1 <value>β trace color when the value is1. one moodcolor_1fill <value>β trace color inside the box when the value is1. fill itcolor_back <value>β background color. the backdropcolor_baseline <value>β middle mouse button marker color. mid-click markercolor_black <value>β color value for "black" in signal window. blackcolor_brkred <value>β brick red color for comments. brick redcolor_dash <value>β trace color when don't care ("-"). don't carecolor_dashfill <value>β trace color inside the box when don't care ("-"). don't care fillcolor_dkblue <value>β color value for "dark blue" in signal window. dark bluecolor_dkgray <value>β color value for "dark gray" in signal window. dark graycolor_gmstrd <value>β color value for trace groupings. groupingscolor_grid <value>β grid color (useAlt-G/Shift-Alt-Gto show/hide grid). This is also the color used forhighlight_wavewindowwhen enabled. grid momentcolor_grid2 <value>β grid color for secondary pattern search. secondary gridcolor_high <value>β trace color when high ("H"). highcolor_highfill <value>β trace color inside the box when high ("H"). high fillcolor_low <value>β trace color when low ("L"). lowcolor_ltblue <value>β color for shadowed traces. shadowedcolor_ltgray <value>β color value for "light gray" in signal window. light graycolor_mark <value>β color of the named markers. named markerscolor_mdgray <value>β color value for "medium gray" in signal window. medium graycolor_mid <value>β trace color when floating ("Z"). floating Zcolor_normal <value>β color value for "normal" GTK state in signal window. normal statecolor_time <value>β text color for timebar. timebar textcolor_timeb <value>β text color for timebar's background. timebar bg textcolor_trans <value>β trace color when transitioning. transitioncolor_u <value>β trace color when undefined ("U"). undefined Ucolor_ufill <value>β trace color inside the box when undefined ("U"). undefined U fillcolor_umark <value>β color of the unnamed (primary) marker. primary markercolor_value <value>β text color for vector values. vector valuescolor_vbox <value>β vector color (horizontal). horizontal vectorcolor_vtrans <value>β vector color (verticals/transitions). vertical vectorcolor_w <value>β trace color when weak ("W"). weak Wcolor_wfill <value>β trace color inside the box when weak ("W"). weak W fillcolor_white <value>β color value for "white" in signal window. whitecolor_x <value>β trace color when undefined ("X") (collision for VHDL). undefined Xcolor_xfill <value>β trace color inside the box when undefined ("X") (collision for VHDL). undefined X fillconstant_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 everythingcontext_tabposition <value>β use zero for tabbed viewing with named tabs at the top. Nonzero places numerically indexed tabs at the left. vibe checkconvert_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 bestiecursor_snap <value>β a nonzero value indicates the number of pixels the marker should snap to for the nearest signal transition. snappydisable_ae2_alias <value>β a nonzero value means the AE2 loader is to ignore thealiasdbkeyword and is not to construct facility aliases. no capdisable_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 energydisable_empty_gui <value>β a nonzero value means ifgtkwaveis invoked without a dumpfile name, then an emptygtkwavesession is to be suppressed. Default is a zero value: bring up an empty session which needs a file loaded or dragged into it. iykykdisable_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). periodtdisable_tooltips <value>β a nonzero value means tooltip pop up bubbles should be disabled. A zero value means tooltips should be active (default). slaydo_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 checkdragzoom_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 frdynamic_resizing <value>β a nonzero value means dynamic resizing should be initially enabled (default). A zero value means dynamic resizing should be initially disabled. resize queeneditor <"value">β used to specify a string (quotes mandatory) for whengtkwaveinvokes 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 ateenable_ghost_marker <value>β lets the user turn on/off the ghost marker during primary marker dragging. Default is enabled. ghostieenable_horiz_grid <value>β a nonzero value means when grid drawing is enabled, horizontal lines are to be drawn. This is the default. grid momentenable_vcd_autosave <value>β causes the vcd loader to automatically generate a.savfile (vcd_autosave.sav) in the cwd if a save file is not specified on the command line. Note that this mirrors the VCD$vardefs and no attempt is made to coalesce split bitvectors back together. autosave bestieenable_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 ofenable_horiz_gridandenable_vert_gridvalues are acceptable. mix and matchfill_waveform <value>β a zero value means the waveform should not be filled for1/Hvalues. 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 thexfontselprogram.fontname_signals <value>β same deal, but this one names the X11 font you want for signals β¨.xfontselis your bestie for making fontnames.fontname_waves <value>β and this one is the X11 font for waves π, also gen-able withxfontsel. > β οΈ 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/--noheadercommand 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 thegtk_paned_packfunctions (this is the default and also recommended, bestie). a zero value meansgtk_paned_addgets 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.-1lets 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.-1lets the window manager pick the position π«keep_xz_colors <value>β when nonzero, the original color scheme for non0/1signal 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 callfsdbDumpVarsmultiple 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 over1.0are taken as1/xand values equal to or less than1.0are taken literally. so2gives a half-page scroll and.67gives2/3. default is1.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 are4through66(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 charactersm,u,n,f,p, ors, 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 tonone.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 ahead10clock edges instead of just1π₯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 ofonoroffare also permissible.use_full_precision <value>β when active, this does not round time values when the number of ticks per pixel onscreen is greater than10. 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 iszero.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 iszero.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_clickingvalue β 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_selectvalue β 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_interfacevalue β 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_subscriptsvalue β nonzero means signal names get stored internally asname.bitnumber. When it's disabled, you get the more "normal" ordering ofname[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 ifatomic_vectorsis enabled π«Ά Default forvcd_explicit_zero_subscriptsis disabled.vcd_preserve_glitchesvalue β 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 forvcd_preserve_glitchesis disabled.vcd_preserve_glitches_realvalue β 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 forvcd_preserve_glitchesis 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_filesizevalue β 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_paddingvalue β 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_compressionvalue β the value passed to zlib during vlist processing (which is what the VCD recoder uses).-1disables compression,0-9correspond to the value zlib expects. 4 is the default.vlist_prepackvalue β 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_spillvalue β 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_scrollingvalue β nonzero enables scrolling by dragging the marker off the left or right sides of the wave window. Zero disables it.zoom_basevalue β lets you set the zoom base to a value between 1.5 and 10.0. Default is 2.0.zoom_centervalue β nonzero enables center zooming, zero disables it.zoom_dynamicvalue β nonzero enables dynamic full zooming when you're using the partial VCD (incremental) loader, zero disables it.zoom_dynamic_endvalue β nonzero enables dynamic zoom to the end when you're using the partial VCD (incremental) loader, zero disables it.zoom_pow10_snapvalue β this one corresponds to the Zoom Pow10 Snap menu option. Default for this is disabled (zero).
π AUTHORS π
Anthony Bybell <bybell@rocketmail.com>
π¦ SEE ALSO π¦
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 π β¨
π¦ where this page comes from
- arch rolling: gtkwave 3.3.128-1 Β· GPL-2.0-or-later AND MIT
- epel 10: gtkwave 3.3.128-1.el10_3 Β· GPL-2.0-or-later
- fedora 44: gtkwave 3.3.126-2.fc44 Β· GPL-2.0-or-later
- fedora 44: gtkwave 3.3.127-1.fc44 Β· GPL-2.0-or-later
- nixos 26.05: gtkwave 3.3.127
- nixpkgs unstable: gtkwave 3.3.128
- ubuntu resolute: gtkwave 3.3.126-1
- ubuntu stonking: gtkwave 3.3.127-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms