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