- /*
- 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"
-
- 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
-
- void tap(uint16_t keycode){ register_code(keycode); unregister_code(keycode); };
-
- // Add reconfigurable functions here, for keymap customization
- // This allows for a global, userspace functions, and continued
- // customization of the keymap. Use _keymap instead of _user
- // functions in the keymaps
- __attribute__ ((weak))
- void matrix_init_keymap(void) {}
-
- __attribute__ ((weak))
- void startup_keymap(void) {}
-
- __attribute__ ((weak))
- void suspend_power_down_keymap(void) {}
-
- __attribute__ ((weak))
- void suspend_wakeup_init_keymap(void) {}
-
- __attribute__ ((weak))
- void matrix_scan_keymap(void) {}
-
- __attribute__ ((weak))
- bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
- }
-
- __attribute__ ((weak))
- void matrix_scan_secrets(void) {}
-
- __attribute__ ((weak))
- uint32_t layer_state_set_keymap (uint32_t state) {
- return state;
- }
-
- __attribute__ ((weak))
- uint32_t default_layer_state_set_keymap (uint32_t state) {
- return state;
- }
-
- __attribute__ ((weak))
- 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 = 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();
- }
-
- void startup_user (void) {
- startup_keymap();
- }
-
- void suspend_power_down_user(void)
- {
- suspend_power_down_keymap();
- }
-
- void suspend_wakeup_init_user(void)
- {
- suspend_wakeup_init_keymap();
- #ifdef KEYBOARD_ergodox_ez
- wait_ms(10);
- #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) {
- static bool has_ran_yet;
- if (!has_ran_yet) {
- 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();
- #endif // TAP_DANCE_ENABLE
-
- matrix_scan_keymap();
- }
|