diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index 75336f597b3a..a4ba427be9b5 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -96,6 +96,8 @@ - `spidermonkey_91` has been removed, as it has been EOL since September 2022. +- `ddccontrol` service now enables `hardware.i2c` by default, and adds `ddcci_backlight` to the kernel modules, based on [experiences reported on discourse](https://discourse.nixos.org/t/brightness-control-of-external-monitors-with-ddcci-backlight/8639/). + - The license of duckstation has changed from `gpl3Only` to `cc-by-nc-nd-40` making it unfree in newer releases. The `duckstation` package has been overhauled to support the new releases and `duckstation-bin` has been aliased to `duckstation` to support darwin binary builds. - `hiawata` has been removed, due to lack of active development upstream, lack of maintainership downstream and upcoming security issues. diff --git a/nixos/modules/services/hardware/ddccontrol.nix b/nixos/modules/services/hardware/ddccontrol.nix index b9ad851333a4..6c1f0e8875a1 100644 --- a/nixos/modules/services/hardware/ddccontrol.nix +++ b/nixos/modules/services/hardware/ddccontrol.nix @@ -14,15 +14,25 @@ in options = { services.ddccontrol = { - enable = lib.mkEnableOption "ddccontrol for controlling displays"; + enable = lib.mkEnableOption '' + ddccontrol for controlling displays. + + This [enables `hardware.i2c`](#opt-hardware.i2c.enable), so note to add + yourself to [`hardware.i2c.group`](#opt-hardware.i2c.group). + ''; }; }; ###### implementation config = lib.mkIf cfg.enable { + boot.kernelModules = [ + "ddcci_backlight" + ]; # Load the i2c-dev module - boot.kernelModules = [ "i2c_dev" ]; + hardware.i2c = { + enable = true; + }; # Give users access to the "gddccontrol" tool environment.systemPackages = [