Open source RGB lighting control that doesn't depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Releases can be found on GitLab.
One of the biggest complaints about RGB is the software ecosystem surrounding it. Every manufacturer has their own app, their own brand, their own style. If you want to mix and match devices, you end up with a ton of conflicting, functionally identical apps competing for your background resources. On top of that, these apps are proprietary and Windows-only. Some even require online accounts. What if there was a way to control all of your RGB devices from a single app, on both Windows and Linux, without any nonsense? That is what OpenRGB sets out to achieve. One app to rule them all.
[[TOC]]
This project interacts directly with hardware using reverse engineered protocols. While we do our best to make sure we're sending the right data, there is always some risk in sending data to hardware when we don't understand exactly how that hardware works.
There have been two instances of hardware damage in OpenRGB's development and we've taken precautions to prevent it from happening again.
sudo apt install git build-essential qtcreator qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libusb-1.0-0-dev libhidapi-dev pkgconf libmbedtls-dev qttools5-dev-tools
./openrgb
or install with make install
sudo apt install debhelper
/scripts/build-package-files.sh debian/changelog
dpkg-buildpackage -us -B
sudo dnf install automake gcc-c++ qt5-qtbase-devel qt5-linguist hidapi-devel libusbx-devel mbedtls-devel
./openrgb
or install with make install
SMBus access is necessary for controlling RGB RAM and certain motherboard on-board LEDs.
If you are not trying to use OpenRGB to control RGB RAM or motherboard LEDs, you may skip this section.
ASUS and ASRock motherboards have their RGB controller on a secondary SMBus interface and requires a Linux kernel > 5.7 commit
Allowing access to SMBus:
i2c-tools
package.sudo modprobe i2c-dev
sudo groupadd --system i2c
sudo usermod $USER -aG i2c
sudo touch /etc/modules-load.d/i2c.conf && sudo sh -c 'echo "i2c-dev" >> /etc/modules-load.d/i2c.conf'
sudo modprobe i2c-i801
sudo modprobe i2c-nct6775
- Secondary controller for motherboard LEDs (requires kernel patch)sudo modprobe i2c-piix4
/etc/modules-load.d/
You'll have to enable user access to your SMBus if you don't run as root.
sudo i2cdetect -l
The i2c-nct6775 kernel module requires patching, please refer to instructions here
Some Gigabyte/Aorus motherboards have an ACPI conflict with the SMBus controller. Please add a kernel parameter to resolve this conflict.
/usr/lib/udev/rules.d/60-openrgb.rules
make install
step to /usr/lib/udev/rules.d/60-openrgb.rules
/usr/lib/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
To resolve an ACPI conflict add the acpi_enforce_resources=lax
kernel parameter.
If you want to check if the kernel was loaded with this option you can execute this command from the terminal once you've rebooted.
cat /proc/cmdline
grubby
and then following command:
grubby --update-kernel=ALL --args="acpi_enforce_resources=lax"
OpenRGB provides a network interface for controlling supported RGB devices from other software. These projects implement the OpenRGB SDK and provide additional ways for you to control your lighting setup.
While OpenRGB itself only provides control over the lighting effects built into hardware, several open source applications can use the OpenRGB SDK to provide synchronized lighting effects for your devices.
OpenRGB provides a plugin interface for adding features to the OpenRGB application. The following projects provide additional functionality in the form of plugins.
While no code from these projects directly made its way into OpenRGB, these projects have been invaluable resources for protocol information.