aboutsummaryrefslogtreecommitdiff
path: root/users/bocaj/bocaj.c
diff options
context:
space:
mode:
Diffstat (limited to 'users/bocaj/bocaj.c')
-rw-r--r--users/bocaj/bocaj.c200
1 files changed, 106 insertions, 94 deletions
diff --git a/users/bocaj/bocaj.c b/users/bocaj/bocaj.c
index 6df6e3bbf..689dbe7b4 100644
--- a/users/bocaj/bocaj.c
+++ b/users/bocaj/bocaj.c
@@ -1,14 +1,30 @@
1/*
2Copyright 2018 Jacob Jerrell <jacob.jerrell@gmail.com> @JacobJerrell
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
1#include "bocaj.h" 18#include "bocaj.h"
2#include "eeprom.h"
3#include "version.h"
4#include "tap_dances.h"
5 19
6static uint16_t copy_paste_timer;
7userspace_config_t userspace_config; 20userspace_config_t userspace_config;
21#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
22 #define BOCAJ_UNICODE_MODE UC_OSX
23#else
24 // set to 2 for UC_WIN, set to 4 for UC_WINC
25 #define BOCAJ_UNICODE_MODE 2
26#endif
8 27
9/* *** *** *** *** *
10 * Helper Functions *
11 * *** *** *** *** */
12void tap(uint16_t keycode){ register_code(keycode); unregister_code(keycode); }; 28void tap(uint16_t keycode){ register_code(keycode); unregister_code(keycode); };
13 29
14// Add reconfigurable functions here, for keymap customization 30// Add reconfigurable functions here, for keymap customization
@@ -36,10 +52,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
36} 52}
37 53
38__attribute__ ((weak)) 54__attribute__ ((weak))
39bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { 55void matrix_scan_secrets(void) {}
40 return true;
41}
42
43 56
44__attribute__ ((weak)) 57__attribute__ ((weak))
45uint32_t layer_state_set_keymap (uint32_t state) { 58uint32_t layer_state_set_keymap (uint32_t state) {
@@ -57,7 +70,14 @@ void led_set_keymap(uint8_t usb_led) {}
57// Call user matrix init, set default RGB colors and then 70// Call user matrix init, set default RGB colors and then
58// call the keymap's init function 71// call the keymap's init function
59void matrix_init_user(void) { 72void matrix_init_user(void) {
60 userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE); 73 userspace_config.raw = eeconfig_read_user();
74
75 #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
76 set_unicode_input_mode(BOCAJ_UNICODE_MODE);
77 get_unicode_input_mode();
78 #endif //UNICODE_ENABLE
79
80
61 matrix_init_keymap(); 81 matrix_init_keymap();
62} 82}
63 83
@@ -78,6 +98,18 @@ void suspend_wakeup_init_user(void)
78 #endif 98 #endif
79} 99}
80 100
101void eeconfig_init_user(void) {
102 userspace_config.raw = 0;
103 eeconfig_update_user(userspace_config.raw);
104 #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
105 set_unicode_input_mode(BOCAJ_UNICODE_MODE);
106 get_unicode_input_mode();
107 #else
108 eeprom_update_byte(EECONFIG_UNICODEMODE, BOCAJ_UNICODE_MODE);
109 #endif
110}
111
112LEADER_EXTERNS();
81// No global matrix scan code, so just run keymap's matrix 113// No global matrix scan code, so just run keymap's matrix
82// scan function 114// scan function
83void matrix_scan_user(void) { 115void matrix_scan_user(void) {
@@ -86,6 +118,68 @@ void matrix_scan_user(void) {
86 has_ran_yet = true; 118 has_ran_yet = true;
87 startup_user(); 119 startup_user();
88 } 120 }
121 LEADER_DICTIONARY() {
122 leading = false;
123 leader_end();
124
125 // Mac Save (Leader -> s)
126 SEQ_ONE_KEY(KC_S) {
127 SEND_STRING(SS_LGUI("s"));
128 }
129
130 // Mac copy line down (Leader -> d, d)
131 SEQ_TWO_KEYS(KC_D, KC_D) {
132 register_code(KC_LSHIFT);
133 register_code(KC_HOME);
134 unregister_code(KC_HOME);
135 unregister_code(KC_LSHIFT);
136 SEND_STRING(SS_LGUI("c"));
137 tap(KC_END);
138 tap(KC_ENTER);
139 SEND_STRING(SS_LGUI("v"));
140 }
141
142 // Mac copy line up (Leader -> u, u)
143 SEQ_TWO_KEYS(KC_U, KC_U) {
144 register_code(KC_LSHIFT);
145 register_code(KC_HOME);
146 unregister_code(KC_HOME);
147 unregister_code(KC_LSHIFT);
148 SEND_STRING(SS_LGUI("c"));
149 tap(KC_UP);
150 tap(KC_END);
151 tap(KC_ENTER);
152 SEND_STRING(SS_LGUI("v"));
153 }
154
155 // Mac VS Debug
156 SEQ_ONE_KEY(KC_D) {
157 tap(KC_F5);
158 }
159
160 // Mac VS Stop Debug
161 SEQ_TWO_KEYS(KC_S, KC_D) {
162 register_code(KC_LSHIFT);
163 tap(KC_F5);
164 unregister_code(KC_LSHIFT);
165 }
166
167 // Start Diablo 3
168 SEQ_ONE_KEY(KC_3) {
169 SEND_STRING(SS_LCTRL(" "));
170 SEND_STRING("Diablo");
171 tap(KC_ENTER);
172 }
173
174 SEQ_ONE_KEY(KC_B) {
175 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " ");
176 tap(KC_ENTER);
177 SEND_STRING ("Built at: " QMK_BUILDDATE);
178 }
179#ifndef NO_SECRETS
180 matrix_scan_secrets();
181#endif // !NO_SECRETS
182 }
89 183
90#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. 184#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
91 run_diablo_macro_check(); 185 run_diablo_macro_check();
@@ -93,85 +187,3 @@ void matrix_scan_user(void) {
93 187
94 matrix_scan_keymap(); 188 matrix_scan_keymap();
95} 189}
96
97bool process_record_user(uint16_t keycode, keyrecord_t *record) {
98 /* uint8_t default_layer = 0;
99 default_layer = eeconfig_read_default_layer(); */
100 switch (keycode) {
101 case JJ_COPY:
102 if (!record->event.pressed) {
103 SEND_STRING(SS_LGUI("c"));
104 }
105 return false;
106 break;
107 case JJ_PSTE:
108 if (!record->event.pressed) {
109 SEND_STRING(SS_LGUI("v"));
110 }
111 return false;
112 break;
113 case JJ_ARRW:
114 if (!record->event.pressed) {
115 SEND_STRING("->");
116 }
117 return false;
118 break; /*
119 case KC_SWRK:
120 if (!record->event.pressed) {
121 set_single_persistent_default_layer(_SWRKMN);
122 layer_move(default_layer);
123 //ergodox_blink_all_leds();
124 //ergodox_blink_all_leds();
125 }
126 return false;
127 break;
128 case KC_HWRK:
129 if (!record->event.pressed) {
130 set_single_persistent_default_layer(_HWRKMN);
131 layer_move(default_layer);
132 //ergodox_blink_all_leds();
133 //ergodox_blink_all_leds();
134 }
135 return false;
136 break;
137 case KC_EPRM:
138 if (!record->event.pressed) {
139 //ergodox_blink_all_leds();
140 eeconfig_init();
141 }
142 return false;
143 break;
144 case MC_LOCK:
145 if (!record->event.pressed) {
146 layer_move(default_layer);
147 SEND_STRING(SS_LCTRL(SS_LGUI("q")));
148 }
149 return false;
150 break; */
151 case KC_DCLR:
152#ifdef TAP_DANCE_ENABLE
153 if (record->event.pressed) {
154 uint8_t dtime;
155 for (dtime = 0; dtime < 4; dtime++) {
156 diablo_key_time[dtime] = diablo_times[0];
157 }
158 }
159#endif // !TAP_DANCE_ENABLE
160 return false;
161 break;
162 case KC_CCCV:
163 if (record->event.pressed) {
164 copy_paste_timer = timer_read();
165 } else {
166 if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
167 SEND_STRING(SS_LGUI("c"));
168 } else {
169 SEND_STRING(SS_LGUI("v"));
170 }
171 }
172 return false;
173 break;
174 }
175 return process_record_keymap(keycode, record);
176}
177