* Chocofi 36 with QMK ** The keyboard https://github.com/pashutk/chocofi/ I got a prebuilt one with hotswap and seapi picro presoldered and added my choc v1 brown switches. ** The Keymap Alpha layer is Colemak-DH mod. Since a lot of time is spent navigating code I use a locked =NAV= layer, which makes it easy to move the cursor/screen. Most of my time coding is spent in VSCode. Therefore, often used combos like =Ctrl+f=, =Ctrl+h= (find an replace) and their shifted variants (find/replace in project) are available in the =NAV= layer with single keystrokes. [[./keymap.svg]] Visualize with [[https://github.com/caksoylar/keymap-drawer][Keymap-drawer]]: #+begin_src sh pipx install keymap-drawer cd ~/git/qmk_firmware qmk c2json --no-cpp ~/git/qmk_firmware/keyboards/crkbd/rev1/keymaps/choc_colemak_36/keymap.c | keymap -c ~/git/keyboard-config/atreus/drawer-config.yaml parse -c 10 -q - >~/git/keyboard-config/chocofi/keymap.yaml keymap -c ~/git/qmk_firmware/keyboards/keyboardio/atreus/drawer-config.yaml draw ~/git/keyboard-config/chocofi/keymap.yaml >~/git/keyboard-config/chocofi/keymap.svg #+end_src ** Setup Because my board uses a sea Pi Micro (RPi2040 type), I have to mount the controller as a file system and copy the firmware file to that. Most other microcontrollers want to be directly connected and flashed via USB. 1. follow QMK initial setup (python venv with pip) 2. link this directory into =qmk_firmware/keyboards/crkbd/rev1/keymaps/choc_colemak_36= 3. compile and flash assumes usb-c of the right-hand half is connected 4. both sides need to be flashed separately with =config.h= set to =MASTER_LEFT= and =MASTER_RIGHT= respectively #+begin_src bash cd ~/src/qmk_firmware/ && source env/bin/activate qmk compile --keyboard=crkbd/rev1 --keymap=choc_colemak_36 -e CONVERT_TO=promicro_rp2040 sudo mount /dev/sdb? /mnt/ sudo cp crkbd_rev1_choc_colemak_36_promicro_rp2040.uf2 /mnt/ sudo umount /mnt #+end_src ** TODO Missing stuff - activate number layer with a left-hand key - additional to FUN_NAV layer, create a pure nav layer - remove HomeRowMods from FUN_NAV layer - add useful shortcuts to the new PURE_NAV layer (e.g. WM_keys) - backtick key - smart shift on a thumb key, to avoid weird situations with home-row-shift - smart num, to avoid weird taps for the num layer when typing commas and dots https://github.com/urob/zmk-config ** Ideas for improvement - for nav layer, maybe add combined keys for Ctrl+Shift, Ctrl+Alt and Shift+Alt - add OLED screen to show current layer, I see this as a prerequisite to add gaming layer(s) - this seems like a great example of composed layers and support for different environments https://github.com/0x64746b/qmk_firmware/blob/chocofi/keyboards/chocofi/keymaps/dtk35/keymap.c - https://github.com/manna-harbour/miryoku_qmk/blob/miryoku/users/manna-harbour_miryoku/readme.org - HomeRowMods/BottomRowMods and other ideas: https://www.reddit.com/r/ErgoMechKeyboards/comments/tiejpp/home_row_mods_what_works_for_you/ - https://precondition.github.io/home-row-mods#implementation - split up =SYM_NUM= layer, move missing symbols (from NAV layer to SYMBOLS layer) - hints for better symbols layers: https://getreuer.info/posts/keyboards/symbol-layer/index.html - make =.= and =,= available in new =NUM= layer for easier number input - build a dedicated GUI Nav layer for sway - and probably Windows/KDE window actions - make =select words= work (by emulating Ctrl+Shift+Left/Right)