diff options
Diffstat (limited to 'config/hanck_duo.keymap')
-rw-r--r-- | config/hanck_duo.keymap | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/config/hanck_duo.keymap b/config/hanck_duo.keymap new file mode 100644 index 0000000..7321784 --- /dev/null +++ b/config/hanck_duo.keymap @@ -0,0 +1,134 @@ +#include <behaviors.dtsi> +#include <dt-bindings/zmk/bt.h> +#include <dt-bindings/zmk/ext_power.h> +#include <dt-bindings/zmk/keys.h> +#include <dt-bindings/zmk/mouse.h> +#include <zmk-helpers/key-labels/4x12.h> + +/* + LT5 LT4 LT3 LT2 LT1 LT0 RT0 RT1 RT2 RT3 RT4 RT5 + LM5 LM4 LM3 LM2 LM1 LM0 RM0 RM1 RM2 RM3 RM4 RM5 + LB5 LB4 LB3 LB2 LB1 LB0 RB0 RB1 RB2 RB3 RB4 RB5 + LH5 LH4 LH3 LH2 LH1 LH0 RH0 RH1 RH2 RH3 RH4 RH5 +*/ + +// layers +#define default 0 +#define lower 1 +#define upper 2 +#define adjust 3 +#define nav 4 +#define num 5 +/ { + keymap { + compatible = "zmk,keymap"; + default_layer { + bindings = < + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH + &kp ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI < nav RET + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &kp LCTRL &kp LGUI &kp LALT &kp LSHFT &mo lower &kp SPACE < num SPACE &mo upper &kp RSHFT &kp RALT &kp K_APP &kp RCTRL + >; + }; + lower_layer { + bindings = < + &kp TILDE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BSLH + &kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &kp PIPE + &trans &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &trans + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &kp RGUI &trans + >; + }; + upper_layer { + bindings = < + &none &none &none &none &none &none &none &none &none &none &none &none + &none &none &none &none &none &none &none &none &none &none &none &none + &trans &none &none &none &none &none &mkp LCLK &mkp MCLK &mkp RCLK &mkp MB4 &mkp MB5 &trans + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + }; + adjust_layer { + bindings = < + &bt BT_CLR &none &none &none &none &none &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &none + &none &none &none &kp C_VOL_UP &kp C_VOL_DN &kp C_MUTE &kp C_BRI_MIN &kp C_BRI_DN &kp C_BRI_UP &kp C_BRI_MAX &none &none + &none &none &none &none &none &bootloader &bootloader &none &none &none &none &none + &trans &trans &trans &trans &trans &sys_reset &sys_reset &trans &trans &trans &kp RGUI &trans + >; + }; + nav_layer { + bindings = < + &none &none &none &none &none &none &kp K_BACK &kp PG_DN &kp PG_UP &kp K_FORWARD &none &none + &none &none &none &none &none &none &kp LEFT &kp DOWN &kp UP &kp RIGHT &none &none + &trans &none &none &none &none &none &none &none &none &none &none &trans + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &kp RGUI &trans + >; + }; + num_layer { + bindings = < + &none &kp F12 &kp F9 &kp F8 &kp F7 &none &kp FSLH &kp N7 &kp N8 &kp N9 &kp MINUS &kp BSPC + &none &kp F11 &kp F6 &kp F5 &kp F4 &none &kp STAR &kp N4 &kp N5 &kp N6 &kp PLUS &kp RET + &kp LSHFT &kp F10 &kp F3 &kp F2 &kp F1 &none &kp EQUAL &kp N1 &kp N2 &kp N3 &none &kp RSHFT + &kp LCTRL &kp LGUI &kp LALT &kp LSHFT &mo lower &trans &kp SPACE &kp N0 &kp N0 &kp DOT &none &kp RCTRL + >; + }; + }; +}; + +/ { + conditional_layers { + compatible = "zmk,conditional-layers"; + tri_layer { + if-layers = <1 2>; + then-layer = <3>; + }; + }; +}; + +/ { + behaviors { + lpar_lt: lpar_lt { compatible = "zmk,behavior-mod-morph"; #binding-cells = <0>; bindings = <&kp LPAR>, <&kp LT >; mods = <(MOD_LSFT|MOD_RSFT)>; }; + rpar_gt: rpar_gt { compatible = "zmk,behavior-mod-morph"; #binding-cells = <0>; bindings = <&kp RPAR>, <&kp GT >; mods = <(MOD_LSFT|MOD_RSFT)>; }; + /omit-if-no-ref/ td_reset: td_reset { + compatible = "zmk,behavior-tap-dance"; + #binding-cells = <0>; + tapping-term-ms = <175>; + bindings = <&sys_reset>, <&bootloader>; + }; + }; +}; + +#define COMBO2(k1,k2,a) combo_##k1##k2 { timeout-ms = <42>; key-positions = <k1 k2>; bindings = <a>; }; +#define COMBO3(k1,k2,k3,a) combo_##k1##k2##k3 { timeout-ms = <42>; key-positions = <k1 k2 k3>; bindings = <a>; }; +/ { + combos { + compatible = "zmk,combos"; + + // horizontal combos + COMBO2(LB3,LB2,&kp LC(INS)) COMBO2(LB2,LB1,&kp LS(INS)) + + COMBO2(RT1,RT2,&kp BSPC) COMBO2(RT2,RT3,&kp DEL) + COMBO2(RM1,RM2,&lpar_lt) COMBO2(RM2,RM3,&rpar_gt) COMBO2(RM3,RM4,&kp SQT) + COMBO2(RB1,RB2,&kp LBKT) COMBO2(RB2,RB3,&kp RBKT) + + COMBO3(RT5,RT4,RT3,&kp PRINTSCREEN) + + // vertical combos + COMBO2(LT5,LM5,&kp GRAVE) COMBO2(LT4,LM4,&kp EXCL ) COMBO2(LT3,LM3,&kp AT ) COMBO2(LT2,LM2,&kp HASH ) COMBO2(LT1,LM1,&kp DLLR ) COMBO2(LT0,LM0,&kp PRCNT) + COMBO2(LM3,LB3,&kp GRAVE) COMBO2(LM2,LB2,&kp BSLH ) COMBO2(LM1,LB1,&kp EQUAL) COMBO2(LM0,LB0,&kp TILDE) + + COMBO2(RT0,RM0,&kp CARET) COMBO2(RT1,RM1,&kp PLUS ) COMBO2(RT2,RM2,&kp STAR ) COMBO2(RT3,RM3,&kp AMPS ) COMBO2(RT4,RM4,&kp SQT ) + COMBO2(RM0,RB0,&kp UNDER) COMBO2(RM1,RB1,&kp MINUS) COMBO2(RM2,RB2,&kp FSLH ) COMBO2(RM3,RB3,&kp PIPE ) COMBO2(RM4,RB4,&kp EXCL ) + + COMBO3(LT5,LM5,LB5,&td_reset) + COMBO3(RT5,RM5,RB5,&td_reset) + }; +}; + +&mt { + tapping-term-ms = <175>; + flavor = "tap-preferred"; +}; + +< { + tapping-term-ms = <175>; + flavor = "tap-preferred"; +}; |