138 lines
5.1 KiB
Text
138 lines
5.1 KiB
Text
/*
|
|
* Copyright (c) 2020 The ZMK Contributors
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#include <behaviors.dtsi>
|
|
#include <dt-bindings/zmk/keys.h>
|
|
#include <dt-bindings/zmk/outputs.h>
|
|
#include <dt-bindings/zmk/bt.h>
|
|
|
|
#define QUICK_TAP_MS 125
|
|
#define TAPPING_TERM_MS 150
|
|
#define SLOW_TAPPING_TERM_MS 350
|
|
#define IDLE_TIMEOUT_MS 5000
|
|
#define REQ_IDLE_MS 150
|
|
|
|
< {
|
|
// Layer toggle
|
|
|
|
flavor = "tap-preferred";
|
|
tapping-term-ms = <TAPPING_TERM_MS>;
|
|
quick-tap-ms = <QUICK_TAP_MS>;
|
|
};
|
|
|
|
&sk {
|
|
// Sticky keys settings, One Shot Keys [QMK]
|
|
|
|
release-after-ms = <IDLE_TIMEOUT_MS>;
|
|
quick-release;
|
|
};
|
|
|
|
&caps_word {
|
|
// Allow caps word to continue even when minus or underscore are pressed.
|
|
// Also prevent mod presses from cancelling caps word.
|
|
|
|
continue-list = <
|
|
UNDERSCORE MINUS
|
|
LCTRL LALT LGUI LSHFT
|
|
RCTRL RALT RGUI RSHFT
|
|
BACKSPACE
|
|
>;
|
|
|
|
/delete-property/ ignore-modifiers;
|
|
};
|
|
|
|
/ {
|
|
behaviors {
|
|
hml: homerow_mods_left {
|
|
compatible = "zmk,behavior-hold-tap";
|
|
label = "HOMEROW_MODS_LEFT_HAND";
|
|
bindings = <&kp>, <&kp>;
|
|
|
|
#binding-cells = <2>;
|
|
tapping-term-ms = <TAPPING_TERM_MS>;
|
|
quick-tap-ms = <QUICK_TAP_MS>;
|
|
flavor = "balanced";
|
|
require-prior-idle-ms = <REQ_IDLE_MS>;
|
|
hold-trigger-key-positions = <5 6 7 8 9 19 18 17 16 15 34 25 26 35 27 28 29 37 36>;
|
|
hold-trigger-on-release;
|
|
};
|
|
hmr: homerow_mods_right {
|
|
compatible = "zmk,behavior-hold-tap";
|
|
label = "HOMEROW_MODS_RIGHT_HAND";
|
|
bindings = <&kp>, <&kp>;
|
|
|
|
#binding-cells = <2>;
|
|
tapping-term-ms = <TAPPING_TERM_MS>;
|
|
quick-tap-ms = <QUICK_TAP_MS>;
|
|
require-prior-idle-ms = <REQ_IDLE_MS>;
|
|
hold-trigger-key-positions = <0 1 2 3 4 14 13 12 11 10 11 12 13 14 20 21 22 23 24 30 31 32 33>;
|
|
flavor = "balanced";
|
|
hold-trigger-on-release;
|
|
};
|
|
ss_cw: shift_capsword {
|
|
compatible = "zmk,behavior-tap-dance";
|
|
label = "SHIFT_CAPSWORD";
|
|
#binding-cells = <0>;
|
|
bindings = <&sk LEFT_SHIFT>, <&caps_word>;
|
|
|
|
tapping-term-ms = <SLOW_TAPPING_TERM_MS>;
|
|
};
|
|
cln_scln_td: cln_scln_td {
|
|
compatible = "zmk,behavior-tap-dance";
|
|
label = "CLN_SCLN_TD";
|
|
#binding-cells = <0>;
|
|
bindings = <&kp COLON>, <&kp SEMICOLON>;
|
|
};
|
|
};
|
|
|
|
keymap {
|
|
compatible = "zmk,keymap";
|
|
|
|
base {
|
|
bindings = <
|
|
&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
|
|
&kp ESCAPE &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp RBKT &kp BSPC
|
|
&kp LSHIFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp PERIOD &kp FSLH &kp ENTER
|
|
&mo 1 &mo 2 &kp SPACE &none &mo 3 &none
|
|
>;
|
|
};
|
|
|
|
|
|
// For the german keyboard layout
|
|
special_char {
|
|
bindings = <
|
|
&kp GRAVE &kp EQUAL &none &none &none &kp LS(N5) &kp LS(N7) &kp RA(N7) &kp RA(N0) &kp RA(RBKT)
|
|
&kp TAB &none &kp LS(N2) &kp LS(MINUS) &kp LS(N1) &none &kp LS(N6) &kp LS(N0) &kp LS(N8) &kp LS(N9) &kp BSLH &kp DEL
|
|
&kp LSHIFT &kp NUBS &kp LS(NUBS) &none &none &none &kp RA(NUBS) &kp LS(N4) &kp RA(N8) &kp RA(N9) &kp RA(MINUS) &kp ENTER
|
|
&trans &none &none &none &none &none
|
|
>;
|
|
};
|
|
|
|
|
|
num_fun {
|
|
bindings = <
|
|
&kp F9 &kp F10 &kp F11 &kp F12 &none &none &kp N7 &kp N8 &kp N9 &none
|
|
&kp TAB &kp F5 &kp F6 &kp F7 &kp F8 &none &none &kp N4 &kp N5 &kp N6 &kp RBKT &kp DEL
|
|
&kp LSHIFT &kp F1 &kp F2 &kp F3 &kp F4 &none &kp N0 &kp N1 &kp N2 &kp N3 &kp FSLH &kp ENTER
|
|
&none &trans &none &none &none &kp N0
|
|
>;
|
|
};
|
|
|
|
|
|
nav_umlaut {
|
|
bindings = <
|
|
&none &none &none &none &none &none &kp LBKT &none &kp SEMI &none
|
|
&kp TAB &kp SQT &kp MINUS &none &none &none &kp LEFT &kp DOWN &kp UP &kp RIGHT &none &kp DEL
|
|
&kp LSHIFT &none &none &none &none &none &none &none &none &none &none &kp ENTER
|
|
&none &trans &none &none &none &none
|
|
>;
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|