Skip to content

v0.14.x: Cols+thumbs notation, and more

Compare
Choose a tag to compare
@caksoylar caksoylar released this 23 Mar 19:43
· 108 commits to main since this release

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

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
  • 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


  1. 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 }
    ]