narf’s zmk config
Configuration of my Corne keyboard.
- five column Corne from Typeractive
- wireless
- low profile
- choc-spaced
- hot-swappable
- no case, no plates, no displays — keeping it simple
- MBK Legend 40s keycaps from splitkb
- linear Kailh Choc switches, also from splitkb:
- mostly silver (40gf)
- pro red (35gf) near the outer edge
- pink (20gf) under pinkies
- Colemak DH modified for Vim and Polish (aka Polemak)
- influenced by Miryoku's ideas and values
- home low mods (using the index finger on the lower row for the fourth modifier instead of pinky)
- optimized for non-typing with just the left hand — with the right hand on the mouse/glass/... I can:
- open specific apps
- change tabs
- copy, paste, close, reopen, undo, redo, ...
- navigate system popups (tab, shift+tab, space, enter, esc)
- call a fair amount of git commands (thanks to my short aliases)
- quit CLI programs (ctrl+c, ctrl+d)
- ...
Colemak DH modified for Vim and Polish (aka Polemak)
- I write in English and Polish and I use Vim
- I started with Colemak DH (switching from QWERTY after three decades)
- swapped
J
andK
so they're not up side down in Vim - reorganized left bottom row for Polish:
- in Polish
Z
is the most used consonant Q
,V
, andX
are not part of the alphabet- after my changes all
Z
digraphs are pleasant rolls:CZ
,DZ
,RZ
,SZ
- serendipitously, because I have
alt
onhold R
, I can typeRZ
andŻ
(same sound in Polish) using the same keys 🤯 just in a different rhythm
- in Polish
- swapped
F
andW
so that closing windows is more convenient to me - the whole time I was using Colemak DH layout analysis tool to make the layout better for Polish and not much worse for English:
Powered by Hammerspoon:
ZMK configs are designed for building remotely using GitHub Actions. In my experience the remote build takes anywhere from a few minutes to an hour, depending on cloud weather, and as such is not acceptable for interactive development or experimentation. Therefore, I created a few scripts to automate building and flashing on my local machine. It takes about fourteen seconds.
I use macOS, VS Code, and Docker Desktop. I followed the "VS Code & Docker" instructions described in the Toolchain Setup section.
./scripts/develop
- Connect both halves to the Mac using USB-C.
- Before flashing, reset first the right one, then the left one (volume names depend on the order).
- Any time you save a file, the script will build and flash.
cd ~/github
git clone [email protected]:zmkfirmware/zmk.git
git clone [email protected]:narfdotpl/zmk-config.git
docker volume create --driver local -o o=bind -o type=none -o device="$HOME/github/zmk-config" zmk-config
brew install pyenv pyenv-virtualenv
pyenv install 3.11.3
pyenv virtualenv zmk-config
pyenv activate zmk-config
pip install peat
Install ZMK Tools VS Code plugin. ZMK commit hash at the time of writing: 7f9e9f8c
.