summaryrefslogtreecommitdiff
path: root/app/include/dt-bindings/zmk/keymap-transform.h
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-06-15 17:03:34 -0400
committerPete Johanson <peter@peterjohanson.com>2020-06-15 17:03:34 -0400
commit1751470785a110729afc01f3947b406bc40ceb43 (patch)
tree6764aaafb2856f086b519d966fe525937a3ca511 /app/include/dt-bindings/zmk/keymap-transform.h
parent0712dadd2953a429de57c9c44aa1f9429112d809 (diff)
Initial work on keymap transforms for non-standard matrixes.
* Allows "gaps" for keyboards like Kyra. * Allows keyboards with matrixes that don't map the logical key locations to have normal looking keymaps when defined.
Diffstat (limited to 'app/include/dt-bindings/zmk/keymap-transform.h')
-rw-r--r--app/include/dt-bindings/zmk/keymap-transform.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/include/dt-bindings/zmk/keymap-transform.h b/app/include/dt-bindings/zmk/keymap-transform.h
new file mode 100644
index 0000000..af19c21
--- /dev/null
+++ b/app/include/dt-bindings/zmk/keymap-transform.h
@@ -0,0 +1,13 @@
+
+#include <zmk/util.h>
+
+#define KT_ROW(item) (item >> 8)
+#define KT_COL(item) (item & 0xFF)
+
+#define _ROW_COL(row, col) (((row) << 8) + (col))
+
+#define _IDENTITY_ENTRY(col, row) _ROW_COL(row, col)
+#define IDENTITY_ROW(row, count) UTIL_LISTIFY(count, _IDENTITY_ENTRY, row)
+
+#define _OFFSET_ENTRY(col, offset, row) _ROW_COL(row, col + offset)
+#define OFFSET_ROW(offset, row, count) UTIL_LISTIFY(count, _OFFSET_ENTRY, offset, row) \ No newline at end of file