mangohud: update config, make it easy to tweak

This commit is contained in:
Leonardo Eugênio 2026-01-07 01:07:34 -03:00
parent 22859c4dd0
commit 16196d7204

View file

@ -1,71 +1,97 @@
{ config, lib, ... }:
{
config,
lib,
pkgs,
...
}:
let
cfg = config.my.mangohud;
settings = {
# Display
no_display = true; # Hidden by default
toggle_hud = "Shift_R+F12";
font_size = "20";
# GPU
pci_dev = "0:03:00.0";
gpu_text = "RX 7800 XT";
gpu_stats = true;
gpu_load_change = true;
gpu_load_value = "50,90";
gpu_load_color = "FFFFFF,FFAA7F,CC0000";
gpu_voltage = true;
throttling_status = true;
gpu_core_clock = true;
gpu_mem_clock = true;
gpu_temp = true;
gpu_mem_temp = true;
gpu_junction_temp = true;
gpu_fan = true;
gpu_power = true;
# CPU
cpu_text = "R7 8700G";
cpu_stats = true;
core_load = true;
core_bars = true;
cpu_load_change = true;
cpu_load_value = "50,90";
cpu_load_color = "FFFFFF,FFAA7F,CC0000";
cpu_mhz = true;
cpu_temp = true;
cpu_power = true;
io_read = true;
io_write = true;
# RAM
swap = true;
vram = true;
vram_color = "AD64C1";
ram = true;
ram_color = "C26693";
procmem = true;
# FPS
fps = true;
fps_metrics = "avg,0.01";
frame_timing = true;
frametime_color = "FFFFFF";
throttling_status_graph = true;
show_fps_limit = true;
fps_limit = "240,144,120,90,60,30,0";
# Extra
resolution = true;
fsr = true;
winesync = true;
present_mode = true;
fps_color_change = true;
fps_color = "B22222,FDFD09,39F900";
fps_value = "60,144";
};
in
{
options.my.mangohud.enable = lib.mkEnableOption { };
config.programs.mangohud = lib.mkIf cfg.enable {
enable = true;
enableSessionWide = true;
settings = {
full = true;
# histogram = true;
no_display = true;
fps_limit = "0,30,60,72,90,120,144,240,288,320";
toggle_fps_limit = "Shift_R+F10";
toggle_preset = "Control_R+F9";
fps_metrics = "Control_R+F8";
config = lib.mkIf cfg.enable {
programs.mangohud = {
enable = true;
enableSessionWide = true;
inherit settings;
};
media_player = false;
battery = false;
# legacy_layout = "false";
# gpu_stats = true;
# gpu_temp = true;
# gpu_core_clock = true;
# gpu_mem_clock = true;
# gpu_power = true;
# gpu_load_change = true;
# gpu_load_value = "50,90";
gpu_load_color = "FFFFFF,FFAA7F,CC0000";
# gpu_text = "GPU";
# cpu_stats = true;
# cpu_temp = true;
# cpu_power = true;
# cpu_mhz = true;
# cpu_load_change = true;
# core_load_change = true;
# cpu_load_value = "50,90";
cpu_load_color = "FFFFFF,FFAA7F,CC0000";
cpu_color = "2e97cb";
# cpu_text = "CPU";
# io_stats = true;
# io_read = true;
# io_write = true;
io_color = "a491d3";
# swap = true;
# vram = true;
vram_color = "ad64c1";
# ram = true;
ram_color = "c26693";
# fps = true;
engine_color = "eb5b5b";
gpu_color = "2e9762";
wine_color = "eb5b5b";
# frame_timing = "1";
frametime_color = "00ff00";
media_player_color = "ffffff";
background_alpha = "0.8";
font_size = "24";
background_color = "020202";
position = "top-left";
# text_color = "ffffff";
round_corners = "10";
toggle_hud = "Shift_R+F12";
# toggle_logging = "Shift_L+F12";
# output_folder = "/home/lelgenio";
# Have the config file be a regular file and not a symlink, so it's easy to tinker with it
xdg.configFile."MangoHud/MangoHud.conf" = {
target = "MangoHud/MangoHud.conf.tmp";
onChange = ''
mkdir -p "${config.xdg.configHome}/MangoHud"
if [ -L "${config.xdg.configHome}/MangoHud/MangoHud.conf" ]; then
rm "${config.xdg.configHome}/MangoHud/MangoHud.conf"
fi
${pkgs.coreutils}/bin/cp --dereference "${config.xdg.configHome}/MangoHud/MangoHud.conf.tmp" "${config.xdg.configHome}/MangoHud/MangoHud.conf"
'';
};
};
}