summary refs log tree commit diff stats
path: root/config/charybdis.keymap
blob: 2b097cb4b8bee0e0391cd48697d21627945029f2 (plain) (blame)
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
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/ext_power.h>
#include <dt-bindings/zmk/mouse.h>
#include <dt-bindings/zmk/outputs.h>

#define Base 0
#define Media 1
#define Nav 2
#define Mouse 3
#define Sym 4
#define Num 5
#define Fun 6
#define Button 7

/ {
    trackball_listener {
        compatible = "zmk,input-behavior-listener";
        device = <&vtrackball>;
        layers = <0>;
        evt-type = <INPUT_EV_REL>;
        x-input-code = <INPUT_REL_X>;
        y-input-code = <INPUT_REL_Y>;
        scale-multiplier = <1>;
        scale-divisor = <6>;
    };

    trackball_snipe_listener {
        compatible = "zmk,input-behavior-listener";   
        device = <&vtrackball>;
        layers = <7>;
        evt-type = <INPUT_EV_REL>;
        x-input-code = <INPUT_REL_X>;
        y-input-code = <INPUT_REL_Y>;
        scale-multiplier = <1>;
        scale-divisor = <16>;
    };

    trackball_scroll_listener {
        compatible = "zmk,input-behavior-listener";
        device = <&vtrackball>;
        layers = <2>;
        evt-type = <INPUT_EV_REL>;            
        x-input-code = <INPUT_REL_MISC>;
        y-input-code = <INPUT_REL_WHEEL>;
        y-invert;
        bindings = <&ib_wheel_scaler 1 8>;
    };

    ib_wheel_scaler: ib_wheel_scaler {
        compatible = "zmk,input-behavior-scaler";
        #binding-cells = <2>;
        evt-type = <INPUT_EV_REL>;
        input-code = <INPUT_REL_WHEEL>;
    };

    behaviors {
        hm: homerow_mods {
            compatible = "zmk,behavior-hold-tap";
            #binding-cells = <2>;
            flavor = "tap-preferred";
            tapping-term-ms = <240>;
            quick-tap-ms = <150>;
            bindings =
                <&kp>,
                <&kp>;
        };

        lt: layer_tap {
            compatible = "zmk,behavior-hold-tap";
            #binding-cells = <2>;
            flavor = "balanced";
            tapping-term-ms = <240>;
            quick-tap-ms = <150>;
            bindings = 
                <&mo>,
                <&kp>;
        };
    };

    chosen {
        zmk,matrix_transform = &five_column_transform;
    };

    keymap {
        compatible = "zmk,keymap";

        Base {
            bindings = <
            &kp Q       &kp W       &kp E         &kp R         &kp T                       &kp Y        &kp U        &kp I       &kp O               &kp P               
            &hm LGUI A  &hm LALT S  &hm LCTRL D   &hm LSHIFT F  &kp G                       &kp H  &hm RSHFT J  &hm RCTRL K  &hm RALT L  &hm RGUI SEMICOLON  
            &kp Z       &kp X       &kp C         &kp V         &kp B                       &kp N        &kp M    &kp COMMA     &kp DOT         &lt 7 SLASH         
                                    &lt 1 ESCAPE  &lt 2 TAB     &lt 3 SPACE       &lt 4 BACKSPACE  &lt 5 ENTER
            >;
        };

        Media {
            bindings = <
            &trans        &trans          &trans          &trans      &trans              &trans            &trans             &trans           &trans      &trans  
            &kp LGUI      &kp LALT        &kp LCTRL       &kp LSHIFT  &trans              &trans    &kp C_PREVIOUS  &kp C_VOLUME_DOWN  &kp C_VOLUME_UP  &kp C_NEXT  
            &kp C_PREV    &kp C_VOL_DN    &kp C_VOL_UP    &kp C_NEXT  &trans              &trans            &trans             &trans           &trans      &trans  
                                            &trans          &trans      &trans          &kp C_STOP  &kp C_PLAY_PAUSE
            >;
        };

        Nav {
            bindings = <
            &kp LC(Z)     &kp LC(X)   &kp LC(C)   &kp LC(V)   &kp LC(A)                     &trans     &trans         &trans       &trans       &trans  
            &kp LEFT_GUI  &kp LALT    &kp LCTRL   &kp LSHIFT  &kp SQT                     &kp CAPS   &kp LEFT       &kp DOWN       &kp UP    &kp RIGHT  
            &kp LEFT      &kp DOWN    &kp UP      &kp RIGHT   &kp DELETE                &kp INSERT   &kp HOME  &kp PAGE_DOWN  &kp PAGE_UP      &kp END  
                                      &trans      &trans      &trans                    &kp DELETE  &kp ENTER
            >;
        };

        Mouse {
            bindings = <
            &trans    &trans      &trans      &trans      &trans              &trans         &trans     &trans     &trans  &trans  
            &trans    &trans      &trans      &trans      &trans              &trans         &trans     &trans     &trans  &trans  
            &trans    &mkp LCLK   &mkp MCLK   &mkp RCLK   &trans              &trans      &mkp LCLK  &mkp MCLK  &mkp RCLK  &trans  
                                  &trans      &trans      &trans              &trans         &trans
            >;
        };

        Sym {
            bindings = <
            &kp LEFT_BRACE  &kp AMPERSAND  &kp ASTERISK          &kp LEFT_PARENTHESIS   &kp RIGHT_BRACE       &trans      &trans     &trans    &trans    &trans  
            &kp COLON       &kp DOLLAR     &kp PERCENT           &kp CARET              &kp PLUS              &trans  &kp RSHIFT  &kp RCTRL  &kp RALT  &kp RGUI  
            &kp TILDE       &kp EXCL       &kp AT                &kp HASH               &kp PIPE              &trans      &trans     &trans    &trans    &trans  
                                           &kp LEFT_PARENTHESIS  &kp RIGHT_PARENTHESIS  &kp UNDERSCORE        &trans      &trans
            >;
        };

        Num {
            bindings = <
            &kp LEFT_BRACKET  &kp NUMBER_7  &kp NUMBER_8  &kp NUMBER_9  &kp RIGHT_BRACKET       &trans      &trans     &trans    &trans    &trans  
            &kp SEMICOLON     &kp NUMBER_4  &kp NUMBER_5  &kp NUMBER_6  &kp EQUAL               &trans  &kp RSHIFT  &kp RCTRL  &kp RALT  &kp RGUI  
            &kp GRAVE         &kp NUMBER_1  &kp NUMBER_2  &kp NUMBER_3  &kp BACKSLASH           &trans      &trans     &trans    &trans    &trans  
                                            &kp SQT       &kp NUMBER_0  &kp MINUS               &trans      &trans
            >;
        };

        Fun {
            bindings = <
            &kp F12     &kp F7   &kp F8      &kp F9   &kp PRINTSCREEN          &trans      &trans     &trans    &trans    &trans  
            &kp F11     &kp F4   &kp F5      &kp F6   &kp SCROLLLOCK           &trans  &kp RSHIFT  &kp RCTRL  &kp RALT  &kp RGUI  
            &kp F10     &kp F1   &kp F2      &kp F3   &kp PAUSE_BREAK          &trans      &trans     &trans    &trans    &trans  
                                 &kp C_MENU  &kp TAB  &kp SPACE                &trans      &trans
            >;
        };

        Button {
            bindings = <
            &bt BT_CLR            &bootloader         &trans              &trans          &bt BT_SEL 0       &out OUT_TOG  &out OUT_USB   &out OUT_BLE  &bootloader    &trans  
            &kp LGUI              &kp LALT            &kp LCTRL           &kp LSHIFT      &bt BT_SEL 1             &trans    &kp RSHIFT      &kp RCTRL     &kp RALT  &kp RGUI  
            &ext_power EP_TOG     &ext_power EP_ON    &ext_power EP_OFF   &trans          &bt BT_SEL 2             &trans     &mkp LCLK      &mkp MCLK    &mkp RCLK    &trans  
                                                      &mkp LCLK           &mkp MCLK       &mkp RCLK              &mkp MB4      &mkp MB5
            >;
        };
    };
};