nix-config/modules/nix/hardware/power.nix
smayzy 092579af98
All checks were successful
nix flake show / show-flake (push) Successful in 27s
format with nixfmt to nixpkgs standarts
2025-07-24 19:19:46 +02:00

59 lines
1.3 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;
};
};
})
];
}