{ config, lib, ... }: let cfg = config.my.laptop; in { options.my.laptop = { enable = lib.mkEnableOption null; amd.enable = lib.mkEnableOption null; intel.enable = lib.mkEnableOption null; }; config = lib.mkIf cfg.enable { boot.kernel.sysctl."vm.dirty_writeback_centisecs" = 1500; boot.extraModprobeConfig = '' options snd_hda_intel power_save=1 ''; services.upower.enable = true; services.power-profiles-daemon.enable = cfg.amd.enable; services.tlp = lib.mkIf cfg.intel.enable { enable = true; settings = { DISK_IDLE_SECS_ON_AC = 0; DISK_IDLE_SECS_ON_BAT = 3; MAX_LOST_WORK_SECS_ON_AC = 15; MAX_LOST_WORK_SECS_ON_BAT = 45; CPU_SCALING_GOVERNOR_ON_AC = "performance"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance"; CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; CPU_MIN_PERF_ON_AC = 0; CPU_MAX_PERF_ON_AC = 100; CPU_MIN_PERF_ON_BAT = 0; CPU_MAX_PERF_ON_BAT = 25; INTEL_GPU_MIN_FREQ_ON_AC = 300; INTEL_GPU_MIN_FREQ_ON_BAT = 300; INTEL_GPU_MAX_FREQ_ON_AC = 1100; INTEL_GPU_MAX_FREQ_ON_BAT = 1000; INTEL_GPU_BOOST_FREQ_ON_AC = 1100; INTEL_GPU_BOOST_FREQ_ON_BAT = 1000; PCIE_ASPM_ON_AC = "default"; PCIE_ASPM_ON_BAT = "powersave"; }; }; }; }