Add shift functions

This commit is contained in:
Manna Harbour 2022-05-12 13:10:17 +10:00
parent 31ab7bba01
commit aec20c6212
4 changed files with 76 additions and 31 deletions

View File

@ -72,6 +72,8 @@
};
};
#include "miryoku_shift_functions.dtsi"
#if defined (MIRYOKU_KLUDGE_MOUSEKEYSPR)
#include "miryoku_kludge_mousekeyspr.dtsi"
#endif

View File

@ -7,6 +7,7 @@
#include "miryoku_babel/miryoku_layer.h"
#define U_MACRO_VA_ARGS(macro, ...) macro(__VA_ARGS__)
#define U_STRINGIFY(x) #x
#define U_NP &none // key is not present
#define U_NA &none // present but not available for use

View File

@ -249,132 +249,132 @@ U_NP, U_NP, &kp ESC, &kp SPC, &kp
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \
&kp PG_UP, &kp HOME, &kp UP, &kp END, &kp INS, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp PG_UP, &kp HOME, &kp UP, &kp END, &kp INS, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp PG_DN, &kp LEFT, &kp DOWN, &kp RIGHT, &kp CAPS, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, &to NAV, &to NUM, &kp RALT, U_NA, \
U_NP, U_NP, &kp DEL, &kp BSPC, &kp RET, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_NAV_FLIP \
&kp HOME, &kp PG_DN, &kp PG_UP, &kp END, &kp INS, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp HOME, &kp PG_DN, &kp PG_UP, &kp END, &kp INS, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp LEFT, &kp DOWN, &kp UP, &kp RIGHT, &kp CAPS, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, &to NAV, &to NUM, &kp RALT, U_NA, \
U_NP, U_NP, &kp DEL, &kp BSPC, &kp RET, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, &kp INS, &kp HOME, &kp UP, &kp END, &kp PG_UP, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, &kp INS, &kp HOME, &kp UP, &kp END, &kp PG_UP, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp CAPS, &kp LEFT, &kp DOWN, &kp RIGHT, &kp PG_DN, \
U_NA, &kp RALT, &to NUM, &to NAV, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_NAV_VI \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp LEFT, &kp DOWN, &kp UP, &kp RIGHT, &kp CAPS, \
U_NA, &kp RALT, &to NUM, &to NAV, U_NA, &kp HOME, &kp PG_DN, &kp PG_UP, &kp END, &kp INS, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_NAV \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp CAPS, &kp LEFT, &kp DOWN, &kp UP, &kp RIGHT, \
U_NA, &kp RALT, &to NUM, &to NAV, U_NA, &kp INS, &kp HOME, &kp PG_DN, &kp PG_UP, &kp END, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp RET, &kp BSPC, &kp DEL, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP \
U_WH_U, U_WH_L, U_MS_U, U_WH_R, U_NU, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
U_WH_U, U_WH_L, U_MS_U, U_WH_R, U_NU, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
U_WH_D, U_MS_L, U_MS_D, U_MS_R, U_NU, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, &to MOUSE, &to SYM, &kp RALT, U_NA, \
U_NP, U_NP, U_BTN2, U_BTN3, U_BTN1, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MOUSE_FLIP \
U_WH_L, U_WH_D, U_WH_U, U_WH_R, U_NU, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
U_WH_L, U_WH_D, U_WH_U, U_WH_R, U_NU, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
U_MS_L, U_MS_D, U_MS_U, U_MS_R, U_NU, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, &to MOUSE, &to SYM, &kp RALT, U_NA, \
U_NP, U_NP, U_BTN2, U_BTN3, U_BTN1, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, U_NU, U_WH_L, U_MS_U, U_WH_R, U_WH_U, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, U_NU, U_WH_L, U_MS_U, U_WH_R, U_WH_U, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, U_NU, U_MS_L, U_MS_D, U_MS_R, U_WH_D, \
U_NA, &kp RALT, &to SYM, &to MOUSE, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
U_NP, U_NP, U_NA, U_NA, U_NA, U_BTN1, U_BTN3, U_BTN2, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MOUSE_VI \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, U_MS_L, U_MS_D, U_MS_U, U_MS_R, U_NU, \
U_NA, &kp RALT, &to SYM, &to MOUSE, U_NA, U_WH_L, U_WH_D, U_WH_U, U_WH_R, U_NU, \
U_NP, U_NP, U_NA, U_NA, U_NA, U_BTN1, U_BTN3, U_BTN2, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MOUSE \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, U_NU, U_MS_L, U_MS_D, U_MS_U, U_MS_R, \
U_NA, &kp RALT, &to SYM, &to MOUSE, U_NA, U_NU, U_WH_L, U_WH_D, U_WH_U, U_WH_R, \
U_NP, U_NP, U_NA, U_NA, U_NA, U_BTN1, U_BTN3, U_BTN2, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \
&rgb_ug RGB_SAI, &rgb_ug RGB_HUI, &kp C_VOL_UP, &rgb_ug RGB_EFF, &rgb_ug RGB_TOG, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&rgb_ug RGB_BRI, &kp C_PREV, &kp C_VOL_DN, &kp C_NEXT, &ext_power EP_TOG, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
&bt BT_SEL 0, &bt BT_SEL 1, &bt BT_SEL 2, &bt BT_SEL 3, &out OUT_TOG, U_NA, &to MEDIA, &to FUN, &kp RALT, U_NA, \
&u_rgb_sai, &u_rgb_hui, &kp C_VOL_UP, &u_rgb_eff, &rgb_ug RGB_TOG, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&u_rgb_bri, &kp C_PREV, &kp C_VOL_DN, &kp C_NEXT, &u_ep_tog, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
&u_bt_sel_0, &u_bt_sel_1, &u_bt_sel_2, &u_bt_sel_3, &u_out_tog, U_NA, &to MEDIA, &to FUN, &kp RALT, U_NA, \
U_NP, U_NP, &kp C_MUTE, &kp C_PP, &kp C_STOP, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MEDIA_FLIP \
&rgb_ug RGB_EFF, &rgb_ug RGB_HUI, &rgb_ug RGB_SAI, &rgb_ug RGB_BRI, &rgb_ug RGB_TOG, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp C_PREV, &kp C_VOL_DN, &kp C_VOL_UP, &kp C_NEXT, &ext_power EP_TOG, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
&bt BT_SEL 0, &bt BT_SEL 1, &bt BT_SEL 2, &bt BT_SEL 3, &out OUT_TOG, U_NA, &to MEDIA, &to FUN, &kp RALT, U_NA, \
&u_rgb_eff, &u_rgb_hui, &u_rgb_sai, &u_rgb_bri, &rgb_ug RGB_TOG, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp C_PREV, &kp C_VOL_DN, &kp C_VOL_UP, &kp C_NEXT, &u_ep_tog, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
&u_bt_sel_0, &u_bt_sel_1, &u_bt_sel_2, &u_bt_sel_3, &u_out_tog, U_NA, &to MEDIA, &to FUN, &kp RALT, U_NA, \
U_NP, U_NP, &kp C_MUTE, &kp C_PP, &kp C_STOP, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, &rgb_ug RGB_TOG, &rgb_ug RGB_EFF, &kp C_VOL_UP, &rgb_ug RGB_HUI, &rgb_ug RGB_SAI, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &ext_power EP_TOG, &kp C_PREV, &kp C_VOL_DN, &kp C_NEXT, &rgb_ug RGB_BRI, \
U_NA, &kp RALT, &to FUN, &to MEDIA, U_NA, &out OUT_TOG, &bt BT_SEL 0, &bt BT_SEL 1, &bt BT_SEL 2, &bt BT_SEL 3, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, &rgb_ug RGB_TOG, &u_rgb_eff, &kp C_VOL_UP, &u_rgb_hui, &u_rgb_sai, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &u_ep_tog, &kp C_PREV, &kp C_VOL_DN, &kp C_NEXT, &u_rgb_bri, \
U_NA, &kp RALT, &to FUN, &to MEDIA, U_NA, &u_out_tog, &u_bt_sel_0, &u_bt_sel_1, &u_bt_sel_2, &u_bt_sel_3, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp C_STOP, &kp C_PP, &kp C_MUTE, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MEDIA_VI \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, &rgb_ug RGB_EFF, &rgb_ug RGB_HUI, &rgb_ug RGB_SAI, &rgb_ug RGB_BRI, &rgb_ug RGB_TOG, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp C_PREV, &kp C_VOL_DN, &kp C_VOL_UP, &kp C_NEXT, &ext_power EP_TOG, \
U_NA, &kp RALT, &to FUN, &to MEDIA, U_NA, &bt BT_SEL 0, &bt BT_SEL 1, &bt BT_SEL 2, &bt BT_SEL 3, &out OUT_TOG, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, &u_rgb_eff, &u_rgb_hui, &u_rgb_sai, &u_rgb_bri, &rgb_ug RGB_TOG, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp C_PREV, &kp C_VOL_DN, &kp C_VOL_UP, &kp C_NEXT, &u_ep_tog, \
U_NA, &kp RALT, &to FUN, &to MEDIA, U_NA, &u_bt_sel_0, &u_bt_sel_1, &u_bt_sel_2, &u_bt_sel_3, &u_out_tog, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp C_STOP, &kp C_PP, &kp C_MUTE, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_MEDIA \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, &rgb_ug RGB_TOG, &rgb_ug RGB_EFF, &rgb_ug RGB_HUI, &rgb_ug RGB_SAI, &rgb_ug RGB_BRI, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &ext_power EP_TOG, &kp C_PREV, &kp C_VOL_DN, &kp C_VOL_UP, &kp C_NEXT, \
U_NA, &kp RALT, &to FUN, &to MEDIA, U_NA, &out OUT_TOG, &bt BT_SEL 0, &bt BT_SEL 1, &bt BT_SEL 2, &bt BT_SEL 3, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, &rgb_ug RGB_TOG, &u_rgb_eff, &u_rgb_hui, &u_rgb_sai, &u_rgb_bri, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &u_ep_tog, &kp C_PREV, &kp C_VOL_DN, &kp C_VOL_UP, &kp C_NEXT, \
U_NA, &kp RALT, &to FUN, &to MEDIA, U_NA, &u_out_tog, &u_bt_sel_0, &u_bt_sel_1, &u_bt_sel_2, &u_bt_sel_3, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp C_STOP, &kp C_PP, &kp C_MUTE, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_NUM_FLIP \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, &kp LBKT, &kp NUM_7, &kp NUM_8, &kp NUM_9, &kp RBKT, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, &kp LBKT, &kp NUM_7, &kp NUM_8, &kp NUM_9, &kp RBKT, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp EQL, &kp NUM_4, &kp NUM_5, &kp NUM_6, &kp SEMI, \
U_NA, &kp RALT, &to NAV, &to NUM, U_NA, &kp BSLH, &kp NUM_1, &kp NUM_2, &kp NUM_3, &kp GRAVE, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp MINUS, &kp NUM_0, &kp DOT, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_NUM \
&kp LBKT, &kp NUM_7, &kp NUM_8, &kp NUM_9, &kp RBKT, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp LBKT, &kp NUM_7, &kp NUM_8, &kp NUM_9, &kp RBKT, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp SEMI, &kp NUM_4, &kp NUM_5, &kp NUM_6, &kp EQL, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
&kp GRAVE, &kp NUM_1, &kp NUM_2, &kp NUM_3, &kp BSLH, U_NA, &to NUM, &to NAV, &kp RALT, U_NA, \
U_NP, U_NP, &kp DOT, &kp NUM_0, &kp MINUS, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_SYM_FLIP \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, &kp LBRC, &kp AMPS, &kp ASTRK, &kp LPAR, &kp RBRC, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, &kp LBRC, &kp AMPS, &kp ASTRK, &kp LPAR, &kp RBRC, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp PLUS, &kp DLLR, &kp PRCT, &kp CRRT, &kp COLON, \
U_NA, &kp RALT, &to MOUSE, &to SYM, U_NA, &kp PIPE, &kp EXCL, &kp AT, &kp HASH, &kp TILDE, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp UNDER, &kp LPAR, &kp RPAR, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_SYM \
&kp LBRC, &kp AMPS, &kp ASTRK, &kp LPAR, &kp RBRC, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp LBRC, &kp AMPS, &kp ASTRK, &kp LPAR, &kp RBRC, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp COLON, &kp DLLR, &kp PRCT, &kp CRRT, &kp PLUS, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
&kp TILDE, &kp EXCL, &kp AT, &kp HASH, &kp PIPE, U_NA, &to SYM, &to MOUSE, &kp RALT, U_NA, \
U_NP, U_NP, &kp LPAR, &kp RPAR, &kp UNDER, U_NA, U_NA, U_NA, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_FUN_FLIP \
&bootloader, &to TAP, &to EXTRA, &to BASE, &bt BT_CLR, &kp PSCRN, &kp F7, &kp F8, &kp F9, &kp F12, \
&bootloader, &to TAP, &to EXTRA, &to BASE, U_NA, &kp PSCRN, &kp F7, &kp F8, &kp F9, &kp F12, \
&kp LGUI, &kp LALT, &kp LCTRL, &kp LSHFT, U_NA, &kp SLCK, &kp F4, &kp F5, &kp F6, &kp F11, \
U_NA, &kp RALT, &to MEDIA, &to FUN, U_NA, &kp PAUSE_BREAK, &kp F1, &kp F2, &kp F3, &kp F10, \
U_NP, U_NP, U_NA, U_NA, U_NA, &kp TAB, &kp SPC, &kp K_APP, U_NP, U_NP
#define MIRYOKU_ALTERNATIVES_FUN \
&kp F12, &kp F7, &kp F8, &kp F9, &kp PSCRN, &bt BT_CLR, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp F12, &kp F7, &kp F8, &kp F9, &kp PSCRN, U_NA, &to BASE, &to EXTRA, &to TAP, &bootloader, \
&kp F11, &kp F4, &kp F5, &kp F6, &kp SLCK, U_NA, &kp LSHFT, &kp LCTRL, &kp LALT, &kp LGUI, \
&kp F10, &kp F1, &kp F2, &kp F3, &kp PAUSE_BREAK, U_NA, &to FUN, &to MEDIA, &kp RALT, U_NA, \
U_NP, U_NP, &kp K_APP, &kp SPC, &kp TAB, U_NA, U_NA, U_NA, U_NP, U_NP

View File

@ -0,0 +1,42 @@
// 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 = <BINDING>, <SHIFT_BINDING>; \
mods = <(MOD_LSFT|MOD_RSFT)>; \
}; \
}; \
};
#define MIRYOKU_SHIFT_MACRO(NAME, BINDING, SHIFT_BINDING) \
/ { \
macros { \
ZMK_MACRO(u_macro_ ## NAME, wait-ms = <0>; bindings = <SHIFT_BINDING>;) \
}; \
}; \
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_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)
MIRYOKU_SHIFT_FUNCTION(u_caps_word, &caps_word, &kp CAPS)