No description
Find a file
2022-06-23 22:55:27 -04:00
.github/workflows Initial User Config. 2022-06-08 17:25:34 -04:00
config Sticky mods on sys-layer 2022-06-23 22:55:27 -04:00
img More detailed readme, move image to img folder 2022-06-23 22:55:25 -04:00
build.yaml Initial User Config. 2022-06-08 17:25:34 -04:00
readme.md Add unicode details to readme 2022-06-23 22:55:27 -04:00

zmk-config

This is my personal ZMK firmware configuration. It is ported from my QMK configuration, which in turn is heavily inspired by Manna Harbour's Miryoku layout.

Key features

  • simple macro-implementation of combos and keymap to fit different physical keyboards1
  • home-row mods on base layer, sticky mods on Nav and Num layers
  • most symbols can be accessed from the base layer via combos
  • sticky shift on right thumb, double-tap activates caps-word
  • backspace morphs into delete when shifted
  • unicode layer with Greek letters for mathematical typesetting (implemented via preprocessor macros2)

A few thoughts on the combo setup

The combo layout is guided by two goals: (1) put all combos in easy-to-access locations, and (2) make them easy to remember. Specifically:

  • the top vertical-combo row is almost equivalent to the symbols on standard number rows, making them easy to remember
  • the bottom vertical-combo row is set up symmetrically to facilitate memorization (subscript _ aligns with superscript ^; minus - aligns with +; division / aligns with multiplication *; logical-or | aligns with logical-and &; backslash \ aligns horizontally with forward slash /)
  • ! and ? are on home-row position for prime access
  • parenthesis, brackets and braces are on the right-hand side for easy access when typing numbers
  • a numlock shortcut (on W + P) is on the left-hand side for one-handed number-mode
  • shortcuts for cut (on X + D), copy, and paste are on the left-hand side for one-handed usage when working with the mouse

  1. I use a 36-key layout per default. Additional thumb keys can be configured with the EXTRA_BOT_L and EXTRA_BOT_R macros. Additional "middle-keys" can be configured with the EXTRA_MID macro (see planck_rev6.keymap for an example).

    In order to consitently configure combos and positional hold-taps across keyboards with different physical key specifications, I use a set of "virtual location" macros which map key-positions in the layout to physical locations on the shield. These macros follow a common naming convention, starting with LT0 for the first key on the Left Top-row and ranging to RB4 for the last key on the Right Bottom-row. They need to be defined in the shield-specific keymap-file before sourcing the common base.keymap. ↩︎

  2. This is my attempt at a simple user-space solution until unicode is natively supported. Check out unicode.dtsi for details and read my write up here for a few more pointers and some caveats. ↩︎