Initial commit
It begins...
This commit is contained in:
commit
28ccec9704
24 changed files with 2721 additions and 0 deletions
2
system/modules/reusable/README.org
Normal file
2
system/modules/reusable/README.org
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
This directory contains things I'm eventually planning on contributing upstream
|
||||
to nixpkgs
|
||||
32
system/modules/reusable/battery.nix
Normal file
32
system/modules/reusable/battery.nix
Normal 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}"''
|
||||
];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue