aboutsummaryrefslogtreecommitdiffstats
path: root/src/keysym.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/keysym.h')
-rw-r--r--src/keysym.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/keysym.h b/src/keysym.h
index 3a7720c..1e6b103 100644
--- a/src/keysym.h
+++ b/src/keysym.h
@@ -3,6 +3,9 @@
#define XXXXXXX KC_NO
#define _______ KC_TRNS
+#define MASK(hi, lo) ((1 << hi) - (1 << lo))
+
+#define IS_CODE(x) (!((x) & MASK(B_MAX, 8)))
#define IS_CTRL(x) ((x) & (1 << B_CTRL))
#define IS_SHIFT(x) ((x) & (1 << B_SHIFT))
#define IS_ALT(x) ((x) & (1 << B_ALT))
@@ -10,6 +13,7 @@
#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 TO_CODE(x) ((x) & 0xFF)
#define TO_LAYER(x) ((x) & 0xFF)
@@ -35,13 +39,22 @@
#define A(x) LALT(x)
#define G(x) LGUI(x)
+#define SW(x) ((x) | (1 << B_SWITCH))
+#define TO(x) ((x) | (1 << B_TOGGLE))
+#define MO(x) ((x) | (1 << B_MODSWT))
+
+#define CS(x) C(MO(x))
+#define GS(x) G(MO(x))
+
enum {
B_CTRL = 8,
B_SHIFT,
B_ALT,
B_GUI,
- R_RIGHT,
+ B_RIGHT,
B_TOGGLE,
B_SWITCH,
+ B_MODSWT,
+ B_MAX
};