M tmk_core/common/action.c => tmk_core/common/action.c +5 -0
@@ 53,6 53,9 @@ void action_exec(keyevent_t event)
#endif
}
+__attribute__ ((weak))
+void process_action_user(keyrecord_t *record) {}
+
void process_action(keyrecord_t *record)
{
keyevent_t event = record->event;
@@ 62,6 65,8 @@ void process_action(keyrecord_t *record)
if (IS_NOEVENT(event)) { return; }
+ process_action_user(record);
+
action_t action = layer_switch_get_action(event.key);
dprint("ACTION: "); debug_action(action);
#ifndef NO_ACTION_LAYER
M tmk_core/common/action.h => tmk_core/common/action.h +3 -0
@@ 58,6 58,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt);
/* user defined special function */
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt);
+/* user-defined (pre)processing of each key event */
+void process_action_user(keyrecord_t *record);
+
/* Utilities for actions. */
void process_action(keyrecord_t *record);
void register_code(uint8_t code);