You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Initial release: per-key RGB control for HyperX Alloy Origins on Linux
A self-contained alternative to NGENUITY, which is Windows-only. The keyboard
is driven directly over /dev/hidraw, so neither OpenRGB nor any background
service is required. The binary is statically linked and embeds its own
interface: ldd reports "not a dynamic executable".
Why software rendering: OpenRGB exposes this device with a single mode,
Direct. No firmware effects are reachable on Linux, so every animation is
computed here and pushed frame by frame. Nothing is limited by what the
firmware happens to support.
Features:
- 12 effects plus a reactive overlay layer with independent speed, fade
and colour
- Interactive layout: click, Ctrl-click and rubber-band selection, per-key
fill, ANSI and ISO variants including the L-shaped ISO Enter
- Global keypress reaction read through evdev without grabbing the device,
so typing is unaffected
- Settings persist across restarts, written atomically 1.5s after a change,
so even SIGKILL loses nothing
- English and Russian interface and CLI, switchable at runtime
- Debian package shipping a udev rule; access is granted via the uaccess
tag, no input group membership needed
Protocol notes:
- A frame is nine 65-byte HID feature reports: one switching the keyboard
into direct mode, eight carrying colours (16 per packet, 4 bytes each,
0x81 marker plus RGB)
- The mode switch is sent with every frame. Sending it only once lets the
keyboard fall back to the scheme stored in its own memory and override
what the program draws
- A frame has 126 positions but only 107 LEDs; the 19 absent positions must
still receive zeroes or the layout shifts onto neighbouring keys
- The device is located by USB identifiers and interface 00, never by path:
the /dev/hidrawN number changes on replug. Failed writes trigger an
automatic reopen
- Keypresses are stamped in the same clock as frames; mixing an absolute
clock with time-since-start drives hit ages negative, which silently
breaks ripple and flash
Tests cover frame slot expansion, LED and evdev bindings, reactive timing,
settings persistence and translation completeness. None of them need the
hardware.
Hardware knowledge comes from OpenRGB (GPLv2); this is an independent
implementation and contains none of its source. Licensed under MIT.