v0.14.x: Cols+thumbs notation, and more
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
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 to start using. - Assign
key.type
to the CSS class of combos by @englmaxi in #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 #71 - Add published artifacts as a destination option by @michaelrommel in #72
- Add a workflow input to fail GitHub action on parse/draw errors by @englmaxi in #74
Fixes
- Update Tabler glyphs url that changed (again) by @thebino in #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 #68
- Add BastardKB boards by @finrod09 in #76
- Add ZSA Voyager layout by @stasmarkin in #75
- Upgrade Pydantic to version 2.x, along with other dev dependencies
Full Changelog: v0.13.4...v0.14.0
-
Here is the source keymap YAML for posterity:
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:
↩[ { "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 } ]