aboutsummaryrefslogtreecommitdiffstats
path: root/src/keysym.h
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-11-28 19:58:09 +0100
committerLouis Burda <quent.burda@gmail.com>2022-11-28 19:58:09 +0100
commita7bfb47f666c8fadffb80b1beeee1905ad3fe029 (patch)
tree1b2f068f9492b011f6087b3b4938a80e5f0ab0c2 /src/keysym.h
parent7f1cf3407ab3ba4827053133a7a47901ce763c61 (diff)
downloadsxkbd-a7bfb47f666c8fadffb80b1beeee1905ad3fe029.tar.gz
sxkbd-a7bfb47f666c8fadffb80b1beeee1905ad3fe029.zip
Basic key matrix scan and keycode setup
Diffstat (limited to 'src/keysym.h')
-rw-r--r--src/keysym.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/keysym.h b/src/keysym.h
new file mode 100644
index 0000000..3a7720c
--- /dev/null
+++ b/src/keysym.h
@@ -0,0 +1,47 @@
+#pragma once
+
+#define XXXXXXX KC_NO
+#define _______ KC_TRNS
+
+#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 TO_CODE(x) ((x) & 0xFF)
+#define TO_LAYER(x) ((x) & 0xFF)
+
+#define LCTL(x) ((x) | (1 << B_CTRL))
+#define LSFT(x) ((x) | (1 << B_SHIFT))
+#define LALT(x) ((x) | (1 << B_ALT))
+#define LGUI(x) ((x) | (1 << B_GUI))
+#define RCTL(x) (LCTL(x) | (1 << B_RIGHT))
+#define RSFT(x) (LSFT(x) | (1 << B_RIGHT))
+#define RALT(x) (LALT(x) | (1 << B_RIGHT))
+#define RGUI(x) (LGUI(x) | (1 << B_RIGHT))
+
+#define LOPT(x) LALT(x)
+#define LCMD(x) LGUI(x)
+#define LWIN(x) LGUI(x)
+#define ALGR(x) RALT(x)
+#define ROPT(x) RALT(x)
+#define RCMD(x) RGUI(x)
+
+#define C(x) LCTL(x)
+#define S(x) LSFT(x)
+#define A(x) LALT(x)
+#define G(x) LGUI(x)
+
+enum {
+ B_CTRL = 8,
+ B_SHIFT,
+ B_ALT,
+ B_GUI,
+ R_RIGHT,
+ B_TOGGLE,
+ B_SWITCH,
+};
+