diff --git a/modules/power.nix b/modules/power.nix index bda753e..fd5b3f5 100644 --- a/modules/power.nix +++ b/modules/power.nix @@ -1,8 +1,38 @@ { config, lib, pkgs, ... }: { - # Enable the auto-cpufreq daemon - services.auto-cpufreq.enable = true; + # Enable the TLP daemon + services.tlp = { + enable = true; + settings = { + # Use the new CPU frequency scaling governor + CPU_SCALING_GOVERNOR_ON_AC = "schedutil"; + CPU_SCALING_GOVERNOR_ON_BAT = "schedutil"; + + # Adjust CPU frequencies accordingly to the power state + CPU_SCALING_MIN_FREQ_ON_AC = 800000; + CPU_SCALING_MAX_FREQ_ON_AC = 3000000; + CPU_SCALING_MIN_FREQ_ON_BAT = 800000; + CPU_SCALING_MAX_FREQ_ON_BAT = 2300000; + + # Enable audio power saving for Intel HDA, AC97 devices (timeout in secs). + # A value of 0 disables, >=1 enables power saving (recommended: 1). + # Default: 0 (AC), 1 (BAT) + SOUND_POWER_SAVE_ON_AC = 0; + SOUND_POWER_SAVE_ON_BAT = 1; + + # Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable. + # Default: on (AC), auto (BAT) + RUNTIME_PM_ON_AC = "on"; + RUNTIME_PM_ON_BAT = "auto"; + + # Battery feature drivers: 0=disable, 1=enable + # Default: 1 (all) + NATACPI_ENABLE = 1; + TPACPI_ENABLE = 1; + TPSMAPI_ENABLE = 1; + }; + }; # Enable the TLP daemon services.tlp = {