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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
// Copyright (c) 2022 The ZMK Contributors
// SPDX-License-Identifier: MIT
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
// Layer definitions
#define BASE 0
#define SYM 1
#define NUM 2
#define NAV 3
#define SETTINGS 4
// Home row mods macro
#define HRML(k1,k2,k3) &ht LALT k1 &ht LCTRL k2 &ht LGUI k3
#define HRMR(k1,k2,k3) &ht RGUI k1 &ht RCTRL k2 &ht LALT k3
#define HRMLS(k1,k2,k3,k4) &ht LSHIFT k1 &ht LALT k2 &ht LCTRL k3 &ht LGUI k4
#define HRMRS(k1,k2,k3,k4) &ht RGUI k1 &ht RCTRL k2 &ht LALT k3 &ht RSHIFT k4
/ {
behaviors {
ht: hold_tap {
label = "hold_tap";
compatible = "zmk,behavior-hold-tap";
#binding-cells = <2>;
flavor = "tap-preferred";
tapping-term-ms = <220>;
quick-tap-ms = <150>;
global-quick-tap;
bindings = <&kp>, <&kp>;
};
};
conditional_layers {
compatible = "zmk,conditional-layers";
tri_layer {
if-layers = <SYM NUM>;
then-layer = <SETTINGS>;
};
};
keymap {
compatible = "zmk,keymap";
default_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
//│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │
&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ │
&kp A HRML(S, D, F) &kp G &kp H HRMR(J, K, L) &kp BSPC
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ Z │ X │ C │ V │ B │ │ N │ M │ , < │ . > │ │
&kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp ENTER
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&kp TAB &kp LSHIFT &kp SPACE &to SYM
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
sym_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
//│ │ │ / ? │ \ │ ` │ │ : │ ; │ " │ ' │ │
&trans &trans &kp FSLH &kp BACKSLASH &kp GRAVE &kp COLON &kp SEMI &kp DQT &kp SQT &trans
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ ^ │ + │ ( │ ) │ @ │ │ | │ - │ = │ _ │ $ │
HRMLS(CARET, PLUS, LPAR, RPAR) &kp AT &kp PIPE HRMRS(MINUS, EQUAL, UNDER, DLLR)
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ ! │ # │ { │ } │ ~ │ │ & │ [ │ ] │ % │ * │
&kp EXCL &kp HASH &kp LBRC &kp RBRC &kp TILDE &kp AMPS &kp LBKT &kp RBKT &kp PRCNT &kp ASTRK
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&to BASE &kp ESC &kp BSPC &to NUM
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
num_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
//│ │ │ │ │ │ │ │ │ │ │ │
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │
HRMLS(N1, N2, N3, N4) &kp N5 &kp N6 HRMRS(N7, N8, N9, N0)
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ │ │ │ │ │ │ │ │ │ │ │
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&to BASE &kp ESC &kp BSPC &to NAV
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
nav_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
//│ │ │ │ │ │ │ │ │ │ │ │
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &trans &trans &trans &trans &to SETTINGS
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ │ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ │
HRMLS(F6, F7, F8, F9) &kp F10 &kp LEFT HRMRS(DOWN, UP, RIGHT, ENTER)
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ │ │ │ │ │ │ │ │ │ │ │
&kp F11 &kp F12 &kp F13 &kp F14 &kp F15 &trans &trans &trans &trans &trans
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&to BASE &kp ESC &kp BSPC &to SYM
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
tri_layer {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
//│ RESET │ │ │ │PROFILE 0 │ │ │ │ │ │ RESET │
&sys_reset &trans &trans &trans &bt BT_SEL 0 &trans &trans &trans &trans &sys_reset
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│BOOTLOADER│ │ │ │PROFILE 1 │ │ │ │ │ │BOOTLOADER│
&bootloader &trans &trans &trans &bt BT_SEL 1 &trans &trans &trans &trans &bootloader
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ │ │ │ CLEAR BT │PROFILE 2 │ │ │ │ │ │ │
&trans &trans &trans &bt BT_CLR &bt BT_SEL 2 &trans &trans &trans &trans &trans
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&trans &trans &trans &trans
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
};
};
|