]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/ninjonas/process_records.c
6ec5be597882af9da96711a17716e5414ad4ea98
[qmk_firmware.git] / users / ninjonas / process_records.c
1 #include "ninjonas.h"
2
3 __attribute__((weak))
4 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
5
6 __attribute__((weak))
7 bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; }
8
9 #ifdef OLED_DRIVER_ENABLE
10 __attribute__((weak))
11 bool process_record_oled(uint16_t keycode, keyrecord_t *record) { return true; }
12 #endif
13
14 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
15   #ifdef OLED_DRIVER_ENABLE
16   process_record_oled(keycode, record);
17   #endif
18
19   switch (keycode) {
20
21     // Sends pyenv to activate 'jira' environment
22     case M_PYNV:
23       if (record->event.pressed) {
24         SEND_STRING("pyenv activate jira\n");
25       }
26       break;
27
28     // Sends  + alt + shift to a keycode to activate shiftit. See: https://github.com/fikovnik/ShiftIt
29     case M_SHFT:
30       if (record->event.pressed) {
31         register_code(KC_LGUI);
32         register_code(KC_LALT);
33         register_code(KC_LCTL);
34       } else {
35         unregister_code(KC_LGUI);
36         unregister_code(KC_LALT);
37         unregister_code(KC_LCTL);
38       }
39       break;
40
41     // Sends QMK make command to compile keyboard
42     case M_MAKE:
43      if (record->event.pressed) {
44         SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
45       }
46       break;
47
48     // Sends QMK make command to compile all keyboards
49     case M_MALL:
50      if (record->event.pressed) {
51         SEND_STRING("rm -f *.hex && rm -rf .build/ && make crkbd:ninjonas lily58:ninjonas hotdox:ninjonas pinky/3:ninjonas\n");
52       }
53       break;
54
55     // Sends QMK make command with the correct bootloader
56     case M_FLSH:
57       if (!record->event.pressed) {
58         SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP
59           #if  (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
60             ":dfu "
61           #elif defined(BOOTLOADER_CATERINA)
62             ":avrdude "
63           #endif
64           SS_TAP(X_ENTER)
65         );
66
67         // Send reset_keyboard command instead of pressing reset button
68         #if  (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
69         reset_keyboard();
70         #endif
71       }
72       break;
73
74     // Sends QMK version
75     case M_VRSN:
76       if (record->event.pressed) {
77         SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
78       }
79       break;
80
81     // Opens Visual Studio Code on current directory
82     case M_CODE:
83       if (record->event.pressed) {
84         SEND_STRING("code ." SS_TAP(X_ENTER));
85       }
86       break;
87
88     // BEGIN: Layer macros
89     case QWERTY:
90       if (record->event.pressed) {
91         set_single_persistent_default_layer(_QWERTY);
92       }
93       break;
94     case DVORAK:
95       if (record->event.pressed) {
96         set_single_persistent_default_layer(_DVORAK);
97       }
98       break;
99     case COLEMAK:
100       if (record->event.pressed) {
101         set_single_persistent_default_layer(_COLEMAK);
102       }
103       break;
104     // END: Layer macros
105   }
106
107   return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
108 }