diff options
author | Daniel Gordon <Dgordon8765@gmail.com> | 2018-05-30 10:10:22 -0500 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2018-05-30 08:10:22 -0700 |
commit | a75bd221f2b6ca5b67b05b3284389b0721475acd (patch) | |
tree | e1d9e072273cf60b12ab116a0f04c2c961a04c65 /users/gordon | |
parent | 805b42275b400f7e61a5aa0c6974f00de77dc42d (diff) | |
download | qmk_firmware-a75bd221f2b6ca5b67b05b3284389b0721475acd.tar.gz qmk_firmware-a75bd221f2b6ca5b67b05b3284389b0721475acd.zip |
Updates to gordon keymaps (#3082)
Added rules.mk for the infinity
* Moved tap dance enums to gordon.h
* Moved tap dance aliases to gordon.h
Moved TD to user space
* Added config file with preventing mods sticking
* Added a few keys to keymap
Diffstat (limited to 'users/gordon')
-rw-r--r-- | users/gordon/gordon.c | 241 | ||||
-rw-r--r-- | users/gordon/gordon.h | 192 | ||||
-rw-r--r-- | users/gordon/rules.mk | 4 |
3 files changed, 333 insertions, 104 deletions
diff --git a/users/gordon/gordon.c b/users/gordon/gordon.c index 056012a21..3115e1c32 100644 --- a/users/gordon/gordon.c +++ b/users/gordon/gordon.c | |||
@@ -15,20 +15,17 @@ const char secret[][64] = { | |||
15 | }; | 15 | }; |
16 | #endif | 16 | #endif |
17 | 17 | ||
18 | |||
19 | |||
20 | |||
21 | void register_hyper (void) { //Helper function to invoke Hyper | 18 | void register_hyper (void) { //Helper function to invoke Hyper |
22 | register_code (KC_LSFT); | 19 | register_code (KC_LSFT); |
23 | register_code (KC_LCTL); | 20 | register_code (KC_LCTL); |
24 | register_code (KC_LALT); | 21 | register_code (KC_LALT); |
25 | register_code (KC_LGUI); | 22 | register_code (KC_LGUI); |
26 | } | 23 | } |
27 | void unregister_hyper (void) { //Helper function to invoke Hyper | 24 | void unregister_hyper (void) { //Helper function to invoke Hyper |
28 | unregister_code (KC_LSFT); | 25 | unregister_code (KC_LSFT); |
29 | unregister_code (KC_LCTL); | 26 | unregister_code (KC_LCTL); |
30 | unregister_code (KC_LALT); | 27 | unregister_code (KC_LALT); |
31 | unregister_code (KC_LGUI); | 28 | unregister_code (KC_LGUI); |
32 | } | 29 | } |
33 | 30 | ||
34 | void register_ctrl_a (void) { | 31 | void register_ctrl_a (void) { |
@@ -41,55 +38,55 @@ void unregister_ctrl_a (void) { | |||
41 | unregister_code(KC_A); | 38 | unregister_code(KC_A); |
42 | } | 39 | } |
43 | 40 | ||
44 | void register_alt_f7 (void) { | 41 | void register_alt_f7 (void) { |
45 | register_code (KC_LALT); | 42 | register_code (KC_LALT); |
46 | register_code (KC_F7); | 43 | register_code (KC_F7); |
47 | } | 44 | } |
48 | 45 | ||
49 | void unregister_alt_f7 (void) { | 46 | void unregister_alt_f7 (void) { |
50 | unregister_code (KC_LALT); | 47 | unregister_code (KC_LALT); |
51 | unregister_code (KC_F7); | 48 | unregister_code (KC_F7); |
52 | } | 49 | } |
53 | 50 | ||
54 | void register_shift_f6 (void) { | 51 | void register_shift_f6 (void) { |
55 | register_code (KC_LSFT); | 52 | register_code (KC_LSFT); |
56 | register_code (KC_F6); | 53 | register_code (KC_F6); |
57 | } | 54 | } |
58 | 55 | ||
59 | void unregister_shift_f6 (void) { | 56 | void unregister_shift_f6 (void) { |
60 | unregister_code (KC_LSFT); | 57 | unregister_code (KC_LSFT); |
61 | unregister_code (KC_F6); | 58 | unregister_code (KC_F6); |
62 | } | 59 | } |
63 | 60 | ||
64 | void register_ctrl_shift (void) { | 61 | void register_ctrl_shift (void) { |
65 | register_code (KC_LSFT); | 62 | register_code (KC_LSFT); |
66 | register_code (KC_LCTRL); | 63 | register_code (KC_LCTRL); |
67 | } | 64 | } |
68 | 65 | ||
69 | void unregister_ctrl_shift (void) { | 66 | void unregister_ctrl_shift (void) { |
70 | unregister_code (KC_LSFT); | 67 | unregister_code (KC_LSFT); |
71 | unregister_code (KC_LCTRL); | 68 | unregister_code (KC_LCTRL); |
72 | } | 69 | } |
73 | 70 | ||
74 | void register_alt_shift (void) { | 71 | void register_alt_shift (void) { |
75 | register_code (KC_LSFT); | 72 | register_code (KC_LSFT); |
76 | register_code (KC_LALT); | 73 | register_code (KC_LALT); |
77 | } | 74 | } |
78 | 75 | ||
79 | void unregister_alt_shift (void) { | 76 | void unregister_alt_shift (void) { |
80 | unregister_code (KC_LSFT); | 77 | unregister_code (KC_LSFT); |
81 | unregister_code (KC_LALT); | 78 | unregister_code (KC_LALT); |
82 | } | 79 | } |
83 | 80 | ||
84 | // To activate SINGLE_HOLD, you will need to hold for 200ms first. | 81 | // To activate SINGLE_HOLD, you will need to hold for 200ms first. |
85 | // This tap dance favors keys that are used frequently in typing like 'f' | 82 | // This tap dance favors keys that are used frequently in typing like 'f' |
86 | int cur_dance (qk_tap_dance_state_t *state) { | 83 | int cur_dance (qk_tap_dance_state_t *state) { |
87 | if (state->count == 1) { | 84 | if (state->count == 1) { |
88 | //If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP | 85 | //If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP |
89 | if (state->interrupted) { | 86 | if (state->interrupted) { |
90 | // if (!state->pressed) return SINGLE_TAP; | 87 | // if (!state->pressed) return SINGLE_TAP; |
91 | //need "permissive hold" here. | 88 | //need "permissive hold" here. |
92 | // else return SINsGLE_HOLD; | 89 | // else return SINsGLE_HOLD; |
93 | //If the interrupting key is released before the tap-dance key, then it is a single HOLD | 90 | //If the interrupting key is released before the tap-dance key, then it is a single HOLD |
94 | //However, if the tap-dance key is released first, then it is a single TAP | 91 | //However, if the tap-dance key is released first, then it is a single TAP |
95 | //But how to get access to the state of the interrupting key???? | 92 | //But how to get access to the state of the interrupting key???? |
@@ -105,8 +102,8 @@ int cur_dance (qk_tap_dance_state_t *state) { | |||
105 | else if (state->count == 2) { | 102 | else if (state->count == 2) { |
106 | if (state->interrupted) return DOUBLE_SINGLE_TAP; | 103 | if (state->interrupted) return DOUBLE_SINGLE_TAP; |
107 | else if (state->pressed) return DOUBLE_HOLD; | 104 | else if (state->pressed) return DOUBLE_HOLD; |
108 | else return DOUBLE_TAP; | 105 | else return DOUBLE_TAP; |
109 | } | 106 | } |
110 | else if ((state->count == 3) && ((state->interrupted) || (!state->pressed))) return TRIPLE_TAP; | 107 | else if ((state->count == 3) && ((state->interrupted) || (!state->pressed))) return TRIPLE_TAP; |
111 | else if (state->count == 3) return TRIPLE_HOLD; | 108 | else if (state->count == 3) return TRIPLE_HOLD; |
112 | else return 8; //magic number. At some point this method will expand to work for more presses | 109 | else return 8; //magic number. At some point this method will expand to work for more presses |
@@ -116,8 +113,8 @@ int cur_dance (qk_tap_dance_state_t *state) { | |||
116 | int hold_cur_dance (qk_tap_dance_state_t *state) { | 113 | int hold_cur_dance (qk_tap_dance_state_t *state) { |
117 | if (state->count == 1) { | 114 | if (state->count == 1) { |
118 | if (state->interrupted) { | 115 | if (state->interrupted) { |
119 | if (!state->pressed) return SINGLE_TAP; | 116 | if (!state->pressed) return SINGLE_TAP; |
120 | else return SINGLE_HOLD; | 117 | else return SINGLE_HOLD; |
121 | } | 118 | } |
122 | else { | 119 | else { |
123 | if (!state->pressed) return SINGLE_TAP; | 120 | if (!state->pressed) return SINGLE_TAP; |
@@ -128,8 +125,8 @@ int hold_cur_dance (qk_tap_dance_state_t *state) { | |||
128 | //with single tap. | 125 | //with single tap. |
129 | else if (state->count == 2) { | 126 | else if (state->count == 2) { |
130 | if (state->pressed) return DOUBLE_HOLD; | 127 | if (state->pressed) return DOUBLE_HOLD; |
131 | else return DOUBLE_TAP; | 128 | else return DOUBLE_TAP; |
132 | } | 129 | } |
133 | else if (state->count == 3) { | 130 | else if (state->count == 3) { |
134 | if (!state->pressed) return TRIPLE_TAP; | 131 | if (!state->pressed) return TRIPLE_TAP; |
135 | else return TRIPLE_HOLD; | 132 | else return TRIPLE_HOLD; |
@@ -138,7 +135,7 @@ int hold_cur_dance (qk_tap_dance_state_t *state) { | |||
138 | } | 135 | } |
139 | 136 | ||
140 | 137 | ||
141 | static xtap htap_state = { | 138 | static xtap htap_state = { |
142 | .is_press_action = true, | 139 | .is_press_action = true, |
143 | .state = 0 | 140 | .state = 0 |
144 | }; | 141 | }; |
@@ -168,7 +165,7 @@ void h_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
168 | 165 | ||
169 | /**************** QUAD FUNCTION FOR TAB ****************/ | 166 | /**************** QUAD FUNCTION FOR TAB ****************/ |
170 | // TAB, ALT + SHIFT, TAB TAB, CTRL + SHIFT | 167 | // TAB, ALT + SHIFT, TAB TAB, CTRL + SHIFT |
171 | static xtap tab_state = { | 168 | static xtap tab_state = { |
172 | .is_press_action = true, | 169 | .is_press_action = true, |
173 | .state = 0 | 170 | .state = 0 |
174 | }; | 171 | }; |
@@ -183,7 +180,7 @@ void tab_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
183 | case TRIPLE_TAP: register_code(KC_LSHIFT) ;register_code(KC_ESC); break; | 180 | case TRIPLE_TAP: register_code(KC_LSHIFT) ;register_code(KC_ESC); break; |
184 | case TRIPLE_HOLD: register_code(KC_LSHIFT); register_code(KC_LGUI); break; | 181 | case TRIPLE_HOLD: register_code(KC_LSHIFT); register_code(KC_LGUI); break; |
185 | } | 182 | } |
186 | } | 183 | } |
187 | 184 | ||
188 | void tab_reset (qk_tap_dance_state_t *state, void *user_data) { | 185 | void tab_reset (qk_tap_dance_state_t *state, void *user_data) { |
189 | switch (tab_state.state) { | 186 | switch (tab_state.state) { |
@@ -201,7 +198,7 @@ void tab_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
201 | //*************** SUPER COMMA *******************// | 198 | //*************** SUPER COMMA *******************// |
202 | // Assumption: we don't care about trying to hit ,, quickly | 199 | // Assumption: we don't care about trying to hit ,, quickly |
203 | //*************** SUPER COMMA *******************// | 200 | //*************** SUPER COMMA *******************// |
204 | static xtap comma_state = { | 201 | static xtap comma_state = { |
205 | .is_press_action = true, | 202 | .is_press_action = true, |
206 | .state = 0 | 203 | .state = 0 |
207 | }; | 204 | }; |
@@ -209,19 +206,19 @@ static xtap comma_state = { | |||
209 | void comma_finished (qk_tap_dance_state_t *state, void *user_data) { | 206 | void comma_finished (qk_tap_dance_state_t *state, void *user_data) { |
210 | comma_state.state = hold_cur_dance(state); //Use the dance that favors being held | 207 | comma_state.state = hold_cur_dance(state); //Use the dance that favors being held |
211 | switch (comma_state.state) { | 208 | switch (comma_state.state) { |
212 | case SINGLE_TAP: register_code(KC_COMMA); break; | 209 | case SINGLE_TAP: register_code(KC_COMMA); break; |
213 | case SINGLE_HOLD: layer_on(1); break; //turn on symbols layer | 210 | case SINGLE_HOLD: layer_on(1); break; //turn on symbols layer |
214 | case DOUBLE_TAP: layer_invert(4); break; //toggle numbers layer | 211 | case DOUBLE_TAP: layer_invert(4); break; //toggle numbers layer |
215 | case DOUBLE_HOLD: layer_on(2); break; | 212 | case DOUBLE_HOLD: layer_on(2); break; |
216 | case TRIPLE_TAP: register_code(KC_CALCULATOR); break; | 213 | case TRIPLE_TAP: register_code(KC_CALCULATOR); break; |
217 | case TRIPLE_HOLD: layer_on(3); | 214 | case TRIPLE_HOLD: layer_on(3); |
218 | } | 215 | } |
219 | } | 216 | } |
220 | 217 | ||
221 | void comma_reset (qk_tap_dance_state_t *state, void *user_data) { | 218 | void comma_reset (qk_tap_dance_state_t *state, void *user_data) { |
222 | switch (comma_state.state) { | 219 | switch (comma_state.state) { |
223 | case SINGLE_TAP: unregister_code(KC_COMMA); break; //unregister comma | 220 | case SINGLE_TAP: unregister_code(KC_COMMA); break; //unregister comma |
224 | case SINGLE_HOLD: layer_off(1); break; | 221 | case SINGLE_HOLD: layer_off(1); break; |
225 | case DOUBLE_TAP: ;break; | 222 | case DOUBLE_TAP: ;break; |
226 | case DOUBLE_HOLD: layer_off(2); break; | 223 | case DOUBLE_HOLD: layer_off(2); break; |
227 | case TRIPLE_TAP: unregister_code(KC_CALCULATOR); break; | 224 | case TRIPLE_TAP: unregister_code(KC_CALCULATOR); break; |
@@ -235,7 +232,7 @@ void comma_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
235 | 232 | ||
236 | //*************** F3 TAP DANCE *******************// | 233 | //*************** F3 TAP DANCE *******************// |
237 | //Good example for accessing multiple layers from the same key. | 234 | //Good example for accessing multiple layers from the same key. |
238 | static xtap S1_state = { | 235 | static xtap S1_state = { |
239 | .is_press_action = true, | 236 | .is_press_action = true, |
240 | .state = 0 | 237 | .state = 0 |
241 | }; | 238 | }; |
@@ -244,17 +241,17 @@ void bt_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
244 | S1_state.state = cur_dance(state); | 241 | S1_state.state = cur_dance(state); |
245 | switch (S1_state.state) { | 242 | switch (S1_state.state) { |
246 | case SINGLE_TAP: register_code(KC_F3); break; | 243 | case SINGLE_TAP: register_code(KC_F3); break; |
247 | case SINGLE_HOLD: layer_on(4); break; | 244 | case SINGLE_HOLD: layer_on(_MACROS); break; |
248 | case DOUBLE_TAP: layer_invert(4); break; | 245 | case DOUBLE_TAP: layer_invert(_MACROS); break; |
249 | case DOUBLE_HOLD: layer_on(5); break; | 246 | case DOUBLE_HOLD: layer_on(5); break; |
250 | case DOUBLE_SINGLE_TAP: layer_invert(4); break; | 247 | case DOUBLE_SINGLE_TAP: layer_invert(_MACROS); break; |
251 | } | 248 | } |
252 | } | 249 | } |
253 | 250 | ||
254 | void bt_reset (qk_tap_dance_state_t *state, void *user_data) { | 251 | void bt_reset (qk_tap_dance_state_t *state, void *user_data) { |
255 | switch (S1_state.state) { | 252 | switch (S1_state.state) { |
256 | case SINGLE_TAP: unregister_code(KC_F3); break; | 253 | case SINGLE_TAP: unregister_code(KC_F3); break; |
257 | case SINGLE_HOLD: layer_off(4); break; | 254 | case SINGLE_HOLD: layer_off(_MACROS); break; |
258 | case DOUBLE_TAP: break; //already inverted. Don't do anything. | 255 | case DOUBLE_TAP: break; //already inverted. Don't do anything. |
259 | case DOUBLE_HOLD: layer_off(5); break; | 256 | case DOUBLE_HOLD: layer_off(5); break; |
260 | case DOUBLE_SINGLE_TAP: break; | 257 | case DOUBLE_SINGLE_TAP: break; |
@@ -262,14 +259,152 @@ void bt_reset (qk_tap_dance_state_t *state, void *user_data) { | |||
262 | S1_state.state = 0; | 259 | S1_state.state = 0; |
263 | } | 260 | } |
264 | 261 | ||
262 | // Tap Dance Definitions | ||
263 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
264 | // simple tap dance | ||
265 | [F12ETAPS] = ACTION_TAP_DANCE_DOUBLE(KC_F12,LSFT(LCTL(KC_F10))), | ||
266 | [REFRESH] = ACTION_TAP_DANCE_DOUBLE(KC_R,LCTL(KC_R)), | ||
267 | [ENDESC] = ACTION_TAP_DANCE_DOUBLE(KC_END, KC_ESC), | ||
268 | [Q_ESCAPE] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), | ||
269 | [ENDHOME] = ACTION_TAP_DANCE_DOUBLE(KC_END, KC_HOME), | ||
270 | [CALCCOMP] = ACTION_TAP_DANCE_DOUBLE(KC_CALCULATOR, KC_MY_COMPUTER), | ||
271 | [ALTF4] = ACTION_TAP_DANCE_DOUBLE(KC_F4,LALT(KC_F4)), | ||
272 | [F6F7] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_F6), LALT(KC_F7)), | ||
273 | [F1F13] = ACTION_TAP_DANCE_DOUBLE(KC_F1, KC_F13), | ||
274 | [F2F14] = ACTION_TAP_DANCE_DOUBLE(KC_F2, KC_F14), | ||
275 | [F5F15] = ACTION_TAP_DANCE_DOUBLE(KC_F5, KC_F15), | ||
276 | [TABCOMBO] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tab_finished, tab_reset), | ||
277 | [F3D] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, bt_finished, bt_reset), | ||
278 | [COMMA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, comma_finished, comma_reset), | ||
279 | [HTAB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,h_finished, h_reset) | ||
280 | }; | ||
281 | |||
282 | // bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
283 | // if (!record->event.pressed) { | ||
284 | // switch (keycode) { | ||
285 | |||
286 | // case KC_SECRET_1 ... KC_SECRET_5: | ||
287 | // send_string(secret[keycode - KC_SECRET_1]); | ||
288 | // // clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); | ||
289 | // return true; break; | ||
290 | |||
291 | // case UP_ENTER_RESET: | ||
292 | // register_code(KC_UP); | ||
293 | // unregister_code(KC_UP); | ||
294 | // register_code(KC_ENTER); | ||
295 | // unregister_code(KC_ENTER); | ||
296 | // reset_keyboard(); | ||
297 | // return false; break; | ||
298 | |||
299 | // case TIL_SLASH: | ||
300 | // SEND_STRING ("~/."); | ||
301 | // return false; break; | ||
302 | |||
303 | // case DBMS_OUT: | ||
304 | // SEND_STRING ("dbms_output.put_line('');"); | ||
305 | // SEND_STRING (SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT)); | ||
306 | // return false; break; | ||
307 | |||
308 | // case ID_MAN_IP: | ||
309 | // SEND_STRING ("http://dev-1967110238.us-east-1.elb.amazonaws.com"); | ||
310 | // return false; break; | ||
311 | |||
312 | // case MODRESET: | ||
313 | // clear_mods(); | ||
314 | // return false; break; | ||
315 | |||
316 | // case DEREF: | ||
317 | // SEND_STRING ("->"); | ||
318 | // return false; break; | ||
319 | |||
320 | // case EQRIGHT: | ||
321 | // SEND_STRING ("=>"); | ||
322 | // return false; break; | ||
323 | |||
324 | // case TICK3: | ||
325 | // SEND_STRING ("```"); | ||
326 | // return false; break; | ||
327 | |||
328 | // case TILD3: | ||
329 | // SEND_STRING ("~~~"); | ||
330 | // return false; break; | ||
331 | // } | ||
332 | // } | ||
333 | // return true; | ||
334 | // }; | ||
335 | |||
336 | |||
337 | |||
338 | |||
265 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 339 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
266 | switch (keycode) { | 340 | if (!record->event.pressed) { |
267 | case KC_SECRET_1 ... KC_SECRET_5: | 341 | switch (keycode) { |
268 | if (!record->event.pressed) { | 342 | case KC_SECRET_1 ... KC_SECRET_5: |
269 | send_string(secret[keycode - KC_SECRET_1]); | 343 | send_string(secret[keycode - KC_SECRET_1]); |
344 | // clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); | ||
345 | return true; break; | ||
346 | case UP_ENTER_RESET: | ||
347 | SEND_STRING("make ergodox_infinity:gordon:dfu-util"); | ||
348 | register_code(KC_ENTER); | ||
349 | unregister_code(KC_ENTER); | ||
350 | reset_keyboard(); | ||
351 | return false; break; | ||
352 | |||
353 | case TIL_SLASH: | ||
354 | SEND_STRING ("~/."); | ||
355 | return false; break; | ||
356 | |||
357 | case DBMS_OUT: | ||
358 | SEND_STRING ("dbms_output.put_line('');"); | ||
359 | SEND_STRING (SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT)); | ||
360 | return false; break; | ||
361 | case DIE_1000X_RIGHT: | ||
362 | SEND_STRING (SS_TAP(X_G) SS_TAP(X_G) SS_TAP(X_RIGHT) SS_TAP(X_B) SS_TAP(X_J)); | ||
363 | return false; break; | ||
364 | case DIE_1000X_LEFT: | ||
365 | SEND_STRING (SS_TAP(X_GRAVE) SS_TAP(X_G) SS_TAP(X_LEFT) SS_TAP(X_B) SS_TAP(X_J)); | ||
366 | return false; break; | ||
367 | case ID_MAN_IP: | ||
368 | SEND_STRING ("http://dev-1967110238.us-east-1.elb.amazonaws.com"); | ||
369 | return false; break; | ||
370 | |||
371 | case MODRESET: | ||
372 | clear_mods(); | ||
373 | return false; break; | ||
374 | |||
375 | case DEREF: | ||
376 | SEND_STRING ("->"); | ||
377 | return false; break; | ||
378 | |||
379 | case EQRIGHT: | ||
380 | SEND_STRING ("=>"); | ||
381 | return false; break; | ||
382 | |||
383 | case TICK3: | ||
384 | SEND_STRING ("```"); | ||
385 | |||
386 | return false; break; | ||
387 | |||
388 | case SPRK_TCK: | ||
389 | SEND_STRING ("```"); | ||
390 | SEND_STRING (SS_DOWN(X_LSHIFT) SS_TAP(X_ENTER) SS_UP(X_LSHIFT)); | ||
391 | SEND_STRING (SS_DOWN(X_LSHIFT) SS_TAP(X_ENTER) SS_UP(X_LSHIFT)); | ||
392 | SEND_STRING ("```"); | ||
393 | SEND_STRING (SS_TAP(X_UP)); | ||
394 | return false; break; | ||
395 | |||
396 | case TILD3: | ||
397 | SEND_STRING ("~~~"); | ||
398 | return false; break; | ||
399 | } | ||
400 | } | ||
401 | else { //On key being pressed | ||
402 | switch (keycode) { | ||
403 | case KC_SECRET_1 ... KC_SECRET_5: | ||
404 | clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); | ||
405 | return false; break; | ||
270 | } | 406 | } |
271 | return false; | ||
272 | break; | ||
273 | } | 407 | } |
274 | return true; | 408 | return true; |
275 | } \ No newline at end of file | 409 | }; |
410 | |||
diff --git a/users/gordon/gordon.h b/users/gordon/gordon.h index 548c63049..92641a8aa 100644 --- a/users/gordon/gordon.h +++ b/users/gordon/gordon.h | |||
@@ -6,20 +6,21 @@ | |||
6 | 6 | ||
7 | 7 | ||
8 | // Fillers to make layering more clear | 8 | // Fillers to make layering more clear |
9 | #define _______ KC_TRNS | 9 | #define _______ KC_TRNS |
10 | #define ________ KC_TRNS | 10 | #define ________ KC_TRNS |
11 | #define _________ KC_TRNS | 11 | #define _________ KC_TRNS |
12 | #define XXXXXXX KC_NO | 12 | #define _XXXXXX_ KC_TRNS |
13 | #define XXXXXXX KC_NO | ||
13 | 14 | ||
14 | // KC codes that are too long | 15 | // KC codes that are too long |
15 | #define DOLLAR KC_DOLLAR | 16 | #define DOLLAR KC_DOLLAR |
16 | #define LSQUIGLY KC_LBRACKET | 17 | #define LSQUIGLY KC_LBRACKET |
17 | #define RSQUIGLY KC_RBRACKET | 18 | #define RSQUIGLY KC_RBRACKET |
18 | #define NUMLOCK KC_NUMLOCK | 19 | #define NUMLOCK KC_NUMLOCK |
19 | #define CAPLOCK KC_CAPSLOCK | 20 | #define CAPLOCK KC_CAPSLOCK |
20 | #define BK_SLASH KC_BSLASH | 21 | #define BK_SLASH KC_BSLASH |
21 | #define ASTERSK KC_KP_ASTERISK | 22 | #define ASTERSK KC_KP_ASTERISK |
22 | 23 | ||
23 | // Navigation | 24 | // Navigation |
24 | #define SNAPLEFT LGUI(KC_LEFT) | 25 | #define SNAPLEFT LGUI(KC_LEFT) |
25 | #define SNAPRGHT LGUI(KC_RIGHT) | 26 | #define SNAPRGHT LGUI(KC_RIGHT) |
@@ -30,19 +31,28 @@ | |||
30 | #define WORKRIGHT LCTL(LGUI(KC_RIGHT)) | 31 | #define WORKRIGHT LCTL(LGUI(KC_RIGHT)) |
31 | #define WORKLEFT LCTL(LGUI(KC_LEFT)) | 32 | #define WORKLEFT LCTL(LGUI(KC_LEFT)) |
32 | 33 | ||
34 | #define APP_1 LCTL(LGUI(KC_1)) | ||
35 | #define APP_2 LCTL(LGUI(KC_2)) | ||
36 | #define APP_3 LCTL(LGUI(KC_3)) | ||
37 | #define APP_4 LCTL(LGUI(KC_4)) | ||
38 | #define APP_5 LCTL(LGUI(KC_5)) | ||
39 | #define APP_6 LCTL(LGUI(KC_6)) | ||
40 | #define APP_7 LCTL(LGUI(KC_7)) | ||
41 | #define APP_8 LCTL(LGUI(KC_8)) | ||
42 | |||
33 | // KC/modifier hold | 43 | // KC/modifier hold |
34 | #define CTRL_F CTL_T(KC_F) | 44 | #define CTRL_F CTL_T(KC_F) |
35 | #define CTRL_J CTL_T(KC_J) | 45 | #define CTRL_J CTL_T(KC_J) |
36 | #define CTRL_Z CTL_T(KC_Z) | 46 | #define CTRL_Z CTL_T(KC_Z) |
37 | #define ALT_V ALT_T(KC_V) | 47 | #define ALT_V ALT_T(KC_V) |
38 | #define ALT_M ALT_T(KC_M) | 48 | #define ALT_M ALT_T(KC_M) |
39 | #define WIN_G GUI_T(KC_G) | 49 | #define WIN_G GUI_T(KC_G) |
40 | #define WIN_H GUI_T(KC_H) | 50 | #define WIN_H GUI_T(KC_H) |
41 | #define HYPER_X ALL_T(KC_X) | 51 | #define HYPER_X ALL_T(KC_X) |
42 | #define HYPE_DOT ALL_T(KC_DOT) | 52 | #define HYPE_DOT ALL_T(KC_DOT) |
43 | #define MEH_S MEH_T(KC_S) | 53 | #define MEH_S MEH_T(KC_S) |
44 | #define MEH_L MEH_T(KC_L) | 54 | #define MEH_L MEH_T(KC_L) |
45 | #define ALT_HOME ALT_T(KC_HOME) | 55 | #define ALT_HOME ALT_T(KC_HOME) |
46 | 56 | ||
47 | 57 | ||
48 | // KC/Layer Hold | 58 | // KC/Layer Hold |
@@ -52,6 +62,15 @@ | |||
52 | #define SYMB_BSP LT(_SYMBOLS,KC_BSPACE) | 62 | #define SYMB_BSP LT(_SYMBOLS,KC_BSPACE) |
53 | #define COL_MOUS LT(_MOUSE,KC_SCOLON) | 63 | #define COL_MOUS LT(_MOUSE,KC_SCOLON) |
54 | #define SPAC_SYM LT(_SYMBOLS,KC_SPACE) | 64 | #define SPAC_SYM LT(_SYMBOLS,KC_SPACE) |
65 | #define SPAC_TXT LT(_TEXTNAV,KC_SPACE) | ||
66 | |||
67 | #define APP_SW_I LT(_APPSWITCH,KC_I) | ||
68 | #define APP_SW_K LT(_APPSWITCH,KC_K) | ||
69 | |||
70 | // #define TLSLSH TIL_SLASH | ||
71 | // #define TILDA_3x TILD3 | ||
72 | // #define _RESET_ UP_ENTER_RESET | ||
73 | |||
55 | 74 | ||
56 | // Double Modifier ONLY hold | 75 | // Double Modifier ONLY hold |
57 | #define ALT_SHFT LSFT(KC_LALT) | 76 | #define ALT_SHFT LSFT(KC_LALT) |
@@ -60,6 +79,7 @@ | |||
60 | // KC/Double modifier Hold | 79 | // KC/Double modifier Hold |
61 | #define CTR_SH_W MT(MOD_LCTL|MOD_LSFT,KC_W) | 80 | #define CTR_SH_W MT(MOD_LCTL|MOD_LSFT,KC_W) |
62 | #define CTR_AL_R MT(MOD_LCTL|MOD_LALT,KC_R) | 81 | #define CTR_AL_R MT(MOD_LCTL|MOD_LALT,KC_R) |
82 | #define ALT_SH_R MT(MOD_LSFT|MOD_LALT,KC_R) | ||
63 | 83 | ||
64 | //MISC | 84 | //MISC |
65 | #define PRINTSCR KC_PSCREEN | 85 | #define PRINTSCR KC_PSCREEN |
@@ -82,16 +102,77 @@ enum { | |||
82 | TRIPLE_HOLD = 7 | 102 | TRIPLE_HOLD = 7 |
83 | }; | 103 | }; |
84 | 104 | ||
105 | //Tap dance enums | ||
106 | enum | ||
107 | { | ||
108 | F12TAP = 0, | ||
109 | F12ETAPS, | ||
110 | CALCCOMP, | ||
111 | REFRESH, //send R, or Control+R if double tapped. | ||
112 | ENDESC, | ||
113 | XESC, //'quad function'. x, control, escape, alt | ||
114 | ALY2, //'quad function': a, Hyper, ctrl+a, layer 2 | ||
115 | PRLOCK, | ||
116 | F6F7, // Shift F6 or Alt F7 | ||
117 | TABCOMBO, | ||
118 | FCTRL, | ||
119 | F3D, | ||
120 | ALTF4, | ||
121 | COMMA, | ||
122 | AT, | ||
123 | HTAB, | ||
124 | F1F13, | ||
125 | F2F14, | ||
126 | F5F15, | ||
127 | ENDHOME, | ||
128 | Q_ESCAPE | ||
129 | }; | ||
130 | |||
131 | #ifdef TAP_DANCE_ENABLE | ||
132 | #define F1_F13 TD(F1F13) | ||
133 | #define F2_F14 TD(F2F14) | ||
134 | #define F5_F15 TD(F5F15) | ||
135 | #define F4_ALTF4 TD(ALTF4) | ||
136 | #define END_ESC TD(ENDESC) | ||
137 | #define Q_ESC TD(Q_ESCAPE) | ||
138 | #define END_HOME TD(ENDHOME) | ||
139 | #define SHF6_AF7 TD(F6F7) | ||
140 | #define F12_RUN TD(F12ETAPS) | ||
141 | #define COMMA_TD TD(COMMA) | ||
142 | #define CALC_COM TD(CALCCOMP) | ||
143 | #else //just to make things compile | ||
144 | #define F1_F13 KC_1 | ||
145 | #define F2_F14 KC_1 | ||
146 | #define F5_F15 KC_1 | ||
147 | #define F4_ALTF4 KC_1 | ||
148 | #define END_ESC KC_1 | ||
149 | #define END_HOME KC_1 | ||
150 | #define SHF6_AF7 KC_1 | ||
151 | #define F12_RUN KC_1 | ||
152 | #define COMMA_TD KC_1 | ||
153 | #define CALC_COM KC_1 | ||
154 | #endif | ||
155 | |||
85 | enum gordon_layers | 156 | enum gordon_layers |
86 | { | 157 | { |
87 | _QWERTY = 0, | 158 | _QWERTY = 0, |
88 | _SYMBOLS, | 159 | _SYMBOLS, // Programming and all other commonlye used symbols |
89 | _MOUSE, | 160 | _MOUSE, // Mouse movement and also a few macros |
90 | _NUMPAD, | 161 | _NUMPAD, // For getting a numpad under the right hand, and a few helpful things under the left |
91 | _NAV, | 162 | _NAV, // Windows navigation. Windows snapping, changing workspaces, and ARROWS |
92 | _MACROS, | 163 | _MACROS, // Non-text related Macros. |
93 | _FUNCTION, | 164 | _FUNCTION, // Not sure what I had in mind for this one |
94 | _TEXTNAV | 165 | _APPSWITCH, // For switching between apps using the `ctrl + Win + [num]` shortcut. |
166 | // This allows for toggling windows of the same app with one button. | ||
167 | // Example: Press and hold `I`, then tap `j` multiple times to cycle through all | ||
168 | // Intellij windows (and only Intellij). This requires the app to be pinned to the Windows bar | ||
169 | _ONESHOT, // A layer I use for shortcuts that require multiple modifiers and a button not on my home layer | ||
170 | // Example: If I need to hit `alt + shift + 5` | ||
171 | _TEXTNAV, // Navigate through text | ||
172 | _QWERTY_KIDS, // So my kids can do nothing but type. Could also be a `speed typing` layer with no LT or MTs | ||
173 | _STREET_FIGHTER, // For Street Fighter 5. Die 1000x Deaths!!!! | ||
174 | _DIRNAV, // For navigating to different directories. | ||
175 | _TEXT_MACROS // For text-manipulation macros. Passwords, saved strings, pre-formatting | ||
95 | }; | 176 | }; |
96 | 177 | ||
97 | 178 | ||
@@ -99,23 +180,23 @@ enum gordon_layers | |||
99 | void register_hyper (void); | 180 | void register_hyper (void); |
100 | void unregister_hyper (void); | 181 | void unregister_hyper (void); |
101 | 182 | ||
102 | void register_ctrl_a (void); | 183 | void register_ctrl_a (void); |
103 | void unregister_ctrl_a (void); | 184 | void unregister_ctrl_a (void); |
104 | 185 | ||
105 | void register_alt_f7 (void); | 186 | void register_alt_f7 (void); |
106 | void unregister_alt_f7 (void); | 187 | void unregister_alt_f7 (void); |
107 | 188 | ||
108 | void register_shift_f6 (void); | 189 | void register_shift_f6 (void); |
109 | void unregister_shift_f6 (void); | 190 | void unregister_shift_f6 (void); |
110 | 191 | ||
111 | void register_ctrl_shift (void); | 192 | void register_ctrl_shift (void); |
112 | void unregister_ctrl_shift (void); | 193 | void unregister_ctrl_shift (void); |
113 | 194 | ||
114 | void register_alt_shift (void); | 195 | void register_alt_shift (void); |
115 | void unregister_alt_shift (void); | 196 | void unregister_alt_shift (void); |
116 | 197 | ||
117 | int cur_dance (qk_tap_dance_state_t *state); | 198 | int cur_dance (qk_tap_dance_state_t *state); |
118 | int hold_cur_dance (qk_tap_dance_state_t *state); | 199 | int hold_cur_dance (qk_tap_dance_state_t *state); |
119 | 200 | ||
120 | void x_finished (qk_tap_dance_state_t *state, void *user_data); | 201 | void x_finished (qk_tap_dance_state_t *state, void *user_data); |
121 | void x_reset (qk_tap_dance_state_t *state, void *user_data); | 202 | void x_reset (qk_tap_dance_state_t *state, void *user_data); |
@@ -132,26 +213,37 @@ void comma_reset (qk_tap_dance_state_t *state, void *user_data); | |||
132 | void bt_finished (qk_tap_dance_state_t *state, void *user_data); | 213 | void bt_finished (qk_tap_dance_state_t *state, void *user_data); |
133 | void bt_reset (qk_tap_dance_state_t *state, void *user_data); | 214 | void bt_reset (qk_tap_dance_state_t *state, void *user_data); |
134 | 215 | ||
216 | enum secret_strings { | ||
217 | KC_SECRET_1 = SAFE_RANGE, | ||
218 | KC_SECRET_2, | ||
219 | KC_SECRET_3, | ||
220 | KC_SECRET_4, | ||
221 | KC_SECRET_5, | ||
222 | END_SECRET_SAFE_RANGE | ||
223 | }; | ||
224 | |||
225 | |||
135 | // Macro Declarations | 226 | // Macro Declarations |
136 | enum { | 227 | enum { |
137 | INFOQM, | 228 | INFOQM = END_SECRET_SAFE_RANGE, |
229 | MODRESET, | ||
138 | TIL_SLASH, | 230 | TIL_SLASH, |
139 | DEREF, | 231 | DEREF, |
140 | EQRIGHT, | 232 | EQRIGHT, |
141 | TILD3, | 233 | TILD3, |
142 | TICK3, | 234 | TICK3, |
235 | SPRK_TCK, | ||
143 | ALTTAB_START, | 236 | ALTTAB_START, |
144 | ALTTAB_END | 237 | ALTTAB_END, |
238 | UP_ENTER_RESET, | ||
239 | DBMS_OUT, | ||
240 | DIE_1000X_RIGHT, | ||
241 | DIE_1000X_LEFT, | ||
242 | ID_MAN_IP | ||
145 | }; | 243 | }; |
146 | 244 | ||
147 | enum secret_strings { | 245 | |
148 | KC_SECRET_1 = SAFE_RANGE, | ||
149 | KC_SECRET_2, | ||
150 | KC_SECRET_3, | ||
151 | KC_SECRET_4, | ||
152 | KC_SECRET_5, | ||
153 | }; | ||
154 | 246 | ||
155 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt); | 247 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt); |
156 | 248 | ||
157 | #endif \ No newline at end of file | 249 | #endif |
diff --git a/users/gordon/rules.mk b/users/gordon/rules.mk index 359478912..19e77b01b 100644 --- a/users/gordon/rules.mk +++ b/users/gordon/rules.mk | |||
@@ -1,2 +1,4 @@ | |||
1 | TAP_DANCE_ENABLE = yes | 1 | TAP_DANCE_ENABLE = yes |
2 | SRC += gordon.c \ No newline at end of file | 2 | SRC += gordon.c |
3 | |||
4 | # BOOTMAGIC_ENABLE = yes | ||