{ lib, pkgs, ... }: let disks = [ "/dev/disk/by-id/ata-ST8000VN002-2ZM188_WPV023WG" "/dev/disk/by-id/ata-ST8000VN002-2ZM188_WPV07RMA" "/dev/disk/by-id/ata-ST8000VN002-2ZM188_WPV020CG" ]; mkArgString = disks: lib.concatStringsSep " " (lib.map (disk: "-a ${disk} -i 600") disks); args = mkArgString disks; in { environment.systemPackages = [ pkgs.hd-idle ]; systemd.services.hd-idle = { description = "hd-idle - spin down idle hard disks"; after = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" "suspend-then-hibernate.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "simple"; ExecStart = "${lib.getExe pkgs.hd-idle} ${args}"; Restart = "always"; }; }; }