v0.13.x: Parsing tweaks and new combo configs
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- The added label can be customized via
parse_config.toggle_label
- The added label can be customized via
- 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
andparse_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)
- See example in #50 (comment) on how to combine above these two features to better handle locale headers like the ones generated via
Drawing
- Add
rotation (r)
field to the combo spec so you can individually rotate combo boxes -- this is in addition towidth
,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 combodraw_config.separate_combo_diagrams
setting introduced in v0.11.0 now sets the default behavior for combos ifdraw_separate
isn't specified
Fixes
- Add support for using
display-name
in addition tolabel
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 defaultzmk_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
andqmk_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 inA
rendered on a separate line (default in the implementation)- Also automatically uses
Hyper
andMeh
for the appropriate mod combinations
- Also automatically uses
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