Files
Corne/config/corne.keymap
sebastienPoussard b9b471d80d ë Ë
2023-03-12 11:37:29 +01:00

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 = <&macro_tap &kp SQT>,
<&macro_press &kp LSHFT>,
<&macro_tap &kp E>,
<&macro_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 = <&macro_tap &kp GRAVE>,
<&macro_press &kp LSHFT>,
<&macro_tap &kp E>,
<&macro_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 = <&macro_tap &kp CARET>,
<&macro_press &kp LSHFT>,
<&macro_tap &kp E>,
<&macro_release &kp LSHFT>;
)
// [ë]
ZMK_MACRO(noelmin,
wait-ms = <0>;
tap-ms = <0>;
bindings = <&macro_press &kp LSHFT>,
<&macro_tap &kp SQT>,
<&macro_release &kp LSHFT>,
<&macro_tap &kp E>;
)
// [Ë]
ZMK_MACRO(noelmaj,
wait-ms = <100>;
tap-ms = <100>;
bindings = <&macro_press &kp LSHFT>,
<&macro_tap &kp SQT>,
<&macro_tap &kp E>,
<&macro_release &kp LSHFT>;
)
// [ç] [Ç]
ZMK_MACRO(cdille,
wait-ms = <0>;
tap-ms = <0>;
bindings = <&macro_press &kp RALT>,
<&macro_tap &kp COMMA>,
<&macro_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 = <&macroeaigumin>, <&macroeaigumaj>;
mods = <(MOD_LSFT)>;
};
e_grave: e_grave {
compatible = "zmk,behavior-mod-morph";
label = "EGRAVE";
#binding-cells = <0>;
bindings = <&macroegravemin>, <&macroegravemaj>;
mods = <(MOD_LSFT)>;
};
e_circ: e_circ {
compatible = "zmk,behavior-mod-morph";
label = "ECIRC";
#binding-cells = <0>;
bindings = <&macroecirconmin>, <&macroecirconmaj>;
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 &lt 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>;
};