Refactor homerow combos
This commit is contained in:
parent
b488a954bf
commit
0fefc471fe
2 changed files with 54 additions and 52 deletions
|
@ -20,10 +20,6 @@
|
||||||
#define UC 5
|
#define UC 5
|
||||||
#define MOUSE 6
|
#define MOUSE 6
|
||||||
|
|
||||||
#include "combos.dtsi" // requires layer aliases
|
|
||||||
#include "mouse.dtsi"
|
|
||||||
#include "extra_keys.h"
|
|
||||||
|
|
||||||
#define XXX &none
|
#define XXX &none
|
||||||
#define ___ &trans
|
#define ___ &trans
|
||||||
|
|
||||||
|
@ -73,9 +69,17 @@
|
||||||
MAKE_HRM(hml, &kp, &kp, KEYS_R THUMBS) // left-hand HRMs
|
MAKE_HRM(hml, &kp, &kp, KEYS_R THUMBS) // left-hand HRMs
|
||||||
MAKE_HRM(hmr, &kp, &kp, KEYS_L THUMBS) // right-hand HRMs
|
MAKE_HRM(hmr, &kp, &kp, KEYS_L THUMBS) // right-hand HRMs
|
||||||
|
|
||||||
MAKE_HRM(hml_repeat, &kp, &key_repeat, KEYS_R THUMBS) // used for HRM-combo
|
// HRM combo hack - workaround for lack of tap-only combos (ZMK issue #544)
|
||||||
MAKE_HRM(hmr_lpar_lt, &kp, &lpar_lt, KEYS_L THUMBS) // " " " "
|
#define ZMK_COMBO_8(NAME, TAP, KEYPOS, LAYERS, COMBO_TERM, COMBO_IDLE, HOLD, SIDE) \
|
||||||
MAKE_HRM(hmr_rpar_gt, &kp, &rpar_gt, KEYS_L THUMBS) // " " " "
|
MAKE_HRM(hm_combo_ ## NAME, &kp, TAP, SIDE THUMBS) \
|
||||||
|
ZMK_COMBO_6(NAME, &hm_combo_ ## NAME HOLD 0, KEYPOS, LAYERS, COMBO_TERM, COMBO_IDLE)
|
||||||
|
|
||||||
|
/* Combos, leader key sequences, mouse emulation */
|
||||||
|
|
||||||
|
#include "combos.dtsi" // must be sources after HRM-combo hack
|
||||||
|
#include "leader.dtsi"
|
||||||
|
#include "mouse.dtsi"
|
||||||
|
#include "extra_keys.h"
|
||||||
|
|
||||||
/* Nav cluster */
|
/* Nav cluster */
|
||||||
|
|
||||||
|
@ -216,7 +220,7 @@ ZMK_MACRO(win_sleep,
|
||||||
)
|
)
|
||||||
|
|
||||||
// Sticky shift + leader
|
// Sticky shift + leader
|
||||||
ZMK_MACRO(shift_leader, bindings = <&sk LSHFT &leader>;)
|
ZMK_MACRO(leader_sft, bindings = <&sk LSHFT &leader>;)
|
||||||
|
|
||||||
// misc aliases
|
// misc aliases
|
||||||
#define CANCEL &kp K_CANCEL // cancel caps-word, num-word and smart-mouse
|
#define CANCEL &kp K_CANCEL // cancel caps-word, num-word and smart-mouse
|
||||||
|
|
|
@ -13,19 +13,17 @@
|
||||||
#define COMBO_IDLE_FAST 150
|
#define COMBO_IDLE_FAST 150
|
||||||
#define COMBO_IDLE_SLOW 50
|
#define COMBO_IDLE_SLOW 50
|
||||||
|
|
||||||
// make homerow combos tap-only (so HRMs can be chorded instantaneously)
|
|
||||||
#define HRC_TAB &hml LS(LALT) TAB
|
|
||||||
#define HRC_REPEAT &hml_repeat LS(LCTRL) 0
|
|
||||||
#define HRC_LPAR &hmr_lpar_lt RS(LCTRL) 0
|
|
||||||
#define HRC_RPAR &hmr_rpar_gt RS(LALT) 0
|
|
||||||
|
|
||||||
/* Horizontal combos - left hand */
|
/* Horizontal combos - left hand */
|
||||||
ZMK_COMBO(esc, &kp ESC, LT3 LT2, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(esc, &kp ESC, LT3 LT2, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
ZMK_COMBO(ret, &kp RETURN, LT2 LT1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(ret, &kp RETURN, LT2 LT1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
ZMK_COMBO(mouse, &smart_mouse, LT3 LT1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(mouse, &smart_mouse, LT3 LT1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
|
|
||||||
ZMK_COMBO(tab, HRC_TAB, LM3 LM2, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
// Combos overlapping HRMs are set up as hold-taps themselves to allow for instantaneous
|
||||||
ZMK_COMBO(repeat,HRC_REPEAT, LM2 LM1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
// chording of mods. Custom hold-tap instances can be bootstrapped on the go using the
|
||||||
|
// 8-argument version of ZMK_COMBO defined in base.keymap.
|
||||||
|
ZMK_COMBO(tab, &hml LS(LALT)TAB, LM3 LM2, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
|
ZMK_COMBO(ldr, &leader, LM2 LM1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST, LS(LCTRL), KEYS_R)
|
||||||
|
ZMK_COMBO(ldrsh, &leader_sft, LM3 LM2 LM1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST, LS(LC(LALT)), KEYS_R)
|
||||||
|
|
||||||
ZMK_COMBO(cut, &kp LC(X), LB3 LB1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(cut, &kp LC(X), LB3 LB1, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
ZMK_COMBO(copy, &kp LC(INS), LB3 LB2, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(copy, &kp LC(INS), LB3 LB2, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
|
@ -35,8 +33,8 @@ ZMK_COMBO(paste, &kp LS(INS), LB2 LB1, DEF NAV NUM, COMBO_TERM_FAST, COMBO
|
||||||
ZMK_COMBO(bspc, &kp BSPC, RT1 RT2, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(bspc, &kp BSPC, RT1 RT2, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
ZMK_COMBO(del, &kp DEL, RT2 RT3, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(del, &kp DEL, RT2 RT3, DEF NAV NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
|
|
||||||
ZMK_COMBO(lpar, HRC_LPAR, RM1 RM2, DEF NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(lpar, &lpar_lt, RM1 RM2, DEF NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST, RS(LCTRL), KEYS_L)
|
||||||
ZMK_COMBO(rpar, HRC_RPAR, RM2 RM3, DEF NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(rpar, &rpar_gt, RM2 RM3, DEF NUM, COMBO_TERM_FAST, COMBO_IDLE_FAST, RS(LALT), KEYS_L)
|
||||||
ZMK_COMBO(lt, &kp LT, RM1 RM2, NAV , COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(lt, &kp LT, RM1 RM2, NAV , COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
ZMK_COMBO(gt, &kp GT, RM2 RM3, NAV , COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
ZMK_COMBO(gt, &kp GT, RM2 RM3, NAV , COMBO_TERM_FAST, COMBO_IDLE_FAST)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue