]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - users/bocaj/bocaj.c
[Keymap] Jarred's Plaid keymap (#6049)
[qmk_firmware.git] / users / bocaj / bocaj.c
index 6df6e3bbfa25e2fa8fefe268777499e995d737a8..689dbe7b4e3f11242c2f917062fb8bc57507b552 100644 (file)
@@ -1,14 +1,30 @@
+/*
+Copyright 2018 Jacob Jerrell <jacob.jerrell@gmail.com> @JacobJerrell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "bocaj.h"
-#include "eeprom.h"
-#include "version.h"
-#include "tap_dances.h"
 
-static uint16_t copy_paste_timer;
 userspace_config_t userspace_config;
+#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
+  #define BOCAJ_UNICODE_MODE UC_OSX
+#else
+  // set to 2 for UC_WIN, set to 4 for UC_WINC
+  #define BOCAJ_UNICODE_MODE 2
+#endif
 
-/* *** *** *** ***  *
- * Helper Functions *
- * *** *** *** ***  */
 void tap(uint16_t keycode){ register_code(keycode); unregister_code(keycode); };
 
 // Add reconfigurable functions here, for keymap customization
@@ -36,10 +52,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
 }
 
 __attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
-  return true;
-}
-
+void matrix_scan_secrets(void) {}
 
 __attribute__ ((weak))
 uint32_t layer_state_set_keymap (uint32_t state) {
@@ -57,7 +70,14 @@ void led_set_keymap(uint8_t usb_led) {}
 // Call user matrix init, set default RGB colors and then
 // call the keymap's init function
 void matrix_init_user(void) {
-  userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE);
+  userspace_config.raw = eeconfig_read_user();
+
+  #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
+    set_unicode_input_mode(BOCAJ_UNICODE_MODE);
+    get_unicode_input_mode();
+  #endif //UNICODE_ENABLE
+
+
   matrix_init_keymap();
 }
 
@@ -78,6 +98,18 @@ void suspend_wakeup_init_user(void)
   #endif
 }
 
+void eeconfig_init_user(void) {
+  userspace_config.raw = 0;
+  eeconfig_update_user(userspace_config.raw);
+  #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
+    set_unicode_input_mode(BOCAJ_UNICODE_MODE);
+    get_unicode_input_mode();
+  #else
+    eeprom_update_byte(EECONFIG_UNICODEMODE, BOCAJ_UNICODE_MODE);
+  #endif
+}
+
+LEADER_EXTERNS();
 // No global matrix scan code, so just run keymap's matrix
 // scan function
 void matrix_scan_user(void) {
@@ -86,6 +118,68 @@ void matrix_scan_user(void) {
     has_ran_yet = true;
     startup_user();
   }
+  LEADER_DICTIONARY() {
+    leading = false;
+    leader_end();
+
+    // Mac Save (Leader -> s)
+    SEQ_ONE_KEY(KC_S) {
+      SEND_STRING(SS_LGUI("s"));
+    }
+
+    // Mac copy line down (Leader -> d, d)
+    SEQ_TWO_KEYS(KC_D, KC_D) {
+      register_code(KC_LSHIFT);
+      register_code(KC_HOME);
+      unregister_code(KC_HOME);
+      unregister_code(KC_LSHIFT);
+      SEND_STRING(SS_LGUI("c"));
+      tap(KC_END);
+      tap(KC_ENTER);
+      SEND_STRING(SS_LGUI("v"));
+    }
+
+    // Mac copy line up (Leader -> u, u)
+    SEQ_TWO_KEYS(KC_U, KC_U) {
+      register_code(KC_LSHIFT);
+      register_code(KC_HOME);
+      unregister_code(KC_HOME);
+      unregister_code(KC_LSHIFT);
+      SEND_STRING(SS_LGUI("c"));
+      tap(KC_UP);
+      tap(KC_END);
+      tap(KC_ENTER);
+      SEND_STRING(SS_LGUI("v"));
+    }
+
+    // Mac VS Debug
+    SEQ_ONE_KEY(KC_D) {
+      tap(KC_F5);
+    }
+
+    // Mac VS Stop Debug
+    SEQ_TWO_KEYS(KC_S, KC_D) {
+      register_code(KC_LSHIFT);
+      tap(KC_F5);
+      unregister_code(KC_LSHIFT);
+    }
+
+    // Start Diablo 3
+    SEQ_ONE_KEY(KC_3) {
+      SEND_STRING(SS_LCTRL(" "));
+      SEND_STRING("Diablo");
+      tap(KC_ENTER);
+    }
+
+    SEQ_ONE_KEY(KC_B) {
+      SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " ");
+      tap(KC_ENTER);
+      SEND_STRING ("Built at: " QMK_BUILDDATE);
+    }
+#ifndef NO_SECRETS
+    matrix_scan_secrets();
+#endif // !NO_SECRETS
+  }
 
 #ifdef TAP_DANCE_ENABLE  // Run Diablo 3 macro checking code.
   run_diablo_macro_check();
@@ -93,85 +187,3 @@ void matrix_scan_user(void) {
 
   matrix_scan_keymap();
 }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-  /* uint8_t default_layer = 0;
-  default_layer = eeconfig_read_default_layer(); */
-  switch (keycode) {
-    case JJ_COPY:
-      if (!record->event.pressed) {
-        SEND_STRING(SS_LGUI("c"));
-      }
-      return false;
-      break;
-    case JJ_PSTE:
-      if (!record->event.pressed) {
-        SEND_STRING(SS_LGUI("v"));
-      }
-      return false;
-      break;
-    case JJ_ARRW:
-      if (!record->event.pressed) {
-        SEND_STRING("->");
-      }
-      return false;
-      break; /*
-    case KC_SWRK:
-      if (!record->event.pressed) {
-        set_single_persistent_default_layer(_SWRKMN);
-        layer_move(default_layer);
-        //ergodox_blink_all_leds();
-        //ergodox_blink_all_leds();
-      }
-      return false;
-      break;
-    case KC_HWRK:
-      if (!record->event.pressed) {
-        set_single_persistent_default_layer(_HWRKMN);
-        layer_move(default_layer);
-        //ergodox_blink_all_leds();
-        //ergodox_blink_all_leds();
-      }
-      return false;
-      break;
-    case KC_EPRM:
-      if (!record->event.pressed) {
-        //ergodox_blink_all_leds();
-        eeconfig_init();
-      }
-      return false;
-      break;
-    case MC_LOCK:
-      if (!record->event.pressed) {
-        layer_move(default_layer);
-        SEND_STRING(SS_LCTRL(SS_LGUI("q")));
-      }
-      return false;
-      break; */
-    case KC_DCLR:
-#ifdef TAP_DANCE_ENABLE
-      if (record->event.pressed) {
-        uint8_t dtime;
-        for (dtime = 0; dtime < 4; dtime++) {
-          diablo_key_time[dtime] = diablo_times[0];
-        }
-      }
-#endif // !TAP_DANCE_ENABLE
-      return false;
-      break;
-    case KC_CCCV:
-      if (record->event.pressed) {
-        copy_paste_timer = timer_read();
-      } else {
-        if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
-          SEND_STRING(SS_LGUI("c"));
-        } else {
-          SEND_STRING(SS_LGUI("v"));
-        }
-      }
-      return false;
-      break;
-  }
-  return process_record_keymap(keycode, record);
-}
-