|
|
@@ -1,6 +1,6 @@
|
|
|
-# Wobkey RGB CLI
|
|
|
+# QMK VIA RGB Tool
|
|
|
|
|
|
-Control the RGB lighting on QMK-compatible keyboards. Supports Wobkey Impact 80 and Rainy 75 out of the box, and any other keyboard running QMK with the RGB Matrix subsystem and VIA support.
|
|
|
+Control the RGB lighting on QMK-compatible keyboards. Supports Impact 80 and Rainy 75 out of the box, and any other keyboard running QMK with the RGB Matrix subsystem and VIA support.
|
|
|
|
|
|
Cross-platform CLI for Linux, macOS, and Windows. Designed for automation, scripting, and agent consumption.
|
|
|
|
|
|
@@ -8,41 +8,41 @@ Cross-platform CLI for Linux, macOS, and Windows. Designed for automation, scrip
|
|
|
|
|
|
```bash
|
|
|
git clone <repo-url>
|
|
|
-cd wobkey-rgb
|
|
|
-go build -o wobkey ./cmd/wobkey/
|
|
|
+cd impact-80
|
|
|
+go build -o qmk-rgb ./cmd/qmk-rgb/
|
|
|
```
|
|
|
|
|
|
On Linux, `libudev-dev` is required for building (the hid library uses it for device discovery).
|
|
|
Or install globally:
|
|
|
|
|
|
```bash
|
|
|
-go install ./cmd/wobkey/
|
|
|
+go install ./cmd/qmk-rgb/
|
|
|
```
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
```bash
|
|
|
# Discover connected keyboards
|
|
|
-./wobkey keyboard info
|
|
|
+./qmk-rgb keyboard info
|
|
|
|
|
|
# RGB commands target Logo, Backlight, and Side by default
|
|
|
-./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
|
|
|
+./qmk-rgb rgb effect breathing
|
|
|
+./qmk-rgb rgb effect rainbow_moving_chevron
|
|
|
+./qmk-rgb rgb effect rainbow_moving_chevron --zone backlight
|
|
|
+./qmk-rgb rgb brightness 160
|
|
|
+./qmk-rgb rgb speed 2
|
|
|
+./qmk-rgb rgb color 00ff00
|
|
|
# Raw mode IDs are zone-specific; ID 17 is Backlight-only
|
|
|
-./wobkey rgb mode 17 --zone backlight
|
|
|
-./wobkey rgb enable
|
|
|
-./wobkey rgb disable
|
|
|
-./wobkey rgb info
|
|
|
+./qmk-rgb rgb mode 17 --zone backlight
|
|
|
+./qmk-rgb rgb enable
|
|
|
+./qmk-rgb rgb disable
|
|
|
+./qmk-rgb rgb info
|
|
|
|
|
|
# Select exactly one zone
|
|
|
-./wobkey rgb brightness 160 --zone side
|
|
|
+./qmk-rgb rgb brightness 160 --zone side
|
|
|
|
|
|
# Specify a target device (when multiple are connected)
|
|
|
-./wobkey rgb --device /dev/hidraw0 enable
|
|
|
+./qmk-rgb rgb --device /dev/hidraw0 enable
|
|
|
```
|
|
|
|
|
|
`--zone` is persistent on `rgb` and accepts `logo`, `backlight`, or `side`.
|
|
|
@@ -168,11 +168,11 @@ This works for the current session only. Permissions reset after reboot.
|
|
|
|
|
|
#### Option 2: Permanent (udev Rule)
|
|
|
|
|
|
-Create a persistent rule for the Wobkey Impact 80:
|
|
|
+Create a persistent rule for the Impact 80:
|
|
|
|
|
|
```bash
|
|
|
echo 'SUBSYSTEM=="hidraw", ATTRS{idVendor}=="36b0", ATTRS{idProduct}=="309f", MODE="0660", GROUP="adm"' \
|
|
|
- | sudo tee /etc/udev/rules.d/99-wobkey.rules
|
|
|
+ | sudo tee /etc/udev/rules.d/99-qmk-rgb.rules
|
|
|
|
|
|
sudo udevadm control --reload-rules
|
|
|
sudo udevadm trigger
|
|
|
@@ -204,21 +204,21 @@ New keyboards can be added to `keyboards.json`.
|
|
|
|
|
|
| Command | Description |
|
|
|
|---------------------------------|------------------------------------------|
|
|
|
-| `wobkey keyboard info` | Discover connected VIA-compatible keyboards |
|
|
|
-| `wobkey rgb enable` | Enable selected lighting zones |
|
|
|
-| `wobkey rgb disable` | Disable selected lighting zones |
|
|
|
-| `wobkey rgb info` | Show per-zone RGB state (JSON) |
|
|
|
-| `wobkey rgb effect <name>` | Set a zone-aware effect by name |
|
|
|
-| `wobkey rgb brightness <val>` | Set brightness (0–255) on selected zones |
|
|
|
-| `wobkey rgb speed <val>` | Set effect speed (0–255) on selected zones |
|
|
|
-| `wobkey rgb color <hex>` | Set color (e.g. `ff0000`) on selected zones |
|
|
|
-| `wobkey rgb mode <index>` | Set a raw zone-specific effect ID |
|
|
|
-| `wobkey rgb --zone <zone> ...` | Target `logo`, `backlight`, or `side` |
|
|
|
-| `wobkey rgb --device <path> ...`| Specify HID device path |
|
|
|
-| `wobkey rgb save [name]` | Save current RGB state to `profiles/<name>.json` |
|
|
|
-| `wobkey rgb load [name]` | Load and apply a profile from `profiles/` |
|
|
|
-| `wobkey rgb list` | List saved profiles |
|
|
|
-| `wobkey rgb delete [name]` | Delete a saved profile |
|
|
|
+| `qmk-rgb keyboard info` | Discover connected VIA-compatible keyboards |
|
|
|
+| `qmk-rgb rgb enable` | Enable selected lighting zones |
|
|
|
+| `qmk-rgb rgb disable` | Disable selected lighting zones |
|
|
|
+| `qmk-rgb rgb info` | Show per-zone RGB state (JSON) |
|
|
|
+| `qmk-rgb rgb effect <name>` | Set a zone-aware effect by name |
|
|
|
+| `qmk-rgb rgb brightness <val>` | Set brightness (0–255) on selected zones |
|
|
|
+| `qmk-rgb rgb speed <val>` | Set effect speed (0–255) on selected zones |
|
|
|
+| `qmk-rgb rgb color <hex>` | Set color (e.g. `ff0000`) on selected zones |
|
|
|
+| `qmk-rgb rgb mode <index>` | Set a raw zone-specific effect ID |
|
|
|
+| `qmk-rgb rgb --zone <zone> ...` | Target `logo`, `backlight`, or `side` |
|
|
|
+| `qmk-rgb rgb --device <path> ...`| Specify HID device path |
|
|
|
+| `qmk-rgb rgb save [name]` | Save current RGB state to `profiles/<name>.json` |
|
|
|
+| `qmk-rgb rgb load [name]` | Load and apply a profile from `profiles/` |
|
|
|
+| `qmk-rgb rgb list` | List saved profiles |
|
|
|
+| `qmk-rgb rgb delete [name]` | Delete a saved profile |
|
|
|
|
|
|
## Profiles
|
|
|
|
|
|
@@ -231,8 +231,8 @@ files instead.
|
|
|
## Architecture
|
|
|
|
|
|
```
|
|
|
-cmd/wobkey/ # Cobra-based CLI
|
|
|
-cmd/wobkey/rgb/ # RGB subcommands
|
|
|
+cmd/qmk-rgb/ # Cobra-based CLI
|
|
|
+cmd/qmk-rgb/rgb/ # RGB subcommands
|
|
|
internal/device/ # HID discovery + keyboards.json loader
|
|
|
internal/hid/ # Cross-platform HID access (hidapi)
|
|
|
internal/rgb/ # Effects, colors, state
|