{ pkgs, lib, ... }: let in { services.tlp = { enable = true; settings = { CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance"; CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; CPU_ENERGY_PERF_POLICY_ON_SAV = "power"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; PCIE_ASPM_ON_BAT = "powersave"; CPU_SCALING_GOVERNOR_ON_AC = "balanced"; PCIE_ASPM_ON_AC = "balanced"; CPU_BOOST_ON_AC = 1; CPU_BOOST_ON_BAT = 0; CPU_BOOST_ON_SAV = 0; DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE = "bluetooth wifi wwan"; TLP_DEFAULT_BATTERY_MODE = "SAV"; CPU_HWP_DYN_BOOST_ON_AC = 1; CPU_HWP_DYN_BOOST_ON_BAT = 0; CPU_HWP_DYN_BOOST_ON_SAV = 0; PLATFORM_PROFILE_ON_AC = "balanced"; PLATFORM_PROFILE_ON_BAT = "low-power"; PLATFORM_PROFILE_ON_SAV = "quiet"; START_CHARGE_THRESH_BAT0 = 40; # 40 and below it starts to charge STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging }; }; # services.tuned.enable = true; services.thermald.enable = true; services.upower = { enable = true; }; boot.kernelParams = [ # "mem_sleep_default=deep" "i915.fastboot=1" "pcie_aspm=force" "ahci.mobile_lpm_policy=1" ]; services.logind.settings.Login = { HandleLidSwitch = "suspend"; HandleLidSwitchExternalPower = "suspend"; HandleLidSwitchDocked = "ignore"; }; systemd.sleep.extraConfig = '' HibernateDelaySec=30min SuspendEstimationSec=120 ''; systemd.services.rfkill-sleep-wake = { enable = true; description = "Using rfkill; disable all rf devices before sleeping."; before = [ "sleep.target" ]; serviceConfig = { Type = "oneshot"; ExecStop = ''${pkgs.utillinux}/bin/rfkill unblock all''; ExecStart = ''${pkgs.utillinux}/bin/rfkill block all''; RemainAfterExit = true; }; wantedBy = [ "sleep.target" ]; partOf = [ "sleep.target" ]; }; # one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", "lock" powerManagement = { enable = true; # powertop.enable = true; }; }