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/keycode.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/keycode.h')
| -rw-r--r-- | src/keycode.h | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/src/keycode.h b/src/keycode.h index 98d5831..afd4378 100644 --- a/src/keycode.h +++ b/src/keycode.h @@ -8,14 +8,14 @@ * or http://www.usb.org/developers/hidpage/Hut1_12v2.pdf (older) */ -#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED) -#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF) -#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL) -#define IS_MOD(code) (KC_LEFT_CTRL <= (code) && (code) <= KC_RIGHT_GUI) +#define IS_ANY_KC(code) (KC_A <= (code) && (code) <= 0xFF) +#define IS_ERROR_KC(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED) +#define IS_KEY_KC(code) (KC_A <= (code) && (code) <= KC_EXSEL) +#define IS_MOD_KC(code) (KC_LEFT_CTRL <= (code) && (code) <= KC_RIGHT_GUI) -// #define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) -// #define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE) -// #define IS_CONSUMER(code) (KC_MUTE <= (code) && (code) <= KC_BRID) +#define IS_SPECIAL_KC(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) +#define IS_SYSTEM_KC(code) (KC_PWR <= (code) && (code) <= KC_WAKE) +#define IS_CONSUMER_KC(code) (KC_MUTE <= (code) && (code) <= KC_BRID) #define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2) #define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT) @@ -23,6 +23,25 @@ #define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT) #define IS_MOUSEKEY_ACCEL(code) (KC_MS_ACCEL0 <= (code) && (code) <= KC_MS_ACCEL2) +#define MOD_BIT(code) (1 << MOD_INDEX(code)) +#define MOD_INDEX(code) ((code) & 0b111) + +#define MOD_MASK_CTRL (MOD_BIT(KC_LEFT_CTRL) | MOD_BIT(KC_RIGHT_CTRL)) +#define MOD_MASK_SHIFT (MOD_BIT(KC_LEFT_SHIFT) | MOD_BIT(KC_RIGHT_SHIFT)) +#define MOD_MASK_ALT (MOD_BIT(KC_LEFT_ALT) | MOD_BIT(KC_RIGHT_ALT)) +#define MOD_MASK_GUI (MOD_BIT(KC_LEFT_GUI) | MOD_BIT(KC_RIGHT_GUI)) +#define MOD_MASK_CS (MOD_MASK_CTRL | MOD_MASK_SHIFT) +#define MOD_MASK_CA (MOD_MASK_CTRL | MOD_MASK_ALT) +#define MOD_MASK_CG (MOD_MASK_CTRL | MOD_MASK_GUI) +#define MOD_MASK_SA (MOD_MASK_SHIFT | MOD_MASK_ALT) +#define MOD_MASK_SG (MOD_MASK_SHIFT | MOD_MASK_GUI) +#define MOD_MASK_AG (MOD_MASK_ALT | MOD_MASK_GUI) +#define MOD_MASK_CSA (MOD_MASK_CTRL | MOD_MASK_SHIFT | MOD_MASK_ALT) +#define MOD_MASK_CSG (MOD_MASK_CTRL | MOD_MASK_SHIFT | MOD_MASK_GUI) +#define MOD_MASK_CAG (MOD_MASK_CTRL | MOD_MASK_ALT | MOD_MASK_GUI) +#define MOD_MASK_SAG (MOD_MASK_SHIFT | MOD_MASK_ALT | MOD_MASK_GUI) +#define MOD_MASK_CSAG (MOD_MASK_CTRL | MOD_MASK_SHIFT | MOD_MASK_ALT | MOD_MASK_GUI) + /* Short names for ease of definition of keymap */ /* Transparent */ |
