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