dotfiles/ascanius/powerdown.nix

28 lines
718 B
Nix

{ config, lib, pkgs, ... }:
let
pd = pkgs.callPackage ./powerdown {};
powersw = "${pd}/bin/powerswitch";
in
{
# the scripts are pretty heavily modified.
# from https://github.com/march-linux/powerdown
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";
preStart = "sleep 4s";
serviceConfig = {
Type = "oneshot";
ExecStart = powersw;
};
};
}