]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/bocaj/process_records.c
Remove more commented out MCUs
[qmk_firmware.git] / users / bocaj / process_records.c
1 #include "bocaj.h"
2 #include QMK_KEYBOARD_H
3
4 uint16_t copy_paste_timer;
5 uint16_t grave_layer_timer;
6 uint16_t heal_layer_timer;
7
8 __attribute__ ((weak))
9 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
10   return true;
11 }
12
13 // Defines actions tor my global custom keycodes. Defined in bocaj.h file
14 // Then runs the _keymap's record handler if not processed here
15 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
16   switch (keycode) {
17     case KC_MWRK:
18       if (!record->event.pressed) {
19         set_single_persistent_default_layer(_WORKMAN);
20         #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
21           set_unicode_input_mode(0);
22         #endif
23         layer_move(0);
24         ergodox_blink_all_leds();
25       }
26       break;
27     case KC_WWRK:
28       if (!record->event.pressed) {
29         set_single_persistent_default_layer(_WINWORKMAN);
30         #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
31           set_unicode_input_mode(4);
32         #endif
33         layer_move(0);
34         ergodox_blink_all_leds();
35       }
36       break;
37     case KC_MQWR:
38       if (!record->event.pressed) {
39         set_single_persistent_default_layer(_QWERTY);
40         #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
41           set_unicode_input_mode(0);
42         #endif
43         layer_move(0);
44         ergodox_blink_all_leds();
45       }
46       break;
47     case MC_LOCK:
48       if (!record->event.pressed) {
49         layer_move(0);
50         SEND_STRING(SS_LCTRL(SS_LGUI("q")));
51       }
52       break;
53     case KC_MAKE:  // Compiles the firmware, and adds the flash command based on keyboard bootloader
54       if (!record->event.pressed) {
55         uint8_t temp_mod = get_mods();
56         uint8_t temp_osm = get_oneshot_mods();
57         clear_mods();
58         clear_oneshot_mods();
59         if (biton32(default_layer_state) == _WINWORKMAN) {
60           send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), 10);
61         } else {
62           send_string_with_delay_P(PSTR("util/docker_build.sh " QMK_KEYBOARD ":" QMK_KEYMAP), 10);
63         }
64         if (temp_mod & MODS_SHIFT_MASK) {
65           send_string_with_delay_P(PSTR(":teensy"), 10);
66         }
67         if (temp_mod & MODS_CTRL_MASK) {
68           send_string_with_delay_P(PSTR(" -j8 --output-sync"), 10);
69         }
70         send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), 10);
71         set_mods(temp_mod);
72         layer_move(0);
73       }
74       break;
75     case KC_DCLR:  // reset all Diablo timers, disabling them
76 #ifdef TAP_DANCE_ENABLE
77       if (record->event.pressed) {
78         uint8_t dtime;
79         for (dtime = 0; dtime < 4; dtime++) {
80           diablo_key_time[dtime] = diablo_times[0];
81         }
82       }
83 #endif // TAP_DANCE_ENABLE
84       break;
85       case JJ_ARRW:
86       if (!record->event.pressed) {
87         SEND_STRING("->");
88       }
89       return false;
90       break;
91     case LM_GRAVE:
92       if (record->event.pressed) {
93         grave_layer_timer = timer_read();
94       } else {
95         if (timer_elapsed(grave_layer_timer) < TAPPING_TERM) {
96           uint8_t temp_mod = get_mods();
97           uint8_t one_shot = get_oneshot_mods();
98           clear_mods();
99           if (temp_mod & MODS_SHIFT_MASK || one_shot & MODS_SHIFT_MASK) {
100             register_code(KC_LSFT);
101             tap(KC_GRAVE);
102             unregister_code(KC_LSFT);
103           } else {
104             tap(KC_GRAVE);
105           }
106           set_mods(temp_mod);
107         } else {
108           layer_move(0);
109         }
110       }
111       return false;
112       break;
113     case KC_CCCV:
114       if (record->event.pressed) {
115         copy_paste_timer = timer_read();
116       } else {
117         if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
118           SEND_STRING(SS_LGUI("c"));
119         } else {
120           SEND_STRING(SS_LGUI("v"));
121         }
122       }
123       return false;
124       break;
125 #ifdef UNICODE_ENABLE
126     case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻
127       if (record->event.pressed) {
128         send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B");
129       }
130       break;
131     case UC_TABL: // ┬─┬ノ( º _ ºノ)
132       if (record->event.pressed) {
133         send_unicode_hex_string("252C 2500 252C 30CE 0028 0020 00BA 0020 005F 0020 00BA 30CE 0029");
134       }
135       break;
136     case UC_SHRG: // ¯\_(ツ)_/¯
137       if (record->event.pressed) {
138         send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF");
139       }
140       break;
141     case UC_DISA: // ಠ_ಠ
142       if (record->event.pressed) {
143         send_unicode_hex_string("0CA0 005F 0CA0");
144       }
145       break;
146 #endif
147   }
148   return process_record_keymap(keycode, record);
149 }