Releases: Shehtman/hyperx-studio
Releases · Shehtman/hyperx-studio
Release list
v1.2.3
Everything since v1.0.0: the interface rebuilt, the browser gone, and the
lighting now reacts to sound.
- New interface. Controls moved from a narrow column on the right into a
panel across the bottom, split into tabs - a keyboard is a wide object. The
preview is drawn on a canvas instead of SVG: the whole board in one pass,
about 1.1 ms a frame. - A window of its own on GTK and WebKit, no Chrome in application mode. The
title strip is empty, and the shell gives the window our name and our icon.
It is a separate program, so the lighting service stays a static binary with
no dependencies - and a crash in WebKit costs the window, not the lighting. - Sound. Four reactive effects - equaliser, spectrum, pulse and wave to
music - captured from the system output throughparecorpw-record. - 15 built-in schemes, plus saving your own, and new parameters: background
colour, saturation, sensitivity and direction. - Fixed: the computer could not be woken from sleep with the keyboard;
turning the lighting off did not keep it off; waves and rain ran at the wrong
speed; sound effects froze in silence; upgrading the package left the old
version running. - The program now starts with no keyboard attached and picks one up the moment
it is plugged in.
Install
sudo apt install ./hyperx-studio_1.2.3-1_amd64.debHyperX Studio 1.0.0
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.