layouts.h 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /*
  2. Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. /********************************************************************/
  15. /* Ergodox EZ */
  16. /********************************************************************/
  17. // This one is is set up to pass in the number row.
  18. // Beakl and bepo both change the number row.
  19. // Left, middle, right, bottom, and thumbs all stay the same.
  20. #define Base_dox( \
  21. K01, K02, K03, K04, K05, \
  22. K06, K07, K08, K09, K0A, \
  23. K11, K12, K13, K14, K15, \
  24. K16, K17, K18, K19, K1A, \
  25. K21, K22, K23, K24, K25, \
  26. K26, K27, K28, K29, K2A, \
  27. K31, K32, K33, K34, K35, \
  28. K36, K37, K38, K39, K3A \
  29. ) \
  30. LVARG_edox( \
  31. ROW0_LEFT(K01, K02, K03, K04, K05), \
  32. ___2_MIDDLE_1___, \
  33. ROW0_RIGHT(K06, K07, K08, K09, K0A), \
  34. \
  35. ROW1_LEFT(K11, K12, K13, K14, K15), \
  36. ___2_MIDDLE_2___, \
  37. ROW1_RIGHT(K16, K17, K18, K19, K1A), \
  38. \
  39. ROW2_LEFT(K21, K22, K23, K24, K25), \
  40. ROW2_RIGHT(K26, K27, K28, K29, K2A), \
  41. \
  42. ROW3_LEFT(K31, K32, K33, K34, K35), \
  43. ___2_MIDDLE_3___, \
  44. ROW3_RIGHT(K36, K37, K38, K39, K3A), \
  45. ___5_BOTTOM_LEFT___, ___5_BOTTOM_RIGHT___, \
  46. ___12_DOX_ALL_THUMBS___ \
  47. )
  48. #define Base_dox_bepo( \
  49. K01, K02, K03, K04, K05, \
  50. K06, K07, K08, K09, K0A, \
  51. K11, K12, K13, K14, K15, \
  52. K16, K17, K18, K19, K1A, \
  53. K21, K22, K23, K24, K25, \
  54. K26, K27, K28, K29, K2A, \
  55. K31, K32, K33, K34, K35, \
  56. K36, K37, K38, K39, K3A \
  57. ) \
  58. LVARG_edox( \
  59. ROW0_LEFT(K01, K02, K03, K04, K05), \
  60. ___2_MIDDLE_1___, \
  61. ROW0_RIGHT(K06, K07, K08, K09, K0A), \
  62. \
  63. ROW1_LEFT(K11, K12, K13, K14, K15), \
  64. ___2_MIDDLE_2___, \
  65. ROW1_RIGHT(K16, K17, K18, K19, K1A), \
  66. \
  67. ROW2_LEFT(K21, K22, K23, K24, K25), \
  68. ROW2_RIGHT(K26, K27, K28, K29, K2A), \
  69. \
  70. ROW3_LEFT(K31, K32, K33, K34, K35), \
  71. ___2_MIDDLE_3___, \
  72. ROW3_RIGHT(K36, K37, K38, K39, K3A), \
  73. ___5_BOTTOM_LEFT___, ___5_BOTTOM_RIGHT___, \
  74. ___12_DOX_ALL_THUMBS_BP___ \
  75. )
  76. #define Base_dox_bepo6( \
  77. K01, K02, K03, K04, K05, K06, \
  78. K07, K08, K09, K0A, K0B, K0C, \
  79. K11, K12, K13, K14, K15, K16, \
  80. K17, K18, K19, K1A, K1B, K1C, \
  81. K21, K22, K23, K24, K25, K26, \
  82. K27, K28, K29, K2A, K2B, K2C \
  83. ) \
  84. LVARG_edox( \
  85. ___6SYMBOL_BEPO_L___, \
  86. ___2_MIDDLE_T_BP___, \
  87. ___6SYMBOL_BEPO_R___, \
  88. ROW1_LEFT_BP6(K01, K02, K03, K04, K05, K06), \
  89. ___2_MIDDLE_2_BP___, \
  90. ROW1_RIGHT_BP6(K07, K08, K09, K0A, K0B, K0C), \
  91. \
  92. ROW2_LEFT_BP6(K11, K12, K13, K14, K15, K16), \
  93. ROW2_RIGHT_BP6(K17, K18, K19, K1A, K1B, K1C), \
  94. \
  95. ROW3_LEFT_BP6(K21, K22, K23, K24, K25, K26), \
  96. ___2_MIDDLE_3_BP___, \
  97. ROW3_RIGHT_BP6(K27, K28, K29, K2A, K2B, K2C), \
  98. \
  99. ___5_BOTTOM_LEFT_BP___, ___5_BOTTOM_RIGHT_BP___, \
  100. ___12_DOX_ALL_THUMBS_BP___ \
  101. )
  102. #define Transient_dox6( \
  103. K01, K02, K03, K04, K05, K06, \
  104. K07, K08, K09, K0A, K0B, K0C, \
  105. K11, K12, K13, K14, K15, K16, \
  106. K17, K18, K19, K1A, K1B, K1C, \
  107. K21, K22, K23, K24, K25, K26, \
  108. K27, K28, K29, K2A, K2B, K2C, \
  109. K31, K32, K33, K34, K35, K36, \
  110. K37, K38, K39, K3A, K3B, K3C \
  111. ) \
  112. LVARG_edox( \
  113. K01, K02, K03, K04, K05, K06, \
  114. ___2___, \
  115. K07, K08, K09, K0A, K0B, K0C, \
  116. K11, K12, K13, K14, K15, K16, \
  117. ___2___, \
  118. K17, K18, K19, K1A, K1B, K1C, \
  119. K21, K22, K23, K24, K25, K26, \
  120. K27, K28, K29, K2A, K2B, K2C, \
  121. K31, K32, K33, K34, K35, K36, \
  122. ___2___, \
  123. K37, K38, K39, K3A, K3B, K3C, \
  124. ___5___, ___5___, \
  125. ___12___ \
  126. )
  127. #define Dox_base(...) Base_dox(__VA_ARGS__)
  128. #define Dox_bepo_base(...) Base_dox_bepo(__VA_ARGS__)
  129. #define Dox_bepo_base6(...) Base_dox_bepo6(__VA_ARGS__)
  130. #define Dox_transient(...) Transient_dox6(__VA_ARGS__)