aboutsummaryrefslogtreecommitdiffstats
path: root/src/keysym.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/keysym.h')
-rw-r--r--src/keysym.h34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/keysym.h b/src/keysym.h
index 620ef31..17e5e87 100644
--- a/src/keysym.h
+++ b/src/keysym.h
@@ -5,17 +5,18 @@
#define XXXXXXX KC_NO
#define _______ KC_TRNS
-#define MASK(hi, lo) ((1 << (hi)) - (1 << (lo)))
+#define MASK(hi, lo) ((1U << (hi)) - (1U << (lo)))
-#define IS_CODE(x) (!((x) & MASK(B_MODMAX+1, B_MODMIN)))
-#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_MODSWT(x) ((x) & (1 << B_MODSWT))
+#define IS_CODE(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_MODSWT(x) ((x) & (1 << B_MODSWT))
+#define IS_SPECIAL(x) ((x) & (1 << B_SPECIAL))
#define TO_CODE(x) ((x) & 0xFF)
#define TO_LAYER(x) ((x) & 0xFF)
@@ -29,6 +30,11 @@
#define RALT(x) (LALT(x) | (1 << B_RIGHT))
#define RGUI(x) (LGUI(x) | (1 << B_RIGHT))
+#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 LOPT(x) LALT(x)
#define LCMD(x) LGUI(x)
#define LWIN(x) LGUI(x)
@@ -41,16 +47,9 @@
#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))
-#define B_MODMIN B_TOGGLE
-#define B_MODMAX B_MODSWT
-
enum {
B_CTRL = 8,
B_SHIFT,
@@ -60,5 +59,6 @@ enum {
B_TOGGLE,
B_SWITCH,
B_MODSWT,
+ B_SPECIAL
};