diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index 442f0b2..69675e0 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -6,6 +6,7 @@ ]; has_battery = true; + useThermald = true; desktop_scale = 1.3; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ]; diff --git a/options.nix b/options.nix index 041eb43..ab7805d 100644 --- a/options.nix +++ b/options.nix @@ -35,5 +35,23 @@ default = {}; description = "Additional config for sway outputs"; }; + + cpufreqConfig = lib.mkOption { + type = lib.types.attrsOf lib.types.anything; + default = {}; + description = "Additional config for auto-cpufreq"; + }; + + useThermald = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Use thermald for thermal management"; + }; + + tlpConfig = lib.mkOption { + type = lib.types.attrsOf lib.types.anything; + default = {}; + description = "Additional config for TLP"; + }; }; } diff --git a/system/default.nix b/system/default.nix index f97e203..a80cc36 100644 --- a/system/default.nix +++ b/system/default.nix @@ -1,4 +1,4 @@ -{inputs, pkgs, config, ...}: { +{inputs, lib, pkgs, config, ...}: { imports = [ ../options.nix ]; @@ -151,33 +151,35 @@ dnsovertls = "true"; }; - # thermald.enable = true; - # tlp = { - # enable = true; - # settings = { - # START_CHARGE_THRESH_BAT0 = 50; - # STOP_CHARGE_THRESH_BAT0 = 85; - # }; - # }; - # auto-cpufreq = { - # enable = true; - # settings = { - # battery = { - # governor = "powersave"; # Set the CPU governor to powersave. - # energy_performance_preference = "powersave"; - # turbo = "never"; + thermald.enable = config.useThermald; - # # enable_thresholds = true; - # # start_threshold = 50; - # # stop_threshold = 90; - # }; + tlp = lib.mkIf (config.has_battery) { + enable = true; + settings = { + START_CHARGE_THRESH_BAT0 = 50; + STOP_CHARGE_THRESH_BAT0 = 85; + }; + } // config.tlpConfig or {}; - # charger = { - # governor = "performance"; # Set the CPU governor to performance when charging. - # turbo = "auto"; - # }; - # }; - # }; + auto-cpufreq = lib.mkIf (config.has_battery) { + enable = true; + settings = { + battery = { + governor = "powersave"; # Set the CPU governor to powersave. + energy_performance_preference = "powersave"; + turbo = "never"; + + # enable_thresholds = true; + # start_threshold = 50; + # stop_threshold = 90; + }; + + charger = { + governor = "performance"; # Set the CPU governor to performance when charging. + turbo = "auto"; + }; + }; + } // config.cpufreqConfig or {}; pipewire = { enable = true;