diff options
| author | Louis Burda <quent.burda@gmail.com> | 2022-12-19 17:01:11 +0100 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2022-12-19 17:01:11 +0100 |
| commit | d7c506450be613d6575649218fbcc90a4fabd150 (patch) | |
| tree | 72319f85b7bce6842d30e495bb06270c81850c33 /src/keysym.h | |
| parent | e4783bbcc4214416befceb53f6af9ebdfb35ba86 (diff) | |
| download | sxkbd-d7c506450be613d6575649218fbcc90a4fabd150.tar.gz sxkbd-d7c506450be613d6575649218fbcc90a4fabd150.zip | |
Enable temporary (weak) mods for specific keys and layer switching with mods
Diffstat (limited to 'src/keysym.h')
| -rw-r--r-- | src/keysym.h | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/keysym.h b/src/keysym.h index 17e5e87..7737284 100644 --- a/src/keysym.h +++ b/src/keysym.h @@ -7,7 +7,7 @@ #define MASK(hi, lo) ((1U << (hi)) - (1U << (lo))) -#define IS_CODE(x) (!((x) & ~MASK(B_TOGGLE, 0))) +#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)) @@ -15,10 +15,21 @@ #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_MODSWT(x) ((x) & (1 << B_MODSWT)) -#define IS_SPECIAL(x) ((x) & (1 << B_SPECIAL)) +#define IS_USER(x) ((x) & (1 << B_USER)) -#define TO_CODE(x) ((x) & 0xFF) +#define IS_LEFT_CTRL(x) (IS_CTRL(x) && !IS_RIGHT(x)) +#define IS_RIGHT_CTRL(x) (IS_CTRL(x) && IS_RIGHT(x)) +#define IS_LEFT_SHIFT(x) (IS_SHIFT(x) && !IS_RIGHT(x)) +#define IS_RIGHT_SHIFT(x) (IS_SHIFT(x) && IS_RIGHT(x)) +#define IS_LEFT_ALT(x) (IS_ALT(x) && !IS_RIGHT(x)) +#define IS_RIGHT_ALT(x) (IS_ALT(x) && IS_RIGHT(x)) +#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 TO_KC(x) ((x) & 0xFF) +#define TO_SYM(x) ((x) & 0xFF) #define TO_LAYER(x) ((x) & 0xFF) #define LCTL(x) ((x) | (1 << B_CTRL)) @@ -32,8 +43,7 @@ #define SW(x) ((x) | (1 << B_SWITCH)) #define TO(x) ((x) | (1 << B_TOGGLE)) -#define MO(x) ((x) | (1 << B_MODSWT)) -#define SX(x) ((x) | (1 << B_SPECIAL)) +#define SX(x) ((x) | (1 << B_USER)) #define LOPT(x) LALT(x) #define LCMD(x) LGUI(x) @@ -47,8 +57,8 @@ #define A(x) LALT(x) #define G(x) LGUI(x) -#define CS(x) C(MO(x)) -#define GS(x) G(MO(x)) +#define CS(x) C(SW(x)) +#define GS(x) G(SW(x)) enum { B_CTRL = 8, @@ -58,7 +68,6 @@ enum { B_RIGHT, B_TOGGLE, B_SWITCH, - B_MODSWT, - B_SPECIAL + B_USER }; |
