LinuxCommandLibrary

openrgb

Control RGB lighting hardware

TLDR

Start the OpenRGB GUI

$ openrgb
copy

List devices supported by OpenRGB
$ openrgb --noautoconnect [[-l|--list-devices]]
copy

Set the mode and color of a device
$ openrgb [[-m|--mode]] [off|static|breathing|rainbow|flashing|...] [[-c|--color]] [random|red|00AAFF|...]
copy

Display help
$ openrgb [[-h|--help]]
copy

SYNOPSIS

openrgb [OPTIONS]
When executed without options, openrgb typically launches its graphical user interface. Various options allow for server mode operation, specific profile loading, or debugging.
Example: openrgb --start-server --no-gui

PARAMETERS

--help, -h
    Displays a comprehensive help message showing all available command-line options and their usage.

--version, -v
    Prints the current version information of the OpenRGB application.

--start-server
    Initiates the OpenRGB server, enabling other applications or clients to connect and control devices via the SDK.

--server-port
    Specifies the TCP port on which the OpenRGB server will listen for incoming connections. Default is usually 6742.

--no-gui
    Runs OpenRGB in a server-only mode without launching the graphical user interface. Useful for headless systems or background services.

--no-detection
    Prevents OpenRGB from automatically detecting devices on startup. Device detection can then be triggered manually or via SDK.

--profile
    Loads a specific lighting profile named <profile_name> upon application startup.

--verbose, -V
    Increases the verbosity of logging output, providing more detailed information for debugging purposes.

--daemon
    Starts OpenRGB as a daemon (background process), typically combining `--start-server` and `--no-gui` behavior.

DESCRIPTION

OpenRGB is a free and open-source software suite designed to unify control of RGB lighting across various hardware components from different manufacturers. It eliminates the need for multiple, often proprietary, vendor-specific applications by providing a single, cross-platform solution. Users can manage RGB on motherboards, RAM modules, graphics cards, keyboards, mice, and other peripherals. The software achieves this by reverse-engineering proprietary lighting protocols.

While primarily known for its graphical user interface (GUI), OpenRGB also features a powerful SDK (Software Development Kit) for third-party application integration and can be controlled via a command-line interface (CLI) or run as a server for remote access. It supports custom profiles, various lighting effects, and synchronization across all detected devices, aiming to provide a seamless and cohesive lighting experience for your entire system.

CAVEATS

  • Root Privileges: OpenRGB often requires root or `sudo` privileges, or proper `udev` rules, to access and control hardware devices directly. Running it without sufficient permissions may lead to device detection failures or inability to apply settings.
  • Hardware Compatibility: While aiming for broad support, not all RGB devices are fully compatible. Some devices may have limited functionality or require specific drivers/firmware.
  • Potential Conflicts: Running OpenRGB alongside vendor-specific RGB software (e.g., ASUS Aura Sync, Corsair iCUE, Razer Synapse) can lead to conflicts, unexpected behavior, or device control issues. It's generally recommended to disable or uninstall proprietary software when using OpenRGB.
  • Device Damage Risk: Although highly unlikely with proper usage, manipulating hardware at a low level carries inherent risks. Always ensure you are using a stable version and understand the implications of changing settings.

<I>SDK AND API INTEGRATION</I>

OpenRGB provides a powerful Software Development Kit (SDK) and a network-based API, allowing third-party applications to interact with and control RGB devices. This enables developers to create custom lighting effects, synchronize lighting with games or media, or integrate RGB control into broader system monitoring tools. This feature is particularly useful for modders, game developers, or anyone looking to automate their lighting setup.

<I>UDEV RULES FOR PERMISSIONS</I>

For OpenRGB to access and control hardware devices without requiring constant `sudo` elevation, it's often necessary to set up specific `udev` rules. These rules grant non-root users the necessary permissions to interface with USB and other bus devices that control RGB lighting. This is a crucial step for a smooth user experience on Linux distributions.

HISTORY

OpenRGB was initiated by Adam Honse in late 2019 / early 2020. Its primary motivation was to address the fragmentation and proprietary nature of RGB lighting control software in the PC hardware ecosystem. Frustrated by the need for multiple applications to control different components, Honse began reverse-engineering existing protocols.

The project rapidly gained traction within the open-source community, attracting numerous contributors who have helped expand its hardware compatibility through dedicated reverse-engineering efforts and driver development. This community-driven approach has been central to its evolution into a robust, cross-vendor solution.

SEE ALSO

udevadm(8), lsusb(8), lspci(8), systemctl(1)

Copied to clipboard