This release focuses mostly on improvements to keymap parsing, to reduce the amount of manual tweaking necessary before drawing and better accomodate an end-to-end, parse-then-draw workflow.
Fixes
- Fixed layout size calculation so that the dimensions of drawn layers in the SVG are properly adjusted when using rotated keys
Features
- Made parsing smarter to automatically determine held keys using momentary layer keys on the keymap, so the user should no longer need to manually add `type: held` specs after parsing
- Does not currently support the conditional layers feature in ZMK, or more than one way to activate the same layer
- Added a base keymap `-b/--base-keymap` parameter to `keymap parse`. This will make the parser try its best to copy your manual modifications from the base keymap to the updated one after parsing, including combo `align` and `offset` values and `type` specifiers in layer keys
- Added a `-l/--layer-names` parameter to `keymap parse` that lets you override layer names, especially useful for QMK parsing where there is no layer name information in the parse input json
- Added `parse_config.zmk_combos` configuration to let the user automatically augment the parse output for combos, specified by the node name in the ZMK keymap, e.g. `combo_esc: {align: top, offset: 0.5}`
- Added `parse_config.sticky_label` configuration to let the user change the "sticky" display text for sticky/one-shot keys
Misc
- Added a simple Github workflow for linting
- Added `fingerpunch/ffkb` and `fingerpunch/luakeeb` physical layouts
Looking forward, Lugoues is working on integrating custom SVG glyphs to be used a legends in the drawing output in 12 and 17 so users will no longer be limited to using unicode text and symbols!
**Full Changelog**: https://github.com/caksoylar/keymap-drawer/compare/v0.5.0...v0.6.0