Make homerow combos tap-only
This commit is contained in:
parent
7e066a0dae
commit
f8828fcc67
3 changed files with 26 additions and 7 deletions
|
@ -102,6 +102,17 @@ ZMK_BEHAVIOR(hmr, hold_tap, // right-hand HRMs
|
||||||
hold-trigger-on-release; // requires PR #1423
|
hold-trigger-on-release; // requires PR #1423
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// replicate left-hand HRM for repeat combo
|
||||||
|
ZMK_BEHAVIOR(hml_repeat, hold_tap,
|
||||||
|
flavor = "balanced";
|
||||||
|
tapping-term-ms = <280>;
|
||||||
|
quick-tap-ms = <QUICK_TAP_MS>;
|
||||||
|
global-quick-tap-ms = <150>;
|
||||||
|
bindings = <&kp>, <&key_repeat>;
|
||||||
|
hold-trigger-key-positions = <KEYS_R THUMBS>;
|
||||||
|
hold-trigger-on-release;
|
||||||
|
)
|
||||||
|
|
||||||
/* Custom behaviors */
|
/* Custom behaviors */
|
||||||
|
|
||||||
// tap: num-word | double-tap: sticky num-layer | hold: num-layer
|
// tap: num-word | double-tap: sticky num-layer | hold: num-layer
|
||||||
|
|
|
@ -14,13 +14,19 @@
|
||||||
#define COMBO_TERM_FAST 20
|
#define COMBO_TERM_FAST 20
|
||||||
#define COMBO_TERM_SLOW 35
|
#define COMBO_TERM_SLOW 35
|
||||||
|
|
||||||
|
// make homerow combos tap-only (so mods can be chorded correctly)
|
||||||
|
#define HRC_RETURN &hml LA(LCTRL) RETURN
|
||||||
|
#define HRC_REPEAT &hml_repeat LS(LCTRL) 0
|
||||||
|
#define HRC_LPAR &hmr RS(LCTRL) LPAR
|
||||||
|
#define HRC_RPAR &hmr LA(LCTRL) RPAR
|
||||||
|
|
||||||
/* Punctuation (horizontal left hand) */
|
/* Punctuation (horizontal left hand) */
|
||||||
ZMK_COMBO(esc, &kp ESC, LT3 LT2, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(esc, &kp ESC, LT3 LT2, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
ZMK_COMBO(tab, &kp TAB, LT2 LT1, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(tab, &kp TAB, LT2 LT1, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
ZMK_COMBO(mouse, &smart_mouse, LT3 LT1, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(mouse, &smart_mouse, LT3 LT1, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
|
|
||||||
ZMK_COMBO(ret, &kp RETURN, LM3 LM2, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(ret, HRC_RETURN, LM3 LM2, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
ZMK_COMBO(repeat,&key_repeat, LM2 LM1, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(repeat,HRC_REPEAT, LM2 LM1, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
|
|
||||||
ZMK_COMBO(cut, &kp LC(X), LB3 LB1, DEF NAV NUM, COMBO_TERM_SLOW)
|
ZMK_COMBO(cut, &kp LC(X), LB3 LB1, DEF NAV NUM, COMBO_TERM_SLOW)
|
||||||
ZMK_COMBO(copy, &kp LC(INS), LB3 LB2, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(copy, &kp LC(INS), LB3 LB2, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
|
@ -29,8 +35,8 @@ ZMK_COMBO(paste, &kp LS(INS), LB2 LB1, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
/* Brackets (horizontal right hand) */
|
/* Brackets (horizontal right hand) */
|
||||||
ZMK_COMBO(lbrc, &kp LBRC, RT1 RT2, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(lbrc, &kp LBRC, RT1 RT2, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
ZMK_COMBO(rbrc, &kp RBRC, RT2 RT3, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(rbrc, &kp RBRC, RT2 RT3, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
ZMK_COMBO(lpar, &kp LPAR, RM1 RM2, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(lpar, HRC_LPAR, RM1 RM2, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
ZMK_COMBO(rpar, &kp RPAR, RM2 RM3, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(rpar, HRC_RPAR, RM2 RM3, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
ZMK_COMBO(lbrk, &kp LBKT, RB1 RB2, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(lbrk, &kp LBKT, RB1 RB2, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
ZMK_COMBO(rbrk, &kp RBKT, RB2 RB3, DEF NAV NUM, COMBO_TERM_FAST)
|
ZMK_COMBO(rbrk, &kp RBKT, RB2 RB3, DEF NAV NUM, COMBO_TERM_FAST)
|
||||||
|
|
||||||
|
|
|
@ -234,9 +234,11 @@ natively that would require complex user-space implementations in QMK). Below
|
||||||
are a few remaining issues:
|
are a few remaining issues:
|
||||||
|
|
||||||
- ZMK does not yet support "tap-only" combos
|
- ZMK does not yet support "tap-only" combos
|
||||||
([#544](https://github.com/zmkfirmware/zmk/issues/544)). As a workaround, one
|
([#544](https://github.com/zmkfirmware/zmk/issues/544)), requiring a brief pause when
|
||||||
can pause briefly when chording multiple HRMs together on positions that
|
wanting to chord HRMs that overlap with combo positions. As a workaround, I implemented
|
||||||
otherwise would trigger a combo. But this is at the top of my ZMK-wishlist.
|
all homerow combos as homerow-mod-combos. This is good enough for day-to-day, but does
|
||||||
|
not address all edge cases (eg removing mods from the mix doesn't work well). I am
|
||||||
|
really hoping for a native solution similar to QMK's "COMBO_MUST_TAP" property.
|
||||||
- Another item on my wishlist are adaptive keys
|
- Another item on my wishlist are adaptive keys
|
||||||
([#1624](https://github.com/zmkfirmware/zmk/issues/1624)). This would open
|
([#1624](https://github.com/zmkfirmware/zmk/issues/1624)). This would open
|
||||||
the door for things like <kbd>space</kbd><kbd>space</kbd> becoming
|
the door for things like <kbd>space</kbd><kbd>space</kbd> becoming
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue