// Copyright 2022 Manna Harbour // https://github.com/manna-harbour/miryoku #define MIRYOKU_SHIFT_FUNCTION(NAME, BINDING, SHIFT_BINDING) \ / { \ behaviors { \ NAME: NAME { \ compatible = "zmk,behavior-mod-morph"; \ label = U_STRINGIFY(NAME); \ #binding-cells = <0>; \ bindings = , ; \ mods = <(MOD_LSFT|MOD_RSFT)>; \ }; \ }; \ }; #define MIRYOKU_SHIFT_MACRO(NAME, BINDING, SHIFT_BINDING) \ / { \ macros { \ ZMK_MACRO(u_macro_ ## NAME, wait-ms = <0>; bindings = ;) \ }; \ }; \ MIRYOKU_SHIFT_FUNCTION(NAME, BINDING, &u_macro_ ## NAME) MIRYOKU_SHIFT_MACRO(u_bt_sel_0, &bt BT_SEL 0, &bt BT_SEL 0 &bt BT_CLR) MIRYOKU_SHIFT_MACRO(u_bt_sel_1, &bt BT_SEL 1, &bt BT_SEL 1 &bt BT_CLR) MIRYOKU_SHIFT_MACRO(u_bt_sel_2, &bt BT_SEL 2, &bt BT_SEL 2 &bt BT_CLR) MIRYOKU_SHIFT_MACRO(u_bt_sel_3, &bt BT_SEL 3, &bt BT_SEL 3 &bt BT_CLR) MIRYOKU_SHIFT_MACRO(u_bt_sel_4, &bt BT_SEL 4, &bt BT_SEL 4 &bt BT_CLR) MIRYOKU_SHIFT_FUNCTION(u_out_tog, &out OUT_TOG, &out OUT_USB) MIRYOKU_SHIFT_FUNCTION(u_caps_word, &caps_word, &kp CAPS) #if defined (MIRYOKU_KLUDGE_GLOBALSHIFTFUNCTIONS) MIRYOKU_SHIFT_FUNCTION(u_rgb_tog, &rgb_ug RGB_TOG, &rgb_ug RGB_OFF) MIRYOKU_SHIFT_FUNCTION(u_rgb_eff, &rgb_ug RGB_EFF, &rgb_ug RGB_EFR) MIRYOKU_SHIFT_FUNCTION(u_rgb_hui, &rgb_ug RGB_HUI, &rgb_ug RGB_HUD) MIRYOKU_SHIFT_FUNCTION(u_rgb_sai, &rgb_ug RGB_SAI, &rgb_ug RGB_SAD) MIRYOKU_SHIFT_FUNCTION(u_rgb_bri, &rgb_ug RGB_BRI, &rgb_ug RGB_BRD) MIRYOKU_SHIFT_FUNCTION(u_ep_tog, &ext_power EP_TOG, &ext_power EP_OFF) #endif