How to Fix GameMode and MangoHud Not Working in Linux Gaming
Feral GameMode (gamemoded) and MangoHud are essential tools for gaming on Linux: GameMode dynamically tweaks CPU governors, I/O priorities, and GPU power states, while MangoHud provides a customizable Vulkan/OpenGL overlay to monitor FPS, frame times, temperatures, and hardware load. However, missing 32-bit libraries, systemd DBus session mismatches, or invalid launch syntax can cause either tool to fail silently.
Feral GameMode (gamemoded) and MangoHud are essential tools for gaming on Linux: GameMode dynamically tweaks CPU governors, I/O priorities, and GPU power states, while MangoHud provides a customizable Vulkan/OpenGL overlay to monitor FPS, frame times, temperatures, and hardware load. However, missing 32-bit libraries, systemd DBus session mismatches, or invalid launch syntax can cause either tool to fail silently.
Quick Diagnostics
lib32-mangohud) or improper launch optionsmangohud %command% and install 32-bit compatibility librariesgamemoded fails to set the CPU governor to performance: gamemoded.service user unit is disabled or missing DBus permissionsgamemoded user service via systemd and verify with gamemoded -tMangoHud.conf settingsStep-by-Step Solution
-
1
Step 1: Verify and Enable the GameMode Daemon (gamemoded)
Ensure that the
gamemodeddaemon is installed and running under your current user session:BASH# Check the systemd user service status systemctl --user status gamemoded.service # Enable and start the user service if it is inactive systemctl --user enable --now gamemoded.service # Run the official GameMode self-diagnostic tool gamemoded -t(If the CPU governor test fails, ensure
dbusandcpupowerutilities are installed on your distribution). -
2
Step 2: Install Both 32-bit and 64-bit MangoHud Libraries
Legacy titles and 32-bit Windows games running through Proton require MangoHud libraries compiled for both architectures (
x86andx86_64):BASH# On Arch Linux / CachyOS / Manjaro: sudo pacman -S mangohud lib32-mangohud gamemode lib32-gamemode # On Ubuntu / Debian / Pop!_OS: sudo apt install mangohud gamemode mangohud:i386 -
3
Step 3: Configure Steam and Lutris Launch Options
In Steam, right-click your game > Properties > General > Launch Options, and input the following command string:
BASH# Recommended command combination for GameMode + MangoHud gamemoderun mangohud %command% # Force inline MangoHud configuration using environment variables MANGOHUD=1 MANGOHUD_CONFIG=cpu_temp,gpu_temp,fps,fps_limit=144 gamemoderun %command% -
4
Step 4: Create and Tune MangoHud Configuration File
Customize layout settings and fix Wayland overlay glitches by managing the user config file:
BASH# Create configuration directory mkdir -p ~/.config/MangoHud/ # Edit or create MangoHud.conf nano ~/.config/MangoHud/MangoHud.confAdd the following optimized configuration settings:
INIlegacy_layout=false gpu_stats gpu_temp cpu_stats cpu_temp fps frametime=1 toggle_hud=Shift_R+F12 no_display(Note: The
no_displayoption launches MangoHud hidden by default; pressRight Shift + F12in-game to toggle the overlay).
Prevention Advice
Recommended security practices:
- Avoid Overlapping Overlays: Running Discord overlays (Vencord), VKBasalt, or OBS game capture simultaneously with MangoHud can cause micro-stuttering or Vulkan surface creation errors.
- Flatpak Permission Overrides: If running Steam or Heroic Launcher via Flatpak, grant DBus permissions so applications can communicate with GameMode:
flatpak override --user --talk-name=org.freedesktop.gamemode com.valvesoftware.Steam.