Files
mangotune/docs/MANGOHUD_OPTION_BEHAVIOR.md
2026-03-30 23:06:06 -04:00

23 KiB
Raw Permalink Blame History

MangoHud Option Behavior Reference

Reference for MangoTune, verified against a local MangoHud source snapshot (f2e45e9) on 2026-03-24 and cross-checked against upstream README.md and data/MangoHud.conf.

Primary source files:

  • /tmp/MangoHud-src/src/overlay_params.h for the authoritative option list (OVERLAY_PARAMS)
  • /tmp/MangoHud-src/src/overlay_params.cpp for parsing, defaults, preset handling, and env/config precedence
  • /tmp/MangoHud-src/src/overlay.cpp for positioning, margin, and horizontal sizing behavior
  • /tmp/MangoHud-src/src/config.cpp for config-file line parsing

Parsing Rules

  • Config-file lines are trimmed and # ... comments are stripped before value parsing.
  • A bare key with no = is treated as value 1.
  • OVERLAY_PARAM_BOOL(...) options are effectively flags: bare key or =1 enables, =0 disables.
  • offset_x and offset_y are parsed as unsigned integers, even though upstream stores them in signed int fields later.
  • Some custom options are still boolean-like in practice, such as no_display, full, and help.
  • Upstream currently declares io_read and io_write twice. In normal parsing the earlier boolean branch wins, so they behave as flags in practice.

Positioning And Layout Rules

  • Base edge margin is 10px in position_layer().
  • That margin becomes 0px if hud_no_margin is enabled or either offset_x > 0 or offset_y > 0.
  • Right-side anchors (top-right, middle-right, bottom-right) are native in MangoHud.
  • horizontal_stretch defaults to true.
  • Horizontal layouts start with full display width and may shrink after layout when horizontal_stretch is disabled.
  • top-center and bottom-center get an extra horizontal shift in horizontal non-stretch mode.

Precedence And Special Cases

  • Base defaults come from set_param_defaults().
  • Built-in presets are applied before later explicit options.
  • preset is an upstream-supported special option handled before normal option assignment, even though it does not live inside the main OVERLAY_PARAMS macro list.
  • If MANGOHUD_CONFIG is set, MangoHud normally uses env options directly.
  • read_cfg=1 tells MangoHud to also read the config file even when env config is present.
  • full=1 is a bulk enable mode, not a simple single-feature toggle.
  • full=1 immediately disables a curated exclusion list before later explicit options are applied again, including histogram, fps_only, horizontal, hud_no_margin, hud_compact, mangoapp_steam, dynamic_frame_timing, hide_engine_names, and hide_fps_superscript.
  • fps_only=1 later forces legacy_layout off.
  • Non-horizontal auto width (width=0) is derived later from font size, scale, and column count, with extra widening for I/O rows and no_small_font.

MangoTune Coverage Audit

  • Verified upstream options in OVERLAY_PARAMS: 186
  • Additional upstream special options handled outside OVERLAY_PARAMS: preset, inherit
  • Duplicate upstream declarations: io_read, io_write
  • MangoTune schema entries today: 187
  • MangoTune now represents the full currently documented option surface in its live schema, including the special-case keys preset, inherit, and help
  • Some of those options intentionally live in advanced UI sections because they are niche directives or special-case upstream behaviors rather than normal daily tuning knobs

Verified Option Table

Key Type Default Notes
af Signed integer -1 Anisotropic filtering; -1=unset
alpha Float 1.0 Overall HUD transparency
arch Flag (bare key or =1/=0) false MangoHud architecture
autostart_log Unsigned integer Seconds before auto-start
background_alpha Float 0.5 Background transparency for the HUD window.
background_color Hex color (RRGGBB) 020202 Hex color used for the Background readout or accent.
battery Flag (bare key or =1/=0) false Shows battery status when available.
battery_color Hex color (RRGGBB) FF9078 Hex color used for the Battery readout or accent.
battery_icon Flag (bare key or =1/=0) false DEPENDS ON: battery
battery_time Flag (bare key or =1/=0) false DEPENDS ON: battery
battery_watt Flag (bare key or =1/=0) false DEPENDS ON: battery
benchmark_percentiles String list (legacy / deprecated) "97","AVG" in current source defaults Current source seeds 97,AVG, but the parser logs that this option is obsolete and recommends fps_metrics. Upstream README still documents a broader default set (97,AVG,1,0.1), so published docs and current source are not fully aligned.
bicubic Flag (bare key or =1/=0) false Force bicubic filtering
blacklist Delimited string list App names to suppress overlay
cellpadding_y Float -0.085 Vertical cell padding tweak used by the ImGui table layout.
control String -1 Creates/listens on a control socket path; %p is expanded to the current process ID.
core_bars Flag (bare key or =1/=0) false Graphical core bars
core_load Flag (bare key or =1/=0) false Per-core load bars
core_load_change Flag (bare key or =1/=0) false Color per-core load
core_type Flag (bare key or =1/=0) false Show P/E core type labels
cpu_color Hex color (RRGGBB) 2E97CB Hex color used for the Cpu readout or accent.
cpu_custom_temp_sensor hwmon name,input pair Custom CPU temperature source in hwmon_name,hwmon_input form.
cpu_efficiency Flag (bare key or =1/=0) false Shows CPU efficiency / perf-per-watt style data when available.
cpu_load_change Flag (bare key or =1/=0) false Color CPU load
cpu_load_color List of 3 hex colors 0x39f900,0xfdfd09,0xb22222 Three hex colors
cpu_load_value Comma-separated integers 60,90 Two thresholds
cpu_mhz Flag (bare key or =1/=0) false Average MHz across cores
cpu_power Flag (bare key or =1/=0) false Shows CPU package or socket power draw when available.
cpu_stats Flag (bare key or =1/=0) true Master CPU section toggle
cpu_temp Flag (bare key or =1/=0) false Shows CPU temperature.
cpu_text String Custom CPU label
custom_text String-bearing special option "" / unset Declared in the macro list like a bool, but in practice MangoHud parses and uses it as a text payload line.
custom_text_center String-bearing special option "" / unset Declared in the macro list like a bool, but in practice MangoHud parses and uses it as centered text.
debug Flag (bare key or =1/=0) false Gamescope app frametimes graph
device_battery Delimited string list List of device battery kinds such as controller, mouse, or headset.
device_battery_icon Flag (bare key or =1/=0) false Adds icons to device battery entries.
display_server Flag (bare key or =1/=0) false Wayland/X11 indicator
duration Flag (bare key or =1/=0) false Enables benchmark-duration style tracking; base default is off even under full.
dx_api Flag (bare key or =1/=0) false Displays the DirectX API/backend label where supported.
dynamic_frame_timing Flag (bare key or =1/=0) false Dynamic scale frametime graph
engine_color Hex color (RRGGBB) EB5B5B Hex color used for the Engine readout or accent.
engine_short_names Flag (bare key or =1/=0) false Uses shorter engine names when engine info is displayed.
engine_version Flag (bare key or =1/=0) false Displays the engine version string when MangoHud can detect it.
exec String-bearing special option "" / unset Runs a shell command and shows its output in the next column; only works with legacy_layout=0. Like custom_text, it is handled more like a string payload than a normal bool-style flag.
exec_name Flag (bare key or =1/=0) false Show executable name
fan Flag (bare key or =1/=0) false Steam Deck fan RPM
fcat Flag (bare key or =1/=0) false Enable FCAT overlay
fcat_overlay_width Unsigned integer 24 DEPENDS ON: fcat
fcat_screen_edge Unsigned integer 0 DEPENDS ON: fcat
fex_stats Option list Tokenized option list enabling selected FEX-Emu stat groups when MangoHud is built with FEX support.
flip_efficiency Flag (bare key or =1/=0) false Joules per frame
font_file Filesystem path TTF/OTF path — validated to exist if set
font_file_text Filesystem path Custom label text for the Font File section.
font_glyph_ranges Glyph range flags Comma-separated glyph packs such as japanese, cyrillic, or latin_ext_a.
font_scale Float 1.0 Global font scale multiplier.
font_scale_media_player Float 0.55 Separate font scale for media-player text.
font_size Float 24 Main font size in pixels.
font_size_secondary Float Secondary text size used by some secondary labels; parsed separately from the main font_size.
font_size_text Float For text elements
fps Flag (bare key or =1/=0) true Show FPS counter — enabled by default
fps_color List of 3 hex colors 0xb22222,0xfdfd09,0x39f900 Three hex colors: low,mid,high
fps_color_change Flag (bare key or =1/=0) false Enable FPS color thresholds
fps_limit Comma-separated numbers 0 0 = unlimited; comma-separated list e.g. 0,30,60
fps_limit_method Enum (early or late) FPS_LIMIT_METHOD_LATE Limit strategy: late is the default, early waits earlier in the frame.
fps_metrics Metric list e.g. avg,0.01,1,97AVG or decimal percentiles
fps_only Flag (bare key or =1/=0) false CONFLICTS WITH: all other display params
fps_sampling_period String 500ms Sampling period in milliseconds in config/env input; MangoHud stores it internally in nanoseconds.
fps_text String Custom label for FPS row
fps_value Comma-separated integers 30,60 Two thresholds: warn,ok
frame_count Flag (bare key or =1/=0) false Show frame counter
frame_timing Flag (bare key or =1/=0) true Frametime graph — enabled by default
frame_timing_detailed Flag (bare key or =1/=0) false More detailed frametime graph
frametime Flag (bare key or =1/=0) true Show frametime — enabled by default
frametime_color Hex color (RRGGBB) 00FF00 Hex color used for the Frametime readout or accent.
fsr Flag (bare key or =1/=0) false FSR status
fsr_steam_sharpness Float -1 Float sharpness control for Steam FSR integration. MangoHud default is -1, which means “leave unset / use app or Steam default”.
ftrace Tracepoint spec list Tracepoint specification list used only when MangoHud is built with ftrace support.
full Boolean-like (0/1) false Enables almost every boolean option, then explicitly disables a curated exclusion list. Use with caution because it can enable many unrelated HUD sections at once.
gamemode Flag (bare key or =1/=0) false GameMode running status
gl_bind_framebuffer Unsigned integer Rebind framebuffer before draw
gl_dont_flip Unsigned integer Don't swap origin for GL_UPPER_LEFT
gl_size_query Enum (drawable, viewport, scissorbox) Default: glXQueryDrawable
gl_vsync Signed integer -2 Signed integer for OpenGL swap interval; -2 means “unset” in MangoHud defaults.
gpu_color Hex color (RRGGBB) 2E9762 Hex color used for the Gpu readout or accent.
gpu_core_clock Flag (bare key or =1/=0) false Shows GPU core clock speed.
gpu_efficiency Flag (bare key or =1/=0) false Shows GPU efficiency / perf-per-watt style data when available.
gpu_fan Flag (bare key or =1/=0) false RPM on AMD, percent on NVIDIA
gpu_junction_temp Flag (bare key or =1/=0) false Shows GPU hotspot / junction temperature when available.
gpu_list GPU index list Comma-separated GPU indices to show. Useful on multi-GPU systems.
gpu_load_change Flag (bare key or =1/=0) false Color GPU load
gpu_load_color List of 3 hex colors 0x39f900,0xfdfd09,0xb22222 Three hex colors
gpu_load_value Comma-separated integers 60,90 Two load thresholds
gpu_mem_clock Flag (bare key or =1/=0) false DEPENDS ON: vram
gpu_mem_temp Flag (bare key or =1/=0) false DEPENDS ON: vram
gpu_name Flag (bare key or =1/=0) false Show GPU model name
gpu_power Flag (bare key or =1/=0) false Shows GPU power draw.
gpu_power_limit Flag (bare key or =1/=0) false Displays the current GPU power limit.
gpu_stats Flag (bare key or =1/=0) true Master GPU section toggle
gpu_temp Flag (bare key or =1/=0) false Shows GPU temperature.
gpu_text Delimited string list Parsed as a tokenized string list in source, so multiple GPU labels can be supplied for multi-GPU setups.
gpu_voltage Flag (bare key or =1/=0) false AMD ONLY
graphs Flag (bare key or =1/=0) false Valid values: gpu_load,cpu_load,gpu_core_clock,gpu_mem_clock,vram,ram,cpu_temp,gpu_temp
hdr Flag (bare key or =1/=0) false HDR status
height Unsigned integer 140 HUD window height. Horizontal layouts start with this height before any later width adjustments.
help Boolean-like (prints help and exits) 0 Printing helper: causes MangoHud to print supported env-style params to stderr. Not a normal overlay display toggle.
hide_engine_names Flag (bare key or =1/=0) false Hides engine names even if engine-related display items are enabled.
hide_fps_superscript Flag (bare key or =1/=0) false Removes the small FPS superscript styling from the FPS readout.
hide_fsr_sharpness Flag (bare key or =1/=0) false DEPENDS ON: fsr
histogram Flag (bare key or =1/=0) false CONFLICTS WITH frame_timing
horizontal Flag (bare key or =1/=0) false Switches the HUD into a horizontal/table layout. MangoHud initially sizes it to full display width, then may shrink it after layout based on content width.
horizontal_separator_color Hex color (RRGGBB) AD64C1 Hex color used for the Horizontal Separator readout or accent.
horizontal_stretch Flag (bare key or =1/=0) true Defaults to true. When disabled, MangoHud shrinks horizontal HUD width after rendering to match content instead of stretching across the screen.
hud_compact Flag (bare key or =1/=0) false Compact mode
hud_no_margin Flag (bare key or =1/=0) false Removes MangoHuds normal 10px edge margin. The same margin is also removed automatically whenever offset_x or offset_y is greater than zero.
inherit Preset-file directive inherit line inside presets.conf Mainly used inside preset definitions, where a literal inherit line re-applies parent preset behavior. It is not a typical everyday overlay toggle.
io_color Hex color (RRGGBB) A491D3 Hex color used for the Io readout or accent.
io_read Flag (bare key or =1/=0) false Shows per-process I/O read throughput. Note: upstream declares this key twice (BOOL and CUSTOM), but the boolean branch wins first, so practical config behavior is flag-like.
io_write Flag (bare key or =1/=0) false Shows per-process I/O write throughput. Note: upstream declares this key twice (BOOL and CUSTOM), but the boolean branch wins first, so practical config behavior is flag-like.
legacy_layout Flag (bare key or =1/=0) true Uses MangoHuds older default ordering/layout behavior. fps_only forces this off.
log_duration Unsigned integer Seconds
log_interval Unsigned integer 0 ms; 0 = default
log_versioning Flag (bare key or =1/=0) false Appends version info to generated log filenames.
mangoapp_steam Flag (bare key or =1/=0) false mangoapp only
media_player Flag (bare key or =1/=0) false Enable media player metadata
media_player_color Hex color (RRGGBB) FFFFFF Hex color used for the Media Player readout or accent.
media_player_format Semicolon-separated format list "{title}","{artist}","{album}" Semicolon-separated format strings. MangoHud formats {title}, {artist}, and {album} tokens from MPRIS metadata.
media_player_name String "" e.g. spotify — DEPENDS ON: media_player
network Delimited string list Comma-separated network interfaces; empty/default means MangoHud decides what to show.
network_color Hex color (RRGGBB) E07B85 Hex color used for the Network readout or accent.
no_display Boolean-like (0/1) 0 Boolean-style option. Starts MangoHud hidden, but toggle/reload keys still work.
no_small_font Unsigned integer Disable small font for secondary info
offset_x Unsigned integer 0 Unsigned X offset. Positive values push left-anchored HUDs right and right-anchored HUDs farther right. Any positive offset also removes the normal 10px edge margin.
offset_y Unsigned integer 0 Unsigned Y offset. Positive values push the HUD downward. Any positive offset also removes the normal 10px edge margin.
output_file Filesystem path Explicit output filename for benchmark/log output.
output_folder Filesystem path Must be writable directory
pci_dev String Format: domain:bus:slot.function e.g. 0000:03:00.0
permit_upload Unsigned integer 0 Upload to flightlessmango.com
picmip Signed integer -17 Mip-map LoD bias; negative=sharper
preset Comma-separated preset list -1,0,1,2,3,4 in upstream docs/examples Upstream special option handled before normal assignment. Supports built-in presets and user presets via presets.conf.
position Enum position top-left Anchor position. Right anchors are native in MangoHud; top-center and bottom-center get extra horizontal adjustment when horizontal is on and horizontal_stretch is off.
present_mode Flag (bare key or =1/=0) false Displays the current presentation mode in the HUD.
proc_vram Flag (bare key or =1/=0) false Per-process VRAM
procmem Flag (bare key or =1/=0) false Per-process resident memory
procmem_shared Flag (bare key or =1/=0) false DEPENDS ON: procmem
procmem_virt Flag (bare key or =1/=0) false DEPENDS ON: procmem
ram Flag (bare key or =1/=0) false Shows system RAM usage.
ram_color Hex color (RRGGBB) C26693 Hex color used for the Ram readout or accent.
ram_temp Flag (bare key or =1/=0) false Displays RAM temperature if MangoHud can read it from available sensors.
read_cfg Flag (bare key or =1/=0) false Only matters when using MANGOHUD_CONFIG in the environment: it tells MangoHud to also read the config file instead of using env options alone.
refresh_rate Flag (bare key or =1/=0) false Current refresh rate
reload_cfg Keybind Shift_L+F4 on Linux Reload keybind. Useful for external editors or MangoTune preview sessions.
reset_fps_metrics Keybind Shift_R+F9 on Linux Keybind that resets FPS metrics / percentiles.
resolution Flag (bare key or =1/=0) false Current display resolution
retro Flag (bare key or =1/=0) false Disable linear filtering (blocky textures)
round_corners Unsigned integer 0 Rounded-corner radius for the HUD background.
show_fps_limit Flag (bare key or =1/=0) false Display current FPS limit value
swap Flag (bare key or =1/=0) false Shows swap usage.
table_columns Unsigned integer 3 Number of table columns. MangoHud later clamps it to the range 1..64.
temp_fahrenheit Flag (bare key or =1/=0) false Use °F instead of °C
text_color Hex color (RRGGBB) FFFFFF Hex color used for the Text readout or accent.
text_outline Flag (bare key or =1/=0) true Draws an outline around text for readability.
text_outline_color Hex color (RRGGBB) 000000 Hex color used for the Text Outline readout or accent.
text_outline_thickness Float 1.5 Thickness of the text outline stroke.
throttling_status Flag (bare key or =1/=0) false GPU throttling indicator
throttling_status_graph Flag (bare key or =1/=0) false Show throttling on frametime graph
time Flag (bare key or =1/=0) false Current time
time_format String "%T" strftime format
time_no_label Flag (bare key or =1/=0) false DEPENDS ON: time
toggle_fps_limit Keybind Shift_L+F1 on Linux Switches between configured FPS limit entries.
toggle_hud Keybind Shift_R+F12 on Linux Keybind list parsed via xkb key names on Linux / key codes on Windows.
toggle_hud_position Keybind Shift_R+F11 on Linux Cycles through positions with a keybind. Upstream README also spells this as R_Shift+F11; data/MangoHud.conf uses Shift_R+F11.
toggle_logging Keybind Shift_L+F2 on Linux Keybind that starts or stops logging.
toggle_preset Keybind Shift_R+F10 on Linux Cycles through presets with a keybind.
trilinear Flag (bare key or =1/=0) false Force trilinear filtering
upload_log Keybind Shift_L+F3 on Linux Keybind that uploads the current log.
upload_logs Keybind Control_L+F3 on Linux DEPENDS ON: permit_upload=1
version Flag (bare key or =1/=0) false Show MangoHud version in overlay
vkbasalt Flag (bare key or =1/=0) false vkBasalt running status
vram Flag (bare key or =1/=0) false Required by gpu_mem_clock, gpu_mem_temp
vram_color Hex color (RRGGBB) AD64C1 Hex color used for the Vram readout or accent.
vsync Unsigned integer -1 Unsigned value in the parser, but MangoHud seeds the default to -1 before parsing config/env overrides.
vulkan_driver Flag (bare key or =1/=0) false Show Vulkan driver string
vulkan_present_mode String String name for the Vulkan present mode preference; MangoHud accepts names like fifo, mailbox, or full VK_PRESENT_MODE_*_KHR.
width Unsigned integer 0 Explicit window width. 0 means MangoHud decides automatically; for non-horizontal layouts MangoHud later derives a width from font size, scale, and column count.
wine Flag (bare key or =1/=0) false Wine/Proton version
wine_color Hex color (RRGGBB) EB5B5B Hex color used for the Wine readout or accent.
winesync Flag (bare key or =1/=0) false Wine sync method