Generate keyboard maps from QMK definitions #4
No reviewers
Labels
No labels
accessibility
bug
dependencies
documentation
duplicate
enhancement
go
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jwarykowski/keybars!4
Loading…
Reference in a new issue
No description provided.
Delete branch "qmk-maps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
The Moonlander map has a gap at index 0 and a numbering that isn't the firmware's LED order, and new boards need a
keybars findsession. QMK'skeyboards/<kb>/keyboard.jsonalready knows every key's matrix position, physical x/y, and RGB LED order, so maps can be generated from it.What
keybars gen KEYBOARD: a localkeyboard.json, or a qmk_firmware path (zsa/voyager) fetched from GitHub.-order keymapp: Keymapp's API index — each half row by row in QMK layout order, thumb cluster last, index 0 a gap.-order firmware: QMK'srgb_matrixindex, for a future backend that talks to the firmware directly (on the Moonlander this runs down each column).-innerkeeps the inner column.maps/voyager.txt: top-left0→-, matching the Moonlander and the generated map. If Keymapp returns failure for index 0,Framewould otherwise stop keybars with-height 4.genunder "Adding a keyboard".Findings on index 0
fields()omits zero fields exactly as kontroll/prost do for proto3int32 led = 1.webhid_leds[param[0]]for any index, and QMK says LED 0 is the top-left key on both boards.kontroll set-rgb --led 0would confirm before reporting it to ZSA.Testing
TestKeymappMatchesBuiltinMaps: the map generated from QMK equals the hand-tested Moonlander map exactly, and the (now fixed) Voyager map.rgb_matrixare covered.go test ./...on 1.25 before merging.Notes
internal/qmk/testdata/*.jsonare trimmed copies of QMK's ZSA definitions (GPL-2.0-or-later), test-only; see its README. Drop them if you'd rather keep the repo strictly MIT.info.json(e.g. the ErgoDox EZ) aren't followed yet; passqmk info -kb … -f jsonoutput instead.🤖 Generated with Claude Code
https://claude.ai/code/session_01NLaq6YcfqSLfjkQq55MVpr
Generated by Claude Code