{ config, sources, lib, pkgs, ... }: let inherit (lib.modules) mkDefault; in { imports = [ # (sources.watt + "/nix/module.nix") ]; config = { environment.systemPackages = builtins.attrValues { inherit (pkgs) acpi powertop ; }; boot = { kernelModules = [ "acpi_call" ]; extraModulePackages = with config.boot.kernelPackages; [ acpi_call cpupower ]; }; hardware.acpilight.enable = false; # services.watt = { # enable = true; # # sample config from https://github.com/NotAShelf/watt#sample-configuration # settings = { # rule = [ # { # cpu = { # energy-performance-preference = "power"; # frequency-mhz-maximum = 2000; # governor = "powersave"; # turbo = false; # }; # "if" = { # is-more-than = 85; # value = "$cpu-temperature"; # }; # priority = 100; # } # { # cpu = { # energy-performance-preference = "power"; # frequency-mhz-maximum = 800; # governor = "powersave"; # turbo = false; # }; # "if" = { # all = [ # "?discharging" # { # is-less-than = 0.3; # value = "%power-supply-charge"; # } # ]; # }; # power = {platform-profile = "low-power";}; # priority = 90; # } # { # cpu = { # energy-performance-preference = "performance"; # governor = "performance"; # turbo = true; # }; # "if" = { # all = [ # { # is-more-than = 0.8; # value = "%cpu-usage"; # } # { # is-less-than = 30; # value = "$cpu-idle-seconds"; # } # { # is-less-than = 75; # value = "$cpu-temperature"; # } # ]; # }; # priority = 80; # } # { # cpu = { # energy-performance-bias = "balance_performance"; # energy-performance-preference = "performance"; # governor = "performance"; # turbo = true; # }; # "if" = { # all = [ # {not = "?discharging";} # { # is-more-than = 0.1; # value = "%cpu-usage"; # } # { # is-less-than = 80; # value = "$cpu-temperature"; # } # ]; # }; # priority = 70; # } # { # cpu = { # energy-performance-preference = "balance_performance"; # governor = "schedutil"; # }; # "if" = { # all = [ # { # is-more-than = 0.4; # value = "%cpu-usage"; # } # { # is-less-than = 0.8; # value = "%cpu-usage"; # } # ]; # }; # priority = 60; # } # { # cpu = { # energy-performance-preference = "power"; # governor = "powersave"; # turbo = false; # }; # "if" = { # all = [ # { # is-less-than = 0.2; # value = "%cpu-usage"; # } # { # is-more-than = 60; # value = "$cpu-idle-seconds"; # } # ]; # }; # priority = 50; # } # { # cpu = { # energy-performance-preference = "power"; # frequency-mhz-maximum = 1600; # governor = "powersave"; # turbo = false; # }; # "if" = { # is-more-than = 300; # value = "$cpu-idle-seconds"; # }; # priority = 40; # } # { # cpu = { # energy-performance-preference = "power"; # frequency-mhz-maximum = 2000; # governor = "powersave"; # turbo = false; # }; # "if" = { # all = [ # "?discharging" # { # is-less-than = 0.5; # value = "%power-supply-charge"; # } # ]; # }; # power = {platform-profile = "low-power";}; # priority = 30; # } # { # cpu = { # energy-performance-bias = "balance_power"; # energy-performance-preference = "power"; # frequency-mhz-maximum = 1800; # frequency-mhz-minimum = 200; # governor = "powersave"; # turbo = false; # }; # "if" = "?discharging"; # priority = 20; # } # { # cpu = { # energy-performance-preference = "balance_performance"; # governor = "schedutil"; # }; # priority = 0; # } # ]; # }; # }; services = { upower = { enable = true; percentageLow = 15; percentageCritical = 5; }; acpid = { enable = true; logEvents = true; }; auto-cpufreq = { enable = false; settings = { charger = { governor = "performance"; energy_performance_preference = "performance"; scaling_min_freq = mkDefault 1800000; scaling_max_freq = mkDefault 3800000; turbo = "auto"; }; battery = { governor = "powersave"; energy_performance_preference = "power"; scaling_min_freq = mkDefault 1200000; scaling_max_freq = mkDefault 1800000; turbo = "never"; }; }; }; }; }; }