diff options
Diffstat (limited to 'src/keysym.h')
| -rw-r--r-- | src/keysym.h | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/keysym.h b/src/keysym.h index 7737284..79dce3a 100644 --- a/src/keysym.h +++ b/src/keysym.h @@ -1,21 +1,28 @@ #pragma once -#include "keycode.h" - #define XXXXXXX KC_NO #define _______ KC_TRNS #define MASK(hi, lo) ((1U << (hi)) - (1U << (lo))) #define IS_KC(x) (!((x) & ~MASK(B_TOGGLE, 0))) -#define IS_CTRL(x) ((x) & (1 << B_CTRL)) -#define IS_SHIFT(x) ((x) & (1 << B_SHIFT)) -#define IS_ALT(x) ((x) & (1 << B_ALT)) -#define IS_GUI(x) ((x) & (1 << B_GUI)) -#define IS_RIGHT(x) ((x) & (1 << B_RIGHT)) -#define IS_TOGGLE(x) ((x) & (1 << B_TOGGLE)) -#define IS_SWITCH(x) ((x) & (1 << B_SWITCH)) -#define IS_USER(x) ((x) & (1 << B_USER)) +#define IS_CTRL(x) ((x) & (1U << B_CTRL)) +#define IS_SHIFT(x) ((x) & (1U << B_SHIFT)) +#define IS_ALT(x) ((x) & (1U << B_ALT)) +#define IS_GUI(x) ((x) & (1U << B_GUI)) +#define IS_RIGHT(x) ((x) & (1U << B_RIGHT)) +#define IS_TOGGLE(x) ((x) & (1U << B_TOGGLE)) +#define IS_SWITCH(x) ((x) & (1U << B_SWITCH)) +#define IS_SPECIAL(x) ((x) & (1U << B_SPECIAL)) +#define IS_USER(x) ((x) & (1U << B_USER)) + +#define KEYSYM_MOUSE_MASK ((1U << B_SPECIAL) | (0b01 << B_SPECIAL_SEL)) +#define KEYSYM_SYSTEM_MASK ((1U << B_SPECIAL) | (0b10 << B_SPECIAL_SEL)) +#define KEYSYM_CONSUMER_MASK ((1U << B_SPECIAL) | (0b11 << B_SPECIAL_SEL)) + +#define IS_MOUSE(x) ((x) & (KEYSYM_MOUSE_MASK)) +#define IS_SYSTEM(x) ((x) & (KEYSYM_SYSTEM_MASK)) +#define IS_CONSUMER(x) ((x) & (KEYSYM_CONSUMER_MASK)) #define IS_LEFT_CTRL(x) (IS_CTRL(x) && !IS_RIGHT(x)) #define IS_RIGHT_CTRL(x) (IS_CTRL(x) && IS_RIGHT(x)) @@ -26,7 +33,7 @@ #define IS_LEFT_GUI(x) (IS_GUI(x) && !IS_RIGHT(x)) #define IS_RIGHT_GUI(x) (IS_GUI(x) && IS_RIGHT(x)) -#define IS_MOD(x) ((x) & MASK(B_TOGGLE, 8)) +#define IS_MOD(x) ((x) & MASK(B_TOGGLE, B_CTRL)) #define TO_KC(x) ((x) & 0xFF) #define TO_SYM(x) ((x) & 0xFF) @@ -58,9 +65,11 @@ #define G(x) LGUI(x) #define CS(x) C(SW(x)) +#define AS(x) A(SW(x)) #define GS(x) G(SW(x)) enum { + B_SPECIAL_SEL = 6, B_CTRL = 8, B_SHIFT, B_ALT, @@ -68,6 +77,7 @@ enum { B_RIGHT, B_TOGGLE, B_SWITCH, + B_SPECIAL, B_USER }; |
