Files
dotfiles/config/modules/power-management/intel-gpu-management.nix
2026-03-30 10:46:17 +01:00

47 lines
1.3 KiB
Nix

{ den, modules, ... }:
{
# Intel Mobile Gpu Management
modules.intel-mgm = {
nixos =
{ pkgs, ... }:
let
batt-gpu = pkgs.writeShellScript "batt-igpu" ''
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -e;
echo '1250' > /sys/class/drm/card1/gt_boost_freq_mhz;
'';
ac-gpu = pkgs.writeShellScript "ac-igpu" ''
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -d;
echo '2350' > /sys/class/drm/card1/gt_boost_freq_mhz;
'';
in
{
systemd.services.gpu-limit-on-batt = {
enable = true;
description = "Gpu Limit";
before = [ "battery.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${batt-gpu}";
RemainAfterExit = true;
};
wantedBy = [ "battery.target" ];
partOf = [ "battery.target" ];
};
systemd.services.gpu-limit-on-ac = {
enable = true;
description = "Gpu Limit";
before = [ "ac.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${ac-gpu}";
RemainAfterExit = true;
};
wantedBy = [ "ac.target" ];
partOf = [ "ac.target" ];
};
};
};
}