idiosyn/nixos/module/portable.nix

35 lines
1.2 KiB
Nix
Raw Permalink Normal View History

2024-08-18 13:47:18 +02:00
{ ... }: { lib, config, pkgs, ... }: {
# Work around TTLbased rate limiting in mobile networks
boot.kernel.sysctl."net.ipv4.ip_default_ttl" = 65;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
powerManagement.scsiLinkPolicy = lib.mkDefault "med_power_with_dipm";
services.auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "powersave";
turbo = "auto";
};
};
};
services.thermald.enable = lib.mkDefault true;
services.tlp.enable = false;
services.udev.packages = [
(pkgs.writeTextDir "/etc/udev/rules.d/98-power-supply-portable.rules" ''
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", SYSCTL{vm/dirty_writeback_centisecs}="6000"
SUBSYSTEM=="power_supply", ATTR{status}!="Discharging", SYSCTL{vm/dirty_writeback_centisecs}="1500"
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[3-5]", RUN+="${config.systemd.package}/bin/systemctl suspend"
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-2]", RUN+="${config.systemd.package}/bin/systemctl poweroff"
'')
];
}