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