diff options
| author | adikro <adikro@disroot.org> | 2026-02-03 22:58:50 +0100 |
|---|---|---|
| committer | adikro <adikro@disroot.org> | 2026-02-03 22:58:50 +0100 |
| commit | eb95abfc230dc239122f1e89e90cd9a998491a2f (patch) | |
| tree | 9d60efacf83b97059f6300e360be2248f8e9c57e /os/core/power.nix | |
| parent | e5036417abe5d3597792f869e2831decd50eba5d (diff) | |
...
Diffstat (limited to 'os/core/power.nix')
| -rw-r--r-- | os/core/power.nix | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/os/core/power.nix b/os/core/power.nix index 3a8bed2..3929033 100644 --- a/os/core/power.nix +++ b/os/core/power.nix @@ -1,18 +1,46 @@ -{ config, lib, ... }: -let - cfg = config.os.core.power; -in { - options.os.core.power.enable = lib.mkEnableOption "enables AMD-optimized power management"; - config = lib.mkIf cfg.enable { - services.power-profiles-daemon.enable = true; + config, + lib, + ... +}: let + cfg = config.os.core.power; +in { + options.os.core.power = { + enable = lib.mkEnableOption "enables power management"; + mode = lib.mkOption { + type = lib.types.enum ["amd" "intel" "none"]; + default = "none"; + }; + }; - boot.kernelParams = [ - "amd_pstate=active" - "nvme_core.default_ps_max_latency_us=0" - ]; + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + powerManagement.powertop.enable = true; + boot.kernelParams = ["nvme_core.default_ps_max_latency_us=0"]; + } - powerManagement.powertop.enable = true; - services.thermald.enable = true; - }; + (lib.mkIf (cfg.mode == "amd") { + services.power-profiles-daemon.enable = true; + boot.kernelParams = ["amd_pstate=active"]; + }) + + (lib.mkIf (cfg.mode == "intel") { + services = { + power-profiles-daemon.enable = false; + + thermald.enable = true; + tlp = { + enable = true; + settings = { + START_CHARGE_THRESH_BAT0 = 75; + STOP_CHARGE_THRESH_BAT0 = 80; + START_CHARGE_THRESH_BAT1 = 75; + STOP_CHARGE_THRESH_BAT1 = 80; + CPU_SCALING_GOVERNOR_ON_AC = "performance"; + CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; + }; + }; + }; + }) + ]); } |
