Add MIRYOKU_KLUDGE_TAPDELAY

This commit is contained in:
Manna Harbour 2022-10-26 16:16:05 +11:00
parent f6b87ad38c
commit 91c8402942
9 changed files with 222 additions and 77 deletions

View File

@ -9,4 +9,5 @@ jobs:
secrets: inherit
with:
board: '["native_posix_64"]'
custom_config: '["#define MIRYOKU_KLUDGE_TAPDELAY"]'
branches: '["zmkfirmware/zmk/main petejohanson/zmk/shell/tap-command"]'

View File

@ -23,19 +23,6 @@ MIRYOKU_LAYER_LIST
};
};
/ {
behaviors {
hm: homerow_mods {
compatible = "zmk,behavior-hold-tap";
label = "HOMEROW_MODS";
#binding-cells = <2>;
tapping_term_ms = <U_TAPPING_TERM>;
flavor = "tap-preferred";
bindings = <&kp>, <&kp>;
};
};
};
#include "miryoku_shift_functions.dtsi"
#include "miryoku_double_tap_guard.dtsi"
@ -57,3 +44,9 @@ MIRYOKU_LAYER_LIST
#if defined (MIRYOKU_KLUDGE_BOTTOMROWCOMBOS)
#include "miryoku_kludge_bottomrowcombos.dtsi"
#endif
#if defined (MIRYOKU_KLUDGE_TAPDELAY)
#include "miryoku_kludge_tapdelay.dtsi"
#else
#include "miryoku_behaviors.dtsi"
#endif

View File

@ -24,3 +24,9 @@
#else
#include "miryoku_mousekeys.h"
#endif
#if defined (MIRYOKU_KLUDGE_TAPDELAY)
#include "miryoku_kludge_tapdelay.h"
#else
#include "miryoku_behaviors.h"
#endif

View File

@ -8,123 +8,123 @@
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP \
&kp A, &kp Z, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P, \
&hm LGUI Q, &hm LALT S, &hm LCTRL D, &hm LSHFT F, &kp G, &kp H, &hm LSHFT J, &hm LCTRL K, &hm LALT L, &hm LGUI M, \
&lt U_BUTTON W, &hm RALT X, &kp C, &kp V, &kp B, &kp N, &kp COMMA, &kp DOT, &hm RALT SLASH, &lt U_BUTTON SQT, \
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, Q), U_MT(LALT, S), U_MT(LCTRL, D), U_MT(LSHFT, F), &kp G, &kp H, U_MT(LSHFT, J), U_MT(LCTRL, K), U_MT(LALT, L), U_MT(LGUI, M), \
U_LT(U_BUTTON, W), U_MT(RALT, X), &kp C, &kp V, &kp B, &kp N, &kp COMMA, &kp DOT, U_MT(RALT, SLASH), U_LT(U_BUTTON, SQT),\
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP \
&kp Q, &kp H, &kp O, &kp U, &kp X, &kp G, &kp C, &kp R, &kp F, &kp Z, \
&hm LGUI Y, &hm LALT I, &hm LCTRL E, &hm LSHFT A, &kp DOT, &kp D, &hm LSHFT S, &hm LCTRL T, &hm LALT N, &hm LGUI B, \
&lt U_BUTTON J, &hm RALT SLASH, &kp COMMA, &kp K, &kp SQT, &kp W, &kp M, &kp L, &hm RALT P, &lt U_BUTTON V, \
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, Y), U_MT(LALT, I), U_MT(LCTRL, E), U_MT(LSHFT, A), &kp DOT, &kp D, U_MT(LSHFT, S), U_MT(LCTRL, T), U_MT(LALT, N), U_MT(LGUI, B), \
U_LT(U_BUTTON, J), U_MT(RALT, SLASH), &kp COMMA, &kp K, &kp SQT, &kp W, &kp M, &kp L, U_MT(RALT, P), U_LT(U_BUTTON, V), \
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP \
&kp Q, &kp W, &kp F, &kp P, &kp G, &kp J, &kp L, &kp U, &kp Y, &kp SQT, \
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp D, &kp H, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O, \
&lt U_BUTTON Z, &hm RALT X, &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, R), U_MT(LCTRL, S), U_MT(LSHFT, T), &kp D, &kp H, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, I), U_MT(LGUI, O), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP \
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT, \
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp G, &kp M, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O, \
&lt U_BUTTON Z, &hm RALT X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, R), U_MT(LCTRL, S), U_MT(LSHFT, T), &kp G, &kp M, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, I), U_MT(LGUI, O), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP \
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT, \
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp G, &kp K, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O, \
&lt U_BUTTON Z, &hm RALT X, &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, R), U_MT(LCTRL, S), U_MT(LSHFT, T), &kp G, &kp K, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, I), U_MT(LGUI, O), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP \
&kp SQT, &kp COMMA, &kp DOT, &kp P, &kp Y, &kp F, &kp G, &kp C, &kp R, &kp L, \
&hm LGUI A, &hm LALT O, &hm LCTRL E, &hm LSHFT U, &kp I, &kp D, &hm LSHFT H, &hm LCTRL T, &hm LALT N, &hm LGUI S, \
&lt U_BUTTON SLASH,&hm RALT Q, &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, &hm RALT V, &lt U_BUTTON Z, \
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, O), U_MT(LCTRL, E), U_MT(LSHFT, U), &kp I, &kp D, U_MT(LSHFT, H), U_MT(LCTRL, T), U_MT(LALT, N), U_MT(LGUI, S), \
U_LT(U_BUTTON, SLASH),U_MT(RALT, Q), &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, U_MT(RALT, V), U_LT(U_BUTTON, Z), \
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP \
&kp W, &kp L, &kp R, &kp B, &kp Z, &kp SQT, &kp Q, &kp U, &kp D, &kp J, \
&hm LGUI S, &hm LALT H, &hm LCTRL N, &hm LSHFT T, &kp COMMA, &kp DOT, &hm LSHFT A, &hm LCTRL E, &hm LALT O, &hm LGUI I, \
&lt U_BUTTON F, &hm RALT M, &kp V, &kp C, &kp SLASH, &kp G, &kp P, &kp X, &hm RALT K, &lt U_BUTTON Y, \
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, S), U_MT(LALT, H), U_MT(LCTRL, N), U_MT(LSHFT, T), &kp COMMA, &kp DOT, U_MT(LSHFT, A), U_MT(LCTRL, E), U_MT(LALT, O), U_MT(LGUI, I), \
U_LT(U_BUTTON, F), U_MT(RALT, M), &kp V, &kp C, &kp SLASH, &kp G, &kp P, &kp X, U_MT(RALT, K), U_LT(U_BUTTON, Y), \
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP \
&kp Q, &kp D, &kp R, &kp W, &kp B, &kp J, &kp F, &kp U, &kp P, &kp SQT, \
&hm LGUI A, &hm LALT S, &hm LCTRL H, &hm LSHFT T, &kp G, &kp Y, &hm LSHFT N, &hm LCTRL E, &hm LALT O, &hm LGUI I, \
&lt U_BUTTON Z, &hm RALT X, &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, S), U_MT(LCTRL, H), U_MT(LSHFT, T), &kp G, &kp Y, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, O), U_MT(LGUI, I), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP \
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P, \
&hm LGUI A, &hm LALT S, &hm LCTRL D, &hm LSHFT F, &kp G, &kp H, &hm LSHFT J, &hm LCTRL K, &hm LALT L, &hm LGUI SQT, \
&lt U_BUTTON Z, &hm RALT X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, S), U_MT(LCTRL, D), U_MT(LSHFT, F), &kp G, &kp H, U_MT(LSHFT, J), U_MT(LCTRL, K), U_MT(LALT, L), U_MT(LGUI, SQT), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP \
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Z, &kp U, &kp I, &kp O, &kp P, \
&hm LGUI A, &hm LALT S, &hm LCTRL D, &hm LSHFT F, &kp G, &kp H, &hm LSHFT J, &hm LCTRL K, &hm LALT L, &hm LGUI SQT, \
&lt U_BUTTON Y, &hm RALT X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_FUN DEL, &lt U_NUM BSPC, &lt U_SYM RET, &lt U_MOUSE TAB, &lt U_NAV SPC, &lt U_MEDIA ESC, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, S), U_MT(LCTRL, D), U_MT(LSHFT, F), &kp G, &kp H, U_MT(LSHFT, J), U_MT(LCTRL, K), U_MT(LALT, L), U_MT(LGUI, SQT), \
U_LT(U_BUTTON, Y), U_MT(RALT, X), &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_FUN, DEL), U_LT(U_NUM, BSPC), U_LT(U_SYM, RET), U_LT(U_MOUSE, TAB),U_LT(U_NAV, SPC), U_LT(U_MEDIA, ESC),U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_AZERTY \
&kp A, &kp Z, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P, \
&hm LGUI Q, &hm LALT S, &hm LCTRL D, &hm LSHFT F, &kp G, &kp H, &hm LSHFT J, &hm LCTRL K, &hm LALT L, &hm LGUI M, \
&lt U_BUTTON W, &hm RALT X, &kp C, &kp V, &kp B, &kp N, &kp COMMA, &kp DOT, &hm RALT SLASH, &lt U_BUTTON SQT, \
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, Q), U_MT(LALT, S), U_MT(LCTRL, D), U_MT(LSHFT, F), &kp G, &kp H, U_MT(LSHFT, J), U_MT(LCTRL, K), U_MT(LALT, L), U_MT(LGUI, M), \
U_LT(U_BUTTON, W), U_MT(RALT, X), &kp C, &kp V, &kp B, &kp N, &kp COMMA, &kp DOT, U_MT(RALT, SLASH), U_LT(U_BUTTON, SQT),\
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15 \
&kp Q, &kp H, &kp O, &kp U, &kp X, &kp G, &kp C, &kp R, &kp F, &kp Z, \
&hm LGUI Y, &hm LALT I, &hm LCTRL E, &hm LSHFT A, &kp DOT, &kp D, &hm LSHFT S, &hm LCTRL T, &hm LALT N, &hm LGUI B, \
&lt U_BUTTON J, &hm RALT SLASH, &kp COMMA, &kp K, &kp SQT, &kp W, &kp M, &kp L, &hm RALT P, &lt U_BUTTON V, \
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, Y), U_MT(LALT, I), U_MT(LCTRL, E), U_MT(LSHFT, A), &kp DOT, &kp D, U_MT(LSHFT, S), U_MT(LCTRL, T), U_MT(LALT, N), U_MT(LGUI, B), \
U_LT(U_BUTTON, J), U_MT(RALT, SLASH), &kp COMMA, &kp K, &kp SQT, &kp W, &kp M, &kp L, U_MT(RALT, P), U_LT(U_BUTTON, V), \
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK \
&kp Q, &kp W, &kp F, &kp P, &kp G, &kp J, &kp L, &kp U, &kp Y, &kp SQT, \
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp D, &kp H, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O, \
&lt U_BUTTON Z, &hm RALT X, &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, R), U_MT(LCTRL, S), U_MT(LSHFT, T), &kp D, &kp H, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, I), U_MT(LGUI, O), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp V, &kp B, &kp K, &kp M, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT, \
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp G, &kp M, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O, \
&lt U_BUTTON Z, &hm RALT X, &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, R), U_MT(LCTRL, S), U_MT(LSHFT, T), &kp G, &kp M, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, I), U_MT(LGUI, O), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp D, &kp V, &kp K, &kp H, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK \
&kp Q, &kp W, &kp F, &kp P, &kp B, &kp J, &kp L, &kp U, &kp Y, &kp SQT, \
&hm LGUI A, &hm LALT R, &hm LCTRL S, &hm LSHFT T, &kp G, &kp K, &hm LSHFT N, &hm LCTRL E, &hm LALT I, &hm LGUI O, \
&lt U_BUTTON Z, &hm RALT X, &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, R), U_MT(LCTRL, S), U_MT(LSHFT, T), &kp G, &kp K, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, I), U_MT(LGUI, O), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp D, &kp V, &kp M, &kp H, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_DVORAK \
&kp SQT, &kp COMMA, &kp DOT, &kp P, &kp Y, &kp F, &kp G, &kp C, &kp R, &kp L, \
&hm LGUI A, &hm LALT O, &hm LCTRL E, &hm LSHFT U, &kp I, &kp D, &hm LSHFT H, &hm LCTRL T, &hm LALT N, &hm LGUI S, \
&lt U_BUTTON SLASH,&hm RALT Q, &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, &hm RALT V, &lt U_BUTTON Z, \
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, O), U_MT(LCTRL, E), U_MT(LSHFT, U), &kp I, &kp D, U_MT(LSHFT, H), U_MT(LCTRL, T), U_MT(LALT, N), U_MT(LGUI, S), \
U_LT(U_BUTTON, SLASH),U_MT(RALT, Q), &kp J, &kp K, &kp X, &kp B, &kp M, &kp W, U_MT(RALT, V), U_LT(U_BUTTON, Z), \
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_HALMAK \
&kp W, &kp L, &kp R, &kp B, &kp Z, &kp SQT, &kp Q, &kp U, &kp D, &kp J, \
&hm LGUI S, &hm LALT H, &hm LCTRL N, &hm LSHFT T, &kp COMMA, &kp DOT, &hm LSHFT A, &hm LCTRL E, &hm LALT O, &hm LGUI I, \
&lt U_BUTTON F, &hm RALT M, &kp V, &kp C, &kp SLASH, &kp G, &kp P, &kp X, &hm RALT K, &lt U_BUTTON Y, \
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, S), U_MT(LALT, H), U_MT(LCTRL, N), U_MT(LSHFT, T), &kp COMMA, &kp DOT, U_MT(LSHFT, A), U_MT(LCTRL, E), U_MT(LALT, O), U_MT(LGUI, I), \
U_LT(U_BUTTON, F), U_MT(RALT, M), &kp V, &kp C, &kp SLASH, &kp G, &kp P, &kp X, U_MT(RALT, K), U_LT(U_BUTTON, Y), \
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN \
&kp Q, &kp D, &kp R, &kp W, &kp B, &kp J, &kp F, &kp U, &kp P, &kp SQT, \
&hm LGUI A, &hm LALT S, &hm LCTRL H, &hm LSHFT T, &kp G, &kp Y, &hm LSHFT N, &hm LCTRL E, &hm LALT O, &hm LGUI I, \
&lt U_BUTTON Z, &hm RALT X, &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, S), U_MT(LCTRL, H), U_MT(LSHFT, T), &kp G, &kp Y, U_MT(LSHFT, N), U_MT(LCTRL, E), U_MT(LALT, O), U_MT(LGUI, I), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp M, &kp C, &kp V, &kp K, &kp L, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_QWERTY \
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Y, &kp U, &kp I, &kp O, &kp P, \
&hm LGUI A, &hm LALT S, &hm LCTRL D, &hm LSHFT F, &kp G, &kp H, &hm LSHFT J, &hm LCTRL K, &hm LALT L, &hm LGUI SQT, \
&lt U_BUTTON Z, &hm RALT X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, S), U_MT(LCTRL, D), U_MT(LSHFT, F), &kp G, &kp H, U_MT(LSHFT, J), U_MT(LCTRL, K), U_MT(LALT, L), U_MT(LGUI, SQT), \
U_LT(U_BUTTON, Z), U_MT(RALT, X), &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ \
&kp Q, &kp W, &kp E, &kp R, &kp T, &kp Z, &kp U, &kp I, &kp O, &kp P, \
&hm LGUI A, &hm LALT S, &hm LCTRL D, &hm LSHFT F, &kp G, &kp H, &hm LSHFT J, &hm LCTRL K, &hm LALT L, &hm LGUI SQT, \
&lt U_BUTTON Y, &hm RALT X, &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, &hm RALT DOT, &lt U_BUTTON SLASH,\
U_NP, U_NP, &lt U_MEDIA ESC, &lt U_NAV SPC, &lt U_MOUSE TAB, &lt U_SYM RET, &lt U_NUM BSPC, &lt U_FUN DEL, U_NP, U_NP
U_MT(LGUI, A), U_MT(LALT, S), U_MT(LCTRL, D), U_MT(LSHFT, F), &kp G, &kp H, U_MT(LSHFT, J), U_MT(LCTRL, K), U_MT(LALT, L), U_MT(LGUI, SQT), \
U_LT(U_BUTTON, Y), U_MT(RALT, X), &kp C, &kp V, &kp B, &kp N, &kp M, &kp COMMA, U_MT(RALT, DOT), U_LT(U_BUTTON, SLASH),\
U_NP, U_NP, U_LT(U_MEDIA, ESC),U_LT(U_NAV, SPC), U_LT(U_MOUSE, TAB),U_LT(U_SYM, RET), U_LT(U_NUM, BSPC), U_LT(U_FUN, DEL), U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP \

View File

@ -0,0 +1,23 @@
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
/ {
behaviors {
u_mt: u_mt {
compatible = "zmk,behavior-hold-tap";
label = "u_mt";
#binding-cells = <2>;
tapping_term_ms = <U_TAPPING_TERM>;
flavor = "tap-preferred";
bindings = <&kp>, <&kp>;
};
u_lt: u_lt {
compatible = "zmk,behavior-hold-tap";
label = "u_lt";
#binding-cells = <2>;
tapping_term_ms = <U_TAPPING_TERM>;
flavor = "tap-preferred";
bindings = <&mo>, <&kp>;
};
};
};

View File

@ -0,0 +1,7 @@
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
#pragma once
#define U_MT(MOD, TAP) &u_mt MOD TAP
#define U_LT(LAYER, TAP) &u_lt LAYER TAP

View File

@ -0,0 +1,11 @@
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
#define MIRYOKU_X(CODE, EMPTY) \
MIRYOKU_TAPDELAY_TAP(CODE##EMPTY) \
MIRYOKU_TAPDELAY_MT(CODE##EMPTY) \
MIRYOKU_TAPDELAY_LT(CODE##EMPTY)
MIRYOKU_TAPDELAY_LIST
#undef MIRYOKU_X

View File

@ -0,0 +1,80 @@
// Copyright 2022 Manna Harbour
// https://github.com/manna-harbour/miryoku
#pragma once
#define MIRYOKU_TAPDELAY_TAP(CODE) \
/ { \
macros { \
ZMK_MACRO(u_tapdelay_tap_##CODE, bindings = <&macro_press &kp CODE>, <&macro_release &kp CODE>;) \
}; \
};
#define MIRYOKU_TAPDELAY_MT(CODE) \
/ { \
behaviors { \
u_tapdelay_mt_##CODE: u_tapdelay_mt_##CODE { \
compatible = "zmk,behavior-hold-tap"; \
label = U_STRINGIFY(u_tapdelay_mt_##CODE); \
#binding-cells = <2>; \
tapping_term_ms = <U_TAPPING_TERM>; \
flavor = "tap-preferred"; \
bindings = <&kp>, <&u_tapdelay_tap_##CODE>; \
}; \
}; \
};
#define MIRYOKU_TAPDELAY_LT(CODE) \
/ { \
behaviors { \
u_tapdelay_lt_##CODE: u_tapdelay_lt_##CODE { \
compatible = "zmk,behavior-hold-tap"; \
label = U_STRINGIFY(u_tapdelay_lt_##CODE); \
#binding-cells = <2>; \
tapping_term_ms = <U_TAPPING_TERM>; \
flavor = "tap-preferred"; \
bindings = <&mo>, <&u_tapdelay_tap_##CODE>; \
}; \
}; \
};
#define U_MT(MOD, TAP) &u_tapdelay_mt_##TAP MOD 0
#define U_LT(LAYER, TAP) &u_tapdelay_lt_##TAP LAYER 0
#define MIRYOKU_TAPDELAY_LIST \
MIRYOKU_X(A,) \
MIRYOKU_X(B,) \
MIRYOKU_X(C,) \
MIRYOKU_X(D,) \
MIRYOKU_X(E,) \
MIRYOKU_X(F,) \
MIRYOKU_X(G,) \
MIRYOKU_X(H,) \
MIRYOKU_X(I,) \
MIRYOKU_X(J,) \
MIRYOKU_X(K,) \
MIRYOKU_X(L,) \
MIRYOKU_X(M,) \
MIRYOKU_X(N,) \
MIRYOKU_X(O,) \
MIRYOKU_X(P,) \
MIRYOKU_X(Q,) \
MIRYOKU_X(R,) \
MIRYOKU_X(S,) \
MIRYOKU_X(T,) \
MIRYOKU_X(U,) \
MIRYOKU_X(V,) \
MIRYOKU_X(W,) \
MIRYOKU_X(X,) \
MIRYOKU_X(Y,) \
MIRYOKU_X(Z,) \
MIRYOKU_X(SQT,) \
MIRYOKU_X(COMMA,) \
MIRYOKU_X(DOT,) \
MIRYOKU_X(SLASH,) \
MIRYOKU_X(ESC,) \
MIRYOKU_X(SPC,) \
MIRYOKU_X(TAB,) \
MIRYOKU_X(RET,) \
MIRYOKU_X(BSPC,) \
MIRYOKU_X(DEL,)

View File

@ -19,7 +19,16 @@ Workflow builds can be customised by copying and editing one of the [[#build-exa
The [[#keyboard-keymaps][keyboard keymaps]] are composed of the config file, a [[#mapping-macros][mapping]] for the physical layout, and the [[#miryoku-keymap][Miryoku keymap]].
[[#additional-and-experimental-features][Additional and Experimental Features]] include [[#caps-word][caps word]], [[#customisation][customisation]], [[#double-tap-boot][double tap boot]], [[#key-emulation-combos][key emulation combos]], [[#mouse-keys][mouse keys]], [[#suspend][suspend]], and [[#𝑥MK][𝑥MK]]. Open [[#issues][issues]] are also noted.
[[#additional-and-experimental-features][Additional and Experimental Features]] include
[[#caps-word][caps word]],
[[#customisation][customisation]],
[[#double-tap-boot][double tap boot]],
[[#key-emulation-combos][key emulation combos]],
[[#mouse-keys][mouse keys]],
[[#suspend][suspend]],
[[#tap-delay][tap delay]],
and [[#𝑥MK][𝑥MK]].
Open [[#issues][issues]] are also noted.
** Building
@ -498,15 +507,30 @@ For [[#local-builds][local builds]], add ~#define MIRYOKU_KLUDGE_SUSPEND~ to the
For [[#workflow-builds][workflow builds]] using the [[#build-inputs][Build Inputs]] workflow, use ~#define MIRYOKU_KLUDGE_SUSPEND~ with the ~custom_config~ option, and ~zmkfirmware/zmk/main manna-harbour/zmk/suspend-test~ with the ~branches~ option. For workflow builds using [[#build-examples][Build Example]] workflows, see the [[.github/workflows/build-example-suspend.yml][Build Example suspend]] workflow.
*** Tap Delay
Adds a delay between press and release of hold-tap taps, as a work around for https://github.com/zmkfirmware/zmk/issues/1444.
For [[#local-builds][local builds]], add ~#define MIRYOKU_KLUDGE_TAPDELAY~ to the [[#config-file][config file]]. For [[#workflow-builds][workflow builds]], use ~#define MIRYOKU_KLUDGE_TAPDELAY~ with the ~custom_config~ option.
*** 𝑥MK
Use Miryoku ZMK with any keyboard with [[https://github.com/manna-harbour/xmk][𝑥MK]].
For [[#local-builds][local builds]] first merge https://github.com/zmkfirmware/zmk/pull/1318. For the ~xmk~ shield, add https://github.com/manna-harbour/xmk/tree/main/zmk/boards/shields/xmk as ~config/boards/shields/xmk~, and build with shield ~xmk~ and the appropriate board. For the ~native_posix_64~ board, build with board ~native_posix_64~.
For [[#workflow-builds][workflow builds]] for the ~xmk~ shield, use the Build Example 𝑥MK xmk workflow, or use the Build Inputs workflow with shield ~xmk~, the appropriate board, and branches ~zmkfirmware/zmk/main petejohanson/zmk/shell/tap-command~. For workflow builds for the ~native_posix_64~ board, use the Build Example 𝑥MK native_posix_64 workflow, or use the Build Inputs workflow with board ~native_posix_64~ and branches ~zmkfirmware/zmk/main petejohanson/zmk/shell/tap-command~.
**** xmk Shield
Also see [[https://github.com/manna-harbour/miryoku_kmonad][Miryoku KMonad]].
For [[#local-builds][local builds]] first merge https://github.com/zmkfirmware/zmk/pull/1318. Add https://github.com/manna-harbour/xmk/tree/main/zmk/boards/shields/xmk as ~config/boards/shields/xmk~. Build with shield ~xmk~ and the appropriate board.
For [[#workflow-builds][workflow builds]] using the [[#build-inputs][Build Inputs]] workflow, use ~xmk~ with the ~shield~ option, the appropriate board with the ~board~ option, and ~zmkfirmware/zmk/main petejohanson/zmk/shell/tap-command~ with the ~branches~ option. For workflow builds using [[#build-examples][Build Example]] workflows, see the [[.github/workflows/build-example-xmk-xmk.yml][Build Example 𝑥MK xmk]] workflow.
**** native_posix_64 Board
For [[#local-builds][local builds]] first merge https://github.com/zmkfirmware/zmk/pull/1318. Add ~#define MIRYOKU_KLUDGE_TAPDELAY~ to the config file. Build with board ~native_posix_64~.
For [[#workflow-builds][workflow builds]] using the [[#build-inputs][Build Inputs]] workflow, use ~native_posix_64~ with the ~board~ option, ~#define MIRYOKU_KLUDGE_TAPDELAY~ with the ~custom_config~ option, and ~zmkfirmware/zmk/main petejohanson/zmk/shell/tap-command~ with the ~branches~ option. For workflow builds using [[#build-examples][Build Example]] workflows, see the [[.github/workflows/build-example-xmk-native_posix_64.yml][Build Example 𝑥MK native_posix_64]] workflow.
** Issues