functions.c 796 B

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * Custom Keycodes
  3. * https://beta.docs.qmk.fm/detailed-guides/custom_quantum_functions#custom-keycodes
  4. *
  5. */
  6. // Called on every keyup and keydown
  7. bool process_record_user(uint16_t keycode, keyrecord_t *record)
  8. {
  9. switch (keycode) {
  10. case HLD_ESC:
  11. if(record->event.pressed) {
  12. is_esc_held = true;
  13. held_esc_timer = timer_read();
  14. } else {
  15. is_esc_held = false;
  16. unregister_code(KC_ESC);
  17. }
  18. return true;
  19. break;
  20. default:
  21. return true;
  22. break;
  23. }
  24. }
  25. // checking the held escape timer
  26. void matrix_scan_user(void)
  27. {
  28. if(is_esc_held && timer_elapsed(held_esc_timer) > held_esc_threshold) {
  29. register_code(KC_ESC);
  30. }
  31. }