mirror of
https://github.com/ClaytonWWilson/miryoku_zmk.git
synced 2025-12-13 09:48:47 +00:00
Add combos of primary and secondary thumbs to emulate tertiary thumb
This commit is contained in:
parent
a469ad4b46
commit
73b4484f63
@ -1,3 +1,6 @@
|
||||
|
||||
#include "../miryoku/split_3x6_3.h"
|
||||
|
||||
#define MIRYOKU_COMBO_TPS_ENABLE
|
||||
|
||||
#include "../miryoku/miryoku.dtsi"
|
||||
|
||||
@ -911,6 +911,10 @@ layout is mapped onto keyboards with different physical layouts as a subset.
|
||||
|
||||
*** [[split_3x5_2.h]]
|
||||
|
||||
Combos of primary and secondary thumb keys emulate the missing tertiary thumb
|
||||
key. To enable with other subset mappings for compatibility, add ~#define
|
||||
MIRYOKU_COMBO_TPS_ENABLE~ to the keymap before the includes.
|
||||
|
||||
#+BEGIN_SRC C :noweb yes :padline no :tangle split_3x5_2.h
|
||||
// <<header>>
|
||||
|
||||
@ -928,6 +932,11 @@ K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 \
|
||||
K33 K34 K35 K36
|
||||
|
||||
#define MIRYOKU_SUPERMAP MIRYOKU_SUBMAP
|
||||
|
||||
#define MIRYOKU_COMBO_TPSL 30 31
|
||||
#define MIRYOKU_COMBO_TPSR 32 33
|
||||
|
||||
#define MIRYOKU_COMBO_TPS_ENABLE
|
||||
#+END_SRC
|
||||
|
||||
|
||||
@ -950,6 +959,9 @@ K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 \
|
||||
K32 K33 K34 K35 K36 K37
|
||||
|
||||
#define MIRYOKU_SUPERMAP MIRYOKU_SUBMAP
|
||||
|
||||
#define MIRYOKU_COMBO_TPSL 33 34
|
||||
#define MIRYOKU_COMBO_TPSR 35 36
|
||||
#+END_SRC
|
||||
|
||||
|
||||
@ -981,6 +993,9 @@ XXX K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 XXX \
|
||||
&kp LCTRL K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 &kp RCTRL \
|
||||
&kp LSHFT K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 &kp RSHFT \
|
||||
K32 K33 K34 K35 K36 K37
|
||||
|
||||
#define MIRYOKU_COMBO_TPSL 37 38
|
||||
#define MIRYOKU_COMBO_TPSR 39 40
|
||||
#+END_SRC
|
||||
|
||||
|
||||
@ -1057,6 +1072,9 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
|
||||
bindings = <&kp>, <&kp>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
keymap {
|
||||
compatible = "zmk,keymap";
|
||||
BASE_layer {
|
||||
@ -1096,32 +1114,32 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
|
||||
bindings = <
|
||||
#if defined MIRYOKU_ALPHAS_COLEMAK
|
||||
MIRYOKU_SUPERMAP(
|
||||
<<table-map-full(table=colemak)>>
|
||||
)
|
||||
<<table-map-full(table=colemak)>>
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_COLEMAKDH
|
||||
MIRYOKU_SUPERMAP(
|
||||
<<table-map-full(table=colemakdh)>>
|
||||
)
|
||||
<<table-map-full(table=colemakdh)>>
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_DVORAK
|
||||
MIRYOKU_SUPERMAP(
|
||||
<<table-map-full(table=dvorak)>>
|
||||
)
|
||||
MIRYOKU_SUPERMAP(
|
||||
<<table-map-full(table=dvorak)>>
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_HALMAK
|
||||
MIRYOKU_SUPERMAP(
|
||||
<<table-map-full(table=halmak)>>
|
||||
)
|
||||
<<table-map-full(table=halmak)>>
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_WORKMAN
|
||||
MIRYOKU_SUPERMAP(
|
||||
<<table-map-full(table=workman)>>
|
||||
)
|
||||
<<table-map-full(table=workman)>>
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_QWERTY
|
||||
MIRYOKU_SUPERMAP(
|
||||
<<table-map-full(table=qwerty)>>
|
||||
)
|
||||
<<table-map-full(table=qwerty)>>
|
||||
)
|
||||
#else
|
||||
MIRYOKU_SUPERMAP(
|
||||
<<table-map-full(table=colemakdhm)>>
|
||||
)
|
||||
<<table-map-full(table=colemakdhm)>>
|
||||
)
|
||||
#endif
|
||||
>;
|
||||
};
|
||||
@ -1194,6 +1212,68 @@ K20 K21 K22 K23 K24 &kp NUM_4 &kp NUM_3 K25 K26 K27 K28 K
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#if defined (MIRYOKU_COMBO_TPS_ENABLE) && defined (MIRYOKU_COMBO_TPSL) && defined (MIRYOKU_COMBO_TPSR)
|
||||
/ {
|
||||
combos {
|
||||
compatible = "zmk,combos";
|
||||
combo_tpsl_BASE {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSL>;
|
||||
bindings = << MEDR ESC>;
|
||||
layers = <BASE>;
|
||||
};
|
||||
combo_tpsr_BASE {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = << FUNL DEL>;
|
||||
layers = <BASE>;
|
||||
};
|
||||
combo_tpsr_MBO {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = <U_NU>;
|
||||
layers = <MBO>;
|
||||
};
|
||||
combo_tpsr_NAVR {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = <&kp DEL>;
|
||||
layers = <NAVR>;
|
||||
};
|
||||
combo_tpsr_MOUR {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = <U_NU>;
|
||||
layers = <MOUR>;
|
||||
};
|
||||
combo_tpsr_MEDR {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = <&kp K_MUTE>;
|
||||
layers = <MEDR>;
|
||||
};
|
||||
combo_tpsl_NSL {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSL>;
|
||||
bindings = <&kp DOT>;
|
||||
layers = <NSL>;
|
||||
};
|
||||
combo_tpsl_NSSL {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSL>;
|
||||
bindings = <&kp LPAR>;
|
||||
layers = <NSSL>;
|
||||
};
|
||||
combo_tpsl_FUNL {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSL>;
|
||||
bindings = <&kp K_APP>;
|
||||
layers = <FUNL>;
|
||||
};
|
||||
};
|
||||
};
|
||||
#endif
|
||||
#+END_SRC
|
||||
|
||||
|
||||
|
||||
@ -58,6 +58,9 @@
|
||||
bindings = <&kp>, <&kp>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
keymap {
|
||||
compatible = "zmk,keymap";
|
||||
BASE_layer {
|
||||
@ -118,53 +121,53 @@ U_NP, U_NP, < MEDR ESC, < NAVR SPC, < MOUR TAB, < NSSL R
|
||||
bindings = <
|
||||
#if defined MIRYOKU_ALPHAS_COLEMAK
|
||||
MIRYOKU_SUPERMAP(
|
||||
&kp Q, &kp W, &kp F, &kp P, &kp G, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
|
||||
&kp A, &kp R, &kp S, &kp T, &kp D, &kp H, &kp N, &kp E, &kp I, &kp O,
|
||||
&kp Z, &kp X, &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
&kp Q, &kp W, &kp F, &kp P, &kp G, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
|
||||
&kp A, &kp R, &kp S, &kp T, &kp D, &kp H, &kp N, &kp E, &kp I, &kp O,
|
||||
&kp Z, &kp X, &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_COLEMAKDH
|
||||
MIRYOKU_SUPERMAP(
|
||||
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
|
||||
&kp A, &kp R, &kp S, &kp T, &kp G, &kp K, &kp N, &kp E, &kp I, &kp O,
|
||||
&kp Z, &kp X, &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
|
||||
&kp A, &kp R, &kp S, &kp T, &kp G, &kp K, &kp N, &kp E, &kp I, &kp O,
|
||||
&kp Z, &kp X, &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_DVORAK
|
||||
MIRYOKU_SUPERMAP(
|
||||
&kp SQT, &kp COMMA, &kp DOT, &kp P, &kp Y, &kp F, &kp G, &kp C, &kp R, &kp L,
|
||||
&kp A, &kp O, &kp E, &kp U, &kp I, &kp D, &kp H, &kp T, &kp N, &kp S,
|
||||
&kp SLASH, &kp Q, &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, &kp V, &kp Z,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
MIRYOKU_SUPERMAP(
|
||||
&kp SQT, &kp COMMA, &kp DOT, &kp P, &kp Y, &kp F, &kp G, &kp C, &kp R, &kp L,
|
||||
&kp A, &kp O, &kp E, &kp U, &kp I, &kp D, &kp H, &kp T, &kp N, &kp S,
|
||||
&kp SLASH, &kp Q, &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, &kp V, &kp Z,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_HALMAK
|
||||
MIRYOKU_SUPERMAP(
|
||||
&kp W, &kp L, &kp R, &kp B, &kp Z, &kp SQT, &kp Q, &kp U, &kp D, &kp J,
|
||||
&kp S, &kp H, &kp N, &kp T, &kp COMMA, &kp DOT, &kp A, &kp E, &kp O, &kp I,
|
||||
&kp F, &kp M, &kp V, &kp C, &kp SLASH, &kp G, &kp P, &kp X, &kp K, &kp Y,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
&kp W, &kp L, &kp R, &kp B, &kp Z, &kp SQT, &kp Q, &kp U, &kp D, &kp J,
|
||||
&kp S, &kp H, &kp N, &kp T, &kp COMMA, &kp DOT, &kp A, &kp E, &kp O, &kp I,
|
||||
&kp F, &kp M, &kp V, &kp C, &kp SLASH, &kp G, &kp P, &kp X, &kp K, &kp Y,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_WORKMAN
|
||||
MIRYOKU_SUPERMAP(
|
||||
&kp Q, &kp D, &kp R, &kp W, &kp B, &kp J, &kp F, &kp U, &kp P, &kp SQT,
|
||||
&kp A, &kp S, &kp H, &kp T, &kp G, &kp Y, &kp N, &kp E, &kp O, &kp I,
|
||||
&kp Z, &kp X, &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
&kp Q, &kp D, &kp R, &kp W, &kp B, &kp J, &kp F, &kp U, &kp P, &kp SQT,
|
||||
&kp A, &kp S, &kp H, &kp T, &kp G, &kp Y, &kp N, &kp E, &kp O, &kp I,
|
||||
&kp Z, &kp X, &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
#elif defined MIRYOKU_ALPHAS_QWERTY
|
||||
MIRYOKU_SUPERMAP(
|
||||
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P,
|
||||
&kp A, &kp S, &kp D, &kp F, &kp G, &kp H, &kp J, &kp K, &kp L, &kp SQT,
|
||||
&kp Z, &kp X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P,
|
||||
&kp A, &kp S, &kp D, &kp F, &kp G, &kp H, &kp J, &kp K, &kp L, &kp SQT,
|
||||
&kp Z, &kp X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
#else
|
||||
MIRYOKU_SUPERMAP(
|
||||
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
|
||||
&kp A, &kp R, &kp S, &kp T, &kp G, &kp M, &kp N, &kp E, &kp I, &kp O,
|
||||
&kp Z, &kp X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT,
|
||||
&kp A, &kp R, &kp S, &kp T, &kp G, &kp M, &kp N, &kp E, &kp I, &kp O,
|
||||
&kp Z, &kp X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, &kp DOT, &kp SLASH,
|
||||
U_NP, U_NP, &kp ESC, &kp SPC, &kp TAB, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
|
||||
)
|
||||
#endif
|
||||
>;
|
||||
};
|
||||
@ -267,3 +270,65 @@ U_NP, U_NP, &kp K_APP, &kp SPC, &kp TAB, U_NA, U_
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#if defined (MIRYOKU_COMBO_TPS_ENABLE) && defined (MIRYOKU_COMBO_TPSL) && defined (MIRYOKU_COMBO_TPSR)
|
||||
/ {
|
||||
combos {
|
||||
compatible = "zmk,combos";
|
||||
combo_tpsl_BASE {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSL>;
|
||||
bindings = << MEDR ESC>;
|
||||
layers = <BASE>;
|
||||
};
|
||||
combo_tpsr_BASE {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = << FUNL DEL>;
|
||||
layers = <BASE>;
|
||||
};
|
||||
combo_tpsr_MBO {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = <U_NU>;
|
||||
layers = <MBO>;
|
||||
};
|
||||
combo_tpsr_NAVR {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = <&kp DEL>;
|
||||
layers = <NAVR>;
|
||||
};
|
||||
combo_tpsr_MOUR {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = <U_NU>;
|
||||
layers = <MOUR>;
|
||||
};
|
||||
combo_tpsr_MEDR {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSR>;
|
||||
bindings = <&kp K_MUTE>;
|
||||
layers = <MEDR>;
|
||||
};
|
||||
combo_tpsl_NSL {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSL>;
|
||||
bindings = <&kp DOT>;
|
||||
layers = <NSL>;
|
||||
};
|
||||
combo_tpsl_NSSL {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSL>;
|
||||
bindings = <&kp LPAR>;
|
||||
layers = <NSSL>;
|
||||
};
|
||||
combo_tpsl_FUNL {
|
||||
timeout-ms = <200>;
|
||||
key-positions = <MIRYOKU_COMBO_TPSL>;
|
||||
bindings = <&kp K_APP>;
|
||||
layers = <FUNL>;
|
||||
};
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -14,3 +14,8 @@ K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 \
|
||||
K33 K34 K35 K36
|
||||
|
||||
#define MIRYOKU_SUPERMAP MIRYOKU_SUBMAP
|
||||
|
||||
#define MIRYOKU_COMBO_TPSL 30 31
|
||||
#define MIRYOKU_COMBO_TPSR 32 33
|
||||
|
||||
#define MIRYOKU_COMBO_TPS_ENABLE
|
||||
|
||||
@ -14,3 +14,6 @@ K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 \
|
||||
K32 K33 K34 K35 K36 K37
|
||||
|
||||
#define MIRYOKU_SUPERMAP MIRYOKU_SUBMAP
|
||||
|
||||
#define MIRYOKU_COMBO_TPSL 33 34
|
||||
#define MIRYOKU_COMBO_TPSR 35 36
|
||||
|
||||
@ -23,3 +23,6 @@ XXX K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 XXX \
|
||||
&kp LCTRL K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 &kp RCTRL \
|
||||
&kp LSHFT K20 K21 K22 K23 K24 K25 K26 K27 K28 K29 &kp RSHFT \
|
||||
K32 K33 K34 K35 K36 K37
|
||||
|
||||
#define MIRYOKU_COMBO_TPSL 37 38
|
||||
#define MIRYOKU_COMBO_TPSR 39 40
|
||||
|
||||
Loading…
Reference in New Issue
Block a user