diff --git a/system/system-mreow.nix b/system/system-mreow.nix index ecfc6ad..16d7902 100644 --- a/system/system-mreow.nix +++ b/system/system-mreow.nix @@ -24,6 +24,29 @@ # if I move to another lock screen program, i will have to replace `swaylock` security.pam.services.swaylock = { }; + # Kernel-level power tuning. These are boot-time / module-load-time settings + # that power-profiles-daemon (in common.nix) does not manage. ppd handles + # governor and EPP at runtime; these cover everything else. + boot.kernelParams = [ + # Disable NMI watchdog. Eliminates periodic perf-counter interrupts + # across all cores (~1 W). Kernel softlockup watchdog remains active. + "nmi_watchdog=0" + + # Route kernel work items to already-busy CPUs rather than waking idle + # ones. Reduces C-state exit frequency -- significant on battery where + # cores idle often. + "workqueue.power_efficient=1" + ]; + + boot.kernel.sysctl."kernel.nmi_watchdog" = 0; + + # Power-gate the HDA codec between audio activity. 1-second inactivity + # timeout; controller powers down fully. Wakes transparently on next + # audio event -- no audible artifacts on Framework 13 AMD. + boot.extraModprobeConfig = '' + options snd_hda_intel power_save=1 power_save_controller=Y + ''; + # Greetd display manager services.greetd = { enable = true;