summaryrefslogtreecommitdiff
path: root/include/dt-bindings/zmk
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-05-22 22:47:03 -0400
committerPete Johanson <peter@peterjohanson.com>2020-05-24 19:25:46 -0400
commit53aadc4f931a27d7b1350ea99cdc79106e138ad3 (patch)
tree2778036b5a060403b8bfd09c457c5472bf94fc6a /include/dt-bindings/zmk
parented5532bf94e93d25e35498cfd7a9040b0c69597b (diff)
Initial exploration of mod tap action.
Diffstat (limited to 'include/dt-bindings/zmk')
-rw-r--r--include/dt-bindings/zmk/keys.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/include/dt-bindings/zmk/keys.h b/include/dt-bindings/zmk/keys.h
index 5a2d97a..93b5ba3 100644
--- a/include/dt-bindings/zmk/keys.h
+++ b/include/dt-bindings/zmk/keys.h
@@ -74,11 +74,22 @@
#define ZC_CSTM(n) (0xFF + n)
-#define MOD_LCTL 0x00
-#define MOD_LSFT 0x01
-#define MOD_LALT 0x02
-#define MOD_LGUI 0x03
-#define MOD_RCTL 0x04
-#define MOD_RSFT 0x05
-#define MOD_RALT 0x06
-#define MOD_RGUI 0x07 \ No newline at end of file
+#define MOD_LCTL (1 << 0x00)
+#define MOD_LSFT (1 << 0x01)
+#define MOD_LALT (1 << 0x02)
+#define MOD_LGUI (1 << 0x03)
+#define MOD_RCTL (1 << 0x04)
+#define MOD_RSFT (1 << 0x05)
+#define MOD_RALT (1 << 0x06)
+#define MOD_RGUI (1 << 0x07)
+
+#define ZK_ACTION(k) (k >> 24)
+#define _ACTION(a) (a << 24)
+#define _ACTION_MODS(m) (m << 16)
+#define ZK_MODS(a) ((a >> 16) & 0xFF)
+
+#define ZMK_ACTION_KEY 0x01
+#define ZMK_ACTION_MOD_TAP 0x01
+#define ZMK_ACTION_ONE_SHOT 0x02
+
+#define MT(mods, kc) (_ACTION(ZMK_ACTION_MOD_TAP) + _ACTION_MODS(mods) + kc)