X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;ds=sidebyside;f=tmk_core%2Fcommon%2Faction_macro.h;h=739378649fdeccecf981d3a04ea492fd4937d013;hb=12e5a3a13eb86852ad58c131e28ba29c5f09bb2d;hp=aedc32ec6b2c428e53cd24d3d5c105eb1f1143eb;hpb=a3d96d3aa96318d339a67de1085e0ae495d57c84;p=max%2Ftmk_keyboard.git diff --git a/tmk_core/common/action_macro.h b/tmk_core/common/action_macro.h index aedc32ec..73937864 100644 --- a/tmk_core/common/action_macro.h +++ b/tmk_core/common/action_macro.h @@ -64,6 +64,9 @@ enum macro_command_id{ /* 0x74 - 0x83 */ WAIT = 0x74, INTERVAL, + MOD_STORE, + MOD_RESTORE, + MOD_CLEAR, /* 0x84 - 0xf3 (reserved for keycode up) */ @@ -82,6 +85,9 @@ enum macro_command_id{ #define TYPE(key) DOWN(key), UP(key) #define WAIT(ms) WAIT, (ms) #define INTERVAL(ms) INTERVAL, (ms) +#define STORE() MOD_STORE +#define RESTORE() MOD_RESTORE +#define CLEAR() MOD_CLEAR /* key down */ #define D(key) DOWN(KC_##key) @@ -93,6 +99,25 @@ enum macro_command_id{ #define W(ms) WAIT(ms) /* interval */ #define I(ms) INTERVAL(ms) +/* store modifier(s) */ +#define SM() STORE() +/* restore modifier(s) */ +#define RM() RESTORE() +/* clear modifier(s) */ +#define CM() CLEAR() +/* key shift-type */ +#define ST(key) D(LSFT), T(key), U(LSFT) +/* modifier utility macros */ +/* Example: Ctrl+Alt+[Shift+] is CTL_( ALT_( [S]T(key1), [S]T(key2) )) . */ +#define SFT_(...) D(LSFT), __VA_ARGS__, U(LSFT) +#define CTL_(...) D(LCTL), __VA_ARGS__, U(LCTL) +#define ALT_(...) D(LALT), __VA_ARGS__, U(LALT) +#define AGR_(...) D(RALT), __VA_ARGS__, U(RALT) +/* Unicode macros for XOrg/MacOs/Win. */ +/* Example: UNIW_(0,1,4,9) enters a bullet glyph on Windows using Alt+KeyPad(####). */ +#define UNIX_(d1,d2,d3,d4) CTL_(ST(U)), T(d1), T(d2), T(d3), T(d4) , T(ENT) +#define UNIM_(d1,d2,d3,d4) ALT_( T(d1), T(d2), T(d3), T(d4) ) +#define UNIW_(d1,d2,d3,d4) ALT_( T(P##d1), T(P##d2), T(P##d3), T(P##d4) ) /* for backward comaptibility */ #define MD(key) DOWN(KC_##key)