Skip to content

Commit b4804b7

Browse files
authored
feat: add Dvorak layout (#31)
1 parent 2b20595 commit b4804b7

File tree

5 files changed

+1537
-8
lines changed

5 files changed

+1537
-8
lines changed

README.md

+12-8
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,6 @@ Knucklehead[^1] is a mnemonic, macOS-optimized, 42 key ergonomic columnar layout
3939
> [!NOTE]\
4040
> These are **optimized for the [Colemak-DH](https://colemakmods.github.io/mod-dh/)** layout. While many will work well regardless of layout, others will be "lost in translation".
4141
>
42-
> [Other layouts available](#using-layouts-other-than-colemak-dh):
43-
>
44-
> - [QWERTY](./knucklehead/L1_qwerty.dtsi)
45-
> - [Colemak](./knucklehead/L1_colemak.dtsi)
46-
>
4742
> See: [Using layouts other than Colemak-DH](#using-layouts-other-than-colemak-dh)
4843
4944
<!-- &nbsp;s force column width and prevent unwanted breaks -->
@@ -178,20 +173,29 @@ These special cases are marked with the same 🆇 symbol.
178173

179174
## Using layouts other than Colemak-DH
180175

176+
> [!NOTE]\
177+
> Other layouts available:
178+
>
179+
> - [Colemak](./knucklehead/L1_colemak.dtsi) (classic)
180+
> - [Dvorak](./knucklehead/L1_dvorak.dtsi)
181+
> - [QWERTY](./knucklehead/L1_qwerty.dtsi)
182+
>
183+
> Feel free to submit [PRs](/pulls) with additional layouts, or [open an issue](/issues) if you need help with a specific layout. Of course, you're also always welcome to fork this repo and create your own custom layouts.
184+
181185
In order to use layouts other than the default [Colemak-DH](https://colemakmods.github.io/mod-dh/) layout, you'll need to comment-out the `#include "L1_colemak-dh.dtsi"` statement in [./knucklehead/base.dtsi](./knucklehead/base.dtsi), and uncomment the corresponding layout file you wish to use. E.g.:
182186

183187
```diff
184188
# ./knucklehead/base.dtsi
185189

186190
-#include "L1_colemak-dh.dtsi"
187191
+// #include "L1_colemak-dh.dtsi"
188-
192+
// #include "L1_colemak.dtsi"
193+
// #include "L1_dvorak.dtsi"
189194
-// #include "L1_qwerty.dtsi"
190195
+#include "L1_qwerty.dtsi"
191196
```
192197

193-
> [!NOTE]\
194-
> Feel free to submit [PRs](/pulls) with additional layouts, or [open an issue](/issues) if you need help with a specific layout. Of course, you're also always welcome to fork this repo and create your own custom layouts.
198+
<https://github.com/minusfive/zmk-config/blob/2b20595017111d5ab5fe2b6731a971d3410b28c5/knucklehead/base.dtsi#L34-L38>
195199

196200
---
197201

img/dvorak.svg

+1,287
Loading

img/dvorak.yaml

+209
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
layout: {qmk_keyboard: corne_rotated, qmk_layout: LAYOUT_split_3x6_3}
2+
layers:
3+
L1:
4+
- $$mdi:keyboard-esc$$
5+
- {t: '''', s: '"'}
6+
- {t: ',', s: <}
7+
- {t: ., s: '>'}
8+
- P
9+
- Y
10+
- F
11+
- G
12+
- C
13+
- R
14+
- L
15+
- $$mdi:close-box$$
16+
- {t: '$$mdi:backspace$$', s: '$$mdi:backspace-reverse-outline$$', type: backspace}
17+
- A
18+
- {t: O, h: '$$mdi:apple-keyboard-control$$'}
19+
- {t: E, h: '$$mdi:apple-keyboard-option$$'}
20+
- {t: U, h: '$$mdi:apple-keyboard-command$$'}
21+
- {t: I, h: '$$mdi:triangle$$'}
22+
- {t: D, h: '$$mdi:triangle$$'}
23+
- {t: H, h: '$$mdi:apple-keyboard-command$$'}
24+
- {t: T, h: '$$mdi:apple-keyboard-option$$'}
25+
- {t: N, h: '$$mdi:apple-keyboard-control$$'}
26+
- S
27+
- {t: '$$mdi:keyboard-return$$', type: enter}
28+
- {t: Fn, h: '$$mdi:close-box$$'}
29+
- {t: ;, s: ':'}
30+
- Q
31+
- J
32+
- K
33+
- X
34+
- B
35+
- M
36+
- W
37+
- V
38+
- Z
39+
- {t: Fn, h: '$$mdi:close-box$$'}
40+
- $$mdi:keyboard-tab$$
41+
- {t: '$$mdi:keyboard-space$$', h: '$$mdi:apple-keyboard-shift$$'}
42+
- {t: L2, h: '$$mdi:gesture-tap-hold$$', s: '$$mdi:alpha-w-box$$'}
43+
- {t: L2, h: '$$mdi:gesture-tap-hold$$', s: '$$mdi:alpha-w-box$$'}
44+
- {t: '$$mdi:apple-keyboard-shift$$', h: '$$mdi:gesture-tap-hold$$', s: '$$mdi:alpha-w-box$$'}
45+
- {t: '`', s: '~'}
46+
L2:
47+
- {t: '$$mdi:transfer$$', type: trans}
48+
- {t: '1', s: '!'}
49+
- {t: '2', s: '@'}
50+
- {t: '3', s: '#'}
51+
- {t: '4', s: $}
52+
- {t: '5', s: '%'}
53+
- $$mdi:skip-previous$$
54+
- $$mdi:volume-low$$
55+
- $$mdi:volume-high$$
56+
- $$mdi:skip-next$$
57+
- $$mdi:volume-off$$
58+
- {t: '$$mdi:transfer$$', type: trans}
59+
- {t: '$$mdi:transfer$$', type: trans}
60+
- {t: '6', s: ^}
61+
- {t: '7', h: '$$mdi:apple-keyboard-control$$', s: '&'}
62+
- {t: '8', h: '$$mdi:apple-keyboard-option$$', s: '*'}
63+
- {t: '9', h: '$$mdi:apple-keyboard-command$$', s: (}
64+
- {t: '0', h: '$$mdi:triangle$$', s: )}
65+
- {t: '$$mdi:arrow-left-bold$$', h: '$$mdi:triangle$$'}
66+
- {t: '$$mdi:arrow-down-bold$$', h: '$$mdi:apple-keyboard-command$$'}
67+
- {t: '$$mdi:arrow-up-bold$$', h: '$$mdi:apple-keyboard-option$$'}
68+
- {t: '$$mdi:arrow-right-bold$$', h: '$$mdi:apple-keyboard-control$$'}
69+
- {t: '$$mdi:transfer$$', type: trans}
70+
- {t: '$$mdi:transfer$$', type: trans}
71+
- {t: '$$mdi:transfer$$', type: trans}
72+
- {t: '$$mdi:transfer$$', type: trans}
73+
- {t: '$$mdi:transfer$$', type: trans}
74+
- {t: '$$mdi:transfer$$', type: trans}
75+
- {t: '$$mdi:transfer$$', type: trans}
76+
- {t: '$$mdi:transfer$$', type: trans}
77+
- {t: '$$mdi:transfer$$', type: trans}
78+
- {t: '$$mdi:transfer$$', type: trans}
79+
- {t: '$$mdi:transfer$$', type: trans}
80+
- {t: '$$mdi:transfer$$', type: trans}
81+
- {t: '$$mdi:transfer$$', type: trans}
82+
- {t: '$$mdi:transfer$$', type: trans}
83+
- {t: '$$mdi:transfer$$', type: trans}
84+
- {t: '$$mdi:transfer$$', type: trans}
85+
- {t: '$$mdi:close-box$$', h: L2}
86+
- {t: '$$mdi:close-box$$', h: L2}
87+
- {t: '$$mdi:transfer$$', type: trans}
88+
- {t: '$$mdi:transfer$$', type: trans}
89+
Fn:
90+
- {t: '$$mdi:toggle-switch$$', h: '$$mdi:bluetooth$$', s: '$$mdi:usb$$'}
91+
- F1
92+
- F2
93+
- F3
94+
- F4
95+
- F5
96+
- {t: '$$mdi:transfer$$', type: trans}
97+
- {t: '$$mdi:transfer$$', type: trans}
98+
- {t: '$$mdi:transfer$$', type: trans}
99+
- {t: '$$mdi:transfer$$', type: trans}
100+
- {t: '$$mdi:transfer$$', type: trans}
101+
- $$mdi:power-standby$$
102+
- {t: '$$mdi:backup-restore$$', h: '$$mdi:progress-download$$', type: bootloader}
103+
- F6
104+
- {t: F7, h: '$$mdi:apple-keyboard-control$$'}
105+
- {t: F8, h: '$$mdi:apple-keyboard-option$$'}
106+
- {t: F9, h: '$$mdi:apple-keyboard-command$$'}
107+
- {t: F10, h: '$$mdi:triangle$$'}
108+
- {t: '$$mdi:transfer$$', type: trans}
109+
- {t: '$$mdi:transfer$$', type: trans}
110+
- {t: '$$mdi:transfer$$', type: trans}
111+
- {t: '$$mdi:transfer$$', type: trans}
112+
- {t: '$$mdi:transfer$$', type: trans}
113+
- {t: '$$mdi:backup-restore$$', h: '$$mdi:progress-download$$', type: bootloader}
114+
- {t: '$$mdi:close-box$$', h: Fn}
115+
- F11
116+
- F12
117+
- F13
118+
- F14
119+
- F15
120+
- {t: '$$mdi:transfer$$', type: trans}
121+
- {t: '$$mdi:transfer$$', type: trans}
122+
- {t: '$$mdi:transfer$$', type: trans}
123+
- {t: '$$mdi:transfer$$', type: trans}
124+
- {t: '$$mdi:transfer$$', type: trans}
125+
- {t: '$$mdi:close-box$$', h: Fn}
126+
- $$mdi:brightness-7$$
127+
- $$mdi:brightness-5$$
128+
- {t: '$$mdi:close-box$$', h: L2}
129+
- {t: '$$mdi:close-box$$', h: L2}
130+
- $$mdi:apple-keyboard-caps$$
131+
- {t: '$$mdi:transfer$$', type: trans}
132+
combos:
133+
- p: [1, 13]
134+
k: '!'
135+
l: [L1, L2]
136+
- p: [2, 14]
137+
k: '@'
138+
l: [L1, L2]
139+
- p: [3, 15]
140+
k: '#'
141+
l: [L1, L2]
142+
- p: [4, 16]
143+
k: $
144+
l: [L1, L2]
145+
- p: [5, 17]
146+
k: '%'
147+
l: [L1, L2]
148+
- p: [13, 25]
149+
k: ^
150+
l: [L1, L2]
151+
- p: [14, 26]
152+
k: '&'
153+
l: [L1, L2]
154+
- p: [15, 27]
155+
k: '*'
156+
l: [L1, L2]
157+
- p: [16, 28]
158+
k: (
159+
l: [L1, L2]
160+
- p: [17, 29]
161+
k: )
162+
l: [L1, L2]
163+
- p: [7, 19]
164+
k: {h: '-', s: _}
165+
l: [L1, L2, Fn]
166+
- p: [8, 20]
167+
k: {h: '=', s: +}
168+
l: [L1, L2, Fn]
169+
- p: [9, 21]
170+
k: {t: /, s: '?'}
171+
l: [L1, L2, Fn]
172+
- p: [6, 18]
173+
k: $$mdi:transfer-up$$
174+
l: [L1, L2, Fn]
175+
- p: [18, 30]
176+
k: $$mdi:transfer-down$$
177+
l: [L1, L2, Fn]
178+
- p: [19, 31]
179+
k: {h: '[', s: '{'}
180+
l: [L1, L2, Fn]
181+
- p: [20, 32]
182+
k: {h: ']', s: '}'}
183+
l: [L1, L2, Fn]
184+
- p: [21, 33]
185+
k: {h: \, s: '|'}
186+
l: [L1, L2, Fn]
187+
- p: [1, 2, 3, 4]
188+
k: $$mdi:bluetooth-off$$
189+
l: [Fn]
190+
a: top
191+
o: 0.03
192+
- p: [1, 13]
193+
k: {h: '1', s: '$$mdi:bluetooth-connect$$'}
194+
l: [Fn]
195+
- p: [2, 14]
196+
k: {h: '2', s: '$$mdi:bluetooth-connect$$'}
197+
l: [Fn]
198+
- p: [3, 15]
199+
k: {h: '3', s: '$$mdi:bluetooth-connect$$'}
200+
l: [Fn]
201+
- p: [4, 16]
202+
k: {h: '4', s: '$$mdi:bluetooth-connect$$'}
203+
l: [Fn]
204+
- p: [5, 17]
205+
k: {h: '5', s: '$$mdi:bluetooth-connect$$'}
206+
l: [Fn]
207+
- p: [6, 7]
208+
k: $$mdi:play-pause$$
209+
l: [L1, L2, Fn]

knucklehead/L1_dvorak.dtsi

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* Alpha Layer - Colemak
3+
*/
4+
5+
/ {
6+
keymap {
7+
compatible = "zmk,keymap";
8+
9+
dvorak_layer {
10+
display-name = "L1";
11+
bindings = <
12+
// ╭───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────╮ ╭───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────╮
13+
// │0 │1 │2 │3 │4 │5 │ │6 │7 │8 │9 │10 │11 │
14+
&kp ESC &kp SQT &kp COMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L &kp K_CANCEL
15+
// ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
16+
// │12 │13 │14 │15 │16 │17 │ │18 │19 │20 │21 │22 │23 │
17+
&bkspc_del &kp A &hrml LCTRL O &hrml LALT E &hrml LCMD U &hrml MEH I &hrmr MEH D &hrmr LCMD H &hrmr LALT T &hrmr LCTRL N &kp S &kp ENTER
18+
// ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
19+
// │24 │25 │26 │27 │28 │29 │ │30 │31 │32 │33 │34 │35 │
20+
&csl Fn &kp SEMICOLON &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z &csl Fn
21+
// ╰───────────────┴───────────────┴───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────├───────────────┼───────────────┼───────────────┴───────────────┴───────────────╯
22+
// │36 │37 │38 │ │39 │40 │41 │
23+
&kp TAB &mt LSHFT SPACE &smart_num L2 0 &smart_num L2 0 &smart_shift &kp GRAVE
24+
// ╰───────────────┴───────────────┴───────────────╯ ╰───────────────┴───────────────┴───────────────╯
25+
>;
26+
};
27+
};
28+
};

knucklehead/base.dtsi

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
// Alpha layer: uncomment desired, comment the others
3535
#include "L1_colemak-dh.dtsi"
3636
// #include "L1_colemak.dtsi"
37+
// #include "L1_dvorak.dtsi"
3738
// #include "L1_qwerty.dtsi"
3839

3940
// Other layers

0 commit comments

Comments
 (0)