github.com/wobkey/rgb)--zone behavior implementedrgb info JSON implemented/dev/hidraw7 (root:root, mode 600); it later disappeared, so use the currently discovered path.The rgb command has a persistent --zone flag with the values logo,
backlight, and side. Without the flag, commands target Logo, Backlight,
and Side in that order. With the flag, commands target exactly one zone.
An unknown effect name fails before the device is opened. An effect that is unsupported by an explicitly selected zone also fails before the device is opened. For a default all-zone request, supported zones receive the command and unsupported zones are skipped with a warning on stderr.
The exact effect examples are:
wobkey rgb effect breathing
wobkey rgb effect rainbow_moving_chevron
wobkey rgb effect rainbow_moving_chevron --zone backlight
wobkey rgb brightness 160
wobkey rgb speed 2
wobkey rgb color 00ff00
Logo and Side share the complete seven-name family:
none, wave, fixed_wave, spectrum, breathing, light, shutdown
Backlight uses these complete 46 names, with IDs 0–45:
none, solid_color, alphas_mods, gradient_up_down, gradient_left_right,
breathing, band_sat, band_val, band_pinwheel_sat, band_pinwheel_val,
band_spiral_sat, band_spiral_val, cycle_all, cycle_left_right,
cycle_up_down, cycle_out_in, cycle_out_in_dual, rainbow_moving_chevron,
cycle_pinwheel, cycle_spiral, dual_beacon, rainbow_beacon,
rainbow_pinwheels, flower_blooming, raindrops, jellybean_raindrops,
hue_breathing, hue_pendulum, hue_wave, pixel_flow, digital_rain,
solid_reactive, solid_reactive_wide, solid_reactive_multiwide,
solid_reactive_cross, solid_reactive_multicross, solid_reactive_nexus,
solid_reactive_multinexus, splash, multisplash, solid_splash,
solid_multisplash, starlight, starlight_dual_hue, starlight_dual_sat,
riverflow
Backlight ID 39 is multisplash; ID 41 is the distinct
solid_multisplash name. Compatibility aliases are off, breathe,
rainbow, rainbow_wave, solid, and the legacy static alias; aliases
resolve independently for each zone.
Run the complete automated check set from the repository root:
gofmt -w .
go test -count=1 ./...
go vet ./...
go build -o /tmp/wobkey ./cmd/wobkey/
git diff --check
Run the hardware smoke sequence when the Impact 80 is available:
/tmp/wobkey keyboard info
/tmp/wobkey rgb effect breathing
/tmp/wobkey rgb effect rainbow_moving_chevron
/tmp/wobkey rgb effect rainbow_moving_chevron --zone backlight
/tmp/wobkey rgb info
/tmp/wobkey rgb color 00ff00
/tmp/wobkey rgb disable
/tmp/wobkey rgb enable
The expected result is three selected zones, warnings only for unsupported
default targets, a working explicit Backlight command, per-zone JSON from
rgb info, and a final enabled state. Record device or permission failures
without changing unrelated code.
The current transport is Linux-specific (/dev/hidraw* and Linux syscalls).
macOS and Windows require platform-specific HID backends or a shared library.
Hardware smoke tests require the Impact 80 to be connected and the user to
have permission to access its hidraw device. In the acceptance environment,
/dev/hidraw7 is root:root with mode 600, so discovery succeeds but all
HID opens fail with permission denied. No persistent profile storage or
EEPROM save command is included.
Implementation is complete on feature/impact80-effects at commit 62852e7.
All task reviews and the final whole-branch code review passed. Automated
checks pass:
gofmt -w .
go test -count=1 ./...
go vet ./...
go build -o /tmp/wobkey ./cmd/wobkey/
git diff --check
The only open acceptance item is the live hardware smoke sequence. At the last
attempt, discovery found the Impact 80 but HID access was denied; the device
then disappeared. Do not assume /dev/hidraw7; run keyboard info after
connecting the keyboard and use the path it reports.
feature/impact80-effects and build /tmp/wobkey./tmp/wobkey keyboard info.rgb info JSON, and final enabled state.main.Do not stage graphify-out/ unless explicitly requested.