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) {
24 __attribute__ ((weak))
25 void led_set_keymap(uint8_t usb_led) {}
27 // Call user matrix init, then call the keymap's init function
28 void matrix_init_user(void) {
32 // No global matrix scan code, so just run keymap's matix
34 void matrix_scan_user(void) {
39 // Defines actions tor my global custom keycodes. Defined in drashna.h file
40 // Then runs the _keymap's recod handier if not processed here,
41 // And use "NEWPLACEHOLDER" for new safe range
42 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
46 if (!record->event.pressed) {
47 SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
48 #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
50 #elif defined(BOOTLOADER_HALFKAY)
52 #elif defined(BOOTLOADER_CATERINA)
60 if (!record->event.pressed) {
66 if (record->event.pressed) {
72 if (record->event.pressed) {
73 SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
78 return process_record_keymap(keycode, record);
81 // Runs state check and changes underglow color and animation
82 // on layer change, no matter where the change was initiated
83 // Then runs keymap's layer change check
84 uint32_t layer_state_set_user (uint32_t state) {
85 return layer_state_set_keymap (state);
88 void led_set_user(uint8_t usb_led) {
89 led_set_keymap(usb_led);