293 lines
9.9 KiB
Plaintext
293 lines
9.9 KiB
Plaintext
/*
|
|
* Copyright (c) 2020 The ZMK Contributors
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#include <behaviors.dtsi>
|
|
#include <dt-bindings/zmk/keys.h>
|
|
#include <dt-bindings/zmk/bt.h>
|
|
|
|
// layers definition
|
|
#define DEFAULT 0
|
|
#define SYMBOLE 1
|
|
#define NAVIGATION 2
|
|
#define FUNCTION 3
|
|
|
|
/* ======
|
|
* MACROS
|
|
* ======
|
|
*/
|
|
|
|
/ {
|
|
macros {
|
|
// ['] or ["] followed by a space for QWERTY intl
|
|
ZMK_MACRO(apostrophe,
|
|
wait-ms = <0>;
|
|
tap-ms = <0>;
|
|
bindings = <&kp SQT &kp SPACE>;
|
|
)
|
|
// [`] or [~] followed by a space for QWERTY intl
|
|
ZMK_MACRO(tilde,
|
|
wait-ms = <0>;
|
|
tap-ms = <0>;
|
|
bindings = <&kp GRAVE &kp SPACE>;
|
|
)
|
|
// [é]
|
|
ZMK_MACRO(macroeaigumin,
|
|
wait-ms = <0>;
|
|
tap-ms = <0>;
|
|
bindings = <&kp SQT &kp E>;
|
|
)
|
|
// [É]
|
|
ZMK_MACRO(macroeaigumaj,
|
|
wait-ms = <30>;
|
|
tap-ms = <30>;
|
|
bindings = <¯o_tap &kp SQT>,
|
|
<¯o_press &kp LSHFT>,
|
|
<¯o_tap &kp E>,
|
|
<¯o_release &kp LSHFT>;
|
|
)
|
|
// [è]
|
|
ZMK_MACRO(macroegravemin,
|
|
wait-ms = <0>;
|
|
tap-ms = <0>;
|
|
bindings = <&kp GRAVE &kp E>;
|
|
)
|
|
// [È]
|
|
ZMK_MACRO(macroegravemaj,
|
|
wait-ms = <30>;
|
|
tap-ms = <30>;
|
|
bindings = <¯o_tap &kp GRAVE>,
|
|
<¯o_press &kp LSHFT>,
|
|
<¯o_tap &kp E>,
|
|
<¯o_release &kp LSHFT>;
|
|
)
|
|
// [ê]
|
|
ZMK_MACRO(macroecirconmin,
|
|
wait-ms = <0>;
|
|
tap-ms = <0>;
|
|
bindings = <&kp CARET &kp E>;
|
|
)
|
|
// [Ê]
|
|
ZMK_MACRO(macroecirconmaj,
|
|
wait-ms = <100>;
|
|
tap-ms = <100>;
|
|
bindings = <¯o_tap &kp CARET>,
|
|
<¯o_press &kp LSHFT>,
|
|
<¯o_tap &kp E>,
|
|
<¯o_release &kp LSHFT>;
|
|
)
|
|
// [ë]
|
|
ZMK_MACRO(noelmin,
|
|
wait-ms = <0>;
|
|
tap-ms = <0>;
|
|
bindings = <¯o_press &kp LSHFT>,
|
|
<¯o_tap &kp SQT>,
|
|
<¯o_release &kp LSHFT>,
|
|
<¯o_tap &kp E>;
|
|
)
|
|
// [Ë]
|
|
ZMK_MACRO(noelmaj,
|
|
wait-ms = <100>;
|
|
tap-ms = <100>;
|
|
bindings = <¯o_press &kp LSHFT>,
|
|
<¯o_tap &kp SQT>,
|
|
<¯o_tap &kp E>,
|
|
<¯o_release &kp LSHFT>;
|
|
)
|
|
// [ç] [Ç]
|
|
ZMK_MACRO(cdille,
|
|
wait-ms = <0>;
|
|
tap-ms = <0>;
|
|
bindings = <¯o_press &kp RALT>,
|
|
<¯o_tap &kp COMMA>,
|
|
<¯o_release &kp RALT>;
|
|
)
|
|
};
|
|
/* ======
|
|
* MODTAP
|
|
* ======
|
|
*/
|
|
|
|
|
|
behaviors {
|
|
// quick tap for home raw ALT with quick-tab to prevent accident activation
|
|
gqt: global-quick-tap {
|
|
compatible = "zmk,behavior-hold-tap";
|
|
label = "GLOBAL_QUICK_TAP";
|
|
#binding-cells = <2>;
|
|
flavor = "tap-preferred";
|
|
tapping-term-ms = <200>;
|
|
quick-tap-ms = <125>;
|
|
global-quick-tap;
|
|
bindings = <&kp>, <&kp>;
|
|
};
|
|
// call macro apostrophe ['] and ["] or if hold call a layout
|
|
apo: apo {
|
|
compatible = "zmk,behavior-hold-tap";
|
|
label = "APO";
|
|
#binding-cells = <2>;
|
|
flavor = "tap-preferred";
|
|
tapping-term-ms = <200>;
|
|
quick-tap-ms = <125>;
|
|
global-quick-tap;
|
|
bindings = <&mo>, <&apostrophe>;
|
|
};
|
|
|
|
/* ========
|
|
* MODMORPH
|
|
* ========
|
|
*/
|
|
// [é] [É]
|
|
e_aigu: e_aigu {
|
|
compatible = "zmk,behavior-mod-morph";
|
|
label = "EAIGU";
|
|
#binding-cells = <0>;
|
|
bindings = <¯oeaigumin>, <¯oeaigumaj>;
|
|
mods = <(MOD_LSFT)>;
|
|
};
|
|
e_grave: e_grave {
|
|
compatible = "zmk,behavior-mod-morph";
|
|
label = "EGRAVE";
|
|
#binding-cells = <0>;
|
|
bindings = <¯oegravemin>, <¯oegravemaj>;
|
|
mods = <(MOD_LSFT)>;
|
|
};
|
|
e_circ: e_circ {
|
|
compatible = "zmk,behavior-mod-morph";
|
|
label = "ECIRC";
|
|
#binding-cells = <0>;
|
|
bindings = <¯oecirconmin>, <¯oecirconmaj>;
|
|
mods = <(MOD_LSFT)>;
|
|
};
|
|
noel: noel {
|
|
compatible = "zmk,behavior-mod-morph";
|
|
label = "NOEL";
|
|
#binding-cells = <0>;
|
|
bindings = <&noelmin>, <&noelmaj>;
|
|
mods = <(MOD_LSFT)>;
|
|
};
|
|
};
|
|
/* ======
|
|
* COMBOS
|
|
* ======
|
|
*/
|
|
combos {
|
|
compatible = "zmk,combos";
|
|
combo_eaigu {
|
|
timeout-ms = <30>;
|
|
key-positions = <19 20>;
|
|
bindings = <&e_aigu>;
|
|
};
|
|
combo_egrv {
|
|
timeout-ms = <30>;
|
|
key-positions = <20 21>;
|
|
bindings = <&e_grave>;
|
|
};
|
|
combo_ecircon {
|
|
timeout-ms = <30>;
|
|
key-positions = <19 20 21>;
|
|
bindings = <&e_circ>;
|
|
};
|
|
combo_cdille {
|
|
timeout-ms = <30>;
|
|
key-positions = <26 27>;
|
|
bindings = <&cdille>;
|
|
};
|
|
combo_noel {
|
|
timeout-ms = <30>;
|
|
key-positions = <19 21>;
|
|
bindings = <&noel>;
|
|
};
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
/* ====================
|
|
* MOD TAP MODIFICATION
|
|
* ====================
|
|
*/
|
|
|
|
|
|
&mt {
|
|
tapping-term-ms = <400>;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/* =================
|
|
* KEYMAP DEFINITION
|
|
* =================
|
|
*/
|
|
|
|
/ {
|
|
keymap {
|
|
compatible = "zmk,keymap";
|
|
|
|
DEFAULT {
|
|
// -----------------------------------------------------------------------------------------
|
|
// | - _ | Q | W | F | P | B | | J | L | U | Y | ; | + = |
|
|
// | TAB | A | R | S/ALT | T | G | | M | N | E | I | O | GUI |
|
|
// |ESC/SHT| Z | X | C | D | V | | K | H | ,< | .> | /? | ~ ` |
|
|
// |ENT/CTL| SPC | BCK | | SYM | SFT |'"/FN|
|
|
bindings = <
|
|
&kp MINUS &kp Q &kp W &kp F &kp P &bootloader &bootloader &kp L &kp U &kp Y &kp SEMI &kp EQUAL
|
|
&kp TAB &kp A &kp R &gqt LALT S &kp T &kp G &kp M &kp N &kp E &kp I &kp O &kp LGUI
|
|
&mt LSHFT ESC &kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH &tilde
|
|
&mt LCTRL RET < 2 SPACE &kp BSPC &mo 1 &kp LSHFT &apo 3 0
|
|
>;
|
|
};
|
|
SYMBOLE {
|
|
// -----------------------------------------------------------------------------------------
|
|
// | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
|
|
// | TAB | ! | @ | # | $ | % | | € | ^ | & | * | | | |
|
|
// | | ( | ) | [ | ] | | | | { | } | | \ | |
|
|
// |ENT/CTL| SPC | BCK | | NAV | | |
|
|
bindings = <
|
|
&none &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &none
|
|
&trans &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp RA(N5) &kp CARET &kp AMPS &kp STAR &kp PIPE &none
|
|
&none &kp LPAR &kp RPAR &kp LBKT &kp RBKT &none &none &kp LBRC &kp RBRC &none &kp BSLH &none
|
|
&trans &trans &trans &none &mo 2 &none
|
|
>;
|
|
};
|
|
|
|
NAVIGATION {
|
|
// --------------------------------------------------------------------------------------------------------------------
|
|
// | | Vol-| ⇧ | ↑ | ⇩ |Vol+ | | |Contr-| |Contr+| | |
|
|
// | |HOME | ← | ↓ | → | END | | | Vol- | mute| Vol+ | | |
|
|
// | DEL | |CTL+←| mute|CTL+→| | | | prev | play| next | | |
|
|
// | | | | | | | |
|
|
bindings = <
|
|
&none &kp C_VOL_DN &kp PG_UP &kp UP &kp PG_DN &kp C_VOL_UP &none &kp C_BRI_DN &none &kp C_BRI_UP &none &none
|
|
&none &kp HOME &kp LEFT &kp DOWN &kp RIGHT &kp END &none &kp C_VOL_DN &kp C_MUTE &kp C_VOL_UP &none &none
|
|
&kp DEL &none &kp LC(LEFT) &kp C_MUTE &kp LC(RIGHT) &none &none &kp C_PREV &kp C_PP &kp C_NEXT &none &none
|
|
&none &none &none &none &none &none
|
|
>;
|
|
};
|
|
|
|
FUNCTION {
|
|
// -----------------------------------------------------------------------------------------
|
|
// | | F1 | F2 | F3 | F4 | | | | | | | | |
|
|
// | | F5 | F6 | F7 | F8 | | | | | ALT | | | GUI |
|
|
// | | F9 | F10 | F11 | F12 | | | | | | | | |
|
|
// | CTRL| | | | | SHFT| |
|
|
bindings = <
|
|
&none &kp F1 &kp F2 &kp F3 &kp F4 &none &none &none &none &none &none &none
|
|
&none &kp F5 &kp F6 &kp F7 &kp F8 &none &none &none &kp LALT &none &none &kp LGUI
|
|
&none &kp F9 &kp F10 &kp F11 &kp F12 &none &none &none &none &none &none &none
|
|
&kp LCTRL &none &none &none &kp LSHFT &none
|
|
>;
|
|
};
|
|
};
|
|
};
|
|
|
|
// redefine cs-gpios because ultralignt corne from pete do not use the nice!view recommandation pin
|
|
&nice_view_spi {
|
|
cs-gpios = <&pro_micro 0 GPIO_ACTIVE_HIGH>;
|
|
};
|