diff --git a/hosts/muon/configuration.nix b/hosts/muon/configuration.nix index 6749d45..53bdac5 100644 --- a/hosts/muon/configuration.nix +++ b/hosts/muon/configuration.nix @@ -10,7 +10,7 @@ cfg = config.mods; in { # Hardware - imports = [./hardware-configuration.nix]; + imports = [./hardware-configuration.nix ./openrgb.nix]; environment.systemPackages = with inputs.nix-alien.packages.${system}; [ nix-alien diff --git a/hosts/muon/openrgb.nix b/hosts/muon/openrgb.nix new file mode 100644 index 0000000..2cabf6c --- /dev/null +++ b/hosts/muon/openrgb.nix @@ -0,0 +1,29 @@ +{ + pkgs, + lib, + ... +}: let + no-rgb = pkgs.writeScriptBin "no-rgb" '' + #!/bin/sh + NUM_DEVICES=$(${pkgs.openrgb}/bin/openrgb --noautoconnect --list-devices | grep -E '^[0-9]+: ' | wc -l) + + for i in $(seq 0 $(($NUM_DEVICES - 1))); do + ${pkgs.openrgb}/bin/openrgb --noautoconnect --device $i --mode static --color 000000 + done + ''; +in { + config = { + services.udev.packages = [pkgs.openrgb]; + boot.kernelModules = ["i2c-dev"]; + hardware.i2c.enable = true; + + systemd.services.no-rgb = { + description = "no-rgb"; + serviceConfig = { + ExecStart = "${no-rgb}/bin/no-rgb"; + Type = "oneshot"; + }; + wantedBy = ["multi-user.target"]; + }; + }; +}