Unified Gaming Gear linux control - an idea
Unified Gaming Gear linux control - an idea - Lemmy.World
cross-posted from: https://lemmy.world/post/42787520 [https://lemmy.world/post/42787520] > Most of us have some blinking, light-emitting, colorful devices attached to our potatoes - or whatever the minimum specs for Linux are these days, haven’t checked in a while. > > And most of us use OpenRGB to control them. But I fear this single project has some major, fundamental issues. As with many projects, it grew very fast and very big. > > It has over 200 supported devices today, and the list keeps growing. > > But it wasn’t designed to grow this fast or support such a variety of devices. > > This has led to several issues: > > Not all features can be implemented for all devices: > > For example, devices with different available effects per zone aren’t supported by design. You may have noticed that sidebar LEDs on some keyboards aren’t controllable via OpenRGB. > > No support for macros, DPI settings, and more: > > It was always about RGB. This isn’t an issue per se - it’s the scope of the software. But: > > Cannot coexist with macro/mouse controlling software: > > OpenRGB needs to open the HIDRAW device to control it, and this is an exclusive operation. So no other software can hook those devices at the same time. > > Growing backlog: > > Device-support requests keep piling up, new devices wait a long time to be accepted - the usual open-source maintenance challenges. > > ### My Idea > > Let’s create a unified device abstraction library. The core part should just offer a C++ library with all the device abstraction logic in it. This library can then be consumed by a variety of software: > > - OpenRGB could use the RGB part of it, focusing on orchestration and advanced features > - Python bindings for scripting your setup > - Hyprland integrations > - Custom CLI tools > - Whatever the community builds > > Therefore, if you’re a developer who knows your way around modern C++ features (or wants to learn), here’s my project pitch: > > What this could be: > > - Modernized device code (C++23, memory safety, proper abstractions) > - Support for ALL peripheral features (RGB, macros, DPI, profiles, etc.) > - Clean API for other developers to build on > - Reduced fragmentation - community maintains ONE device library instead of competing implementations > > Making this real would need: > > - C++ developers , as one developer is no developer (and i have other hobbies!) > - People who’ve worked with USB/HID protocols on Windows and other Non-Linux platforms! > - Anyone frustrated with current Linux peripheral tools and willing to help fix it > - Design feedback and testing > > To kickstart this: > > We can fork OpenRGB’s existing device implementations (GPL-licensed) as a foundation. I have at least two devices here that offer on-device macro functionality, key remapping, and more, so I can create the basic abstractions for those features. > > Thoughts?

