|
73 | 73 | combos { compatible = "zmk,combos"; }; |
74 | 74 |
|
75 | 75 | behaviors { |
| 76 | + /* Fancy alt-tab on single key. Might remove timeout to get used to interrup |
| 77 | + ting with a key */ |
76 | 78 | swapper: swapper { |
77 | 79 | compatible = "zmk,behavior-tri-state"; |
78 | 80 | #binding-cells = <0>; |
|
82 | 84 | bindings = <&kt LALT>, <&kp TAB>, <&kt LALT>; |
83 | 85 | }; |
84 | 86 |
|
| 87 | + /* Mouse buttons on hold for forward/back */ |
85 | 88 | mouse_tap: mouse_tap { |
86 | 89 | compatible = "zmk,behavior-hold-tap"; |
87 | | - label = "MOUSE_TAP"; |
88 | 90 | bindings = <&mkp>, <&kp>; |
89 | 91 |
|
90 | 92 | #binding-cells = <2>; |
|
93 | 95 | quick-tap-ms = <100>; |
94 | 96 | }; |
95 | 97 |
|
| 98 | + /* Adds layer on hold to existing caps word/caps lock behaviour */ |
96 | 99 | caps_tap: caps_tap { |
97 | 100 | compatible = "zmk,behavior-hold-tap"; |
98 | | - label = "CAPS_TAP"; |
99 | 101 | bindings = <&mo>, <&shiftcaps>; |
100 | 102 |
|
101 | 103 | #binding-cells = <2>; |
|
104 | 106 | flavor = "tap-preferred"; |
105 | 107 | }; |
106 | 108 |
|
| 109 | + /* Home Row Mod behaviours */ |
107 | 110 | rhtap: rhtap { |
108 | 111 | compatible = "zmk,behavior-hold-tap"; |
109 | | - label = "RHTAP"; |
110 | 112 | bindings = <&kp>, <&kp>; |
111 | 113 |
|
112 | 114 | #binding-cells = <2>; |
|
120 | 122 |
|
121 | 123 | rhshift: rhshift { |
122 | 124 | compatible = "zmk,behavior-hold-tap"; |
123 | | - label = "RHSHIFT"; |
124 | 125 | bindings = <&kp>, <&kp>; |
125 | 126 |
|
126 | 127 | #binding-cells = <2>; |
|
134 | 135 |
|
135 | 136 | lhtap: lhtap { |
136 | 137 | compatible = "zmk,behavior-hold-tap"; |
137 | | - label = "LHTAP"; |
138 | 138 | bindings = <&kp>, <&kp>; |
139 | 139 |
|
140 | 140 | #binding-cells = <2>; |
|
148 | 148 |
|
149 | 149 | lhshift: lhshift { |
150 | 150 | compatible = "zmk,behavior-hold-tap"; |
151 | | - label = "LHSHIFT"; |
152 | 151 | bindings = <&kp>, <&kp>; |
153 | 152 |
|
154 | 153 | #binding-cells = <2>; |
|
160 | 159 | hold-trigger-on-release; |
161 | 160 | }; |
162 | 161 |
|
| 162 | + /* Arrow keys - still a work in progress */ |
163 | 163 | lefttd: lefttd { |
164 | 164 | compatible = "zmk,behavior-tap-dance"; |
165 | | - label = "LEFTTD"; |
166 | 165 | #binding-cells = <0>; |
167 | 166 | bindings = <&kp LEFT_ARROW>, <&mt LC(LS(LEFT_ARROW)) LC(LEFT_ARROW)>; |
168 | 167 | }; |
169 | 168 |
|
170 | 169 | righttd: righttd { |
171 | 170 | compatible = "zmk,behavior-tap-dance"; |
172 | | - label = "RIGHTTD"; |
173 | 171 | #binding-cells = <0>; |
174 | 172 | bindings = <&mt LC(LS(RIGHT_ARROW)) RIGHT_ARROW>, <&kp LC(RIGHT_ARROW)>; |
175 | 173 | }; |
176 | 174 |
|
177 | 175 | uptd: uptd { |
178 | 176 | compatible = "zmk,behavior-tap-dance"; |
179 | | - label = "UPTD"; |
180 | 177 | #binding-cells = <0>; |
181 | 178 | bindings = <&mt LC(LS(UP_ARROW)) UP_ARROW>, <&kp LC(UP_ARROW)>; |
182 | 179 | }; |
183 | 180 |
|
184 | 181 | downtd: downtd { |
185 | 182 | compatible = "zmk,behavior-tap-dance"; |
186 | | - label = "DOWNTD"; |
187 | 183 | #binding-cells = <0>; |
188 | 184 | bindings = <&mt LC(LS(DOWN_ARROW)) DOWN_ARROW>, <&kp LC(DOWN_ARROW)>; |
189 | 185 | }; |
190 | 186 |
|
| 187 | + /* For nav layer; paste on single tap, windows paste on 2 taps */ |
191 | 188 | pastetd: pastetd { |
192 | 189 | compatible = "zmk,behavior-tap-dance"; |
193 | | - label = "Paste"; |
194 | 190 | #binding-cells = <0>; |
195 | 191 | bindings = <&kp LC(V)>, <&kp LG(V)>; |
196 | 192 | }; |
197 | 193 |
|
198 | 194 | bracketmm: bracketmm { |
199 | 195 | compatible = "zmk,behavior-mod-morph"; |
200 | | - label = "[]"; |
201 | 196 | bindings = <&kp LEFT_BRACKET>, <&kp RIGHT_BRACKET>; |
202 | 197 |
|
203 | 198 | #binding-cells = <0>; |
|
206 | 201 |
|
207 | 202 | parenmm: parenmm { |
208 | 203 | compatible = "zmk,behavior-mod-morph"; |
209 | | - label = "()"; |
210 | 204 | bindings = <&kp LEFT_PARENTHESIS>, <&kp RIGHT_PARENTHESIS>; |
211 | 205 |
|
212 | 206 | #binding-cells = <0>; |
|
215 | 209 |
|
216 | 210 | bracemm: bracemm { |
217 | 211 | compatible = "zmk,behavior-mod-morph"; |
218 | | - label = "{}"; |
219 | 212 | bindings = <&kp LEFT_BRACE>, <&kp RIGHT_BRACE>; |
220 | 213 |
|
221 | 214 | #binding-cells = <0>; |
|
224 | 217 |
|
225 | 218 | ltgtmm: ltgtmm { |
226 | 219 | compatible = "zmk,behavior-mod-morph"; |
227 | | - label = "LTGTMM"; |
228 | 220 | bindings = <&kp LESS_THAN>, <&kp GREATER_THAN>; |
229 | 221 |
|
230 | 222 | #binding-cells = <0>; |
231 | 223 | mods = <(MOD_LSFT|MOD_RSFT)>; |
232 | 224 | }; |
233 | 225 |
|
| 226 | + /* Sticky shift + Layer on hold */ |
234 | 227 | stickyshift_tap: stickyshift_tap { |
235 | 228 | compatible = "zmk,behavior-hold-tap"; |
236 | | - label = "STICKYSHIFT_TAP"; |
237 | 229 | bindings = <&mo>, <&sk>; |
238 | 230 |
|
239 | 231 | #binding-cells = <2>; |
240 | 232 | tapping-term-ms = <170>; |
241 | 233 | quick-tap-ms = <100>; |
242 | 234 | flavor = "tap-preferred"; |
243 | 235 | }; |
244 | | - |
| 236 | + |
| 237 | + /* Existing caps word behaviour on tap + Real caps lock on Shift-tap. Can be |
| 238 | + combined into a further mod-tap for layers. */ |
245 | 239 | shiftcaps: shiftcaps { |
246 | 240 | compatible = "zmk,behavior-mod-morph"; |
247 | | - label = "SHIFTCAPS"; |
248 | 241 | bindings = <&caps_word>, <&kp CAPSLOCK>; |
249 | 242 |
|
250 | 243 | #binding-cells = <0>; |
251 | 244 | mods = <(MOD_LSFT|MOD_RSFT)>; |
252 | 245 | }; |
253 | | - |
| 246 | + |
| 247 | + /* Runs swapper on hold of tab key - consider moving this to alt-tab instead |
| 248 | + ? */ |
254 | 249 | tabtap: tabtap { |
255 | 250 | compatible = "zmk,behavior-hold-tap"; |
256 | | - label = "TABTAP"; |
257 | 251 | bindings = <&swapper>, <&kp>; |
258 | 252 |
|
259 | 253 | #binding-cells = <2>; |
|
293 | 287 | &kp ENTER &trans &kp TAB &kp SPACE &trans &trans &kp N0 &kp KP_DOT |
294 | 288 | >; |
295 | 289 |
|
296 | | - label = "Numpad"; |
| 290 | + display-name = "Numpad"; |
297 | 291 | }; |
298 | 292 |
|
299 | 293 | SYM { |
|
305 | 299 | &kp ENTER &trans &kp TAB &kp SPACE &trans &trans &trans &sk LEFT_SHIFT |
306 | 300 | >; |
307 | 301 |
|
308 | | - label = "Non-NUM symbols"; |
| 302 | + display-name = "Non-NUM symbols"; |
309 | 303 | }; |
310 | 304 |
|
311 | 305 | MOU { |
|
317 | 311 | &trans &mkp MB3 &mkp MB2 &mkp MB1 &trans &trans &trans &trans |
318 | 312 | >; |
319 | 313 |
|
320 | | - label = "Mouse buttons"; |
| 314 | + display-name = "Mouse buttons"; |
321 | 315 | }; |
322 | 316 |
|
323 | 317 | SLOW { |
|
329 | 323 | &trans &trans &trans &trans &trans &trans &trans &trans |
330 | 324 | >; |
331 | 325 |
|
332 | | - label = "Slow input"; |
| 326 | + display-name = "Slow input"; |
333 | 327 | }; |
334 | 328 |
|
335 | 329 | SCROLL { |
|
341 | 335 | &trans &trans &trans &trans &trans &trans &trans &trans |
342 | 336 | >; |
343 | 337 |
|
344 | | - label = "Convert mouse to scroll"; |
| 338 | + display-name = "Convert mouse to scroll"; |
345 | 339 | }; |
346 | 340 |
|
347 | 341 | SYS { |
|
353 | 347 | &trans &trans &trans &trans &trans &trans &trans &trans |
354 | 348 | >; |
355 | 349 |
|
356 | | - label = "Keyboard internals"; |
| 350 | + display-name = "Keyboard internals"; |
357 | 351 | }; |
358 | 352 |
|
359 | 353 | SLSC { |
|
365 | 359 | &trans &trans &trans &trans &trans &trans &trans &trans |
366 | 360 | >; |
367 | 361 |
|
368 | | - label = "Slow scrolling"; |
| 362 | + display-name = "Slow scrolling"; |
369 | 363 | }; |
370 | 364 |
|
371 | 365 | NAV { |
|
377 | 371 | &kp ENTER &trans &kp TAB &kp SPACE &trans &trans &trans &sk LEFT_SHIFT |
378 | 372 | >; |
379 | 373 |
|
380 | | - label = "Movement keys"; |
| 374 | + display-name = "Movement keys"; |
381 | 375 | }; |
382 | 376 |
|
383 | 377 | SPR { |
|
389 | 383 | &kp ENTER &trans &kp TAB &kp SPACE &trans &trans &trans &sk LEFT_SHIFT |
390 | 384 | >; |
391 | 385 |
|
392 | | - label = "Media, etc"; |
| 386 | + display-name = "Media, etc"; |
393 | 387 | }; |
394 | 388 |
|
395 | 389 | TOP { |
|
0 commit comments