6 // Add reconfigurable functions here, for keymap customization
7 // This allows for a global, userspace functions, and continued
8 // customization of the keymap. Use _keymap instead of _user
9 // functions in the keymaps
10 __attribute__ ((weak))
11 void matrix_init_keymap(void) {}
13 __attribute__ ((weak))
14 void matrix_scan_keymap(void) {}
16 __attribute__ ((weak))
17 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
20 __attribute__ ((weak))
21 uint32_t layer_state_set_keymap (uint32_t state) {
25 // Call user matrix init, then call the keymap's init function
26 void matrix_init_user(void) {
30 // No global matrix scan code, so just run keymap's matix
32 void matrix_scan_user(void) {
37 // Defines actions tor my global custom keycodes. Defined in drashna.h file
38 // Then runs the _keymap's recod handier if not processed here,
39 // And use "NEWPLACEHOLDER" for new safe range
40 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
44 if (!record->event.pressed) {
45 SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
46 #ifndef CATERINA_BOOTLOADER
47 SEND_STRING(":teensy ");
51 SEND_STRING(SS_TAP(X_ENTER));
56 if (!record->event.pressed) {
62 if (record->event.pressed) {
68 if (record->event.pressed) {
69 SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
74 return process_record_keymap(keycode, record);
77 // Runs state check and changes underglow color and animation
78 // on layer change, no matter where the change was initiated
79 // Then runs keymap's layer change check
80 uint32_t layer_state_set_user (uint32_t state) {
81 return layer_state_set_keymap (state);