Initial commit

It begins...
This commit is contained in:
Griffin Smith 2020-03-27 23:32:13 -04:00
commit 28ccec9704
24 changed files with 2721 additions and 0 deletions

View file

@ -0,0 +1,2 @@
This directory contains things I'm eventually planning on contributing upstream
to nixpkgs

View file

@ -0,0 +1,32 @@
{ 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}"''
];
};
}