![]() commit 5a54a139fb69b48c16f02d93f1fe5825b7e37580 Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 17:10:12 2022 -0400 Move keypos def to nodefree repo commit 0913280899dc3723eb8878267555a51ad0b7fed5 Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 17:08:04 2022 -0400 Key position maps commit cc5a2c7f2d840944d97e7c1b70d00675b20811e7 Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 14:58:41 2022 -0400 Move international chars to nodefree repo commit 26d4b90cc24862ce8a8fcea866e34c6f1f942db8 Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 14:58:11 2022 -0400 Add international character codes commit c21b0828da1036fb4e1e70663fef18b3297bfaeb Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 13:32:36 2022 -0400 Move keypos def to separate file commit 814682560eb59c2980cc37af84ba2d8cc0ddafe8 Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 13:23:14 2022 -0400 Rename helper.dtsi to helper.h in zmk-config commit a71187ab35db86fa8f8be320ff1f0f1a8997f68e Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 13:21:59 2022 -0400 Rename helper.dtsi to helper.h commit 9226fcb12959fde87855cea78e9e396935c2d55c Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 12:54:32 2022 -0400 Mirror left/right keypos def commit 1a4e680a55ecca650649ec0586392eb0c89d643a Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 11:43:38 2022 -0400 Add prefix to unicode macro commit 0e4cb3093e114d9060cd41ad191ff65802999d21 Merge: 41ec2cd 04a7df6 Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 11:38:07 2022 -0400 Merge commit '04a7df637c524525f2964c0a35a3e187760dc79a' as 'zmk-nodefree-config' commit 04a7df637c524525f2964c0a35a3e187760dc79a Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 11:38:07 2022 -0400 Squashed 'zmk-nodefree-config/' content from commit 0841d09 git-subtree-dir: zmk-nodefree-config git-subtree-split: 0841d0948ac7389a86d15dd42baf03e2832a1b00 commit 41ec2cdb032cd605b65024e8d8fa8ea7578ed85e Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 11:37:58 2022 -0400 Remove old subtree commit ac2a6c4000d480b78769e1c3f585322b724b0325 Merge: 7599487 188e189 Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 11:32:33 2022 -0400 Merge commit '188e1891582712e06130eb794aeee34b47e2241b' as 'zmk-nodefree-config' commit 188e1891582712e06130eb794aeee34b47e2241b Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 11:32:33 2022 -0400 Squashed 'zmk-nodefree-config/' content from commit bd714d8 git-subtree-dir: zmk-nodefree-config git-subtree-split: bd714d81d177a5a4ac231b40a041c9f50c713cc5 commit 7599487fd27a382b7380ef9c37c5a6899d393fff Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 11:32:21 2022 -0400 Remove old subtree commit 97b0bf3d84910f68e01f9c671e690c9f25cc7e17 Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 11:30:23 2022 -0400 Move combo and unicode macros to helper.dtsi commit 10703c087dbee780857182840749e5f1f0db25fb Author: urob <978080+urob@users.noreply.github.com> Date: Thu Jul 14 10:28:24 2022 -0400 Testing combo macros |
||
---|---|---|
.github/workflows | ||
config | ||
img | ||
zmk-nodefree-config | ||
.gitattributes | ||
build.yaml | ||
readme.md |
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
- clean keymap config using zmk-nodefree-config1
- simple macro-implementation of combos and keymap to fit different physical keyboards2
- home-row mods on base layer, sticky mods on
Nav
andNum
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
- full numpad-layer with arithmetic operators (
=
via combo) andEsc
,Enter
,Tab
on left hand (can be numlocked viaW + P
combo, ideal for data entry and right-handed mouse) - unicode-layer with Greek letters for mathematical typesetting (implemented via preprocessor macros3)
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/
) - parenthesis, braces and brackets in symmetric positions
!
and?
are on home-row position for prime access- a numlock shortcut (on
W + P
) for one-handed data entry - shortcuts for cut (on
X + D
), copy, and paste on the left-hand side for right-handed mouse usage
-
I am using git-subtree for the dependency management here as Github actions don't recognize git-submodules. ↩︎
-
I use a 36-key layout per default. Additional thumb keys can be configured with the
EXTRA_BOT_L
andEXTRA_BOT_R
macros. Additional "middle-keys" can be configured with theEXTRA_MID
macro (seeplanck_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 toRB4
for the last key on the Right Bottom-row. They need to be defined in the shield-specific keymap-file before sourcing the commonbase.keymap
. ↩︎ -
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. ↩︎