nix-config/modules/nix/hardware/power.nix
smayzy c5ef752a66
All checks were successful
nix flake show / show-flake (push) Successful in 35s
clean modules & add power modes
2025-07-24 14:21:53 +02:00

51 lines
1.2 KiB
Nix

{ config, lib, ... }:
let
inherit (lib) mkIf mkOption types mkMerge;
validOptions = [ "desktop" "laptop" ];
in
{
options.smayzy.power = mkOption {
type = types.enum validOptions;
default = "desktop";
description = "chose power mode between desktop and laptop";
};
config = mkMerge [
(mkIf (config.smayzy.power == "desktop") {
services.power-profiles-daemon.enable = false;
services.auto-cpufreq = {
enable = true;
settings = {
charger = {
governor = "performance";
turbo = "auto";
};
};
};
})
(mkIf (config.smayzy.power == "laptop") {
services.logind.lidSwitch = "suspend";
services.power-profiles-daemon.enable = false;
services.tlp = {
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0;
CPU_MAX_PERF_ON_AC = 100;
CPU_MIN_PERF_ON_BAT = 0;
CPU_MAX_PERF_ON_BAT = 100;
STOP_CHARGE_THRESH_BAT0 = 95;
};
};
})
];
}