dotfiles/modules/powerdown.nix

30 lines
802 B
Nix

{ config, lib, pkgs, ... }:
let
powersw = "/etc/powerdown/powerswitch";
powerswpath = [ pkgs.hdparm pkgs.iw pkgs.gawk pkgs.kmod ];
in
{
# the scripts are pretty heavily modified.
# from https://github.com/march-linux/powerdown
services.udev.path=powerswpath;
services.udev.extraRules = ''
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${powersw}"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="${powersw}"
'';
systemd.services.powerswitch = {
enable = true;
wantedBy = [ "multi-user.target" "suspend.target" ];
after = [ "suspend.target" "display-manager.service" ];
description = "Run powerswitch sometimes";
path = powerswpath;
preStart = "sleep 4s";
serviceConfig = {
Type = "oneshot";
ExecStart = powersw;
};
};
}