{ lib, config, ... }:
with lib;
{
  # Preloading the kernel modules to avoid:
  # tlp: Error in configuration at CPU_SCALING_GOVERNOR_ON_BAT="powersave": governor not available. Skipped.
  boot.initrd.kernelModules = [
    "cpufreq_ondemand"
    "cpufreq_powersave"
  ];
  services.tlp = {
    # Gnome 40 introduced a new way of managing power, without tlp.
    enable = mkDefault (!config.services.power-profiles-daemon.enable);
    settings = {
      CPU_SCALING_GOVERNOR_ON_AC = "ondemand";
      CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
    };
  };
}