![]() commit 62e33866ccc009c645adda95297e147a6bb1b5d4 Author: urob <978080+urob@users.noreply.github.com> Date: Wed Jul 13 16:00:08 2022 -0400 Move helper.dtsi to subtree commit 635cffa0c1c0a87dadd929701225d30c119a1a9f Merge: d8dfef3 41c9041 Author: urob <978080+urob@users.noreply.github.com> Date: Wed Jul 13 16:56:44 2022 -0400 Merge commit '41c9041ccc102d7acbc4882434fa5780050a9455' as 'zmk-nodefree-config' commit 41c9041ccc102d7acbc4882434fa5780050a9455 Author: urob <978080+urob@users.noreply.github.com> Date: Wed Jul 13 16:56:44 2022 -0400 Squashed 'zmk-nodefree-config/' content from commit c7dc05e git-subtree-dir: zmk-nodefree-config git-subtree-split: c7dc05eb52b14b69ea48059ff418edad6484500e commit d8dfef3849436176bba1ff3da25ae59d1fa92abe Author: urob <978080+urob@users.noreply.github.com> Date: Mon Jul 11 23:15:51 2022 -0400 Convenience macros for a cleaner keymap config |
||
---|---|---|
.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
- simple macro-implementation of combos and keymap to fit different physical keyboards1
- 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 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/
) - 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 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. ↩︎