1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.services.power-profiles-daemon;
10in
11
12{
13
14 ###### interface
15
16 options = {
17
18 services.power-profiles-daemon = {
19
20 enable = lib.mkOption {
21 type = lib.types.bool;
22 default = false;
23 description = ''
24 Whether to enable power-profiles-daemon, a DBus daemon that allows
25 changing system behavior based upon user-selected power profiles.
26 '';
27 };
28
29 package = lib.mkPackageOption pkgs "power-profiles-daemon" { };
30
31 };
32
33 };
34
35 ###### implementation
36
37 config = lib.mkIf cfg.enable {
38
39 assertions = [
40 {
41 assertion = !config.services.tlp.enable;
42 message = ''
43 You have set services.power-profiles-daemon.enable = true;
44 which conflicts with services.tlp.enable = true;
45 '';
46 }
47 {
48 assertion = !config.services.auto-cpufreq.enable;
49 message = ''
50 You have set services.power-profiles-daemon.enable = true;
51 which conflicts with services.auto-cpufreq.enable = true;
52 '';
53 }
54 ];
55
56 environment.systemPackages = [ cfg.package ];
57
58 services.dbus.packages = [ cfg.package ];
59
60 services.udev.packages = [ cfg.package ];
61
62 systemd.packages = [ cfg.package ];
63
64 };
65
66}