It has been some time since the last release so this release is mostly a collection of smaller improvements, a lot of them contributed by the community (thanks!).
You might have noticed we also have a logo now, itself generated in `keymap-drawer`![^1]
![KD logo](https://raw.githubusercontent.com/caksoylar/keymap-drawer/v0.14.0/site/logo_light.svg)
Features
Parsing
- Support parsing of overridden node properties with `&nodelabel { prop = "new_value"; };` syntax (66)
Drawing
- Add a new way to specify physical layouts: "Cols+Thumbs" notation! This generates layouts with only non-rotated 1u keys, but it is significantly more flexible than `ortho_layout`. It supports columns with arbitrary number of keys, moving the thumb clusters left/right, asymmetric and 2+ number of split keyboard parts.
See the [documentation in the keymap spec](https://github.com/caksoylar/keymap-drawer/blob/v0.14.0/KEYMAP_SPEC.md#colsthumbs-notation-specification) to start using.
- Assign `key.type` to the CSS class of combos by englmaxi in https://github.com/caksoylar/keymap-drawer/pull/73
- Add a thin gray outline to combo boxes, to be consistent with key styling and look better
ZMK workflow
- Add workflow input for base path for `<keymap>.json` layout files by michaelrommel in https://github.com/caksoylar/keymap-drawer/pull/71
- Add published artifacts as a destination option by michaelrommel in https://github.com/caksoylar/keymap-drawer/pull/72
- Add a workflow input to fail GitHub action on parse/draw errors by englmaxi in https://github.com/caksoylar/keymap-drawer/pull/74
Fixes
- Update Tabler glyphs url that changed (again) by thebino in https://github.com/caksoylar/keymap-drawer/pull/79
- `v0.14.1`: Fix parsing for Tabler glyphs by SethMilliken in 82
- Use bounding boxes of combo boxes to properly calculate layer heights, to fix rendering issues with small `draw_config.outer_pad_h` values (70)
- Disallow using unrecognized fields in layer key specs or combo specs in keymap YAMLs
Misc
- Add kilipan/zilpzalp keyboard by kilipan in https://github.com/caksoylar/keymap-drawer/pull/68
- Add BastardKB boards by finrod09 in https://github.com/caksoylar/keymap-drawer/pull/76
- Add ZSA Voyager layout by stasmarkin in https://github.com/caksoylar/keymap-drawer/pull/75
- Upgrade Pydantic to version 2.x, along with other dev dependencies
**Full Changelog**: https://github.com/caksoylar/keymap-drawer/compare/v0.13.4...v0.14.0
---
[^1]:
Here is the source keymap YAML for posterity:
yaml
draw_config:
append_colon_to_layer_header: false
svg_extra_style: "text.key { font-weight: bold; font-size: 16px; }"
glyph_tap_size: 16
layers:
" ": [keymap, drawer]
combos:
- {p: [0, 1], k: $$mdi:keyboard$$, a: bottom, o: 0.15, arc_scale: 1.2}
- {p: [0, 1], k: $$mdi:pencil-ruler$$, a: top, o: -0.15, d: false}
And layout json:
json
[
{ "x": 0, "y": 0, "w": 1.2, "h": 1.2, "r": 15, "rx": 1.2, "ry": 0 },
{ "x": 1.2, "y": 0, "w": 1.2, "h": 1.2, "r": -15, "rx": 1.2, "ry": 0 }
]