diff --git a/README.md b/README.md index 79d89fa..a19a920 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Corne Keyboard Custom Keymaps (ZMK) -Custom keymaps for a Corne 42-key split keyboard running ZMK firmware with on-board stenography. +Custom keymaps for a Corne 42-key split keyboard running ZMK firmware. # Table of Contents @@ -42,81 +42,14 @@ Custom keymaps for a Corne 42-key split keyboard running ZMK firmware with on-bo | LEDs | WS2812 underglow (6/half) + per-key (21/half) — 54 total | | BT Profiles | 5 (BT0-BT4) | | ZMK Studio | Disabled (see [Enabling ZMK Studio](#enabling-zmk-studio)) | -| Steno Engine | Javelin (Lapwing dictionary) | | Vendor | KeebMaker | | Vendor Config | [KeebMaker/zmk-config](https://github.com/KeebMaker/zmk-config) | # Current Keymap -Key positions reference: -``` - 0 1 2 3 4 5 | 6 7 8 9 10 11 -12 13 14 15 16 17 | 18 19 20 21 22 23 -24 25 26 27 28 29 | 30 31 32 33 34 35 - 36 37 38 | 39 40 41 -``` +![Corne Keymap](keymap-drawer/corne.svg) -### Layer 0: CARP (Carpalx QGMLWY) -``` -` Q G M L W | Y F U B ; ->HUB -[HUB] D S T N R | I A E O H ' -LSHFT Z X C V J | K P , . / RSHFT - [RGB] CTRL GUI | SPC ALT MUTE/PP - -Combos (layers 0+1): - top+home row same col = 1-0, shift+combo = ! @ # $ % ^ & * ( ) - G+M (W+E on QWRT) = ESC - S+T (S+D on QWRT) = TAB - U+B (I+O on QWRT) = BSPC - E+O (K+L on QWRT) = ENTER -[HUB] = hold opens HUB layer, release goes back -[RGB] = tap-dance: 1×=toggle, 2×=effect fwd, 3×=effect rev -MUTE/PP = tap mute, hold play/pause -``` - -### Layer 1: QWRT (QWERTY) -``` -` Q W E R T | Y U I O P ->HUB -[HUB] A S D F G | H J K L ; ' -LSHFT Z X C V B | N M , . / RSHFT - [RGB] CTRL GUI | SPC ALT MUTE/PP - -Combos: same as CARP (top+home = 1-0, W+E = ESC, S+D = TAB, I+O = BSPC, K+L = ENTER) -``` - -### Layer 2: STEN (Javelin Steno — Lapwing) -``` -_ # # # # # | # # # # # ->HUB -[HUB] S T P H * | * F P L T D -_ S K W R * | * R B G S Z - _ A O | E U _ -``` - -### Layer 3: FPS (WASD shifted right for ortho) -``` -1/ESC 2 Q [W] E/3 R/4 | 5 6 7 8 9 ->HUB -TAB SHFT [A] [S] [D] F | _ _ _ _ _ _ -M/ALT Z X C V G | _ _ _ _ _ _ - T CTRL SPC | _ _ _ - -Hold-taps: 1=tap/ESC=hold, E=tap/3=hold, R=tap/4=hold, M=tap/ALT=hold -``` - -### Layer 4: HUB (Utility — BT, RGB, Media, Nav) -``` -BT_CLR BT0 BT1 BT2 BT3 BT4 | + [ UP ] * = -OUT_TOG HUE+ SAT+ BRT+ SCRN+ VOL+ | - LEFT DOWN RIGHT / \ -LSHFT HUE- SAT- BRT- SCRN- VOL- | ->CARP ->QWRT ->STEN ->FPS [CLR] RSHFT - [RGB] CTRL GUI | SPC ALT MUTE/PP - -OUT_TOG = toggle USB/BLE output -HUE/SAT/BRT = RGB underglow hue, saturation, brightness -SCRN = display brightness (C_BRI_UP/DN) -VOL = volume up/down -[RGB] = tap-dance: 1×=toggle, 2×=effect fwd, 3×=effect rev -[CLR] = tap-dance color presets: 1×=purple, 2×=white, 3×=red, 4×=blue, 5×=green -MUTE/PP = tap mute, hold play/pause -``` +See [keymap-drawer/](keymap-drawer/) for text reference and keymap-drawer source files. # Related Resources @@ -124,7 +57,6 @@ MUTE/PP = tap mute, hold play/pause - [ZMK Keycodes Reference](https://zmk.dev/docs/codes) - [ZMK Studio](https://zmk.studio/) - Live keymap editor (no flashing needed) - [Keymap Editor](https://nickcoutsos.github.io/keymap-editor/) - Visual keymap editor for GitHub repos -- [Javelin Steno Engine](https://github.com/jthlim/javelin-steno) - On-board steno engine - [Vendor Config (KeebMaker)](https://github.com/KeebMaker/zmk-config) # Pre-requisites @@ -256,7 +188,7 @@ The BLE name is cached in device settings. Do a [Settings Reset](#settings-reset ### Hardware -54 WS2812 LEDs total — 6 underglow + 21 per-key per half. Chain length set in `boards/shields/corne/boards/nice_nano_v2.overlay`. +54 WS2812 LEDs total — 6 underglow + 21 per-key per half. Chain length set in `config/nice_nano_v2.overlay`. ### Config @@ -327,16 +259,7 @@ ZMK Studio is disabled by default in this config. To enable live keymap editing: snippet: rgb-config studio-rpc-usb-uart ``` -3. In `boards/shields/corne/corne.zmk.yml`, add `studio` to features: - ```yaml - features: - - keys - - display - - underglow - - studio - ``` - -4. Push and flash. +3. Push and flash. 5. Go to [zmk.studio](https://zmk.studio/) in Chrome → connect via USB or BLE → edit layers visually. diff --git a/config/corne.keymap b/config/corne.keymap index 0ec9836..eee5b69 100644 --- a/config/corne.keymap +++ b/config/corne.keymap @@ -13,8 +13,6 @@ #include #include #include -#include -#include &led_strip { chain-length = <27>; @@ -95,10 +93,10 @@ steno_layer { display-name = "STEN"; bindings = < -&none &javsteno STENO_NUM1 &javsteno STENO_NUM2 &javsteno STENO_NUM3 &javsteno STENO_NUM4 &javsteno STENO_NUM5 &javsteno STENO_NUM6 &javsteno STENO_NUM7 &javsteno STENO_NUM8 &javsteno STENO_NUM9 &javsteno STENO_NUM10 &to 4 -&mo 4 &javsteno STENO_S1 &javsteno STENO_TL &javsteno STENO_PL &javsteno STENO_HL &javsteno STENO_STAR1 &javsteno STENO_STAR3 &javsteno STENO_FR &javsteno STENO_PR &javsteno STENO_LR &javsteno STENO_TR &javsteno STENO_DR -&none &javsteno STENO_S2 &javsteno STENO_KL &javsteno STENO_WL &javsteno STENO_RL &javsteno STENO_STAR2 &javsteno STENO_STAR4 &javsteno STENO_RR &javsteno STENO_BR &javsteno STENO_GR &javsteno STENO_SR &javsteno STENO_ZR - &none &javsteno STENO_A &javsteno STENO_O &javsteno STENO_E &javsteno STENO_U &none +&none &none &none &none &none &none &none &none &none &none &none &to 4 +&mo 4 &none &none &none &none &none &none &none &none &none &none &none +&none &none &none &none &none &none &none &none &none &none &none &none + &none &none &none &none &none &none >; }; diff --git a/keymap-drawer/corne.svg b/keymap-drawer/corne.svg index 82e3be7..887c9d8 100644 --- a/keymap-drawer/corne.svg +++ b/keymap-drawer/corne.svg @@ -752,63 +752,33 @@ rect.held, rect.combo.held { - -&javstenoSTENO_NUM1 - - -&javstenoSTENO_NUM2 - - -&javstenoSTENO_NUM3 - - -&javstenoSTENO_NUM4 - - -&javstenoSTENO_NUM5 - - -&javstenoSTENO_NUM6 - - -&javstenoSTENO_NUM7 - - -&javstenoSTENO_NUM8 - - -&javstenoSTENO_NUM9 - - -&javstenoSTENO_NUM… - @@ -823,165 +793,87 @@ rect.held, rect.combo.held { - -&javstenoSTENO_S1 - - -&javstenoSTENO_TL - - -&javstenoSTENO_PL - - -&javstenoSTENO_HL - - -&javstenoSTENO_STA… - - -&javstenoSTENO_STA… - - -&javstenoSTENO_FR - - -&javstenoSTENO_PR - - -&javstenoSTENO_LR - - -&javstenoSTENO_TR - - -&javstenoSTENO_DR - - -&javstenoSTENO_S2 - - -&javstenoSTENO_KL - - -&javstenoSTENO_WL - - -&javstenoSTENO_RL - - -&javstenoSTENO_STA… - - -&javstenoSTENO_STA… - - -&javstenoSTENO_RR - - -&javstenoSTENO_BR - - -&javstenoSTENO_GR - - -&javstenoSTENO_SR - - -&javstenoSTENO_ZR - - -&javstenoSTENO_A - - -&javstenoSTENO_O - - -&javstenoSTENO_E - - -&javstenoSTENO_U - diff --git a/keymap-drawer/corne.yaml b/keymap-drawer/corne.yaml index 6340a96..9dffbde 100644 --- a/keymap-drawer/corne.yaml +++ b/keymap-drawer/corne.yaml @@ -88,46 +88,46 @@ layers: - {t: MUTE, h: PLAY PAUSE} STEN: - '' - - '&javsteno STENO_NUM1' - - '&javsteno STENO_NUM2' - - '&javsteno STENO_NUM3' - - '&javsteno STENO_NUM4' - - '&javsteno STENO_NUM5' - - '&javsteno STENO_NUM6' - - '&javsteno STENO_NUM7' - - '&javsteno STENO_NUM8' - - '&javsteno STENO_NUM9' - - '&javsteno STENO_NUM10' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' - {t: HUB, h: toggle} - HUB - - '&javsteno STENO_S1' - - '&javsteno STENO_TL' - - '&javsteno STENO_PL' - - '&javsteno STENO_HL' - - '&javsteno STENO_STAR1' - - '&javsteno STENO_STAR3' - - '&javsteno STENO_FR' - - '&javsteno STENO_PR' - - '&javsteno STENO_LR' - - '&javsteno STENO_TR' - - '&javsteno STENO_DR' - '' - - '&javsteno STENO_S2' - - '&javsteno STENO_KL' - - '&javsteno STENO_WL' - - '&javsteno STENO_RL' - - '&javsteno STENO_STAR2' - - '&javsteno STENO_STAR4' - - '&javsteno STENO_RR' - - '&javsteno STENO_BR' - - '&javsteno STENO_GR' - - '&javsteno STENO_SR' - - '&javsteno STENO_ZR' - '' - - '&javsteno STENO_A' - - '&javsteno STENO_O' - - '&javsteno STENO_E' - - '&javsteno STENO_U' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '' - '' FPS: - {t: '1', h: Esc} diff --git a/keymap-drawer/keymap-reference.txt b/keymap-drawer/keymap-reference.txt new file mode 100644 index 0000000..a439f8d --- /dev/null +++ b/keymap-drawer/keymap-reference.txt @@ -0,0 +1,60 @@ +Key positions reference: + + 0 1 2 3 4 5 | 6 7 8 9 10 11 +12 13 14 15 16 17 | 18 19 20 21 22 23 +24 25 26 27 28 29 | 30 31 32 33 34 35 + 36 37 38 | 39 40 41 + + +Layer 0: CARP (Carpalx QGMLWY) + +` Q G M L W | Y F U B ; ->HUB +[HUB] D S T N R | I A E O H ' +LSHFT Z X C V J | K P , . / RSHFT + [RGB] CTRL GUI | SPC ALT MUTE/PP + +Combos (layers 0+1): + top+home row same col = 1-0, shift+combo = ! @ # $ % ^ & * ( ) + G+M (W+E on QWRT) = ESC + S+T (S+D on QWRT) = TAB + U+B (I+O on QWRT) = BSPC + E+O (K+L on QWRT) = ENTER +[HUB] = hold opens HUB layer, release goes back +[RGB] = tap-dance: 1x=toggle, 2x=effect fwd, 3x=effect rev +MUTE/PP = tap mute, hold play/pause + + +Layer 1: QWRT (QWERTY) + +` Q W E R T | Y U I O P ->HUB +[HUB] A S D F G | H J K L ; ' +LSHFT Z X C V B | N M , . / RSHFT + [RGB] CTRL GUI | SPC ALT MUTE/PP + +Combos: same as CARP (top+home = 1-0, W+E = ESC, S+D = TAB, I+O = BSPC, K+L = ENTER) + + +Layer 2: FPS (WASD shifted right for ortho) + +1/ESC 2 Q [W] E/3 R/4 | 5 6 7 8 9 ->HUB +TAB SHFT [A] [S] [D] F | _ _ _ _ _ _ +M/ALT Z X C V G | _ _ _ _ _ _ + T CTRL SPC | _ _ _ + +Hold-taps: 1=tap/ESC=hold, E=tap/3=hold, R=tap/4=hold, M=tap/ALT=hold + + +Layer 3: HUB (Utility — BT, RGB, Media, Nav) + +BT_CLR BT0 BT1 BT2 BT3 BT4 | + [ UP ] * = +OUT_TOG HUE+ SAT+ BRT+ SCRN+ VOL+ | - LEFT DOWN RIGHT / \ +LSHFT HUE- SAT- BRT- SCRN- VOL- | ->CARP ->QWRT ->FPS _ [CLR] RSHFT + [RGB] CTRL GUI | SPC ALT MUTE/PP + +OUT_TOG = toggle USB/BLE output +HUE/SAT/BRT = RGB underglow hue, saturation, brightness +SCRN = display brightness (C_BRI_UP/DN) +VOL = volume up/down +[RGB] = tap-dance: 1x=toggle, 2x=effect fwd, 3x=effect rev +[CLR] = tap-dance color presets: 1x=purple, 2x=white, 3x=red, 4x=blue, 5x=green +MUTE/PP = tap mute, hold play/pause