{ lib, ... }: { # https://knowledgebase.frame.work/optimizing-ubuntu-battery-life-Sye_48Lg3 # AMD Specific: # https://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/162 services.power-profiles-daemon.enable = lib.mkForce false; services.tlp = { enable = true; settings = { # Specific to the Framework, since I have it limited to 80% charge in the BIOS # START_CHARGE_THRESH_BAT0 = 70; # STOP_CHARGE_THRESH_BAT0 = 79; CPU_BOOST_ON_BAT = 0; CPU_HWP_DYN_BOOST_ON_BAT = 0; SCHED_POWERSAVE_ON_BAT = 1; NMI_WATCHDOG = 0; RUNTIME_PM_ON_AC = 0; RUNTIME_PM_ON_BAT = "auto"; PCIE_ASPM_ON_AC = "default"; PCIE_ASPM_ON_BAT = "powersupersave"; CPU_MIN_PERF_ON_AC = 0; CPU_MAX_PERF_ON_AC = 100; CPU_MIN_PERF_ON_BAT = 0; CPU_MAX_PERF_ON_BAT = 30; PLATFORM_PROFILE_ON_AC = "performance"; PLATFORM_PROFILE_ON_BAT = "low-power"; CPU_DRIVER_OPMODE_ON_AC = "active"; CPU_DRIVER_OPMODE_ON_BAT = "active"; # CPU_SCALING_GOVERNOR_ON_AC = "powersave"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance"; CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; }; }; }