]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - users/kuatsure/kuatsure.c
Add kuatsure map to preonic board (#3087)
[qmk_firmware.git] / users / kuatsure / kuatsure.c
diff --git a/users/kuatsure/kuatsure.c b/users/kuatsure/kuatsure.c
new file mode 100644 (file)
index 0000000..a187136
--- /dev/null
@@ -0,0 +1,111 @@
+#include "kuatsure.h"
+
+void tmux_prefix(void) {
+  register_code(KC_LCTL);
+  register_code(KC_SPC);
+
+  unregister_code(KC_LCTL);
+  unregister_code(KC_SPC);
+}
+
+void tmux_pane_zoom(void) {
+  tmux_prefix();
+
+  register_code(KC_Z);
+  unregister_code(KC_Z);
+}
+
+void tmux_pane_switch(uint16_t keycode) {
+  tmux_prefix();
+
+  register_code(KC_Q);
+  unregister_code(KC_Q);
+
+  register_code(keycode);
+  unregister_code(keycode);
+}
+
+void tmux_window_switch(uint16_t keycode) {
+  tmux_prefix();
+
+  register_code(keycode);
+  unregister_code(keycode);
+}
+
+LEADER_EXTERNS();
+void matrix_scan_user(void) {
+  LEADER_DICTIONARY() {
+    leading = false;
+    leader_end();
+
+    // Available seqs
+    // SEQ_ONE_KEY, SEQ_TWO_KEYS, SEQ_THREE_KEYS
+    // anything you can do in a macro https://docs.qmk.fm/macros.html
+    // https://docs.qmk.fm/feature_leader_key.html
+
+    // Whole Screen Shot
+    SEQ_ONE_KEY(KC_A) {
+      register_code(KC_LGUI);
+      register_code(KC_LSFT);
+      register_code(KC_3);
+
+      unregister_code(KC_3);
+      unregister_code(KC_LSFT);
+      unregister_code(KC_LGUI);
+    }
+
+    // Selective Screen Shot
+    SEQ_ONE_KEY(KC_S) {
+      register_code(KC_LGUI);
+      register_code(KC_LSFT);
+      register_code(KC_4);
+
+      unregister_code(KC_4);
+      unregister_code(KC_LSFT);
+      unregister_code(KC_LGUI);
+    }
+
+    // TMUX - shift to pane 1 and zoom
+    SEQ_ONE_KEY(KC_J) {
+      tmux_pane_switch(KC_1);
+      tmux_pane_zoom();
+    }
+
+    // TMUX - shift to pane 2 and zoom
+    SEQ_ONE_KEY(KC_K) {
+      tmux_pane_switch(KC_2);
+      tmux_pane_zoom();
+    }
+
+    // TMUX - shift to pane 3 and zoom
+    SEQ_ONE_KEY(KC_L) {
+      tmux_pane_switch(KC_3);
+      tmux_pane_zoom();
+    }
+
+    // TMUX - shift to last pane and zoom
+    SEQ_ONE_KEY(KC_SCOLON) {
+      tmux_prefix();
+
+      register_code(KC_SCOLON);
+      unregister_code(KC_SCOLON);
+
+      tmux_pane_zoom();
+    }
+
+    // TMUX - shift to first window
+    SEQ_ONE_KEY(KC_U) {
+      tmux_window_switch(KC_1);
+    }
+
+    // TMUX - shift to second window
+    SEQ_ONE_KEY(KC_I) {
+      tmux_window_switch(KC_2);
+    }
+
+    // TMUX - shift to third window
+    SEQ_ONE_KEY(KC_O) {
+      tmux_window_switch(KC_3);
+    }
+  }
+}