stockholm/lass/2configs/power-action.nix

42 lines
870 B
Nix
Raw Normal View History

2016-06-18 19:53:44 +00:00
{ config, pkgs, ... }:
let
suspend = pkgs.writeDash "suspend" ''
${pkgs.systemd}/bin/systemctl suspend
'';
speak = text:
pkgs.writeDash "speak" ''
${pkgs.espeak}/bin/espeak -v +whisper -s 110 "${text}"
'';
2016-06-18 19:53:44 +00:00
in {
2016-07-26 19:36:47 +00:00
krebs.power-action = {
2016-06-18 19:53:44 +00:00
enable = true;
plans.low-battery = {
upperLimit = 30;
lowerLimit = 25;
charging = false;
action = pkgs.writeDash "warn-low-battery" ''
${speak "power level low"}
'';
};
2016-06-18 19:53:44 +00:00
plans.suspend = {
upperLimit = 10;
lowerLimit = 0;
charging = false;
action = pkgs.writeDash "suspend-wrapper" ''
/var/setuid-wrappers/sudo ${suspend}
'';
};
};
users.users.power-action.extraGroups = [
"audio"
];
2016-06-18 19:53:44 +00:00
security.sudo.extraConfig = ''
2016-07-26 19:36:47 +00:00
${config.krebs.power-action.user.name} ALL= (root) NOPASSWD: ${suspend}
2016-06-18 19:53:44 +00:00
'';
}