aboutsummaryrefslogtreecommitdiffstats
path: root/src/keycode.h
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-12-19 17:01:11 +0100
committerLouis Burda <quent.burda@gmail.com>2022-12-19 17:01:11 +0100
commitd7c506450be613d6575649218fbcc90a4fabd150 (patch)
tree72319f85b7bce6842d30e495bb06270c81850c33 /src/keycode.h
parente4783bbcc4214416befceb53f6af9ebdfb35ba86 (diff)
downloadsxkbd-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.h33
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 */