ishtob.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. #ifndef USERSPACE
  2. #define USERSPACE
  3. #include "quantum.h"
  4. enum userspace_keycodes {
  5. QWERTY = SAFE_RANGE,
  6. COLEMAK,
  7. DVORAK,
  8. PLOVER,
  9. LOWER,
  10. RAISE,
  11. BACKLIT,
  12. EXT_PLV,
  13. DFU,
  14. P_CITRIX, //these macro exsists in macros_private.c, which is excluded from git
  15. P_MPASS,
  16. P_META,
  17. O_DAYRN,
  18. O_RTQ6H,
  19. O_3DRN,
  20. O_AUTODC,
  21. M_EMAIL,
  22. M_EMAIL2
  23. };
  24. // Each layer gets a name for readability, which is then used in the keymap matrix below.
  25. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
  26. // Layer names don't all need to be of the same length, obviously, and you can also skip them
  27. // entirely and just use numbers.
  28. #define _QWERTY 0
  29. #define _COLEMAK 1
  30. #define _DVORAK 2
  31. #define _LOWER 3
  32. #define _RAISE 4
  33. #define _PLOVER 5
  34. #define _FNLAYER 6
  35. #define _NUMLAY 7
  36. #define _MOUSECURSOR 8
  37. #define _ADJUST 16
  38. #define LOWER MO(_LOWER)
  39. #define RAISE MO(_RAISE)
  40. // Fillers to make layering more clear
  41. #define _______ KC_TRNS
  42. #define XXXXXXX KC_NO
  43. // Custom macros
  44. #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
  45. #define CTL_TTAB CTL_T(KC_TAB) // Tap for Esc, hold for Ctrl
  46. #define CTL_ENT CTL_T(KC_ENT) // Tap for Enter, hold for Ctrl
  47. #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
  48. // Requires KC_TRNS/_______ for the trigger key in the destination layer
  49. #define LT_FN(kc) LT(_FNLAYER, kc) // L-ayer T-ap Function Layer
  50. #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
  51. #define LT_RAI(kc) LT(_RAISE, kc) // L-ayer T-ap to Raise
  52. #define TG_NUMLAY TG(_NUMLAY) //Toggle for layer _NUMLAY
  53. /*
  54. enum userspace_layers {
  55. _QWERTY = 0,
  56. _COLEMAK,
  57. _DVORAK,
  58. _LOWER,
  59. _RAISE,
  60. _PLOVER,
  61. _FNLAYER,
  62. _NUMLAY,
  63. _MOUSECURSOR,
  64. _ADJUST
  65. };
  66. */
  67. /*
  68. Since our quirky block definitions are basically a list of comma separated
  69. arguments, we need a wrapper in order for these definitions to be
  70. expanded before being used as arguments to the LAYOUT_xxx macro.
  71. */
  72. #if (!defined(LAYOUT) && defined(KEYMAP))
  73. #define LAYOUT KEYMAP
  74. #endif
  75. #define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
  76. #define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
  77. #define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
  78. #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
  79. #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
  80. /*
  81. Blocks for each of the four major keyboard layouts
  82. Organized so we can quickly adapt and modify all of them
  83. at once, rather than for each keyboard, one at a time.
  84. And this allows for much cleaner blocks in the keymaps.
  85. For instance Tap/Hold for Control on all of the layouts
  86. NOTE: These are all the same length. If you do a search/replace
  87. then you need to add/remove underscores to keep the
  88. lengths consistent.
  89. */
  90. #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
  91. #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
  92. #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  93. #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
  94. #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, LT_MC(KC_SCLN)
  95. #define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
  96. #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
  97. #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
  98. #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  99. #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
  100. #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, LT_MC(KC_O)
  101. #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
  102. #define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
  103. #define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
  104. #define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
  105. #define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
  106. #define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, LT_MC(KC_O)
  107. #define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
  108. #define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
  109. #define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
  110. #define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
  111. #define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
  112. #define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, LT_MC(KC_S)
  113. #define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
  114. #define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
  115. #define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
  116. #define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
  117. #define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
  118. #define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, LT_MC(KC_I)
  119. #define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
  120. #define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
  121. #define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
  122. #define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  123. #define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
  124. #define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, LT_MC(KC_U)
  125. #define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH
  126. #define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
  127. #define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
  128. #define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J KC_G, KC_COMM
  129. #define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
  130. #define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, LT_MC(KC_R)
  131. #define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
  132. #define _________________EUCALYN_L1________________ KC_SLSH, KC_COMM, KC_DOT, KC_F, KC_Q
  133. #define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
  134. #define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_W
  135. #define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
  136. #define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, LT_MC(KC_N)
  137. #define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SCLN
  138. #define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
  139. #define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
  140. #define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
  141. #define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
  142. #define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, LT_MC(KC_SCLN)
  143. #define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
  144. #define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
  145. #define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
  146. #define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
  147. #define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
  148. #define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, LT_MC(KC_H)
  149. #define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
  150. #define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
  151. #define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
  152. #define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
  153. #define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
  154. #define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, LT_MC(KC_H)
  155. #define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
  156. #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
  157. #define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
  158. #define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
  159. #define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
  160. #define __________________LONG_FUNC_LEFT___________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
  161. #define __________________LONG_FUNC_RIGHT__________________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
  162. #define ___________________BLANK___________________ _______, _______, _______, _______, _______
  163. #define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
  164. #define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
  165. #define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
  166. #define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
  167. #define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
  168. #define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
  169. #define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
  170. #define _________________RAISE_L2__________________ ___________________BLANK___________________
  171. #define _________________RAISE_L3__________________ ___________________BLANK___________________
  172. #define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
  173. #define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
  174. #define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
  175. #define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
  176. #define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, AG_NORM
  177. #define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
  178. #define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
  179. #define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
  180. #define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
  181. #endif // !USERSPACE