diff --git a/systems/x86_64-linux/stargate/powersave.nix b/systems/x86_64-linux/stargate/powersave.nix new file mode 100644 index 0000000..a4e7b90 --- /dev/null +++ b/systems/x86_64-linux/stargate/powersave.nix @@ -0,0 +1,24 @@ +{ + lib, + pkgs, + config, + ... +}: { + powerManagement.powertop.enable = true; + environment.systemPackages = with pkgs; [ + powertop + ]; + services.udev.extraRules = let + mkRule = as: lib.concatStringsSep ", " as; + mkRules = rs: lib.concatStringsSep "\n" rs; + in + mkRules [ + (mkRule [ + ''ACTION=="add|change"'' + ''SUBSYSTEM=="block"'' + ''KERNEL=="sd[a-z]"'' + ''ATTR{queue/rotational}=="1"'' + ''RUN+="${pkgs.hdparm}/bin/hdparm -B 90 -S ${builtins.toString (30 * 60 / 5)} /dev/%k"'' + ]) + ]; +}