How to Control RGB Lighting On Linux

Rgb

With the rise of online gaming and streaming, the use of RGB lighting on desktop peripherals is trending on the Internet. Most of the RGB lighting comes with a configurable interface that allows you to change the brightness, lighting pattern and more with a desktop application. Typically, these applications only work on Windows, with little to no support for Linux. Thankfully, due to the hard work of some independent developers, there are now Linux apps to control RGB lighting.

Also read: How to Change the Screen Resolution in Ubuntu

1. OpenRGB

OpenRGB is a very popular RGB lighting control software. Typically, computer peripherals have their own software to control the RGB lighting, but if you pair different brands in the same setup, it can disrupt the lighting and create a race condition.

The software are also resource hungry; therefore, you lose out on performance by installing the software. You can solve this issue by using OpenRGB to control all of your accessories from a single interface. It is a cross-platform application that runs on Windows, Linux and macOS.

Rgb 9

Installing OpenRGB on Linux

The OpenRGB installer is available in a variety of formats, like AppImage, .deb and .rpm. Appimage files are self-contained executable. Deb files are used in Debian-based Linux distributions, and rpm files are used in Fedora or Red Hat-based Linux distributions to install new software.

Appimage runs in all Linux distributions and can be used to install a portable version of OpenRGB. Follow the steps below to install an Appimage file on your Linux desktop.

  1. Download the latest available version of OpenRGB Appimage.
  2. Open the directory containing the Appimage file, right-click on it, then select the “Properties” option.
Rgb 7
  1. Select the “Permissions” tab and enable the “Allow executing file as a program” option.
Rgb 8
  1. Double-click on the Appimage file to run the program.

If you are using a Debian- or Ubuntu-based distribution:

  1. Download the .deb file.
  2. Open a new terminal window inside the directory that contains the .deb file.
  3. Run the dpkg command in your terminal to install the .deb file.
sudo dpkg -i [.deb file name]

If you are using Fedora or another Red Hat-based Linux distribution, such as centOS, you can use the dnf package manager to install an .rpm file on your device.

  1. Download the .rpm file from the official website.
  2. Open a terminal window inside the directory that contains the downloaded file.
  3. Run the following command in the terminal to install the .rpm file using the dnf package manager.
sudo dnf install [.rpm file name]

Also read: A Beginner’s Guide to Shell Scripting in Linux

2. Asusctl

Asusctl is made exclusively for Asus ROG laptops. The primary aim of this tool is to provide the armory crate software features that you’ll find on Windows ROG laptops.

Rgb 1
Image source: Asus Linux

Asusctl needs the latest patched kernel to work with keyboard lighting control, fan speed control, etc. If you are a software developer, you can interact with those system resources using dbus methods.

Run the following command to determine whether your laptop RGB lighting is compatible with asusctl software.

lsusb

If you are seeing output like this:

Bus 001 Device 002: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device

your laptop is fully compatible with asusctl. If you don’t find this in the output, you can use other features, such as fan control and battery-charging control, but will not be able to configure a keyboard light.

Rgb 2

Asusctl uses the asusd system daemon to control the process in the background. As this tool is written in rust, it will be extremely lightweight on your system and has a very friendly GUI.

The asusctl GUI contains all of the necessary features: you can set RGB per keys, charging control, RGB dynamic effect, etc. It also supports the anime matrix that comes with Asus Zephyrus series laptops.

Rgb 3

Installing Asusctl in Linux

There is no package available to install this tool on Ubuntu-based distributions, but you can build the application from source by installing rust version 1.57 or higher and make, then clone the repository in your current directory.

git clone https://gitlab.com/asus-linux/asusctl.git

Install the required dependency and build the application.

sudo apt install libclang-dev libudev-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
make
sudo make install

There are some changes to the package name in Fedora. Follow these commands to build asusctl:

sudo dnf install clang-devel systemd-devel cargo
make
sudo make install

If you don’t want to build the software from source, there is a COPR repository available for Fedora. COPR repositories are unofficial sources that allow you to install software using the dnf package manager. To enable the COPR repository of asusctl in your desktop, run the following command:

sudo dnf copr enable lukenukem/asus-linux

You can install the asusctl package using the usual dnf command.

sudo dnf install asusctl

If you want to uninstall this utility, go to the cloned source repository and run sudo make uninstall, then delete the “/etc/asusd” directory.

sudo rm -rf /etc/asusd

Also read: How to Download and Configure DaVinci Resolve in Linux

3. Rogauracore

Rogauracore is a CLI (Command Line Interface) tool that controls RGB keyboard lighting in Asus laptops. Unlike the Asusctl application, Rogauracore does one thing and does it very well.

Rgb 4

Installing Rogauracore in Linux

To install Rogauracore in your Linux distribution, you have to build it from the source. First install libusb, libusb-dev and build tools using the apt package manager.

sudo apt install libusb-1.0-0 libusb-1.0-0-dev build-essential

Clone the Rogauracore repository from GitHub.

git clone https://github.com/wroberts/rogauracore.git
cd rogauracore
autoreconf -i

Configure this repository and build the package using make. After building, you can install this in your computer.

./configure
make
sudo make install

The syntax of the rogauracore command looks like below.

rogauracore COMMAND ARGUMENTS

where COMMAND should be one of the following:

  • single_static
  • single_breathing
  • single_colorcycle
  • multi_static
  • multi_breathing
  • rainbow_cycle
  • red
  • green
  • blue
  • yellow
  • gold
  • cyan
  • magenta
  • white
  • black
  • rainbow
  • brightness
  • initialize_keyboard

For example, if we want to change the keyboard color to red (hex code FF0000), use the following rogauracore command:

sudo rogauracore single_static ff0000

If you find these commands not very intuitive and hard to memorize, you can install Rogauracore-GUI, a very simple GUI application built on the base of Rogauracore. This is just an electron wrapper of Rogauracore that will make your life easier.

Also read: The Best Linux Desktops for a Touchscreen Monitor

4. AlienFX

AlienFX is a CLI tool to control RGB lighting in Alienware laptops with Linux. This tool is built using Python and requires pyusb and the pkg_resources Python package as a dependency. We are using the pip package manager to install all of the Python packages. If you don’t have pip installed in your computer, install it using the following command:

sudo apt install python3-pip
Rgb 5
Image source: AlienFX

Installing AlienFX in Linux

Let’s install all of the dependencies one by one in our default Python environment.

pip3 install setuptools
pip3 install --pre pyusb
pip3 install future

After Python native dependencies are installed, install a distribution-specific Python package using the apt package manager.

sudo apt install libcairo2-dev python-gi python-gi-cairo

On Fedora, the command should look like this:

sudo dnf install cairo-devel python3-gobject cairo-gobject

Clone the repository of AlienFX from GitHub to the current working directory.

git clone https://github.com/trackmastersteve/alienfx.git
cd alienfx

To install the AlienFX package, run the installation script using python3.

sudo python3 setup.py install
sudo python3 setup.py install_data

To use this tool, you have to customize the config file in the “~/.config/alienfx” directory. If you don’t want to configure it using the CLI, AlienFX has a GUI tool called alienfx-gtk, which gives you a nice GUI to alter any configuration AlienFX provides.

5. TUF Control

Tuf Control is a GUI wrapper for faustus, an experimental unofficial Linux platform driver module for ASUS TUF Gaming series laptops. It is a backport of the asus-wmi / asus-nb-wmi drivers from the mainline plus RGB backlight, crudely cut down to be useful for these laptops and packed as a DKMS module for 4.x / 5.x kernels.

faustus can control keyboard backlighting, fan boost and color control on an RGB keyboard.

Rgb 6
Image source: Tuf-Control

Installing Faustus and TUF-Control in Linux

To install the faustus driver in your laptop, first create the “/etc/modprobe.d/faustus.conf” file:

sudo nano /etc/modprobe.d/faustus.conf

Paste the following contents into the file:

blacklist asus_wmi
blacklist asus_nb_wmi

Save and quit the file. Reboot the system.

Next, install dkms in your system:

sudo apt install dkms

Clone the repository from GitHub and use make to install the module.

git clone https://github.com/hackbnw/faustus.git
cd fastasus
make dkms
sudo modprobe faustus

To load the faustus module on boot, use the following command:

sudo make onboot

Tuf control is a very friendly GUI tool that helps to configure the faustus driver. You can compile the Tuf-control from the repository into both .deb and .rpm for Ubuntu- and Fedora-based distributions.

git clone https://github.com/icodelifee/TUF-Control.git
cd TUF-Control/
npm install electron-packager -g
npm run-script build
npm install -g electron-installer-debian
electron-installer-debian --src dist/tufcontrol-electron/ --dest dist/installers/ --arch amd64

To generate an .rpm package, please run the following commands one at a time.

git clone https://github.com/icodelifee/TUF-Control.git
cd TUF-Control/
npm install electron-packager -g
npm run-script build
npm install -g electron-installer-redhat
electron-installer-redhat --src dist/tufcontrol-electron/ --dest dist/installers/ --arch amd64

Also read: 5 Useful Tips When Compiling Your Own Linux Kernel

Frequently Asked Questions

Can I change RGB lighting without installing these tools?

It depends on your device manufacturer. If all of your RGB backlighting in stored in your BIOS and persists through reboots, then you can dual boot your system with Windows. In the Windows partition, install all the apps the manufacturer provides and change the lighting configuration from there. Boot again to the Linux partition, and your settings will still persist. The primary drawback of this trick is that you have to continuously boot Windows to change small configurations. This trick works on Asus TUF and HP Omen laptops.

How can I install new firmware and a custom kernel for RGB keyboard lighting?

Installing new firmware and a custom kernel in Linux is not difficult. If the device manufacturer makes its firmware open source, then the Linux kernel will include it. OpenRGB also includes an updated list of supported devices. If you are new to Linux, you can follow this complete guide on how to install firmware in Linux.

Why can't we run Windows apps like Armory Crates or the OMEN Control Center to configure RGB using Wine?

Wine is a compatibility layer that supports running windows apps in Linux, but as keyboard and mouse back-lighting are hardware related features, it is not possible to use Windows apps to configure Linux hardware. The API for both platforms are drastically different and no compatibility layer can narrow the gap. Therefore, you need a native application to control hardware-related features in Linux.

Image credit: Unsplash. All screenshots by Hrishikesh Pathak.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Hrishikesh Pathak

Developer and writer. Write about linux and web.