]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/konstantin/konstantin.c
Remove more commented out MCUs
[qmk_firmware.git] / users / konstantin / konstantin.c
1 #include "konstantin.h"
2
3 __attribute__((weak))
4 void keyboard_pre_init_keymap(void) {}
5
6 void keyboard_pre_init_user(void) {
7     keyboard_pre_init_keymap();
8 }
9
10 __attribute__((weak))
11 void eeconfig_init_keymap(void) {}
12
13 void eeconfig_init_user(void) {
14     eeconfig_init_keymap();
15 }
16
17 __attribute__((weak))
18 void keyboard_post_init_keymap(void) {}
19
20 void keyboard_post_init_user(void) {
21     keyboard_post_init_keymap();
22 }
23
24 __attribute__((weak))
25 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
26     return true;
27 }
28
29 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
30     if (!process_record_keymap(keycode, record)) {
31         return false;
32     }
33
34     switch (keycode) {
35     case CLEAR:
36         if (record->event.pressed) {
37             SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE));
38         }
39         return false;
40
41     case DST_P_R:
42         (record->event.pressed ? register_code16 : unregister_code16)(
43             (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV
44         );
45         return false;
46
47     case DST_N_A:
48         (record->event.pressed ? register_code16 : unregister_code16)(
49             (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT
50         );
51         return false;
52
53 #ifdef LAYER_FN
54         static bool fn_lock;
55
56     case FN_FNLK:
57         if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
58             fn_lock = !IS_LAYER_ON(L_FN);  // Fn layer will be toggled after this
59         }
60         return true;
61 #endif
62
63     case KC_ESC:
64         if (record->event.pressed) {
65 #ifdef LAYER_NUMPAD  // Disable Numpad layer before Fn layer
66             if (IS_LAYER_ON(L_NUMPAD)) {
67                 layer_off(L_NUMPAD);
68                 return false;
69             }
70 #endif
71 #ifdef LAYER_FN
72             if (IS_LAYER_ON(L_FN) && fn_lock) {
73                 layer_off(L_FN);
74                 return fn_lock = false;
75             }
76 #endif
77         }
78         return true;
79
80     default:
81         return true;
82     }
83 }
84
85 __attribute__((weak))
86 uint32_t layer_state_set_keymap(uint32_t state) {
87     return state;
88 }
89
90 uint32_t layer_state_set_user(uint32_t state) {
91     state = layer_state_set_keymap(state);
92
93 #ifdef LAYER_NUMPAD
94     bool numpad = state & 1UL<<L_NUMPAD;
95     bool num_lock = IS_HOST_LED_ON(USB_LED_NUM_LOCK);
96     if (numpad != num_lock) {
97         tap_code(KC_NLCK);  // Toggle Num Lock to match Numpad layer state
98     }
99 #endif
100
101     return state;
102 }