Skip to content

Commit 9c52eff

Browse files
Merging Corne 5-column into main (#1)
* Attempting to chop off the 6th column. * Adding chosen five_column_transform. * Dvorak as layer 0 * Trimming keyboard diagrams. Removed leftmost and rightmost columns and added a little more line drawing. * Lots of keymap additions. Trying to make a cycle of base layouts that can be chosen in sequence: Hands Down Neu, Hands Down Gold, Dvorak, Colemak-DH, QWERTY, Canary Ortho, Sturdy. Also replaced "lower" and "raise" layers with symbol layer (inspired by Pascal Getreuer), navigation layer, and a numpad layer with F-keys. * Correct typos: UNDS -> UNDER * Putting in required binding-cells directives. Though I do not understand why they are required nor what they mean. * Typo: removing rogue lowercase t. * Rearranging to get ESC and TAB and trying to fix numpad lock. All layouts should now have escape and tab on them, and to get backspace on Hands Down Gold there are escape, backspace, and tab on the nav layer now. I imitated the technique described in zmkfirmware/zmk#1299 (comment) to use conditional layers for num-lock. * Missed a semicolon. * Fix typo: LAYOUT -> LAYOUTS * Missed the O in HD Neu. No idea how that Z got in there. * Making left thumb key also exit numlock. Also updated copyright statement and added a to-do list. * Trying homerow shift on pinkies and swapping space and backspace. * Adjusting tapping term a little bit, and notes on homerow mods feel. --------- Co-authored-by: keymap-editor[bot] <91849743+keymap-editor[bot]@users.noreply.github.com>
1 parent 157ccf4 commit 9c52eff

File tree

1 file changed

+293
-46
lines changed

1 file changed

+293
-46
lines changed

config/corne.keymap

+293-46
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,303 @@
11
/*
2-
* Copyright (c) 2020 The ZMK Contributors
2+
* Copyright (c) 2024 Allister MacLeod
33
*
44
* SPDX-License-Identifier: MIT
55
*/
66

77
#include <behaviors.dtsi>
8-
#include <dt-bindings/zmk/keys.h>
98
#include <dt-bindings/zmk/bt.h>
9+
#include <dt-bindings/zmk/keys.h>
10+
11+
12+
#define DEFAULT 0
13+
#define HD_NEU 0
14+
#define HD_GOLD 1
15+
#define DVORAK 2
16+
#define COLEMAK 3
17+
#define QWERTY 4
18+
#define CANARY 5
19+
#define STURDY 6
20+
#define SYMBOLS 7
21+
#define NAV 8
22+
#define NUMPAD 9
23+
#define NUMLOCK 10
24+
#define NUMTEMP 11
25+
#define BTOOTH 12
26+
#define LAYOUTS 13
27+
28+
// Keycode definitions by thumb, to hopefully make swapping easier.
29+
#define LTHUMB BACKSPACE
30+
#define RTHUMB SPACE
31+
32+
// Home row mods settings; history notes below:
33+
// - fast tapping term of 100 feels too fast
34+
// - in Dvorak, al roll sometimes comes out as L, and so roll as O, also as as S
35+
// - maybe Callum-style sticky mods are the way to go after all?
36+
// - what about mod-tap shift space on the big thumb keys? would have to get used to backspace on a layer, but that might be okay
37+
#define HM_TAPPING_TERM 200
38+
#define HM_TAPPING_TERM_FAST 175
39+
#define HM_PRIOR_IDLE 125
40+
#define HM_QUICK_TAP 150
41+
42+
// Key groups for cross-hand hold trigger definitions.
43+
#define KEYS_LEFT 0 1 2 3 4 10 11 12 13 14 20 21 22 23 24
44+
#define KEYS_RIGHT 5 6 7 8 9 15 16 17 18 19 25 26 27 28 29
45+
#define KEYS_THUMB 30 31 32 33 34 35
46+
47+
48+
// Things to try next:
49+
// - mod-tap home row mods (shift on home row pinkies to start), preferably with quiet time to prevent delayed keypresses
50+
// - better handling of adaptive keys in Hands Down Gold; maybe tap-dance is not the best way to handle Z and Q
51+
// - experiment with different sticky keys durations
52+
// - try spacebar on the right thumb to see if it feels any more natural
53+
// - more ctrl-* combos in nav layer, or maybe a dedicated hotkey layer: ^S save, ^T new tab, ^R reload, etc.
1054

1155
/ {
12-
keymap {
13-
compatible = "zmk,keymap";
14-
15-
default_layer {
16-
// -----------------------------------------------------------------------------------------
17-
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | BKSP |
18-
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' |
19-
// | SHFT | Z | X | C | V | B | | N | M | , | . | / | ESC |
20-
// | GUI | LWR | SPC | | ENT | RSE | ALT |
21-
bindings = <
22-
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSPC
23-
&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
24-
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp ESC
25-
&kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp RALT
26-
>;
27-
};
28-
lower_layer {
29-
// -----------------------------------------------------------------------------------------
30-
// | TAB | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BKSP |
31-
// | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | |
32-
// | SHFT | | | | | | | | | | | | |
33-
// | GUI | | SPC | | ENT | | ALT |
34-
bindings = <
35-
&kp TAB &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSPC
36-
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans &trans
37-
&kp LSHFT &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
38-
&kp LGUI &trans &kp SPACE &kp RET &trans &kp RALT
39-
>;
40-
};
41-
42-
raise_layer {
43-
// -----------------------------------------------------------------------------------------
44-
// | TAB | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BKSP |
45-
// | CTRL | | | | | | | - | = | [ | ] | \ | ` |
46-
// | SHFT | | | | | | | _ | + | { | } | "|" | ~ |
47-
// | GUI | | SPC | | ENT | | ALT |
48-
bindings = <
49-
&kp TAB &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp ASTRK &kp LPAR &kp RPAR &kp BSPC
50-
&kp LCTRL &trans &trans &trans &trans &trans &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH &kp GRAVE
51-
&kp LSHFT &trans &trans &trans &trans &trans &kp UNDER &kp PLUS &kp LBRC &kp RBRC &kp PIPE &kp TILDE
52-
&kp LGUI &trans &kp SPACE &kp RET &trans &kp RALT
53-
>;
54-
};
55-
};
56+
chosen { zmk,matrix_transform = &five_column_transform; };
57+
58+
behaviors {
59+
tdjz: tap_dance_jz {
60+
compatible = "zmk,behavior-tap-dance";
61+
#binding-cells = <0>;
62+
bindings = <&kp J>, <&kp Z>;
63+
};
64+
tdgq: tap_dance_gq {
65+
compatible = "zmk,behavior-tap-dance";
66+
#binding-cells = <0>;
67+
bindings = <&kp G>, <&kp Q>;
68+
};
69+
tdesclay: tap_dance_esc_layouts {
70+
compatible = "zmk,behavior-tap-dance";
71+
#binding-cells = <0>;
72+
tapping-term-ms = <200>;
73+
bindings = <&kp ESC>, <&to LAYOUTS>;
74+
};
75+
// Positional home-row shift; uses fast tapping term
76+
hsl: homerow_mods_shift_left {
77+
compatible = "zmk,behavior-hold-tap";
78+
#binding-cells = <2>;
79+
bindings = <&kp>, <&kp>;
80+
flavor = "tap-unless-interrupted";
81+
tapping-term-ms = <HM_TAPPING_TERM_FAST>;
82+
quick-tap-ms = <HM_QUICK_TAP>;
83+
require-prior-idle-ms = <HM_PRIOR_IDLE>;
84+
hold-trigger-key-positions = <KEYS_RIGHT KEYS_THUMB>;
85+
};
86+
hsr: homerow_mods_shift_right {
87+
compatible = "zmk,behavior-hold-tap";
88+
#binding-cells = <2>;
89+
bindings = <&kp>, <&kp>;
90+
flavor = "tap-unless-interrupted";
91+
tapping-term-ms = <HM_TAPPING_TERM_FAST>;
92+
quick-tap-ms = <HM_QUICK_TAP>;
93+
require-prior-idle-ms = <HM_PRIOR_IDLE>;
94+
hold-trigger-key-positions = <KEYS_LEFT KEYS_THUMB>;
95+
};
96+
};
97+
98+
conditional_layers {
99+
compatible = "zmk,conditional-layers";
100+
numeric_momentary {
101+
if-layers = <NUMTEMP>;
102+
then-layer = <NUMPAD>;
103+
};
104+
numeric_lock {
105+
if-layers = <NUMLOCK>;
106+
then-layer = <NUMPAD>;
107+
};
108+
};
109+
110+
keymap {
111+
compatible = "zmk,keymap";
112+
113+
hands_down_neu_layer {
114+
// ,-----------------------------. ,-----------------------------.
115+
// | W | F | M | P | V | | / | . | Q | Z | J |
116+
// | R | S | N | T | B | | , | A | E | I | H |
117+
// | X | C | L | D | G | | - | U | O | Y | K |
118+
// `-----------| Esc | SYM | Bks | | Spc | NAV | Tab |-----------'
119+
bindings = <
120+
&kp W &kp F &kp M &kp P &kp V &kp FSLH &kp DOT &kp Q &kp Z &kp J
121+
&hsl LSHIFT R &kp S &kp N &kp T &kp B &kp COMMA &kp A &kp E &kp I &hsr RSHIFT H
122+
&kp X &kp C &kp L &kp D &kp G &kp MINUS &kp U &kp O &kp Y &kp K
123+
&tdesclay &sl SYMBOLS &kp LTHUMB &kp RTHUMB &sl NAV &kp TAB
124+
>;
125+
};
126+
127+
hands_down_gold_layer {
128+
// ,-----------------------------. ,-----------------------------.
129+
// | J z | G q | M | P | V | | ; | . | / | " | ' |
130+
// | R | S | N | D | B | | , | A | E | I | H |
131+
// | X | F | L | C | W | | - | U | O | Y | K |
132+
// `-----------| Esc | SYM | T | | Bks | NAV | Tab |-----------'
133+
bindings = <
134+
&tdjz &tdgq &kp M &kp P &kp V &kp SEMI &kp DOT &kp FSLH &kp DQT &kp SQT
135+
&hsl LSHIFT R &kp S &kp N &kp D &kp B &kp COMMA &kp A &kp E &kp I &hsr RSHIFT H
136+
&kp X &kp F &kp L &kp C &kp W &kp MINUS &kp U &kp O &kp Y &kp K
137+
&tdesclay &sl SYMBOLS &kp T &kp SPACE &sl NAV &kp TAB
138+
>;
139+
};
140+
141+
dvorak_layer {
142+
// ,-----------------------------. ,-----------------------------.
143+
// | ' | , | . | P | Y | | F | G | C | R | L |
144+
// | A | O | E | U | I | | D | H | T | N | S |
145+
// | ; | Q | J | K | X | | B | M | W | V | Z |
146+
// `-----------| Esc | SYM | Bks | | Spc | NAV | Tab |-----------'
147+
bindings = <
148+
&kp SQT &kp COMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L
149+
&hsl LSHIFT A &kp O &kp E &kp U &kp I &kp D &kp H &kp T &kp N &hsr RSHIFT S
150+
&kp SEMI &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z
151+
&tdesclay &sl SYMBOLS &kp LTHUMB &kp RTHUMB &sl NAV &kp TAB
152+
>;
153+
};
154+
155+
colemakdh_layer {
156+
// ,-----------------------------. ,-----------------------------.
157+
// | Q | W | F | P | B | | J | L | U | Y | ' |
158+
// | A | R | S | T | G | | M | N | E | I | O |
159+
// | Z | X | C | D | V | | K | H | , | . | / |
160+
// `-----------| Esc | SYM | Bks | | Spc | NAV | Tab |-----------'
161+
bindings = <
162+
&kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp SQT
163+
&hsl LSHIFT A &kp R &kp S &kp T &kp G &kp M &kp N &kp E &kp I &hsr RSHIFT O
164+
&kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH
165+
&tdesclay &sl SYMBOLS &kp LTHUMB &kp RTHUMB &sl NAV &kp TAB
166+
>;
167+
};
168+
169+
qwerty_layer {
170+
// ,-----------------------------. ,-----------------------------.
171+
// | Q | W | E | R | T | | Y | U | I | O | P |
172+
// | A | S | D | F | G | | H | J | K | L | ; |
173+
// | Z | X | C | V | B | | N | M | , | . | / |
174+
// `-----------| Esc | SYM | Bks | | Spc | NAV | Tab |-----------'
175+
bindings = <
176+
&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
177+
&hsl LSHIFT A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &hsr RSHIFT SEMI
178+
&kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
179+
&tdesclay &sl SYMBOLS &kp LTHUMB &kp RTHUMB &sl NAV &kp TAB
180+
>;
181+
};
182+
183+
canary_layer {
184+
// ,-----------------------------. ,-----------------------------.
185+
// | W | L | Y | P | B | | Z | F | O | U | ' |
186+
// | C | R | S | T | G | | M | N | E | I | A |
187+
// | Q | J | V | D | K | | X | H | / | , | . |
188+
// `-----------| Esc | SYM | Bks | | Spc | NAV | Tab |-----------'
189+
bindings = <
190+
&kp W &kp L &kp Y &kp P &kp B &kp Z &kp F &kp O &kp U &kp SQT
191+
&hsl LSHIFT C &kp R &kp S &kp T &kp G &kp M &kp N &kp E &kp I &hsr RSHIFT A
192+
&kp Q &kp J &kp V &kp D &kp K &kp X &kp H &kp FSLH &kp COMMA &kp DOT
193+
&tdesclay &sl SYMBOLS &kp LTHUMB &kp RTHUMB &sl NAV &kp TAB
194+
>;
195+
};
196+
197+
sturdy_layer {
198+
// ,-----------------------------. ,-----------------------------.
199+
// | V | M | L | C | P | | X | F | O | U | J |
200+
// | S | T | R | D | Y | | . | N | A | E | I |
201+
// | Z | K | Q | G | W | | B | H | ' | ; | , |
202+
// `-----------| Esc | SYM | Bks | | Spc | NAV | Tab |-----------'
203+
bindings = <
204+
&kp V &kp M &kp L &kp C &kp P &kp X &kp F &kp O &kp U &kp J
205+
&hsl LSHIFT S &kp T &kp R &kp D &kp Y &kp DOT &kp N &kp A &kp E &hsr RSHIFT I
206+
&kp Z &kp K &kp Q &kp G &kp W &kp B &kp H &kp SQT &kp SEMI &kp COMMA
207+
&tdesclay &sl SYMBOLS &kp LTHUMB &kp RTHUMB &sl NAV &kp TAB
208+
>;
209+
};
210+
211+
symbols_layer {
212+
// ,-----------------------------. ,-----------------------------.
213+
// | ` | < | > | " | ' | | & | : | [ | ] | \ |
214+
// | ! | - | + | = | # | | | | ; | { | } | ? |
215+
// | ~ | / | * | % | @ | | ^ | $ | ( | ) | / |
216+
// `-----------|Shift|#####| BAS | | Ent | NUM |Shift|-----------'
217+
bindings = <
218+
&kp GRAVE &kp LT &kp GT &kp DQT &kp SQT &kp AMPS &kp COLON &kp LBKT &kp RBKT &kp BSLH
219+
&kp EXCL &kp MINUS &kp PLUS &kp EQUAL &kp HASH &kp PIPE &kp SEMI &kp LBRC &kp RBRC &kp QMARK
220+
&kp TILDE &kp SLASH &kp STAR &kp PERCENT &kp AT &kp CARET &kp DOLLAR &kp LPAR &kp RPAR &kp FSLH
221+
&sk LSHIFT &trans &tog SYMBOLS &kp RET &mo NUMTEMP &sk RSHIFT
222+
>;
223+
};
224+
225+
navigation_layer {
226+
// ,-----------------------------. ,-----------------------------.
227+
// | 1 | 2 | 3 | 4 | 5 | | Hom | PgD | Up | PgU | Esc |
228+
// | 6 | 7 | 8 | 9 | 0 | | End | Left| Down|Right| Bks |
229+
// | Undo| Cut | Copy|Paste| GUI | | Ins | Ctrl| Del | Alt | Tab |
230+
// `-----------|Shift| NUM | BAS | | Ent |#####|Shift|-----------'
231+
bindings = <
232+
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp HOME &kp PG_DN &kp UP &kp PG_UP &kp ESC
233+
&kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp END &kp LEFT &kp DOWN &kp RIGHT &kp BSPC
234+
&kp LC(Z) &kp LC(X) &kp LC(C) &kp LC(V) &sk LGUI &kp INS &sk RCTRL &kp DEL &sk LALT &kp TAB
235+
&sk LSHIFT &mo NUMTEMP &tog NAV &kp RET &trans &sk RSHIFT
236+
>;
237+
};
238+
239+
numpad_layer {
240+
// ,-----------------------------. ,------------------------------.
241+
// | F1 | F2 | F3 | F4 |NumLk| | * | 7 | 8 | 9 | - |
242+
// | F5 | F6 | F7 | F8 | | | / | 4 | 5 | 6 | + |
243+
// | F9 | F10 | F11 | F12 | | | 0 | 1 | 2 | 3 | Ent |
244+
// `-----------| |#####| BAS | | 0 |######| . |-----------'
245+
bindings = <
246+
&kp F1 &kp F2 &kp F3 &kp F4 &tog NUMLOCK &kp KP_MULTIPLY &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_SUBTRACT
247+
&kp F5 &kp F6 &kp F7 &kp F8 &none &kp KP_DIVIDE &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS
248+
&kp F9 &kp F10 &kp F11 &kp F12 &none &kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp RETURN2
249+
&to BTOOTH &trans &tog NUMLOCK &kp KP_N0 &trans &kp KP_DOT
250+
>;
251+
};
252+
253+
num_temp_layer {
254+
// Only exists to momentarily activate numpad layer.
255+
bindings = <
256+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
257+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
258+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
259+
&trans &trans &trans &trans &trans &trans
260+
>;
261+
};
262+
263+
num_lock_layer {
264+
// Only exists to toggle numpad layer lock on and off.
265+
bindings = <
266+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
267+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
268+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
269+
&trans &trans &trans &trans &trans &trans
270+
>;
271+
};
272+
273+
bluetooth_layer {
274+
// ,-----------------------------. ,-----------------------------.
275+
// | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
276+
// | BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | |
277+
// | | | | | | | | | | | |
278+
// `-----------| | | | | | | |-----------'
279+
280+
bindings = <
281+
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
282+
&bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans
283+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
284+
&trans &trans &tog BTOOTH &trans &trans &trans
285+
>;
286+
};
287+
layout_selection_layer {
288+
// ,-----------------------------. ,-----------------------------.
289+
// | |HDNeu|Dvork|Clmak| | | | | | | |
290+
// |QWRTY|HDGld|STRDY|Cnary| | | | | | | |
291+
// | | | | | | | | | | | |
292+
// `-----------| | | | | | | |-----------'
293+
294+
bindings = <
295+
&trans &to HD_NEU &to DVORAK &to COLEMAK &trans &trans &trans &trans &trans &trans
296+
&to QWERTY &to HD_GOLD &to STURDY &to CANARY &trans &trans &trans &trans &trans &trans
297+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
298+
&trans &trans &tog LAYOUTS &trans &trans &trans
299+
>;
300+
};
301+
};
302+
// end keymap
56303
};

0 commit comments

Comments
 (0)