2 Based on userspace written by @drashna 2017
3 Copyright 2018 Hsian Chang <ishtob@gmail.com> @ishtob
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include "action_layer.h"
20 // #include "dynamic_macro.h"
26 // Add reconfigurable functions here, for keymap customization
27 // This allows for a global, userspace functions, and continued
28 // customization of the keymap. Use _keymap instead of _user
29 // functions in the keymaps
30 __attribute__ ((weak))
31 void matrix_init_keymap(void) {}
33 __attribute__ ((weak))
34 void matrix_scan_keymap(void) {}
36 __attribute__ ((weak))
37 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
41 __attribute__ ((weak))
42 bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
46 // Call user matrix init, then call the keymap's init function
47 void matrix_init_user(void) {
51 // No global matrix scan code, so just run keymap's matix
53 void matrix_scan_user(void) {
57 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
60 if (record->event.pressed) {
67 return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);