snix/users/glittershark/system/system/modules/reusable/battery.nix
Vincent Ambo 81564185e9 Add 'users/glittershark/system/' from commit '3b174300ae'
git-subtree-dir: users/glittershark/system
git-subtree-mainline: 85d82a9dc2
git-subtree-split: 3b174300ae
2020-06-16 01:02:24 +01:00

32 lines
891 B
Nix

{ config, lib, pkgs, ... }:
with lib;
{
options = {
laptop.onLowBattery = {
enable = mkEnableOption "Perform action on low battery";
thresholdPercentage = mkOption {
description = "Threshold battery percentage on which to perform the action";
default = 5;
type = types.int;
};
action = mkOption {
description = "Action to perform on low battery";
default = "hibernate";
type = types.enum [ "hibernate" "suspend" "suspend-then-hibernate" ];
};
};
};
config =
let cfg = config.laptop.onLowBattery;
in mkIf cfg.enable {
services.udev.extraRules = concatStrings [
''SUBSYSTEM=="power_supply", ''
''ATTR{status}=="Discharging", ''
''ATTR{capacity}=="[0-${toString cfg.thresholdPercentage}]", ''
''RUN+="/${pkgs.systemd}/bin/systemctl ${cfg.action}"''
];
};
}