Skip to content

v0.13.x: Parsing tweaks and new combo configs

Compare
Choose a tag to compare
@caksoylar caksoylar released this 06 Dec 01:46
· 140 commits to main since this release

This release has a few fixes, adds more combo options to customize drawing and new ways to customize the ZMK parsing behavior.

Features

Parsing

  • Add parsing for toggled keys, i.e.. &tog, &to, &kt for ZMK, TG, TO, DF for QMK
  • Add a way to customize how keymap-drawer parses ZMK keymaps, via the KEYMAP_DRAWER define
    • The ZMK parser now defines this symbol before parsing
    • You can use it to add keymap-drawer-specific defines without affecting the ZMK build via #ifdef KEYMAP_DRAWER ... #endif guards
    • You can use it to have keymap-drawer ignore certain parts without affecting the ZMK build via #ifndef KEYMAP_DRAWER ... #endif guards
  • Add a way to specify prefixes to be removed from keycodes before further processing, via parse_config.qmk_remove_keycode_prefix and parse_config.zmk_remove_keycode_prefix
    • See example in #50 (comment) on how to combine above these two features to better handle locale headers like the ones generated via zmk-locale-generator
    • This feature broke parse_config.trans_legend in v0.13.0, fixed in v0.13.1 (#62)

Drawing

  • Add rotation (r) field to the combo spec so you can individually rotate combo boxes -- this is in addition to width, height properties from v0.12.0
  • Also add draw_separate field to the combo spec to let you decide whether you want a combo to be drawn on the layers, or using a separate diagram for that combo

Fixes

  • Add support for using display-name in addition to label for figuring out ZMK layer names
  • Calculate the total layer height (which can be increased due to combo boxes) in the correct way, rather than doing a rough approximation
  • Fix bug during glyph aspect ratio calculation which led to small glyphs for $$material:...$$ SVGs -- thanks to @dhruvinsh for the bringing up the issue (and sorry for the late fix)
  • Fix APOS/APOSTROPHE mapping in default zmk_keycode_map
  • Update Tabler template URL to fetch SVGs from using $$tabler:...$$ in v0.13.2, since the previous one doesn't seem to work anymore

Misc

  • Added user friendly(-er) configuration reference at CONFIGURATION.md
  • Fix layout mapping for luna keyboard and make it use the splayed Hummingbird variant
  • Add layouts for BastardKB Dilemma v2 and MAX, overriding the defaults when used with qmk_keyboard: bastardkb/dilemma/3x5_3 and qmk_keyboard: bastardkb/dilemma/4x6_4, by @casuanoob
  • Add layout mapping for wizza

Looking forward

One feature that I have been working on some time is parsing for modified keys, to automatically convert keycodes like &kp LC(LS(A)) to strings like Ctrl+Shift+A. While the implementation is complete and the end result is configurable, I still haven't reached a decision on the default configuration for how to do the conversion so I haven't merged it to the main branch. I iterated through a few variations, e.g.

  • Ctrl+Shift+ A resulting in A rendered on a separate line (default in the implementation)
    • Also automatically uses Hyper and Meh for the appropriate mod combinations
  • CS+A
  • C-S-A
  • Using Mac-like symbols like ⎈⇧A

You can test this feature in the dev branch (also deployed to streamlit) and let me know your opinions/suggestions in the discussion linked to this release.

Full Changelog: v0.12.1...v0.13.1