rev3.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. /* Copyright 2021 Danny Nguyen <danny@keeb.io>
  2. This program is free software: you can redistribute it and/or modify
  3. it under the terms of the GNU General Public License as published by
  4. the Free Software Foundation, either version 2 of the License, or
  5. (at your option) any later version.
  6. This program is distributed in the hope that it will be useful,
  7. but WITHOUT ANY WARRANTY; without even the implied warranty of
  8. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  9. GNU General Public License for more details.
  10. You should have received a copy of the GNU General Public License
  11. along with this program. If not, see <http://www.gnu.org/licenses/>.
  12. */
  13. #pragma once
  14. #include "quefrency.h"
  15. #include "quantum.h"
  16. #define LAYOUT_60( \
  17. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  18. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \
  19. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \
  20. LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  21. LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \
  22. ) \
  23. { \
  24. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  25. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  26. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  27. { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  28. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  29. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  30. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \
  31. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \
  32. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  33. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \
  34. }
  35. #define LAYOUT_65( \
  36. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  37. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  38. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
  39. LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  40. LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  41. ) \
  42. { \
  43. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  44. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  45. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  46. { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  47. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  48. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  49. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  50. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \
  51. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  52. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \
  53. }
  54. #define LAYOUT_60_with_macro( \
  55. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  56. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \
  57. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \
  58. LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  59. LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \
  60. ) \
  61. { \
  62. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  63. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  64. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  65. { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  66. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  67. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  68. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \
  69. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \
  70. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  71. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \
  72. }
  73. #define LAYOUT_65_with_macro( \
  74. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  75. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  76. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
  77. LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  78. LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  79. ) \
  80. { \
  81. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  82. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  83. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  84. { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
  85. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  86. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  87. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  88. { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \
  89. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  90. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \
  91. }
  92. #define LAYOUT_60_iso( \
  93. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  94. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \
  95. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \
  96. LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  97. LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \
  98. ) \
  99. { \
  100. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  101. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  102. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  103. { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  104. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  105. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  106. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \
  107. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \
  108. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  109. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \
  110. }
  111. #define LAYOUT_65_iso( \
  112. LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  113. LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \
  114. LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  115. LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  116. LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  117. ) \
  118. { \
  119. { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  120. { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  121. { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  122. { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  123. { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  124. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  125. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \
  126. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  127. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  128. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \
  129. }
  130. #define LAYOUT_60_iso_with_macro( \
  131. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
  132. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \
  133. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \
  134. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
  135. LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \
  136. ) \
  137. { \
  138. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  139. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  140. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  141. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  142. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  143. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
  144. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \
  145. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \
  146. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
  147. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO } \
  148. }
  149. #define LAYOUT_65_iso_with_macro( \
  150. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  151. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \
  152. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  153. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  154. LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  155. ) \
  156. { \
  157. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  158. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  159. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  160. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  161. { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
  162. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  163. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \
  164. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  165. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  166. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \
  167. }
  168. #define LAYOUT_all( \
  169. LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
  170. LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
  171. LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
  172. LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
  173. LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \
  174. ) \
  175. { \
  176. { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
  177. { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
  178. { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
  179. { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
  180. { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \
  181. { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
  182. { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
  183. { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
  184. { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
  185. { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 } \
  186. }