process_records.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. // Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "drashna.h"
  5. #if defined(KEYBOARD_handwired_tractyl_manuform) && defined(POINTING_DEVICE_ENABLE)
  6. # define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
  7. #elif defined(KEYBOARD_bastardkb_charybdis)
  8. # define PLACEHOLDER_SAFE_RANGE CHARYBDIS_SAFE_RANGE
  9. #else
  10. # define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
  11. #endif
  12. enum userspace_custom_keycodes {
  13. VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info
  14. KC_QWERTY, // Sets default layer to QWERTY
  15. FIRST_DEFAULT_LAYER_KEYCODE = KC_QWERTY, // Sets default layer to QWERTY
  16. KC_COLEMAK_DH, // Sets default layer to COLEMAK
  17. KC_COLEMAK, // Sets default layer to COLEMAK
  18. KC_DVORAK, // Sets default layer to DVORAK
  19. LAST_DEFAULT_LAYER_KEYCODE = KC_DVORAK, // Sets default layer to WORKMAN
  20. KC_DIABLO_CLEAR, // Clears all Diablo Timers
  21. KC_RGB_T, // Toggles RGB Layer Indication mode
  22. RGB_IDL, // RGB Idling animations
  23. KC_SECRET_1, // test1
  24. KC_SECRET_2, // test2
  25. KC_SECRET_3, // test3
  26. KC_SECRET_4, // test4
  27. KC_SECRET_5, // test5
  28. KC_CCCV, // Hold to copy, tap to paste
  29. KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
  30. UC_FLIP, // (ಠ痊ಠ)┻━┻
  31. UC_TABL, // ┬─┬ノ( º _ ºノ)
  32. UC_SHRG, // ¯\_(ツ)_/¯
  33. UC_DISA, // ಠ_ಠ
  34. UC_IRNY,
  35. UC_CLUE,
  36. KEYLOCK, // Locks keyboard by unmounting driver
  37. KC_NOMODE,
  38. KC_WIDE,
  39. KC_SCRIPT,
  40. KC_BLOCKS,
  41. KC_REGIONAL,
  42. KC_AUSSIE,
  43. KC_ZALGO,
  44. KC_SUPER,
  45. KC_COMIC,
  46. KC_ACCEL,
  47. NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
  48. };
  49. bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
  50. bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
  51. void post_process_record_keymap(uint16_t keycode, keyrecord_t *record);
  52. #ifdef CUSTOM_UNICODE_ENABLE
  53. bool process_record_unicode(uint16_t keycode, keyrecord_t *record);
  54. #endif
  55. #define LOWER MO(_LOWER)
  56. #define RAISE MO(_RAISE)
  57. #define ADJUST MO(_ADJUST)
  58. #define TG_MODS OS_TOGG
  59. #define TG_GAME TG(_GAMEPAD)
  60. #define TG_DBLO TG(_DIABLO)
  61. #define OS_LWR OSL(_LOWER)
  62. #define OS_RSE OSL(_RAISE)
  63. #define KC_SEC1 KC_SECRET_1
  64. #define KC_SEC2 KC_SECRET_2
  65. #define KC_SEC3 KC_SECRET_3
  66. #define KC_SEC4 KC_SECRET_4
  67. #define KC_SEC5 KC_SECRET_5
  68. #define QWERTY KC_QWERTY
  69. #define DVORAK KC_DVORAK
  70. #define COLEMAK KC_COLEMAK
  71. #define COLEMAKDH KC_COLEMAK_DH
  72. #define DEFLYR1 FIRST_DEFAULT_LAYER_KEYCODE
  73. #define DEFLYR2 (FIRST_DEFAULT_LAYER_KEYCODE + 1)
  74. #define DEFLYR3 (FIRST_DEFAULT_LAYER_KEYCODE + 2)
  75. #define DEFLYR4 (FIRST_DEFAULT_LAYER_KEYCODE + 3)
  76. #if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 3)
  77. # define DEFLYR5 (FIRST_DEFAULT_LAYER_KEYCODE + 4)
  78. # define DEFLYR6 (FIRST_DEFAULT_LAYER_KEYCODE + 5)
  79. # define DEFLYR7 (FIRST_DEFAULT_LAYER_KEYCODE + 6)
  80. # define DEFLYR8 (FIRST_DEFAULT_LAYER_KEYCODE + 7)
  81. # if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 7)
  82. # define DEFLYR9 (FIRST_DEFAULT_LAYER_KEYCODE + 8)
  83. # define DEFLYR10 (FIRST_DEFAULT_LAYER_KEYCODE + 9)
  84. # define DEFLYR11 (FIRST_DEFAULT_LAYER_KEYCODE + 10)
  85. # define DEFLYR12 (FIRST_DEFAULT_LAYER_KEYCODE + 11)
  86. # endif
  87. #endif
  88. #ifdef SWAP_HANDS_ENABLE
  89. # define KC_C1R3 SH_T(KC_TAB)
  90. #elif defined(DRASHNA_LP)
  91. # define KC_C1R3 TG(_GAMEPAD)
  92. #else // SWAP_HANDS_ENABLE
  93. # define KC_C1R3 KC_TAB
  94. #endif // SWAP_HANDS_ENABLE
  95. #define BK_LWER LT(_LOWER, KC_BSPC)
  96. #define SP_LWER LT(_LOWER, KC_SPC)
  97. #define DL_RAIS LT(_RAISE, KC_DEL)
  98. #define ET_RAIS LT(_RAISE, KC_ENTER)
  99. /* OSM keycodes, to keep things clean and easy to change */
  100. #define KC_MLSF OSM(MOD_LSFT)
  101. #define KC_MRSF OSM(MOD_RSFT)
  102. #define OS_LGUI OSM(MOD_LGUI)
  103. #define OS_RGUI OSM(MOD_RGUI)
  104. #define OS_LSFT OSM(MOD_LSFT)
  105. #define OS_RSFT OSM(MOD_RSFT)
  106. #define OS_LCTL OSM(MOD_LCTL)
  107. #define OS_RCTL OSM(MOD_RCTL)
  108. #define OS_LALT OSM(MOD_LALT)
  109. #define OS_RALT OSM(MOD_RALT)
  110. #define OS_MEH OSM(MOD_MEH)
  111. #define OS_HYPR OSM(MOD_HYPR)
  112. #define ALT_APP ALT_T(KC_APP)
  113. #define MG_NKRO MAGIC_TOGGLE_NKRO
  114. #define AUTO_CTN QK_AUTOCORRECT_TOGGLE
  115. /*
  116. Custom Keycodes for Diablo 3 layer
  117. But since TD() doesn't work when tap dance is disabled
  118. We use custom codes here, so we can substitute the right stuff
  119. */
  120. #ifdef TAP_DANCE_ENABLE
  121. # define KC_D3_1 TD(TD_D3_1)
  122. # define KC_D3_2 TD(TD_D3_2)
  123. # define KC_D3_3 TD(TD_D3_3)
  124. # define KC_D3_4 TD(TD_D3_4)
  125. #else // TAP_DANCE_ENABLE
  126. # define KC_D3_1 KC_1
  127. # define KC_D3_2 KC_2
  128. # define KC_D3_3 KC_3
  129. # define KC_D3_4 KC_4
  130. #endif // TAP_DANCE_ENABLE