OpenRGB
OpenRGB is a powerful open-source software for controlling RGB lighting on various computer components and peripherals. It provides a unified interface for managing RGB devices from different manufacturers, eliminating the need for multiple proprietary software solutions. With OpenRGB, users can customize their PC's lighting effects, synchronize colors across devices, and create dynamic lighting profiles. This tool is particularly useful for users who want to maintain full control over their system's RGB lighting without relying on closed-source applications.
Installation
Using nix-shell
nix-shell -p openrgb
Using Global Configuration
environment.systemPackages = [
pkgs.openrgb
];
After modifying your configuration, apply the changes by running:
sudo nixos-rebuild switch
Using Home Configuration
home.packages = [
pkgs.openrgb
];
After updating your configuration, apply the changes by running:
home-manager switch
Configuration
Basic
services.hardware.openrgb.enable = true;
Advanced
services.hardware.openrgb = {
enable = true;
package = pkgs.openrgb-with-all-plugins;
motherboard = "amd";
server = {
port = 6742;
autoStart = true;
};
};
Tips and Tricks
Location of Options
The global options are listed on MyNixOS.
Turn off RGB
If you'd like to turn off all RGB devices supported by OpenRGB, consider something like:
{ 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" ];
};
};
}