1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.services.ddccontrol;
10in
11
12{
13 ###### interface
14
15 options = {
16 services.ddccontrol = {
17 enable = lib.mkEnableOption "ddccontrol for controlling displays";
18 };
19 };
20
21 ###### implementation
22
23 config = lib.mkIf cfg.enable {
24 # Load the i2c-dev module
25 boot.kernelModules = [ "i2c_dev" ];
26
27 # Give users access to the "gddccontrol" tool
28 environment.systemPackages = [
29 pkgs.ddccontrol
30 ];
31
32 services.dbus.packages = [
33 pkgs.ddccontrol
34 ];
35
36 systemd.packages = [
37 pkgs.ddccontrol
38 ];
39 };
40}