You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

223 lines
22 KiB

  1. /* Copyright 2021 wuquestudio
  2. *
  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. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #pragma once
  17. #include "quantum.h"
  18. /* Standard Arrangement
  19. *
  20. * 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
  21. *
  22. *
  23. * 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 3d
  24. *
  25. * 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
  26. *
  27. * 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3e 3f
  28. *
  29. * 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d
  30. * 4e
  31. * 50 51 52 54 56 58 5a 5b 5c
  32. * 5d 5e 5f
  33. *
  34. */
  35. #define LAYOUT_all( \
  36. K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K53, K0E, K55, \
  37. K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3D, \
  38. K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
  39. K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
  40. K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \
  41. K50, K51, K52, K54, K56, K58, K5A, K5B, K5C, K5D, K5E, K5F \
  42. ) { \
  43. { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, KC_NO }, \
  44. { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
  45. { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
  46. { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
  47. { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, KC_NO }, \
  48. { K50, K51, K52, K53, K54, K55, K56, KC_NO, K58, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \
  49. }
  50. /* LAYOUT_75_ansi
  51. *
  52. * 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
  53. *
  54. *
  55. * 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d
  56. *
  57. * 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
  58. *
  59. * 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3e 3f
  60. *
  61. * 40 42 43 44 45 46 47 48 49 4a 4b 4c
  62. * 4e
  63. * 50 51 52 56 5a 5b 5c
  64. * 5d 5e 5f
  65. *
  66. */
  67. #define LAYOUT_75_ansi( \
  68. K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
  69. K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
  70. K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
  71. K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
  72. K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \
  73. K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F \
  74. ) { \
  75. { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, KC_NO }, \
  76. { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
  77. { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
  78. { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
  79. { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E, KC_NO }, \
  80. { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \
  81. }
  82. /* LAYOUT_75_ansi_split_lshift
  83. *
  84. * 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
  85. *
  86. *
  87. * 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d
  88. *
  89. * 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
  90. *
  91. * 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3e 3f
  92. *
  93. * 40 41 42 43 44 45 46 47 48 49 4a 4b 4c
  94. * 4e
  95. * 50 51 52 56 5a 5b 5c
  96. * 5d 5e 5f
  97. *
  98. */
  99. #define LAYOUT_75_ansi_split_lshift( \
  100. K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
  101. K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
  102. K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
  103. K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
  104. K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \
  105. K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F \
  106. ) { \
  107. { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, KC_NO }, \
  108. { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
  109. { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
  110. { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
  111. { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E, KC_NO }, \
  112. { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \
  113. }
  114. /* LAYOUT_75_ansi_split_rshift
  115. *
  116. * 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
  117. *
  118. *
  119. * 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d
  120. *
  121. * 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
  122. *
  123. * 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3e 3f
  124. *
  125. * 40 42 43 44 45 46 47 48 49 4a 4b 4c 4d
  126. * 4e
  127. * 50 51 52 56 5a 5b 5c
  128. * 5d 5e 5f
  129. *
  130. */
  131. #define LAYOUT_75_ansi_split_rshift( \
  132. K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
  133. K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
  134. K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
  135. K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
  136. K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \
  137. K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F \
  138. ) { \
  139. { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, KC_NO }, \
  140. { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
  141. { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
  142. { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
  143. { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, KC_NO }, \
  144. { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \
  145. }
  146. /* LAYOUT_75_ansi_split_bs
  147. *
  148. * 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
  149. *
  150. *
  151. * 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 3d
  152. *
  153. * 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
  154. *
  155. * 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3e 3f
  156. *
  157. * 40 42 43 44 45 46 47 48 49 4a 4b 4c
  158. * 4e
  159. * 50 51 52 56 5a 5b 5c
  160. * 5d 5e 5f
  161. *
  162. */
  163. #define LAYOUT_75_ansi_split_bs( \
  164. K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
  165. K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
  166. K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
  167. K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \
  168. K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \
  169. K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F \
  170. ) { \
  171. { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, KC_NO }, \
  172. { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
  173. { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
  174. { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
  175. { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E, KC_NO }, \
  176. { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \
  177. }
  178. /* LAYOUT_75_ansi_split_space
  179. *
  180. * 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
  181. *
  182. *
  183. * 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d
  184. *
  185. * 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
  186. *
  187. * 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3e 3f
  188. *
  189. * 40 42 43 44 45 46 47 48 49 4a 4b 4c
  190. * 4e
  191. * 50 51 52 54 56 58 5a 5b 5c
  192. * 5d 5e 5f
  193. *
  194. */
  195. #define LAYOUT_75_ansi_split_space( \
  196. K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
  197. K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
  198. K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
  199. K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
  200. K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4E, \
  201. K50, K51, K52, K54, K56, K58, K5A, K5B, K5C, K5D, K5E, K5F \
  202. ) { \
  203. { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, KC_NO }, \
  204. { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
  205. { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
  206. { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
  207. { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, K4E, KC_NO }, \
  208. { K50, K51, K52, KC_NO, K54, KC_NO, K56, KC_NO, K58, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F }, \
  209. }