mirror of
https://github.com/Stunkymonkey/nixos.git
synced 2025-09-13 14:02:02 +02:00
hardware/action-on-low-power: init
Some checks are pending
/ Build Nix targets (push) Waiting to run
Some checks are pending
/ Build Nix targets (push) Waiting to run
This commit is contained in:
parent
9dc05e7ea7
commit
c8fc9152fd
3 changed files with 47 additions and 0 deletions
|
@ -15,6 +15,7 @@ in
|
||||||
services.tlp.enable = true;
|
services.tlp.enable = true;
|
||||||
|
|
||||||
my.hardware = {
|
my.hardware = {
|
||||||
|
action-on-low-power.enable = true;
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
debug.enable = true;
|
debug.enable = true;
|
||||||
drive-monitor.enable = true;
|
drive-monitor.enable = true;
|
||||||
|
|
45
modules/hardware/action-on-low-power/default.nix
Normal file
45
modules/hardware/action-on-low-power/default.nix
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
# low power action
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
options,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.hardware.action-on-low-power;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.hardware.action-on-low-power = {
|
||||||
|
enable = lib.mkEnableOption "action on low power";
|
||||||
|
|
||||||
|
action = lib.mkOption {
|
||||||
|
type = lib.types.enum [
|
||||||
|
"hibernate"
|
||||||
|
"hybrid-sleep"
|
||||||
|
"poweroff"
|
||||||
|
"sleep"
|
||||||
|
"suspend-then-hibernate"
|
||||||
|
"suspend"
|
||||||
|
];
|
||||||
|
default = "sleep";
|
||||||
|
description = ''
|
||||||
|
Action to take when power is low.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
powerInPercent = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 10;
|
||||||
|
description = ''
|
||||||
|
Power percentage threshold to trigger the action.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="${toString cfg.powerInPercent}", RUN+="${config.systemd.package}/bin/systemctl ${cfg.action}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,6 +2,7 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./action-on-low-power
|
||||||
./bluetooth
|
./bluetooth
|
||||||
./debug
|
./debug
|
||||||
./drive-monitor
|
./drive-monitor
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue