Usually each component manufacturer has their own software for controlling RGB lights, with some requiring an online account to function. For Linux users, even that is not usually available since most of these applications are proprietary and Windows only. This is where OpenRGB comes in.
OpenRGB is a free and open source application to control RGB lighting for a multitude of devices, independent of the manufacturer. It’s available for Linux and Microsoft Windows.
The application can be used to control the RGB lighting in keyboards, mice, mousemats, motherboards, RAM modules, graphics cards, LED strips, fan controllers, smart LED light bulbs, fans, coolers, and more, from brands / manufacturers like ASUS, ASRock, Corsair, G.Skill, Gigabyte, HyperX, MSI, Razer, ThermalTake, and more. It doesn’t support every manufacturer out there though, so for a complete list of compatible devices, see this list.
You can use OpenRGB either by taking advantage of its Qt5 GUI, or from the command line. There’s also support for using third-party software to control the lighting, thanks to the OpenRGB SDK. For example, there’s a Keyboard Visualizer application created by the same developer that you can use to turn your OpenRGB-supported RGB setup into a light show for your music. You can see a list of applications supporting the OpenRGB SDK here.
- Set colors and select effect modes for a wide variety of RGB hardware
- Save and load profiles
- Control lighting from third party software using the OpenRGB SDK
- Qt5 GUI and Command line interface
- Connect multiple instances of OpenRGB to synchronize lighting across multiple PCs
- Can operate standalone or in a client/headless server configuration
- View device information
- No official/manufacturer software required
- Graphical view of device LEDs makes creating custom patterns easy
You might also like: Configure Logitech, Steelseries And Other Gaming Mice On Linux Using Piper
To control the motherboard LEDs for some manufacturers, OpenRGB requires patching the kernel, which is not something easy to do for many users. And unfortunately, this is not the only OpenRGB downside. Since this tool interacts with the hardware using reverse engineered protocols, there’s a risk of bricking the hardware! In fact, there have been two instances of hardware damage in OpenRGB’s development. So use this at your own risk!
I’ve tested OpenRGB 0.5 (the latest version at the time I’m writing this article) on Ubuntu 20.10, and I was lucky to have it support both my mouse and keyboard. The application was able to change the colors, apply various color effect modes, etc., but it crashed a few times. However, since the developer calls this version 0.5, I guess it’s not considered fully stable yet.
Keyboard Visualizer, which I already mentioned above, didn’t work properly with OpenRGB on my system. The keyboard kept flickering like crazy and my mouse didn’t react to any settings (even though it’s called Keyboard Visualizer, it also supports mice and other accessories).
I’d also like to note that OpenRGB is not new, having its first (0.1) release back in March 2020, but I’ve just discovered it and I wanted to share it with you.
The OpenRGB releases page linked above has binaries for Microsoft Windows, generic Linux AppImage binaries, and DEB packages for Debian / Ubuntu / Linux Mint / Pop!_OS / Elementary OS, etc.
The application is also available in the official repositories of a few Linux distributions like Gentoo, openSUSE Tumbleweed, Solus and more. Third-party packages are also available: on AUR (stable and git, as well patched kernel and modules to allow controlling RGB LEDs in some motherboards) for Arch Linux Manjaro users, and a COPR repository for Fedora users.
There’s also an Ubuntu (and Linux Mint, Pop!_OS, etc.) PPA which has the latest OpenRGB from Git. The PPA also provides an
openrgb-dkms-drivers package which includes the
i2c-piix4 kernel driver, so you don’t have to patch the kernel in order to control the LEDs on some motherboards.
If there are no packages for your Linux distribution, and you don’t want to use the AppImage package, you’ll need to build this from source, as explained here. Make sure to also install the Udev rules to allow USB access. The Udev rules are also required if you’re using the AppImage package.
You might also like: How To Bind Mouse Buttons To Keyboard Keys Or Commands (Linux Using X11)