summaryrefslogtreecommitdiff
path: root/app/include/dt-bindings/zmk/modifiers.h
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-11-03 00:21:20 -0500
committerPete Johanson <peter@peterjohanson.com>2020-11-03 00:21:20 -0500
commit32e715937379eea431b54cf73f15a785527f3aa1 (patch)
treec1c81c51745a9a71f3ff41668c4addec54153ad8 /app/include/dt-bindings/zmk/modifiers.h
parent55b5936d00cd92e734e4fa8136ee30cf156ecec3 (diff)
refactor(hid): Mod defines in dedicated header.
Diffstat (limited to 'app/include/dt-bindings/zmk/modifiers.h')
-rw-r--r--app/include/dt-bindings/zmk/modifiers.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/include/dt-bindings/zmk/modifiers.h b/app/include/dt-bindings/zmk/modifiers.h
new file mode 100644
index 0000000..b49849d
--- /dev/null
+++ b/app/include/dt-bindings/zmk/modifiers.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2020 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+#pragma once
+
+#define MOD_LCTL 0x01
+#define MOD_LSFT 0x02
+#define MOD_LALT 0x04
+#define MOD_LGUI 0x08
+#define MOD_RCTL 0x10
+#define MOD_RSFT 0x20
+#define MOD_RALT 0x40
+#define MOD_RGUI 0x80
+
+#define SELECT_MODS(keycode) (keycode >> 24)
+#define STRIP_MODS(keycode) (keycode & ~(0xFF << 24))
+#define APPLY_MODS(mods, keycode) (mods << 24 | keycode)
+
+#define LC(keycode) APPLY_MODS(MOD_LCTL, keycode)
+#define LS(keycode) APPLY_MODS(MOD_LSFT, keycode)
+#define LA(keycode) APPLY_MODS(MOD_LALT, keycode)
+#define LG(keycode) APPLY_MODS(MOD_LGUI, keycode)
+#define RC(keycode) APPLY_MODS(MOD_RCTL, keycode)
+#define RS(keycode) APPLY_MODS(MOD_RSFT, keycode)
+#define RA(keycode) APPLY_MODS(MOD_RALT, keycode)
+#define RG(keycode) APPLY_MODS(MOD_RGUI, keycode) \ No newline at end of file