You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
ptkovsky 011d36492e Add support for the MSI GeForce RTX™ 5090 32G SUPRIM SOC 7 months ago
.github Add GitHub Sponsor information 10 months ago
.gitlab fix: spelling of Nvidia GPU label in New Device issue template 10 months ago
.vscode Add recomended VSCode extensions 4 years ago
AutoStart Clean up comment formatting in AutoStart files 10 months ago
Controllers Add support for the MSI GeForce RTX™ 5090 32G SUPRIM SOC 7 months ago
Documentation Update SMBus documentation for PawnIO 8 months ago
KeyboardLayoutManager Fix warnings 1 year ago
RGBController Fix laptop and monitor device type strings 9 months ago
SPDAccessor Support Kingston Fury Beast DDR5 with Jedec ID: 0x3011 9 months ago
SuspendResume Fix suspend/resume on Linux 1 year ago
debian Update static shebangs to flexible /usr/bin/env 2 years ago
dependencies Update PawnIO SMBus driver to use standardized API between all drivers, add NCT6793 driver, and remove WinRing0 SMBus drivers 8 months ago
dmiinfo Clean up comment formatting in DMI info files 10 months ago
fedora Update Fedora spec file to include systemd service 10 months ago
hidapi_wrapper Properly fix how how hidapi and libusb dependencies are handled 2 years ago
i2c_smbus Update PawnIO SMBus driver to use standardized API between all drivers, add NCT6793 driver, and remove WinRing0 SMBus drivers 8 months ago
i2c_tools Update PawnIO SMBus driver to use standardized API between all drivers, add NCT6793 driver, and remove WinRing0 SMBus drivers 8 months ago
interop Update even more file header comments to standardized new format 2 years ago
mac Mac Update info product name 2 years ago
net_port Initial support for Govee devices 12 months ago
pci_ids Add support for the MSI GeForce RTX™ 5090 32G SUPRIM SOC 7 months ago
qt Update PawnIO SMBus driver to use standardized API between all drivers, add NCT6793 driver, and remove WinRing0 SMBus drivers 8 months ago
scripts OpenRGB Release Candidate 1.0rc2 8 months ago
scsiapi Fix warnings about omitted parameter names in scsiapi_macos.c 1 year ago
serial_port Clean up code 10 months ago
startup Replace WinRing0 with PawnIO for SMBus and Super-IO access on Windows 8 months ago
super_io Only build PawnIO support in 64-bit builds, provide non-functional stub implementations in super_io.cpp for 32-bit builds 8 months ago
wmi Update yet more file header comments to standardized new format 2 years ago
.editorconfig Inital commit to .editorconfig file 4 years ago
.gitignore link system hub fixups 9 months ago
.gitlab-ci.yml Disable realtime malware scanning on GitLab CI so that it doesn't break builds with WinRing0 8 months ago
CONTRIBUTING.md Update translating section in CONTRIBUTING.md 11 months ago
Colors.h Update yet more file header comments to standardized new format 2 years ago
Detector.h Fixed Kingston Fury Beast DDR5 do not detect #4725 1 year ago
DeviceDetector.h Implement common DRAM SPD module with EE1004 and SPD5118 driver support to support detecting DRAM modules using SPD information. 1 year ago
LICENSE Add LICENSE 7 years ago
LogManager.cpp Clean up comment formatting in LogManager and StringUtils cpp files 10 months ago
LogManager.h Update hueplusplus dependency to 1.2.0 1 year ago
NetworkClient.cpp Add missing send_in_progress locks around send groups in NetworkClient.cpp 10 months ago
NetworkClient.h Rework NetworkClient server initialization to allow interruption and restarting of server list request process when server sends a device list updated notification 10 months ago
NetworkProtocol.cpp Fix warning related to sizeof() on const char array, the null terminator is not used here so reworked the array to explicitly be 4 elements 2 years ago
NetworkProtocol.h Add SDK command to rescan devices 10 months ago
NetworkServer.cpp Add send_in_progress locks around send groups in NetworkServer.cpp 10 months ago
NetworkServer.h Add send_in_progress locks around send groups in NetworkServer.cpp 10 months ago
OpenRGB.pro Change suffix back to git after 1.0rc2 release candidate 8 months ago
OpenRGBPluginInterface.h Move ResourceManagerInterface to its own file. Refactor Plugin interface 1 year ago
PluginManager.cpp Fix plugin removal issues 1 year ago
PluginManager.h Move Autogenerated UI code into Private sections of the window classes 11 months ago
ProfileManager.cpp Use GetName instead of directly accessing the RGBController::name member outside of Controllers 9 months ago
ProfileManager.h Update yet more file header comments to standardized new format 2 years ago
README.md Replace WinRing0 with PawnIO for SMBus and Super-IO access on Windows 8 months ago
ResourceManager.cpp Update warning message if I2C doesn't load 8 months ago
ResourceManager.h Pass name string into I2C DIMM detectors, store name in KingstonFuryDRAMController to avoid setting it in detector 9 months ago
ResourceManagerInterface.h Add file header comment to ResourceManagerInterface.h 9 months ago
SettingsManager.cpp Clean up comment formatting in SettingsManager and main cpp files 10 months ago
SettingsManager.h Update hueplusplus dependency to 1.2.0 1 year ago
StringUtils.cpp Clean up comment formatting in LogManager and StringUtils cpp files 10 months ago
StringUtils.h Add u16string to string conversion function for CMKeyboardV2Controller.cpp 2 years ago
cli.cpp Use GetName instead of directly accessing the RGBController::name member outside of Controllers 9 months ago
cli.h Loading optimization (no GUI changes) 2 years ago
filesystem.h Update yet more file header comments to standardized new format 2 years ago

README.md

Pipeline Status

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 Windows, Linux, and MacOS, without any nonsense? That is what OpenRGB sets out to achieve. One app to rule them all.

Features

  • 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
  • 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

OpenRGB_Device_View

Website

Supported Devices

WARNING!

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 issues in the past with certain hardware getting damaged/bricked and we have either disabled or fixed the offending code. That said, with OpenRGB always changing and the landscape of RGB devices being of widely varying quality, we can't guarantee it won't happen again. By installing and using OpenRGB you accept this risk.

Download OpenRGB

  • Pre-built binaries are available for the following platforms:
    • Windows
    • Linux (AppImage, .deb, and .rpm)
    • MacOS
  • Released versions are available to download on OpenRGB.org or under Releases.
  • Experimental (aka Pipeline) versions are available to download on OpenRGB.org.
  • On Windows, you will need the Microsoft Visual 2019 C++ runtime installed. You can get it here.
  • An unofficial Flatpak release is available on Flathub
  • Released versions are officially packaged for various distributions including Alpine, Fedora, and Arch.
  • Arch users can also install from the Extra repository or from the AUR for the pipeline version.

Compile OpenRGB

Setup Device Access

  • After installing OpenRGB, please see the SMBus Access and USB Access pages for instructions on setting up access to your RGB devices.

Join Our Discord

Follow Us On Mastodon

Visit Our Lemmy Community

How-Tos and FAQs

Support OpenRGB

  • OpenRGB is a project I created to solve a problem I had with the RGB ecosystem. My goal isn't to make money off of this project. That said, people have requested to donate, and donations allow me to buy more RGB stuff to reverse engineer.
  • Donate via PayPal
  • Become a Patron (I'm not doing any Patreon-exclusive content, it's purely for donation)
  • Donate via Bitcoin: 1N83YPu7btXYadPS1neB9zX7X1QTdpyZQ

History of OpenRGB

  • OpenRGB is a continuation of OpenAuraSDK, which itself was created out of reverse engineering work done on the Keyboard Visualizer project. For a complete history of the RGB projects that led to OpenRGB's creation, see the History page.

Contributing

  • Want to contribute support for a new device? Check out the RGBController API page for documentation of how OpenRGB implements device control.
  • Want to create a new OpenRGB SDK client implementation? Check out the OpenRGB SDK Documentation page for documentation of how the OpenRGB SDK network protocol functions.
  • Please read the Contributing Guidelines before starting work on your new changes.

OpenRGB SDK

Applications Supporting OpenRGB SDK

OpenRGB Plugins

Projects Used

Projects Researched