/** * Custom Keycodes * https://beta.docs.qmk.fm/detailed-guides/custom_quantum_functions#custom-keycodes * */ // Called on every keyup and keydown bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case HLD_ESC: if(record->event.pressed) { is_esc_held = true; held_esc_timer = timer_read(); } else { is_esc_held = false; unregister_code(KC_ESC); } return true; break; default: return true; break; } } // checking the held escape timer void matrix_scan_user(void) { if(is_esc_held && timer_elapsed(held_esc_timer) > held_esc_threshold) { register_code(KC_ESC); } }