This repository has no description
959 B
47 lines
1{ config, pkgs, ... }:
2
3let
4 suspend = pkgs.writers.writeDash "suspend" ''
5 ${pkgs.systemd}/bin/systemctl suspend
6 '';
7
8 speak =
9 text:
10 pkgs.writers.writeDash "speak" ''
11 ${pkgs.espeak}/bin/espeak -v +whisper -s 110 "${text}"
12 '';
13
14in
15{
16 krebs.power-action = {
17 enable = true;
18 plans.low-battery = {
19 upperLimit = 10;
20 lowerLimit = 15;
21 charging = false;
22 action = pkgs.writers.writeDash "warn-low-battery" ''
23 ${speak "power level low"}
24 '';
25 };
26 plans.suspend = {
27 upperLimit = 10;
28 lowerLimit = 0;
29 charging = false;
30 action = pkgs.writers.writeDash "suspend-wrapper" ''
31 /run/wrappers/bin/sudo ${suspend}
32 '';
33 };
34 user = "lass";
35 };
36
37 users.users.power-action = {
38 isNormalUser = true;
39 extraGroups = [
40 "audio"
41 ];
42 };
43
44 security.sudo.extraConfig = ''
45 ${config.krebs.power-action.user} ALL= (root) NOPASSWD: ${suspend}
46 '';
47}