talljoe.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. #ifndef USERSPACE
  2. #define USERSPACE
  3. #include "quantum.h"
  4. enum userspace_custom_keycodes {
  5. KC_MAKE = SAFE_RANGE, // can always be here
  6. DFAULTS,
  7. TOGGLE_BACKLIGHT,
  8. EFFECT,
  9. EFFECT_END = EFFECT + 20
  10. };
  11. #ifndef RESET_LAYER
  12. #define RESET_LAYER 15
  13. #endif
  14. enum layers {
  15. _BASE = 0,
  16. _WORKMAN,
  17. _NORMAN,
  18. _DVORAK,
  19. _COLMAK,
  20. _MALTROFF,
  21. _GAME,
  22. _NAV,
  23. _NUM,
  24. _ADJUST,
  25. _RESET = RESET_LAYER,
  26. };
  27. enum tap_dancers {
  28. TD_SEMICOLON,
  29. TD_GRAVE,
  30. TD_QUOTE,
  31. };
  32. #define MO_NAV MO(_NAV)
  33. #define MO_ADJ MO(_ADJUST)
  34. #define MO_RST MO(_RESET)
  35. #define TG_ADJ TG(_ADJUST)
  36. #define TG_NUM TG(_NUM)
  37. #ifdef ENABLE_GAME_LAYER
  38. #define TG_GAME TG(_GAME)
  39. #else
  40. #define TG_GAME KC_NO
  41. #endif
  42. #define LY_QWER DF(_BASE)
  43. #define LY_WORK DF(_WORKMAN)
  44. #define LY_NRMN DF(_NORMAN)
  45. #define LY_DVRK DF(_DVORAK)
  46. #define LY_CLMK DF(_COLMAK)
  47. #if SPACE_COUNT >= 2
  48. #define LY_MALT DF(_MALTROFF)
  49. #else
  50. #define LY_MALT KC_NO
  51. #endif
  52. #define TG_NKRO MAGIC_TOGGLE_NKRO
  53. #define KC_PTT KC_F24
  54. #define MS_MID KC_MS_BTN3
  55. #define FX(x) (EFFECT + x)
  56. #define CTL_ESC CTL_T(KC_ESC)
  57. #define US_ENT RCTL_T(KC_ENT)
  58. #define US_MINS RCTL_T(KC_QUOT)
  59. #define US_BSLS LCA_T(KC_BSLS)
  60. #define US_SCLN TD(TD_SEMICOLON)
  61. #define US_GRV TD(TD_GRAVE)
  62. #define US_QUOT TD(TD_QUOTE)
  63. #define US_TAB C_S_T(KC_TAB)
  64. #define SH_LBRC LSFT_T(KC_LBRC)
  65. #define SH_RBRC RSFT_T(KC_RBRC)
  66. #define MLT_E LT(_NUM, KC_E)
  67. #ifndef SPACE_COUNT
  68. #define SPACE_COUNT 1
  69. #endif
  70. #if (SPACE_COUNT == 1)
  71. #define KC_SPC1 LT(_NAV, KC_SPC)
  72. #define KC_SPC2 XXXXXXX
  73. #define KC_SPC3 XXXXXXX
  74. #define NV_SPC1 _______
  75. #define NV_SPC2 _______
  76. #define NV_SPC3 _______
  77. #define NM_SPC1 _______
  78. #define NM_SPC2 _______
  79. #define NM_SPC3 _______
  80. #elif (SPACE_COUNT == 2)
  81. #define KC_SPC1 LT(_NAV,KC_SPC)
  82. #define KC_SPC2 LT(_NUM,KC_ENT)
  83. #define NV_SPC1 KC_SPC
  84. #define NV_SPC2 KC_ENT
  85. #define NM_SPC1 KC_0
  86. #define NM_SPC2 KC_SPC
  87. #define KC_SPC3 XXXXXXX
  88. #define NV_SPC3 XXXXXXX
  89. #define NM_SPC3 XXXXXXX
  90. #elif (SPACE_COUNT == 3)
  91. #ifdef SWAP_HANDS_ENABLE
  92. #define KC_SPC1 SH_T(KC_BSPC)
  93. #else
  94. #define KC_SPC1 KC_BSPC
  95. #endif
  96. #define KC_SPC2 LT(_NUM,KC_ENT)
  97. #define KC_SPC3 LT(_NAV,KC_SPC)
  98. #define NV_SPC1 KC_SPC
  99. #define NV_SPC2 KC_ENT
  100. #define NV_SPC3 KC_SPC
  101. #define NM_SPC1 KC_SPC
  102. #define NM_SPC2 XXXXXXX
  103. #define NM_SPC3 KC_0
  104. #else
  105. #error "Unsupported space count:" SPACE_COUNT
  106. #endif
  107. #ifndef ZEAL_RGB
  108. #define BR_INC KC_NO
  109. #define BR_DEC KC_NO
  110. #define EF_INC KC_NO
  111. #define EF_DEC KC_NO
  112. #define ES_INC KC_NO
  113. #define ES_DEC KC_NO
  114. #define H1_INC KC_NO
  115. #define H1_DEC KC_NO
  116. #define S1_INC KC_NO
  117. #define S1_DEC KC_NO
  118. #define H2_INC KC_NO
  119. #define H2_DEC KC_NO
  120. #define S2_INC KC_NO
  121. #define S2_DEC KC_NO
  122. #define FN_MO13 KC_NO
  123. #define FN_MO2 KC_NO
  124. #endif
  125. #ifndef TEMPLATE
  126. #define _X_ KC_NO
  127. #define TEMPLATE( \
  128. KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \
  129. KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \
  130. KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
  131. KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \
  132. KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \
  133. ) TEMPLATE_TKL ( \
  134. KJ6, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, KA5, \
  135. KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, _X_, _X_, _X_, \
  136. KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, _X_, _X_, _X_, \
  137. KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
  138. KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, _X_, \
  139. KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, _X_, _X_, _X_ \
  140. )
  141. #endif
  142. #ifndef TEMPLATE_TKL
  143. #define TEMPLATE_TKL( \
  144. KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
  145. KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
  146. KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
  147. KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
  148. KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
  149. KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
  150. ) TEMPLATE( \
  151. KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \
  152. KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \
  153. KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
  154. KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \
  155. KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \
  156. )
  157. #endif
  158. #ifndef TEMPLATE_ALT
  159. #define TEMPLATE_ALT TEMPLATE
  160. #endif
  161. #ifndef TEMPLATE_NUM
  162. #define TEMPLATE_NUM TEMPLATE_ALT
  163. #endif
  164. #ifndef TEMPLATE_NAV
  165. #define TEMPLATE_NAV TEMPLATE_ALT
  166. #endif
  167. #ifndef TEMPLATE_ADJUST
  168. #define TEMPLATE_ADJUST TEMPLATE_ALT
  169. #endif
  170. #ifndef TEMPLATE_RESET
  171. #define TEMPLATE_RESET TEMPLATE_ALT( \
  172. RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \
  173. RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \
  174. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
  175. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
  176. RESET , XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX)
  177. #endif
  178. #endif