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                                        &lt MOU DEL  &kp SPACE    &lt NAV BSPC                                   &kp SL      &lt 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*/