wrappers.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. #pragma once
  2. #include "bocaj.h"
  3. /*
  4. Since our quirky block definitions are basically a list of comma separated
  5. arguments, we need a wrapper in order for these definitions to be
  6. expanded before being used as arguments to the LAYOUT_xxx macro.
  7. */
  8. #if (!defined(LAYOUT) && defined(KEYMAP))
  9. # define LAYOUT KEYMAP
  10. #endif
  11. // clang-format off
  12. #define WRAPPER_ergodox_pretty(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
  13. #define WRAPPER_ortho_4x12(...) LAYOUT_ortho_4x12(__VA_ARGS__)
  14. /* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */
  15. #define WRAPPER_ergodox_bocaj( \
  16. L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \
  17. L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \
  18. L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \
  19. L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \
  20. L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \
  21. L55,L56, R50,R51, \
  22. L54, R52, \
  23. L53,L52,L51, R55,R54,R53 ) \
  24. WRAPPER_ergodox_pretty( \
  25. L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
  26. L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
  27. L20, L21, SFT_T(L22), GUI_T(L23), ALT_T(L24), L25, R21, ALT_T(R22), GUI_T(R23), SFT_T(R24), R25, R26, \
  28. L30, CTL_T(L31), L32, L33, L34, L35, ALL_T(L36), MEH_T(R30), R31, R32, R33, R34, CTL_T(R35), R36, \
  29. L40, L41, L42, L43, L44, R42, R43, R44, R45, R46, \
  30. L55,L56, /* <- LHS/RHS -> */ R50,R51, \
  31. L54, /* <- LHS/RHS -> */ R52, \
  32. LT(_LOWER, L53),L52,L51, /* <- LHS/RHS -> */ R55,R54,LT(_RAISE, R53) \
  33. )
  34. #define WRAPPER_ergodox_bocaj_WIN( \
  35. L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \
  36. L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \
  37. L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \
  38. L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \
  39. L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \
  40. L55,L56, R50,R51, \
  41. L54, R52, \
  42. L53,L52,L51, R55,R54,R53 ) \
  43. WRAPPER_ergodox_pretty( \
  44. L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
  45. L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
  46. L20, L21, SFT_T(L22), CTL_T(L23), ALT_T(L24), L25, R21, ALT_T(R22), CTL_T(R23), SFT_T(R24), R25, R26, \
  47. L30, GUI_T(L31), L32, L33, L34, L35, ALL_T(L36), MEH_T(R30), R31, R32, R33, R34, GUI_T(R35), R36, \
  48. L40, L41, L42, L43, L44, R42, R43, R44, R45, R46, \
  49. L55,L56, /* <- LHS/RHS -> */ R50,R51, \
  50. L54, /* <- LHS/RHS -> */ R52, \
  51. LT(_LOWER, L53),L52,L51, /* <- LHS/RHS -> */ R55,R54,LT(_RAISE, R53) \
  52. )
  53. /*
  54. Planck EZ Wrappers
  55. */
  56. #define WRAPPER_planck_bocaj( \
  57. K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
  58. K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
  59. K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
  60. K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \
  61. )\
  62. WRAPPER_ortho_4x12( \
  63. K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
  64. K11, K12, SFT_T(K13), GUI_T(K14), ALT_T(K15), K16, K17, ALT_T(K18), GUI_T(K19), SFT_T(K1A), K1B, K1C, \
  65. K21, CTL_T(K22), K23, K24, K25, K26, K27, K28, K29, K2A, CTL_T(K2B), K2C, \
  66. K31, K32, K33, K34, LT(_LOWER, K35), K36, K37, LT(_RAISE, K38), K39, K3A, K3B, K3C )
  67. #define WRAPPER_planck_bocaj_WIN( \
  68. K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
  69. K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
  70. K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
  71. K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \
  72. )\
  73. WRAPPER_ortho_4x12( \
  74. K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
  75. K11, K12, SFT_T(K13), CTL_T(K14), ALT_T(K15), K16, K17, ALT_T(K18), CTL_T(K19), SFT_T(K1A), K1B, K1C, \
  76. K21, GUI_T(K22), K23, K24, K25, K26, K27, K28, K29, K2A, GUI_T(K2B), K2C, \
  77. K31, K32, K33, K34, LT(_LOWER, K35), K36, K37, LT(_RAISE, K38), K39, K3A, K3B, K3C )
  78. #define WRAPPER_planck_bocaj_base( \
  79. K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
  80. K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
  81. K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
  82. ) \
  83. WRAPPER_planck_bocaj( \
  84. KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
  85. KC_TAB, K11, K12, K13, K14, ALL_T(K15), MEH_T(K16), K17, K18, K19, K1A, KC_QUOT, \
  86. KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, _______, \
  87. _______, KC_LEAD, KC_UP, KC_LEFT, KC_BSPC, KC_SPC, KC_SPC, KC_ENTER, KC_RIGHT, KC_DOWN, QWERTY, WORKMAN \
  88. )
  89. #define WRAPPER_planck_bocaj_base_WIN( \
  90. K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
  91. K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
  92. K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
  93. ) \
  94. WRAPPER_planck_bocaj_WIN( \
  95. KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
  96. KC_TAB, K11, K12, K13, K14, ALL_T(K15), MEH_T(K16), K17, K18, K19, K1A, KC_QUOT, \
  97. KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, _______, \
  98. _______, KC_LEAD, KC_UP, KC_LEFT, KC_BSPC, KC_SPC, KC_SPC, KC_ENTER, KC_RIGHT, KC_DOWN, QWERTY, WORKMAN \
  99. )
  100. /*
  101. Blocks for each of the four major keyboard layouts
  102. Organized so we can quickly adapt and modify all of them
  103. at once, rather than for each keyboard, one at a time.
  104. And this allows for much cleaner blocks in the keymaps.
  105. For instance Tap/Hold for Control on all of the layouts
  106. NOTE: These are all the same length. If you do a search/replace
  107. then you need to add/remove underscores to keep the
  108. lengths consistent.
  109. */
  110. #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
  111. #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
  112. #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  113. #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
  114. #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
  115. #define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
  116. #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
  117. #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
  118. #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
  119. #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
  120. #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
  121. #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
  122. #define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
  123. #define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
  124. #define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
  125. #define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
  126. #define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
  127. #define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
  128. #define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
  129. #define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
  130. #define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
  131. #define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
  132. #define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I
  133. #define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
  134. #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
  135. #define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
  136. #define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
  137. #define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
  138. #define ___________________BLANK___________________ _______, _______, _______, _______, _______
  139. #define _________________UNDEFINED_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
  140. #define ___________________LOWER_L1_EXT____________________ KC_GRV, _______, _______, KC_UP, _______, KC_ARRW
  141. #define ___________________LOWER_L2_EXT____________________ KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_LPRN
  142. #define ___________________LOWER_L3_EXT____________________ _______, _______, _______, _______, _______, KC_LBRC
  143. #define ___________________LOWER_R1_EXT____________________ KC_MINS, KC_7, KC_8, KC_9, KC_PLUS, KC_EQUAL
  144. #define ___________________LOWER_R2_EXT____________________ KC_RPRN, KC_4, KC_5, KC_6, KC_ASTR, KC_BSLS
  145. #define ___________________LOWER_R3_EXT____________________ KC_RBRC, KC_1, KC_2, KC_3, KC_SLSH, _______
  146. // #define _________________LOWER_L1__________________ ________________NUMBER_LEFT________________
  147. // #define _________________LOWER_L2__________________ _______, _______, _______, _______, KC_LPRN
  148. // #define _________________LOWER_L3__________________ _______, _______, _______, KC_ARRW, KC_LBRC
  149. // #define _________________LOWER_R1__________________ ________________NUMBER_RIGHT_______________
  150. // #define _________________LOWER_R2__________________ KC_RPRN, _______, _______, _______, _______
  151. // #define _________________LOWER_R3__________________ KC_RBRC, _______, _______, _______, _______
  152. #define _________________RAISE_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
  153. #define _________________RAISE_L2__________________ _________________FUNC_LEFT_________________
  154. #define _________________RAISE_L3__________________ ___________________BLANK___________________
  155. #define _________________RAISE_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
  156. #define _________________RAISE_R2__________________ _________________FUNC_RIGHT________________
  157. #define _________________RAISE_R3__________________ ___________________BLANK___________________
  158. #define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
  159. #define _________________ADJUST_L2_________________ KC__MUTE, KC__VOLDOWN, KC__VOLUP, _______, KC_MNXT
  160. #define _________________ADJUST_L3_________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_RGB_T
  161. #define _________________ADJUST_R1_________________ ___________________BLANK___________________
  162. #define _________________ADJUST_R2_________________ CG_SWAP, WORKMAN, QWERTY, _______, _______
  163. #define _________________ADJUST_R3_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM
  164. // clang-format on