65 lines
1.7 KiB
Nix
65 lines
1.7 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
# Enable the TLP daemon
|
|
services.tlp = {
|
|
enable = true;
|
|
settings = {
|
|
CPU_MIN_PERF_ON_AC = 0;
|
|
CPU_MAX_PERF_ON_AC = 100;
|
|
CPU_MIN_PERF_ON_BAT = 0;
|
|
CPU_MAX_PERF_ON_BAT = 50;
|
|
};
|
|
};
|
|
|
|
# Suspend when the battery is critical and autosuspend USB and PCI
|
|
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"
|
|
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto"
|
|
ACTION=="add", SUBSYSTEM=="pci", TEST=="power/control", ATTR{power/control}="auto"
|
|
'';
|
|
|
|
# Undervolt CPU and GPU
|
|
services.undervolt = {
|
|
enable = true;
|
|
coreOffset = -100;
|
|
gpuOffset = -75;
|
|
};
|
|
|
|
# Prevent overheating of the CPU
|
|
services.thermald.enable = true;
|
|
|
|
# Provide power management support to programs
|
|
services.upower.enable = true;
|
|
|
|
# HACK Enable internal microphone when headphones are plugged in and add workaround for frequent WiFi disconnects
|
|
hardware.firmware = [
|
|
(pkgs.writeTextDir "/lib/firmware/hda-jack-retask.fw" ''
|
|
[codec]
|
|
0x10ec0293 0x17aa2233 0
|
|
|
|
[pincfg]
|
|
0x12 0x90a60130
|
|
0x13 0x40000000
|
|
0x14 0x90170110
|
|
0x15 0x03211040
|
|
0x16 0x21211010
|
|
0x18 0x411111f0
|
|
0x19 0x21a11010
|
|
0x1a 0x40f000f0
|
|
0x1b 0x411111f0
|
|
0x1d 0x40738105
|
|
0x1e 0x411111f0
|
|
'')
|
|
];
|
|
|
|
# Power saving features for multiple devices
|
|
boot.extraModprobeConfig = ''
|
|
options snd-hda-intel patch=hda-jack-retask.fw power_save=1
|
|
options mac80211 beacon_loss_count=500
|
|
options iwlwifi power_save=1 uapsd_disable=0
|
|
options iwlmvm power_scheme=3
|
|
'';
|
|
|
|
}
|