{ config, lib, pkgs, ... }:

{
  # Enable the auto-cpufreq daemon
  services.auto-cpufreq.enable = true;

  # Enable the TLP daemon
  services.tlp.enable = true;

  # Suspend when the battery is critical
  services.udev.extraRules = ''
    SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{model_name}=="01AV405", ATTR{capacity}=="[0-5]", RUN+="${config.systemd.package}/bin/systemctl suspend -i"
  '';

  # Enable thinkfan
  services.thinkfan = {
    enable = true;
    levels = [
      [ 0 0 47 ]
      [ 1 47 69 ]
      [ 2 69 74 ]
      [ 3 74 78 ]
      [ 4 78 82 ]
      [ 5 82 85 ]
      [ 6 85 87 ]
      [ 7 87 32767 ]
    ];
  };
  # HACK Workaround to enable the service the first time
  systemd.services.thinkfan.preStart = ''
    /run/current-system/sw/bin/modprobe  -r thinkpad_acpi && /run/current-system/sw/bin/modprobe thinkpad_acpi
  '';
}