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
Switch QMK keymap fetcher to snakkarike/qmk_firmware + chromatics-docs index (v4.1.41)
The original fetcher pointed at www.caniusevia.com URLs that don't exist
and assumed a JSON schema (keycap labels embedded as "row,col\n\n\nA"
strings) that via-keyboards doesn't actually use. Rewriting against
QMK's keyboard.json instead:
- Source: snakkarike/qmk_firmware master branch (covers all the NovelKeys
boards plus 2500+ other QMK keyboards). NovelKeys boards land under
keyboards/novelkeys/ with proper VID/PID and rgb_matrix layouts.
- Index: 2650 unique VID/PID entries built once by
scripts/build_qmk_keymap_index.py and hosted at
raw.githubusercontent.com/logicallysynced/chromatics-docs/main/qmk_keymap_index.json.
- Schema: QMK keyboard.json's layouts.<first>.layout array. Each entry
has matrix=[row,col] and (often, not always) a label="Esc"/"F1"/etc.
Label coverage is inconsistent across boards — NK87 has it, NK65
doesn't — so the merge step gracefully falls back to LedId.Custom_*
for LEDs whose matrix position has no label in the JSON. Partial
semantic mapping is still better than the alternative of no mapping
at all.
- Cache: moved to FileOperationsHelper.GetConfigDirectory()/QmkKeymaps
so it lives alongside the rest of the user's Chromatics state under
%AppData%/Chromatics. SettingsViewModel.ResetChromatics now wipes
this cache and the in-memory index when the user hits Reset.
QmkKeycodeMap expanded to accept both QMK keycode shortforms ("ESC",
"BSPC"), the long KC_ prefix form ("KC_ESC"), and the human legend form
QMK keyboard.json's label field actually uses ("Esc", "Backspace",
"Page Up"). All three resolve to the same LedId.Keyboard_*.
Caveats:
- Label coverage is partial — boards without labels in their
keyboard.json land in Custom_* and the user maps via Mapping tab.
- The OpenRGB-QMK command IDs (0x20-0x2A) in OpenRgbQmkProtocol.cs
still need verification against the upstream OpenRGB master
firmware fork.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,9 +2,9 @@
2
2
3
3
All notable changes to Chromatics are documented here.
4
4
5
-
## 4.1.40
5
+
## 4.1.41
6
6
7
-
-**New:** QMK Raw HID keyboard support (Beta). Covers custom keyboards from NovelKeys, KBDFans, Drop, GMMK, Glorious and any other brand running QMK firmware with Raw HID enabled. Enable it from Settings → Device Providers, or pick it on the first-run device selector. Chromatics auto-detects compatible boards on USB and adopts them — no firmware flashing or extra software required. Per-key lighting is driven via the OpenRGB-QMK plugin when the firmware has it installed; otherwise Chromatics drives the firmware's built-in RGB matrix base colour and effect mode (the VIA fallback path). For per-key boards, Chromatics looks up the physical key layout from the via-keyboards database automatically on first connect so the Highlight / Keybind layers line up with the right keys out of the box.
7
+
-**New:** QMK Raw HID keyboard support (Beta). Covers custom keyboards from NovelKeys, KBDFans, Drop, GMMK, Glorious and any other brand running QMK firmware with Raw HID enabled. Enable it from Settings → Device Providers, or pick it on the first-run device selector. Chromatics auto-detects compatible boards on USB and adopts them — no firmware flashing or extra software required. Per-key lighting is driven via the OpenRGB-QMK plugin when the firmware has it installed; otherwise Chromatics drives the firmware's built-in RGB matrix base colour and effect mode (VIA). For per-key LED boards, Chromatics looks up the physical key layout from the via-keyboards database automatically on first connect so the Highlight / Keybind layers line up with the right keys out of the box.
0 commit comments