About this project

MangoHud is an open-source Vulkan and OpenGL overlay for monitoring performance in applications and games on Linux. It displays FPS, frametime graphs, CPU and GPU load, temperatures, power draw, clocks, fan speed, battery status and many other metrics directly on top of the running application. Usage: run any app with 'mangohud /path/to/app', add 'mangohud' as a command prefix in Lutris, or use 'mangohud %command%' as a Steam launch option. Vulkan apps can also be enabled globally by setting MANGOHUD=1. OpenGL games use dlsym hooking (enabled by default, can be disabled with MANGOHUD_DLSYM=0). For gamescope sessions, a companion app called mangoapp is used via 'gamescope --mangoapp'. Configuration is extensive. Options can be set through a global config file, per-application configs in ~/.config/MangoHud (including wine- prefixed configs for Wine/Proton apps), or the MANGOHUD_CONFIG environment variable. Supported parameters include anisotropic filtering, text/background opacity, custom fonts and glyph ranges (including Korean, Chinese, Japanese, Cyrillic, Thai and Vietnamese), per-core CPU load and frequency display, core type display (Intel performance/efficient cores, ARM core names), GPU junction/memory temperatures, GPU voltage and power limits, wireless device battery (gamepad, mouse), Steam Deck fan RPM, engine version, display server, and color thresholds that change text color based on load or FPS. It also includes an FPS limiter with configurable timing method, frame count, histogram mode, horizontal and compact layouts, custom text, and execution of shell commands to show their output in the HUD. FPS logging can output benchmark summaries with configurable percentiles (default 97,AVG,1,0.1). Logs can be visualized online at FlightlessMango.com or locally with the bundled mangoplot tool. Keybindings allow toggling the HUD and resetting metrics at runtime. Installation options cover most distributions: prebuilt tarballs from GitHub releases, official packages for Arch (mangohud and lib32-mangohud), Debian 11+/Ubuntu 21.10+ (apt install mangohud, with a 32-bit package on Debian), Fedora (dnf), Solus (eopkg), openSUSE (zypper, with a 32-bit package), and a Flatpak runtime (org.freedesktop.Platform.VulkanLayer.MangoHud) that can be enabled for all Steam games via flatpak override. Building from source uses meson and ninja, with a build.sh helper script that can install dependencies on Ubuntu-, Arch-, Fedora- and openSUSE-based distros, and supports 32-bit builds alongside 64-bit ones. Optional build features include NVML and XNVCtrl for NVIDIA metrics, X11/Wayland keybind support, D-Bus for media player features, mangoapp, mangohudctl and mangoplot. Third-party GUIs for configuring MangoHud include GOverlay (Qt) and MangoJuice (GTK). The README also documents workarounds for OpenGL games that override LD_PRELOAD, and notes that metrics support varies by GPU vendor and driver.