v0.21.0: Combos by key legends and experimental Kanata parser
The highlights in this release are an experimental parser for Kanata configurations and ability to specify combos via contents/legends of the triggering keys.
Features
-
Add an experimental parser for Kanata configuration files (#95)
- Currently supports
defsrc, layers viadeflayer, combos viadefchordsv2, andinclude/defvar/defalias - Physical layouts are automatically selected depending on keys used in
defsrc, ranging from a 60% to a full size layout - Output legends can only be customized via
raw_binding_map - Feel free to open a new discussion for any feedback, it'd help me prioritize any future improvements
- Currently supports
-
Add a new way to specify combo positions: using
trigger_keys/tk. This lets you do QMK-like combo specs, where you list the legends for the keys that would be used to trigger a combo-
By default a full match for the legend will be searched for, but it will fall back to matching only the center/tap legends if not found
-
Example:
layers: base: - { h: Ctrl, t: J } - { h: Alt, t: K } ... combos: # below are all equivalent - { p: [0, 1], k: Esc } - { tk: [{ h: Ctrl, t: J }, { h: Alt, t: K }], k: Esc } - { tk: [J, K], k: Esc }
-
-
Add a new physical layout spec:
zmk_keyboard. This typically corresponds to ZMK keyboard name used in<keyboard>.keymap, such aszmk_keyboard: corne- Internally this is used as an alias to map to other physical layout types; see the new physical layouts documentation for details
keymap parsewill output this spec by default after parsing ZMK keymaps
New layouts
- Add
tsuruphysical layout - Add corrected
lotus58layout for its ZMK definition - Add support for Corne v4 layouts with extra keys to
corne_rotated(#161)
ZMK drawing workflow
- Optimize fetching modules from
west.ymland turn it on by default- Excludes fetching ZMK and Zephyr, aiming to only get user-specified extra modules
- Improve behavior when there are errors in the parse/draw, specifically when
fail_on_errorisn't set- Now the workflow will show as failed when there are any errors, but commit/upload will happen for successful operations if
fail_on_erroris not set
- Now the workflow will show as failed when there are any errors, but commit/upload will happen for successful operations if
- Add a
debug_modeflag that setskeymapCLI's--debugflag and echoes the commands run inside the actions - Add
install_versioninput that lets you specifykeymap-drawerversion to use. Ignored ifinstall_branchis set
Full Changelog: v0.20.0...v0.21.0
Join the discussion at https://github.com/caksoylar/keymap-drawer/discussions/164.