]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c
Keymap: Refactor Hacker Dvorak (#4688)
[qmk_firmware.git] / keyboards / ergodox_ez / keymaps / hacker_dvorak / user / process_record_user.c
1 // TODO: Improve this currently there is no feedback if activated by other means.
2 bool CAPS_LOCK   = false;
3 bool NUM_LOCK    = false;
4 bool SCROLL_LOCK = false;
5
6 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
7     if (!process_record_dynamic_macro(keycode, record)) {
8         return false;
9     }
10
11     switch (keycode) {
12         case KC_CLCK:
13             if (record->event.pressed) {
14                 if (!(CAPS_LOCK)) {
15                     ergodox_right_led_1_on();
16                     CAPS_LOCK = true;
17                 } else {
18                     ergodox_right_led_1_off();
19                     CAPS_LOCK = false;
20                 }
21             }
22
23             return true;
24
25         case KC_NLCK:
26             if (record->event.pressed) {
27                 if (!(NUM_LOCK)) {
28                     ergodox_right_led_2_on();
29                     NUM_LOCK = true;
30                 } else {
31                     ergodox_right_led_2_off();
32                     NUM_LOCK = false;
33                 }
34             }
35
36             return true;
37
38         case KC_SLCK:
39             if (record->event.pressed) {
40                 if (!(SCROLL_LOCK)) {
41                     ergodox_right_led_3_on();
42                     SCROLL_LOCK = true;
43                 } else {
44                     ergodox_right_led_3_off();
45                     SCROLL_LOCK = false;
46                 }
47             }
48
49             return true;
50
51         case KC_MS_WH_UP ... KC_MS_WH_RIGHT:
52             if (record->event.pressed) {
53                 if (SCROLL_LOCK) {
54                     return false;
55                 } else {
56                     return true;
57                 }
58             }
59
60         case MY_CUSTOM_MACRO:
61             if (record->event.pressed) {
62                 SEND_STRING("QMK is the best thing ever!"); // this is our macro!
63                 return false;
64             }
65
66         case MY_OTHER_MACRO:
67             if (record->event.pressed) {
68                 SEND_STRING(SS_LCTRL("ac")); // selects all and copies
69                 return false;
70             }
71
72         default:
73             return true;
74     }
75 }