Browse Source

Document Linux build deps, effect behavior, and QMK consistency

Paul Klumpp 2 weeks ago
parent
commit
9a5cce8f8d
1 changed files with 31 additions and 2 deletions
  1. 31 2
      README.md

+ 31 - 2
README.md

@@ -10,6 +10,7 @@ cd wobkey-rgb
 go build -o wobkey ./cmd/wobkey/
 ```
 
+On Linux, `libudev-dev` is required for building (the hid library uses it for device discovery).
 Or install globally:
 
 ```bash
@@ -98,7 +99,21 @@ Backlight uses the complete Impact 80 catalog:
 | 21 | `rainbow_beacon` | 44 | `starlight_dual_sat` |
 | 22 | `rainbow_pinwheels` | 45 | `riverflow` |
 
-ID 39 is `multisplash`; ID 41 is the distinct `solid_multisplash` name.
+## Effect Behavior
+
+Effects fall into categories that behave differently:
+
+- **Static** effects (`solid_color`, `none`) display a steady output. The color is set by `rgb color` and is constant.
+- **Reactive** effects (`solid_reactive*`) light up on key press. They honor the color set by `rgb color` — the pressed key's LEDs flash in the configured color. Use `rgb speed` to adjust how long the illumination lasts.
+- **Breathing** effects (`breathing`, `hue_breathing`) slowly fade in and out. They do not honor `rgb color` directly; `hue_breathing` cycles through the full hue range.
+- **Dynamic/stream** effects (`band_*`, `cycle_*`, `rainbow_*`, `starlight*`, `raindrops`, `jellybean_raindrops`, `flower_blooming`, `pixel_flow`, `riverflow`) animate independently. Most ignore `rgb color` and use their own color palettes. `hue_breathing`, `hue_pendulum`, and `hue_wave` cycle through hues.
+- **Splash** effects (`splash`, `multisplash`, `solid_splash`, `solid_multisplash`) react to key presses like reactive effects but with a splash pattern. `solid_splash` and `solid_multisplash` honor `rgb color`.
+- **Gradient** effects (`gradient_up_down`, `gradient_left_right`) create a color gradient across the keyboard. They do not honor `rgb color`.
+- **Alphas mods** (`alphas_mods`) colors modifier keys differently from alphanumeric keys. The colors are built-in and cannot be changed.
+
+To set a permanent color, use `solid_color` and then `rgb color <hex>`.
+
+## Compatibility Aliases
 Effect names are resolved independently for each target zone. Compatibility
 aliases are `off` → `none`, `breathe` → `breathing`, `rainbow` → `spectrum`
 for Logo/Side and `rainbow_moving_chevron` for Backlight, `rainbow_wave` →
@@ -106,6 +121,13 @@ for Logo/Side and `rainbow_moving_chevron` for Backlight, `rainbow_wave` →
 for Backlight. The legacy `static` alias remains accepted as a compatibility
 alias for `solid`.
 
+The effect catalog is consistent with the QMK RGB Matrix firmware. The
+keyboard implements the VIA protocol (version 3) and its 46 backlight effect
+names match the QMK RGB Matrix effect catalog exactly — verified through live
+testing.
+
+ID 39 is `multisplash`; ID 41 is the distinct `solid_multisplash` name.
+
 `rgb info` reports a `zones` array with each zone's channel, enabled state,
 effect name and ID, brightness, speed, and color. The top-level `enabled`,
 `mode`, `brightness`, and `speed` fields summarize the first selected zone.
@@ -119,7 +141,14 @@ Most platforms need no configuration, but Linux requires extra setup.
 
 ### Linux
 
-The tool accesses keyboards via hidraw which requires special permissions by default. To run without `sudo`, choose one of the methods below.
+To build, `libudev-dev` is required:
+
+```bash
+sudo apt install -y libudev-dev
+```
+
+To run without `sudo`, grant your user group access to hidraw devices. By default, hidraw devices are owned by root (`600`).
+Choose one of the methods below.
 
 #### Option 1: Quick (Per Session)