main
1#include <behaviors/mouse_keys.dtsi>
2#include <dt-bindings/zmk/mouse.h>
3#include <behaviors.dtsi>
4#include <dt-bindings/zmk/bt.h>
5#include <dt-bindings/zmk/keys.h>
6#include <dt-bindings/zmk/outputs.h>
7
8#include "constants.h"
9#define HOST_OS LINUX
10
11#include "zmk-helpers/helper.h"
12#include "zmk-helpers/unicode-chars/french.dtsi"
13#include "combos.dtsi"
14#include "leader.dtsi"
15#include "numword.dtsi"
16#include "hold-tap.dtsi"
17#include "mod-morph.dtsi"
18#include "mouse.dtsi"
19
20/* KEY POSITIONS (Keyball44)
21
22 ╭──────────────────────────────╮ ╭──────────────────────────────╮
23 │ 0 1 2 3 4 5 │ │ 6 7 8 9 10 11 │
24 │ 12 13 14 15 16 17 │ │ 18 19 20 21 22 23 │
25 │ 24 25 26 27 28 29 │ │ 30 31 32 33 34 35 │
26 ╰────╮ 36 37 38 39 40 │ │ 41 42 43 ╭─────────╯
27 ╰────────────────────────╯ ╰───────────────────╯
28 Left thumb: 36=LGUI, 37=LALT, 38=ESC/MOU, 39=SPC, 40=TAB/NAV
29 Right thumb: 41=ENTER, 42=BSPC/SYM, trackball, 43=DEL
30*/
31
32< {
33 tapping-term-ms = <240>;
34 flavor = "balanced";
35 quick-tap-ms = <150>;
36};
37
38&mt {
39 tapping-term-ms = <200>;
40 flavor = "tap-preferred";
41 quick-tap-ms = <150>;
42};
43
44&caps_word { continue-list = <UNDERSCORE MINUS>; };
45
46/ {
47 keymap {
48 compatible = "zmk,keymap";
49
50 // 0: Bépo
51 Bepo_layer {
52 label = "Bépo";
53 bindings = <
54// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
55 &kp TAB &b_pipe &kp EACUT &p_amp &kp O &AGRA E &car_excl &kp V &kp D &kp L &kp J &kp Z
56// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
57 &smart_num NUM NUM &hml GL A &hml AL U &hml SL I &cl_e_euro &hyp_com_smc &hmr HL C &hmr CR T &hmr SR S &hmr AR R &hmr GL N &kp M
58// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
59 &kp GRAVE &AGRA A &kp Y &kp X &dot_col &kp K &sqt_qma &kp Q &kp G &kp H &kp F &kp W
60// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮ ╭───────────┼─────────────╮ ╭────────────╯
61 &kp LGUI &kp LALT < MOU DEL &kp SPACE < NAV BSPC < SYM RET &kp AR &kp DEL
62// ╰───────┴──────────┴───────────┴────────────┴────────────╯ ╰───────────┴─────────────╯ ╰────────────╯
63 >;
64 };
65
66 // 1: ErgoL
67 ErgoL_layer {
68 label = "ErgoL";
69 bindings = <
70// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
71 &kp TAB &kp Q &kp C &kp O &kp P &kp W &kp J &kp M &kp D &kp EXCL &kp Y &kp LBKT
72// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
73 &kp EQUAL &hml GL A &hml AL S &hml SL E &hml CL N &kp F &kp L &hmr CR R &hmr SR T &hmr AR I &hmr GL U &kp SQT
74// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
75 &kp GRAVE &kp Z &kp X &min_qma &kp V &kp B &dot_col &kp H &kp G &com_smc &kp K &kp RBKT
76// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮ ╭───────────┼─────────────╮ ╭────────────╯
77 ___ ___ ___ ___ ___ ___ ___ ___
78// ╰───────┴──────────┴───────────┴────────────┴────────────╯ ╰───────────┴─────────────╯ ╰────────────╯
79 >;
80 };
81
82 // 2: Qwerty
83 Qwerty_layer {
84 label = "QWRT";
85 bindings = <
86// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
87 &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT
88// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
89 &kp EQUAL &hml GL A &hml AL S &hml SL D &hml CL F &kp G &kp H &hmr CR J &hmr SR K &hmr AR L &hmr GL SEMI &kp SQT
90// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
91 &kp GRAVE &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RBKT
92// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮ ╭───────────┼─────────────╮ ╭────────────╯
93 ___ ___ ___ ___ ___ ___ ___ ___
94// ╰───────┴──────────┴───────────┴────────────┴────────────╯ ╰───────────┴─────────────╯ ╰────────────╯
95 >;
96 };
97
98 // 3: Accents
99 Accents_layer {
100 label = "Acc";
101 bindings = <
102// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
103 XXX &kp AE &AIGU I &AGRA I &CIRC I &TREM I &TREM O &CIRC O &AGRA O &AIGU O XXX &kp DQT
104// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
105 &kp GRAVE &kp OE &AIGU E &AGRA E &CIRC E &TREM E &TREM A &CIRC A &AGRA A &AIGU A &kp NTIL &kp SQT
106// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
107 XXX XXX XXX XXX XXX XXX &TREM U &CIRC U &AGRA U &AIGU U &kp CDIL &kp CARET
108// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮ ╭───────────┼─────────────╮ ╭────────────╯
109 ___ ___ ___ ___ ___ ___ ___ ___
110// ╰───────┴──────────┴───────────┴────────────┴────────────╯ ╰───────────┴─────────────╯ ╰────────────╯
111 >;
112 };
113
114 // 4: Symbols
115 Symbols_layer {
116 label = "Sym";
117 bindings = <
118// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
119 &kp BSLH &AGRA SPACE &kp LT &kp GT &kp MINUS &kp PIPE &kp CARET &kp LBRC &kp RBRC &kp DLLR &CIRC SPACE XXX
120// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
121 XXX &kp EXCL &hml AL STAR &hml SL FSLH &hml CL EQUAL &kp AMPS &kp HASH &hmr CR LPAR &hmr SR RPAR &hmr AR SEMI &TREM SPACE XXX
122// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
123 XXX &kp TILDE &kp PLUS &kp LBKT &kp RBKT &kp PRCNT &kp AT &kp COLON &kp COMMA &kp DOT &AIGU SPACE XXX
124// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮ ╭───────────┼─────────────╮ ╭────────────╯
125 ___ ___ ___ ___ ___ ___ ___ ___
126// ╰───────┴──────────┴───────────┴────────────┴────────────╯ ╰───────────┴─────────────╯ ╰────────────╯
127 >;
128 };
129
130 // 5: Navigation
131 Nav_layer {
132 label = "Nav";
133 bindings = <
134// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
135 &out OUT_TOG XXX XXX XXX XXX &bt BT_CLR &kp PRINTSCREEN &kp HOME &kp UP &kp END &kp PG_UP XXX
136// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
137 XXX &kp GL &kp C_PREV &kp C_PP &kp C_NEXT XXX XXX &kp LEFT &kp DOWN &kp RIGHT &kp PG_DN XXX
138// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
139 XXX &bt BT_PRV &bt BT_NXT XXX XXX XXX XXX XXX XXX XXX XXX XXX
140// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮ ╭───────────┼─────────────╮ ╭────────────╯
141 ___ ___ ___ ___ ___ ___ ___ ___
142// ╰───────┴──────────┴───────────┴────────────┴────────────╯ ╰───────────┴─────────────╯ ╰────────────╯
143 >;
144 };
145
146 // 6: Numbers
147 Numbers_layer {
148 label = "Num";
149 bindings = <
150// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
151 XXX &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp MATH_1_4 &kp N7 &kp N8 &kp N9 &kp STAR &kp SLASH
152// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
153 XXX &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp MATH_1_2 &kp N4 &kp N5 &kp N6 &kp MINUS &kp PLUS
154// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
155 XXX &kp F11 &kp F12 &kp F13 &kp F14 &kp F15 &kp MATH_3_4 &kp N1 &kp N2 &kp N3 &kp DOT &kp COMMA
156// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮ ╭───────────┼─────────────╮ ╭────────────╯
157 ___ ___ ___ ___ ___ ___ ___ &kp N0
158// ╰───────┴──────────┴───────────┴────────────┴────────────╯ ╰───────────┴─────────────╯ ╰────────────╯
159 >;
160 };
161
162 // 7: Mouse (auto-activated on trackball movement, 1000ms timeout)
163 // Trackball = cursor movement. This layer provides clicks and scroll.
164 Mouse_layer {
165 label = "Mouse";
166 bindings = <
167// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
168 XXX XXX XXX &mwh_up XXX XXX XXX XXX XXX XXX XXX XXX
169// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
170 XXX XXX &mwh_lf &mwh_dn &mwh_rg XXX XXX &mkp LCLK &mkp RCLK &mkp MCLK XXX XXX
171// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
172 XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
173// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮ ╭───────────┼─────────────╮ ╭────────────╯
174 XXX XXX XXX &mkp LCLK &mkp RCLK &mkp LCLK &mkp RCLK &mkp MCLK
175// ╰───────┴──────────┴───────────┴────────────┴────────────╯ ╰───────────┴─────────────╯ ╰────────────╯
176 >;
177 };
178 };
179};
180
181/*
182Local Variables:
183mode: c
184End:
185*/