This release introduces a few major drawing features, automated ZMK workflow improvements and a major internal refactor to improve the project structure.
Features
- **Multiple output columns!**
- Set the `draw_config.n_columns` variable to e.g. 3 to output with three layer columns
![image](https://github.com/caksoylar/keymap-drawer/assets/7876996/406d9c49-17b0-4047-a84f-466c814c8be2)
- **Separate combo diagrams!** For those of you who use thumb+alpha combos or steno-like keymaps, there is now the option
to draw each combo in a separate minified layer diagram, showing the output key and the triggering key positions.
- Set `draw_config.separate_combo_diagrams: true` to enable, and `draw_config.combo_diagrams_scale` to tweak the scaling factor (default `2`)
- Currently the `layers` property of the combos are ignored and not visualized, might be added in the future if there is a clean way to show it
- Key corner radii are currently not scaled, so the keys will look rounder for higher scale factors
![image](https://github.com/caksoylar/keymap-drawer/assets/7876996/0f957bdc-2da2-4369-be8c-2135058e63d4)
- Add key sides to drawn keys to give a keycap "profile" appearance, by riccardoflp
- `draw_config.draw_key_sides: true` to enable, tweak the appearance via `draw_config.key_side_pars`
- Currently may not render well on Safari, looking into workarounds
![image](https://github.com/caksoylar/keymap-drawer/assets/7876996/28a91713-86bc-4ea6-b21b-fdeb1e5d970f)
Fixes
- Sort SVG glyph defs before writing to avoid non-deterministic output
- Tweak Tabler-related CSS to hide the outline boxes in Safari, by bryanforbes
- Fix font size issue in hold/shifted fields due to `draw_config.shrink_wide_legends`, by `inxi` (at MoErgo Discord)
- Fix issue creating unnecessarily long dendrons for certain combo types
ZMK drawing workflow
- Add option to amend the last commit and also commit parse output YAML, by minusfive
- Recursively checkout the repo to support git submodules like [zmk-nodefree-config](https://github.com/urob/zmk-nodefree-config), by shroomist
Misc
- Tweak classes for output SVG elements to allow for better customization via CSS
- Assign `key`/`combo` classes to rect+text elements for layout keys/combos
- Assign `keypos-N`/`combopos-N` classes to key/combo elts. to allow addressing via position index `N`
- Add a proper physical layout for `slicemk_ergodox`, by xudongzheng
- Round SVG coordinate/size values for better readability and smaller output size, by art4ride and me
Note that future updates might unfortunately include more CSS changes, such as converting to the descendants selector syntax, e.g. `.held rect { ... }` from `rect.held { ... }`. Thanks to the folks at LowProKB and MoErgo for helpful discussions.
I will also prioritize a better documentation organization in the short term, possibly hosted on Github pages.
**Full Changelog**: https://github.com/caksoylar/keymap-drawer/compare/v0.10.0...v0.11.0