101 lines
9.3 KiB
C++
101 lines
9.3 KiB
C++
#include <behaviors.dtsi>
|
|
#include <dt-bindings/zmk/keys.h>
|
|
|
|
#include "../zmk-nodefree-config/helper.h"
|
|
#include "../zmk-nodefree-config/keypos_def/keypos_36keys.h"
|
|
#include "../zmk-nodefree-config/international_chars/german.dtsi"
|
|
|
|
/* layer and key shortcuts */
|
|
|
|
#define ___ &trans
|
|
|
|
#define DEF 0
|
|
#define NAV 1
|
|
#define NUM 2
|
|
|
|
/* custom behaviors */
|
|
|
|
// homerow mods
|
|
ZMK_BEHAVIOR(hrm, hold_tap,
|
|
flavor = "balanced";
|
|
tapping-term-ms = <280>;
|
|
quick-tap-ms = <125>;
|
|
global-quick-tap;
|
|
bindings = <&kp>, <&kp>;
|
|
)
|
|
|
|
// tap: sticky shift | double tap: capsword
|
|
ZMK_BEHAVIOR(ss_cw, tap_dance,
|
|
tapping-term-ms = <200>;
|
|
bindings = <&sk LSHFT>, <&caps_word>;
|
|
)
|
|
|
|
// tap: backspace | shift + tap: delete | hold: num layer
|
|
ZMK_BEHAVIOR(bs_del_num, mod_morph,
|
|
bindings = << NUM BSPC>, <&kp DEL>;
|
|
mods = <(MOD_LSFT|MOD_RSFT)>;
|
|
)
|
|
|
|
// windows sleep macro
|
|
ZMK_BEHAVIOR(win_sleep, macro,
|
|
wait-ms = <100>;
|
|
tap-ms = <5>;
|
|
bindings = <&kp LG(X) &kp U &kp S>;
|
|
)
|
|
|
|
/* combos */
|
|
|
|
// use timeout of 40ms (omitting the option yields default of 30ms)
|
|
#define COMBO_TERM 40
|
|
|
|
// combo for our custom sleep behavior from above, only active on NAV layer
|
|
ZMK_COMBO(combo_sleep, &win_sleep, RT3 RT4, NAV)
|
|
|
|
// copy and paste combos, active on all layers
|
|
ZMK_COMBO(combo_copy, &kp LC(C), LB2 LB3, ALL)
|
|
ZMK_COMBO(combo_paste, &kp LC(V), LB1 LB2, ALL)
|
|
|
|
// german umlauts on right thumb + letter, only active on default layer
|
|
ZMK_COMBO(combo_ae, &ae, RH1 LM4, DEF)
|
|
ZMK_COMBO(combo_oe, &oe, RH1 RM4, DEF)
|
|
ZMK_COMBO(combo_ue, &oe, RH1 RT2, DEF)
|
|
ZMK_COMBO(combo_eszett, &eszett, RH1 LM2, DEF)
|
|
|
|
/* keymap */
|
|
|
|
ZMK_LAYER(default_layer,
|
|
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
|
&kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp SQT
|
|
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
&hrm LGUI A &hrm LALT R &hrm LCTRL S &hrm LSHFT T &kp G &kp M &hrm RSHFT N &hrm LCTRL E &hrm LALT I &hrm LGUI O
|
|
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
&kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp SEMI
|
|
// ╰─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
&kp ESC < NAV SPACE &kp TAB &kp RET &ss_cw &bs_del_num
|
|
// ╰─────────────┴──── ────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯
|
|
)
|
|
|
|
ZMK_LAYER(nav_layer,
|
|
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
|
___ ___ ___ ___ ___ &kp PG_UP &kp HOME &kp UP &kp END &kp INS
|
|
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
&sk LGUI &sk LALT &sk LCTRL &sk LSHFT ___ &kp PG_DN &kp LEFT &kp DOWN &kp RIGHT &kp DEL
|
|
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
___ ___ ___ ___ ___ ___ &kp LC(X) &kp LC(INS) &kp LS(INS) ___
|
|
// ╰─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
___ ___ ___ ___ ___ ___
|
|
// ╰─────────────┴──── ────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯
|
|
)
|
|
|
|
ZMK_LAYER(num_layer,
|
|
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
|
&kp ESC &kp N7 &kp N8 &kp N9 &kp STAR ___ ___ ___ ___ ___
|
|
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
&kp TAB &kp N4 &kp N5 &kp N6 &kp PLUS ___ &sk RSHFT &sk LCTRL &sk LALT &sk LGUI
|
|
// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
&kp RET &kp N1 &kp N2 &kp N3 &kp FSLH ___ ___ ___ ___ ___
|
|
// ╰─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
|
|
&kp DOT &kp N0 &kp MINUS ___ ___ ___
|
|
// ╰─────────────┴──── ────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯
|
|
)
|
|
|