redthunder k95 keyboard rgb software on linux - wine + udev fix
i bought a RedThunder K95 mechanical keyboard. it has per-key RGB backlighting with a bunch of modes and colors, but the RedThunder keyboard software is a windows .exe with no linux version. the keyboard uses a SINO WEALTH chip (vendor 258a, product 019d), and OpenRGB doesn't support this specific product ID yet. so the choice was: live with the Fn key combos, or try to get the RedThunder RGB software running on linux with wine.
wine worked. here's how to change the color on a RedThunder keyboard from linux.

TFT Screen & Knob - Tri-Mode BT/2.4GHz/USB-C - Hot Swappable - RGB Backlit
Gasket Mount - Pre-lubed Linear Switches - PBT Keycaps
view on amazonaffiliate link - helps support the blog
the problem with redthunder keyboards on linux
budget mechanical keyboards like the RedThunder K95 store their RGB lighting config in flash memory on the keyboard's SINO WEALTH microcontroller. the onboard Fn key combos cycle through preset modes, but if you want to customize individual key colors or save custom RGB profiles, you need the manufacturer's configuration software. RedThunder only provides a windows-only exe. no linux build, no web config, no open protocol.
OpenRGB supports some SINO WEALTH keyboards, but it's a per-device thing. each USB product ID needs to be reverse-engineered and added. the RedThunder K95's 258a:019d isn't in the OpenRGB supported devices list yet.
running redthunder k95 software on linux with wine
wine runs the RedThunder K95 setup exe fine out of the box on arch linux. the app launches, the UI renders, everything looks normal. but it says "please connect your device." the keyboard is physically plugged in and working as a keyboard - linux sees it fine via lsusb - but wine's USB layer can't talk to its HID interface.
the issue is permissions on /dev/hidraw*. linux creates hidraw device nodes for each HID interface on a USB device. by default they're owned by root with 0600 permissions. wine's wineusb driver needs read/write access to send the custom HID reports that configure the keyboard RGB LEDs.
running wine with sudo doesn't work either. sudo drops your Wayland display connection, so wine can't create a window at all. you get a wall of "no driver could be loaded" errors.
the fix: a udev rule for SINO WEALTH keyboard access
the right approach is a udev rule that sets open permissions on the RedThunder keyboard's hidraw devices whenever they appear. create /etc/udev/rules.d/99-redthunder-k95.rules:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="258a", ATTRS{idProduct}=="019d", MODE="0666"
reload and trigger:
sudo udevadm control --reload-rules
sudo udevadm trigger
this matches the keyboard by its USB vendor and product ID and sets world read/write on its hidraw nodes. it persists across reboots and replugs. after this, running wine OemDrv.exe as your normal user detects the keyboard immediately.
finding which hidraw is yours
if you need to verify which hidraw devices belong to your keyboard:
for h in /dev/hidraw*; do
echo -n "$h: "
udevadm info --query=all --name=$h | grep ID_MODEL=
done
the K95 creates two hidraw nodes - one for the keyboard interface and one for the LED control interface. the udev rule covers both since it matches on the parent USB device's vendor/product.
full steps: redthunder k95 rgb setup on linux
- install wine (
pacman -S wineon arch,apt install wineon ubuntu/debian) - extract the zip and run the installer:
wine "RedThunder K95 US Setup.exe" - click through the installer defaults
- create the udev rule above, reload rules
- run the RedThunder config tool:
wine "~/.wine/drive_c/Program Files (x86)/RedThunder K95/OemDrv.exe" - customize your RGB lighting, hit apply - settings flash to keyboard memory and persist across reboots
gotchas
sudo wine breaks on wayland. don't try it. the display connection gets dropped and wine can't render any windows. fix permissions with udev instead of escalating privileges.
the keyboard shows two hidraw devices. USB HID keyboards often expose multiple interfaces - one for standard key input, one for vendor-specific features like LED control. both need to be accessible. the udev rule handles this by matching at the USB device level.
settings persist in keyboard flash. once you configure the RGB and click apply, the settings are stored on the keyboard itself. you don't need to run the wine app again unless you want to change profiles. unplug the keyboard, plug it into a different machine - same lighting.
OpenRGB doesn't support the RedThunder K95 yet. if someone captures the HID protocol and submits a merge request to the OpenRGB project, native linux RGB control could happen without wine. the SINO WEALTH 258a vendor has partial coverage already. the RedThunder K95 product ID (019d) just needs to be added.
eli5
imagine you bought a fancy desk lamp that comes with a remote control app, but the app only runs on iPhones and you have an android phone. wine is like running an iPhone simulator on your android - the app thinks it's on an iPhone. the catch is the app needs bluetooth (hidraw) to talk to the lamp, and your android has bluetooth locked down by default. the udev rule is you going into android's settings and saying "let any app use bluetooth with this specific lamp." once you do that, the simulated iPhone app can control the lamp just fine, and the lamp remembers your settings even after you close the app.