main
1#include <dt-bindings/zmk/mouse.h>
2#include <input/processors.dtsi>
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#include <dt-bindings/zmk/pointing.h>
8#include <dt-bindings/zmk/rgb.h>
9
10#include "constants.h"
11#define HOST_OS LINUX // Needed for unicode international_chars
12
13#include "zmk-helpers/helper.h"
14#include "zmk-helpers/key-labels/eyelash42.h"
15#include "zmk-helpers/unicode-chars/currency.dtsi"
16#include "zmk-helpers/unicode-chars/french.dtsi"
17#include "combos.dtsi"
18#include "leader.dtsi"
19#include "numword.dtsi"
20#include "hold-tap.dtsi"
21#include "mod-morph.dtsi"
22#include "mouse.dtsi"
23
24#define ZMK_MOUSE_DEFAULT_MOVE_VAL 1200 // 600
25#define ZMK_MOUSE_DEFAULT_SCRL_VAL 20 // 10
26#define IDLE_MS 125
27
28
29// 0: Bépo
30// This is an "adaptation" of the bépo layout (https://bepo.fr/wiki/Accueil)
31// There is some difference
32// - No Ê or Ç keys, we don't have enough room
33// - Not all RIGHT_ALT and RIGHT_ALT+SHIFT are available, as those might be accessed from a different layer instead, and some are very hard to do, like `…`
34// - It works if the layout on the system (at least for that keyboard) is US_intl 😇. This is common enough (and available everywhere, Linux, Windows, OSX, Android, …)
35// - TODO go to accent layer (and back)
36ZMK_LAYER(Bepo,
37// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
38 &kp TAB &b_pipe &kp EACUT &p_amp &kp O &AGRA E &kp UP &car_excl &kp V &kp D &kp L &kp J &kp Z
39// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
40 &smart_num NUM NUM &hml GL A &hml AL U &hml SL I &cl_e_euro &hyp_com_smc &kp LEFT &kp RET &kp RIGHT &hmr HL C &hmr CR T &hmr SR S &hmr AR R &hmr GL N &kp M
41// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
42 &kp GRAVE &AGRA A &kp Y &kp X &dot_col &kp K &key_repeat &kp DOWN &sqt_qma &kp Q &kp G &kp H &kp F &kp W
43// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
44 < MOU DEL &kp SPACE < NAV BSPC &kp SL < SYM RET &kp AR
45// ╰───────────┴────────────┴────────────╯ ╰───────────┴─────────────┴─────────────╯
46 , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
47)
48
49// 1: ErgoL
50// This is an "adaptation" of the ergol layout (https://ergol.org/claviers/compacts/#kbd_3x6)
51ZMK_LAYER(ErgoL,
52// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
53 &kp TAB &kp Q &kp C &kp O &kp P &kp W &kp UP &kp J &kp M &kp D &kp EXCL &kp Y &kp LBKT
54// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
55 &kp EQUAL &hml GL A &hml AL S &hml SL E &hml CL N &kp F &kp LEFT &kp RET &kp RIGHT &kp L &hmr CR R &hmr SR T &hmr AR I &hmr GL U &kp SQT
56// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
57 &kp GRAVE &kp Z &kp X &min_qma &kp V &kp B &key_repeat &kp DOWN &dot_col &kp H &kp G &com_smc &kp K &kp RBKT
58// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
59 ___ ___ ___ ___ ___ ___
60// ╰───────────┴────────────┴────────────╯ ╰───────────┴─────────────┴─────────────╯
61 , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
62)
63
64// 2: Qwerty
65ZMK_LAYER(Qwerty,
66// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
67 &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp UP &kp Y &kp U &kp I &kp O &kp P &kp LBKT
68// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
69 &kp EQUAL &hml GL A &hml AL S &hml SL D &hml CL F &kp G &kp LEFT &kp RET &kp RIGHT &kp H &hmr CR J &hmr SR K &hmr AR L &hmr GL SEMI &kp SQT
70// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
71 &kp GRAVE &kp Z &kp X &kp C &kp V &kp B &key_repeat &kp DOWN &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RBKT
72// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
73 ___ ___ ___ ___ ___ ___
74// ╰───────────┴────────────┴────────────╯ ╰───────────┴─────────────┴─────────────╯
75 , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
76)
77
78// 3: Accents
79// Â À Ê É È Ê Î Ê Ô Ê Û Ù Ê Æ Ç
80ZMK_LAYER(Accents,
81// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
82 XXX &kp AE &AIGU I &AGRA I &CIRC I &TREM I &kp UP &TREM O &CIRC O &AGRA O &AIGU O XXX &kp DQT
83// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
84 &kp GRAVE &kp OE &AIGU E &AGRA E &CIRC E &TREM E &kp LEFT &kp RET &kp RIGHT &TREM A &CIRC A &AGRA A &AIGU A &kp NTIL &kp SQT
85// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
86 XXX XXX XXX XXX XXX XXX &kp C_MUTE &kp DOWN &TREM U &CIRC U &AGRA U &AIGU U &kp CDIL &kp CARET
87// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
88 ___ ___ ___ ___ ___ ___
89// ╰───────────┴────────────┴────────────╯ ╰───────────┴─────────────┴─────────────╯
90 , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
91)
92
93// 4: SYMBOLS
94ZMK_LAYER(Symbols,
95// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
96 &kp BSLH &AGRA SPACE &kp LT &kp GT &kp MINUS &kp PIPE &kp UP &kp CARET &kp LBRC &kp RBRC &kp DLLR &CIRC SPACE XXX
97// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
98 XXX &kp EXCL &hml AL STAR &hml SL FSLH &hml CL EQUAL &kp AMPS &kp LEFT &kp RET &kp RIGHT &kp HASH &hmr CR LPAR &hmr SR RPAR &hmr AR SEMI &TREM SPACE XXX
99// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
100 XXX &kp TILDE &kp PLUS &kp LBKT &kp RBKT &kp PRCNT &kp C_MUTE &kp DOWN &kp AT &kp COLON &kp COMMA &kp DOT &AIGU SPACE XXX
101// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
102 ___ ___ ___ ___ ___ ___
103// ╰───────────┴────────────┴────────────╯ ╰───────────┴─────────────┴─────────────╯
104 , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
105)
106
107// 5: Navigation
108ZMK_LAYER(Nav,
109// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
110 &out OUT_TOG XXX XXX XXX XXX &bt BT_CLR &mmv_up &kp PRINTSCREEN &kp HOME &kp UP &kp END &kp PG_UP XXX
111// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
112 XXX &kp GL &kp C_PREV &kp C_PP &kp C_NEXT XXX &mmv_lf &mkp_lf &mmv_rg XXX &kp LEFT &kp DOWN &kp RIGHT &kp PG_DN XXX
113// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
114 XXX &bt BT_PRV &bt BT_NXT &rgb_ug RGB_TOG &rgb_ug RGB_EFF &rgb_ug RGB_COLOR_HSB(205, 66, 57) &kp C_MUTE &mmv_dn XXX XXX XXX XXX XXX XXX
115// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
116 ___ ___ ___ ___ ___ ___
117// ╰───────────┴────────────┴────────────╯ ╰───────────┴─────────────┴─────────────╯
118 , &inc_dec_kp C_BRI_INC C_BRI_DEC
119)
120
121// 6: Numbers
122ZMK_LAYER(Numbers,
123// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
124 XXX &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp UP &kp MATH_1_4 &kp N7 &kp N8 &kp N9 &kp STAR &kp SLASH
125// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
126 XXX &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp LEFT &kp RET &kp RIGHT &kp MATH_1_2 &kp N4 &kp N5 &kp N6 &kp MINUS &kp PLUS
127// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
128 XXX &kp F11 &kp F12 &kp F13 &kp F14 &kp F15 XXX &kp DOWN &kp MATH_3_4 &kp N1 &kp N2 &kp N3 &kp DOT &kp COMMA
129// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
130 ___ ___ ___ ___ ___ &kp N0
131// ╰───────────┴────────────┴────────────╯ ╰───────────┴─────────────┴─────────────╯
132 , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
133)
134
135// 7: Mouse
136ZMK_LAYER(Mouse,
137// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
138 XXX XXX XXX &mwh_up XXX XXX &kp UP XXX XXX &mmv_up XXX XXX XXX
139// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
140 XXX XXX &mwh_lf &mwh_dn &mwh_rg XXX &kp LEFT &kp RET &kp RIGHT XXX &mmv_lf &mmv_dn &mmv_rg XXX XXX
141// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
142 XXX XXX XXX XXX XXX XXX XXX &kp DOWN XXX XXX XXX XXX XXX XXX
143// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
144 XXX XXX XXX &mkp_lf &mkp_rg &mkp_md
145// ╰───────────┴────────────┴────────────╯ ╰───────────┴─────────────┴─────────────╯
146 , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
147)
148/*
149
150/*
151Local Variables:
152mode: c
153End:
154*/