aboutsummaryrefslogtreecommitdiff
path: root/config/cradio.keymap
blob: c52c80a28b35fafb989daef08750c5dc2cc3245c (plain)
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
// 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>
#include <dt-bindings/zmk/mouse.h>

// Home row mods macro
#define HRML(k1,k2,k3) &lht LALT k1  &lht LCTRL k2  &lht LGUI k3
#define HRMR(k1,k2,k3) &rht LGUI k1  &rht LCTRL k2  &rht LALT k3

// Layer macros
#define BASE 0
#define NAV 1
#define NUM 2
#define SYM 3
#define MSE 4
#define FUNC 5
#define GAME 6
#define BTL 7

&sl {
    release-after-ms = <1500>;
};

&mt {
    flavor = "tap-preferred";
    quick-tap-ms = <200>;
    require-prior-idle-ms = <100>;
};

/ {
    behaviors {
        lht: left_hold_tap {
            compatible = "zmk,behavior-hold-tap";
            #binding-cells = <2>;
            flavor = "balanced";
            tapping-term-ms = <200>;
            quick-tap-ms = <200>;
            require-prior-idle-ms = <100>;
            bindings = <&kp>, <&kp>;
            hold-trigger-key-positions = <5 6 7 8 9 15 16 17 18 19 25 26 27 28 29 30 31 32 33>;
        };

        rht: right_hold_tap {
            compatible = "zmk,behavior-hold-tap";
            #binding-cells = <2>;
            flavor = "balanced";
            tapping-term-ms = <200>;
            quick-tap-ms = <200>;
            require-prior-idle-ms = <100>;
            bindings = <&kp>, <&kp>;
            hold-trigger-key-positions = <0 1 2 3 4 10 11 12 13 14 20 21 22 23 24 30 31 32 33>;
        };

        skq: sticky_key_quick_release {
            compatible = "zmk,behavior-sticky-key";
            #binding-cells = <1>;
            bindings = <&kp>;
            release-after-ms = <500>;
            quick-release;
            ignore-modifiers;
        };

        tds: tap_dance_shift {
            compatible = "zmk,behavior-tap-dance";
            #binding-cells = <0>;
            tapping-term-ms = <200>;
            bindings = <&skq LSHIFT>, <&kp CAPS>;
        };
    };

    conditional_layers {
        compatible = "zmk,conditional-layers";
        bt_layer {
            if-layers = <NUM FUNC>;
            then-layer = <BTL>;
        };
    };

    keymap {
        compatible = "zmk,keymap";
        default_layer {
            bindings = <
        //╭──────────┬──────────┬──────────┬──────────┬──────────╮   ╭──────────┬──────────┬──────────┬──────────┬──────────╮
        //│  Q       │  W       │  F       │  P       │  B       │   │  J       │  L       │  U       │  Y       │ FUNC     │
            &kp Q      &kp W      &kp F      &kp P      &kp B          &kp J      &kp L      &kp U      &kp Y      &mo FUNC
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│  A       │  R       │  S       │  T       │  G       │   │  M       │  N       │  E       │  I       │  O       │
            &kp A      HRML(R,         S,         T)    &kp G          &kp M      HRMR(N,         E,         I)    &kp O
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│  Z       │  X       │  C       │  D       │  V       │   │  K       │  H       │  '       │ SYM      │ BACKSPACE│
           &mt LSFT Z  &kp X      &kp C      &kp D      &kp V          &kp K      &kp H      &kp SQT    &sl SYM    &kp BSPC
        //╰──────────┴──────────┴──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┴──────────┴──────────╯
                                             &sl NAV    &kp SPACE      &tds       &sl NUM
        //                                 ╰──────────┴──────────╯   ╰──────────┴──────────╯
            >;
        };

        nav_layer {
            bindings = <
        //╭──────────┬──────────┬──────────┬──────────┬──────────╮   ╭──────────┬──────────┬──────────┬──────────┬──────────╮
        //│          │  [       │  ]       │ DELETE   │          │   │          │ DELETE   │ PAGE DN  │ PAGE UP  │          │
            &none      &kp LBKT   &kp RBKT   &kp DEL    &none          &none      &kp DEL    &kp PG_DN  &kp PG_UP  &none  
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│ ESC      │  {       │  (       │  )       │          │   │ ZOOM IN  │ LEFT     │ DOWN     │ UP       │ RIGHT    │
            &kp ESC   HRML(LBRC,      LPAR,      RPAR)  &none       &kp LC(EQUAL) &kp LARW   &kp DARW   &kp UARW   &kp RARW
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│          │          │          │  }       │          │   │ ZOOM OUT │ HOME     │ END      │ MOUSE    │          │
            &kp LSFT   &none      &none      &kp RBRC   &none       &kp LC(MINUS) &kp HOME   &kp END    &to MSE    &trans
        //╰──────────┴──────────┴──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┴──────────┴──────────╯
                                             &to 0      &trans         &trans     &kp ENTER
        //                                 ╰──────────┴──────────╯   ╰──────────┴──────────╯
            >;
        };

        num_layer {
            bindings = <
        //╭──────────┬──────────┬──────────┬──────────┬──────────╮   ╭──────────┬──────────┬──────────┬──────────┬──────────╮
        //│          │  4       │  5       │  6       │          │   │          │  *       │  <       │  >       │          │
            &none      &kp N4     &kp N5     &kp N6     &none          &none      &kp ASTRK  &kp LT     &kp GT     &trans
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│ TAB      │  1       │  2       │  3       │  ^       │   │          │  =       │  ,       │  .       │  /       │
            &kp TAB    &kp N1     &kp N2     &kp N3     &kp CARET      &none     HRMR(EQUAL,     COMMA,     DOT)   &kp FSLH
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│          │  7       │  8       │  9       │  ~       │   │          │  -       │  _       │  +       │          │
            &kp LSFT   &kp N7     &kp N8     &kp N9     &kp TILDE      &none      &kp MINUS  &kp UNDER  &kp PLUS   &trans
        //╰──────────┴──────────┴──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┴──────────┴──────────╯
                                             &kp N0     &trans         &trans     &to BASE
        //                                 ╰──────────┴──────────╯   ╰──────────┴──────────╯
            >;
        };

        sym_layer {
            bindings = <
        //╭──────────┬──────────┬──────────┬──────────┬──────────╮   ╭──────────┬──────────┬──────────┬──────────┬──────────╮
        //│          │  @       │  #       │  $       │  %       │   │          │          │          │          │          │
            &none      &kp AT     &kp HASH   &kp DLLR   &kp PRCNT      &none      &none      &none      &none      &none 
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│  `       │  !       │  ?       │  :       │  &       │   │          │          │          │          │          │
            &kp GRAVE  &kp EXCL   &kp QMARK  &kp COLON  &kp AMPS       &none      &none      &none      &none      &none 
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│          │  \       │  ;       │  "       │  |       │   │          │          │          │BASE LAYER│          │
            &none      &kp BSLH   &kp SEMI   &kp DQT    &kp PIPE       &none      &none      &none      &to BASE   &trans
        //╰──────────┴──────────┴──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┴──────────┴──────────╯
                                             &trans     &trans         &trans     &trans
        //                                 ╰──────────┴──────────╯   ╰──────────┴──────────╯
            >;
        };

        mse_layer {
            bindings = <
        //╭──────────┬──────────┬──────────┬──────────┬──────────╮   ╭──────────┬──────────┬──────────┬──────────┬──────────╮
        //│          │          │          │          │          │   │          │SCRL LEFT │SCRL DOWN │SCRL UP   │SCRL RIGHT│
            &none      &none      &none      &none      &none          &none      &kp F17    &kp F18    &kp F19    &kp F20
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│ CONTROL  │ MIDDLE   │ RIGHT    │ LEFT     │          │   │          │ MSE LEFT │ MSE DOWN │ MSE UP   │ MSE RIGHT│
            &kp LCTRL  &mkp MCLK  &mkp RCLK  &mkp LCLK  &none          &none      &kp F21    &kp F22    &kp F23    &kp F24
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│ ALT      │          │          │          │          │   │          │ LEFT     │ RIGHT    │BASE LAYER│          │
            &kp LALT   &none      &none      &none      &none          &none      &mkp LCLK  &mkp RCLK  &to BASE   &none 
        //╰──────────┴──────────┴──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┴──────────┴──────────╯
                                             &kp LGUI   &trans         &trans     &trans
        //                                 ╰──────────┴──────────╯   ╰──────────┴──────────╯
            >;
        };

        func_layer {
            bindings = <
        //╭──────────┬──────────┬──────────┬──────────┬──────────╮   ╭──────────┬────────────┬────────────┬──────────┬──────────╮
        //│ GAME     │ F4       │ F5       │ F6       │          │   │PLAY/PAUSE│ VOL DOWN   │ VOL UP     │ VOL MUTE │          │
            &to GAME   &kp F4     &kp F5     &kp F6     &none          &kp C_PP  &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE  &trans
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼────────────┼────────────┼──────────┼──────────┤
        //│ F11      │ F1       │ F2       │ F3       │BRIGHT UP │   │          │ PREV SONG  │ NEXT SONG  │          │          │
            &kp F11    &kp F1     &kp F2     &kp F3    &kp C_BRI_UP    &none      &kp C_PREV   &kp C_NEXT   &none      &none
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼────────────┼────────────┼──────────┼──────────┤
        //│ F12      │ F7       │ F8       │ F9       │BRIGHT DWN│   │          │            │            │          │          │
            &kp F12    &kp F7     &kp F8     &kp F9    &kp C_BRI_DN    &none      &none        &none        &none      &none 
        //╰──────────┴──────────┴──────────┼──────────┼──────────┤   ├──────────┼────────────┼────────────┴──────────┴──────────╯
                                             &kp F10    &trans         &trans     &trans
        //                                 ╰──────────┴──────────╯   ╰──────────┴────────────╯
            >;
        };

        game_layer {
            bindings = <
        //╭──────────┬──────────┬──────────┬──────────┬──────────╮   ╭──────────┬──────────┬──────────┬──────────┬──────────╮
        //│ ESC      │  Q       │  W       │  E       │  R       │   │  T       │  Y       │  U       │  I       │  O       │
            &kp ESC    &kp Q      &kp W      &kp E      &kp R          &kp T      &kp Y      &kp U      &kp I      &kp O
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│ SHIFT    │  A       │  S       │  D       │  F       │   │  G       │ UP       │  H       │  J       │  K       │
            &kp LSFT   &kp A      &kp S      &kp D      &kp F          &kp G      &kp UARW   &kp H      &kp J      &kp K
        //├──────────┼──────────┼──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│ CTRL     │  Z       │  X       │  C       │  V       │   │ LEFT     │ DOWN     │ RIGHT    │  B       │ BACKSPACE│
            &kp LCTRL  &kp X      &kp C      &kp D      &kp V          &kp LARW   &kp DARW   &kp RARW   &kp B      &kp BSPC
        //╰──────────┴──────────┴──────────┼──────────┼──────────┤   ├──────────┼──────────┼──────────┴──────────┴──────────╯
                                             &kp TAB    &kp SPACE      &kp ENTER  &to BASE
        //                                 ╰──────────┴──────────╯   ╰──────────┴──────────╯
            >;
        };

        bt_layer {
            bindings = <
        //╭──────────┬────────────┬────────────┬────────────┬──────────╮   ╭──────────┬──────────┬──────────┬──────────┬──────────╮
        //│          │PROFILE 4   │   RESET    │ BOOTLOADER │          │   │          │BOOTLOADER│  RESET   │          │          │
            &none     &bt BT_SEL 4  &sys_reset  &bootloader   &none          &none    &bootloader &sys_reset  &none      &trans
        //├──────────┼────────────┼────────────┼────────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│          │PROFILE 1   │PROFILE 2   │PROFILE 3   │          │   │          │          │          │          │          │
            &none     &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3  &none          &none      &none      &none      &none      &none
        //├──────────┼────────────┼────────────┼────────────┼──────────┤   ├──────────┼──────────┼──────────┼──────────┼──────────┤
        //│          │ OUT TO USB │ OUT TO BLE │ CLEAR BT   │          │   │          │          │          │          │          │
            &none     &out OUT_USB &out OUT_BLE  &bt BT_CLR   &none          &none      &none      &none      &none      &none
        //╰──────────┴────────────┴────────────┼────────────┼──────────┤   ├──────────┼──────────┼──────────┴──────────┴──────────╯
                                                &bt BT_SEL 0  &trans         &trans     &trans
        //                                     ╰────────────┴──────────╯   ╰──────────┴──────────╯
            >;
        };
    };
};