aboutsummaryrefslogtreecommitdiffstats
path: root/users/callum/swapper.h
diff options
context:
space:
mode:
Diffstat (limited to 'users/callum/swapper.h')
-rw-r--r--users/callum/swapper.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/users/callum/swapper.h b/users/callum/swapper.h
new file mode 100644
index 000000000..ad47fd96c
--- /dev/null
+++ b/users/callum/swapper.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#include QMK_KEYBOARD_H
+
+// Implements cmd-tab like behaviour on a single key. On first tap of trigger
+// cmdish is held and tabish is tapped -- cmdish then remains held until some
+// other key is hit or released. For example:
+//
+// trigger, trigger, a -> cmd down, tab, tab, cmd up, a
+// nav down, trigger, nav up -> nav down, cmd down, tab, cmd up, nav up
+//
+// This behaviour is useful for more than just cmd-tab, hence: cmdish, tabish.
+void update_swapper(
+ bool *active,
+ uint16_t cmdish,
+ uint16_t tabish,
+ uint16_t trigger,
+ uint16_t keycode,
+ keyrecord_t *record
+);