diff options
Diffstat (limited to 'config/includes/combos.dtsi')
-rw-r--r-- | config/includes/combos.dtsi | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/config/includes/combos.dtsi b/config/includes/combos.dtsi new file mode 100644 index 0000000..f24cffb --- /dev/null +++ b/config/includes/combos.dtsi @@ -0,0 +1,183 @@ +#define COMBO_TERM_FAST 35 +#define COMBO_TERM_SLOW 40 +#define COMBO_PRIOR_IDLE 100 + +/ { + combos { + compatible = "zmk,combos"; + + combo_bracket_v_round_l { + timeout-ms = <COMBO_TERM_FAST>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LT1 LM1>; + layers = <BASE BASE_QWERTY SYM NUM NUM_WORD>; + bindings = <&kp LPAR>; + }; + + combo_bracket_v_round_r { + timeout-ms = <COMBO_TERM_FAST>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <RT1 RM1>; + layers = <BASE BASE_QWERTY SYM NUM NUM_WORD>; + bindings = <&kp RPAR>; + }; + + combo_bracket_v_square_l { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LT2 LM2>; + layers = <BASE BASE_QWERTY SYM NUM NUM_WORD>; + bindings = <&kp LBKT>; + }; + + combo_bracket_v_square_r { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <RT2 RM2>; + layers = <BASE BASE_QWERTY SYM NUM NUM_WORD>; + bindings = <&kp RBKT>; + }; + + combo_bracket_v_curly_l { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LT3 LM3>; + layers = <BASE BASE_QWERTY SYM NUM NUM_WORD>; + bindings = <&kp LBRC>; + }; + + combo_bracket_v_curly_r { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <RT3 RM3>; + layers = <BASE BASE_QWERTY SYM NUM NUM_WORD>; + bindings = <&kp RBRC>; + }; + + combo_bracket_v_angled_l { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LM1 LB1>; + layers = <BASE BASE_QWERTY SYM NUM NUM_WORD>; + bindings = <&kp LT>; + }; + + combo_bracket_v_angled_r { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <RM1 RB1>; + layers = <BASE BASE_QWERTY SYM NUM NUM_WORD>; + bindings = <&kp GT>; + }; + + combo_capsword { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LM1 RM1>; + layers = <BASE BASE_QWERTY>; + +#ifdef HAS_CAPSLOCK + bindings = <&caps_word_capslock >; +#else + bindings = <&caps_word>; +#endif + }; + + combo_return { + timeout-ms = <COMBO_TERM_FAST>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LH2 LH1 LH0>; + layers = <BASE BASE_QWERTY NAV NUM SYM>; + bindings = <&kp RET>; + }; + + combo_bspc { + timeout-ms = <COMBO_TERM_FAST>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LH1 LH0>; + layers = <BASE BASE_QWERTY NAV NUM SYM>; + bindings = <&kp BSPC>; + }; + + // combo_grave { + // timeout-ms = <COMBO_TERM_SLOW>; + // require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + // key-positions = <RM3 RM4>; + // layers = <>; + // bindings = <&kp GRAVE>; + // }; + + // combo_md_code_block { + // timeout-ms = <COMBO_TERM_SLOW>; + // require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + // key-positions = <RM2 RM3 RM4>; + // layers = <>; + // bindings = <&m_type_md_code_block>; + // }; + + combo_tog_nav_word { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LM3 LM2 LM1>; + layers = <BASE BASE_QWERTY NUM NUM_WORD>; + + #ifdef HAS_UROB + bindings = <&nav_word>; + #else + bindings = <&tog NAV_WORD>; + #endif + + }; + + combo_tog_num_word { + timeout-ms = <COMBO_TERM_SLOW>; + require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LB3 LB2 LB1>; + layers = <BASE BASE_QWERTY NAV NAV_WORD>; + + #ifdef HAS_UROB + bindings = <&num_word>; + #else + bindings = <&tog NUM_WORD>; + #endif + + }; + +#ifdef HAS_MOUSE_TP + combo_tog_mouse_settings_l { + timeout-ms = <COMBO_TERM_SLOW>; + // require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LT2 LT3 LT4>; + layers = <BASE BASE_QWERTY NAV NAV_WORD MOUSE_KEYS>; + bindings = <&tog MOUSE_SET>; + }; + + combo_tog_mouse_settings_r { + timeout-ms = <COMBO_TERM_SLOW>; + // require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <RT2 RT3 RT4>; + layers = <BASE BASE_QWERTY NAV NAV_WORD MOUSE_KEYS>; + bindings = <&tog MOUSE_SET>; + }; +#endif + +#ifdef HAS_MOUSE_KEYS + combo_tog_mouse_keys_l { + timeout-ms = <COMBO_TERM_SLOW>; + // require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <LM2 LM3 LM4>; + layers = <BASE BASE_QWERTY NAV NAV_WORD MOUSE_KEYS>; + bindings = <&tog MOUSE_KEYS>; + }; + + combo_tog_mouse_keys_r { + timeout-ms = <COMBO_TERM_SLOW>; + // require-prior-idle-ms = <COMBO_PRIOR_IDLE>; + key-positions = <RM2 RM3 RM4>; + layers = <BASE BASE_QWERTY NAV NAV_WORD MOUSE_KEYS>; + bindings = <&tog MOUSE_KEYS>; + }; +#endif + + }; +}; |