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.

201 lines
13 KiB

  1. /* Copyright 2021 Nix Studio
  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. #define ___ KC_NO
  19. /* LAYOUT_all
  20. *
  21. * 00 01 11 02 12 03 13 04 14 05 15 06 16 07 17 08
  22. *
  23. *
  24. * 20 30 21 31 22 32 23 33 24 34 25 35 26 36 66 27 37 28 36 2u Backspace
  25. *
  26. * 40 50 41 51 42 52 43 53 44 54 45 55 46 56 47 57 48
  27. * 2.25u 76 ISO Enter
  28. * LShift 60 70 61 71 62 72 63 73 64 74 65 75 76 56
  29. *
  30. * 80 80 90 81 91 82 92 83 93 84 94 85 95 86 96 97 86 2.75u RShift
  31. *
  32. * A0 B0 A1 A3 A5 B5 A6 B6 A7 B7 A8
  33. *
  34. *
  35. * A0 B0 A1 A3 B5 A6 B6 Tsangan
  36. *
  37. *
  38. * A0 A1 A3 B5 B6 WKL
  39. *
  40. */
  41. // This a shortcut to help you visually see your layout.
  42. // The first section contains all of the arguments
  43. // The second converts the arguments into a two-dimensional array
  44. #define LAYOUT_all(\
  45. K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
  46. K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K66, K27, K37, K28, \
  47. K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
  48. K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
  49. K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K96, K97, \
  50. KA0, KB0, KA1, KA3, KA5, KB5, KA6, KB6, KA7, KB7, KA8 \
  51. ) { \
  52. { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
  53. { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
  54. { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
  55. { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
  56. { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
  57. { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
  58. { K60, K61, K62, K63, K64, K65, K66, ___, ___ }, \
  59. { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
  60. { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
  61. { K90, K91, K92, K93, K94, K95, K96, K97, ___ }, \
  62. { KA0, KA1, ___, KA3, ___, KA5, KA6, KA7, KA8 }, \
  63. { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
  64. }
  65. #define LAYOUT_tkl_ansi(\
  66. K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
  67. K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
  68. K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
  69. K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
  70. K80, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
  71. KA0, KB0, KA1, KA3, KA5, KB5, KA6, KB6, KA7, KB7, KA8 \
  72. ) { \
  73. { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
  74. { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
  75. { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
  76. { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
  77. { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
  78. { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
  79. { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
  80. { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
  81. { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
  82. { ___, K91, K92, K93, K94, K95, ___, K97, ___ }, \
  83. { KA0, KA1, ___, KA3, ___, KA5, KA6, KA7, KA8 }, \
  84. { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
  85. }
  86. #define LAYOUT_tkl_ansi_tsangan(\
  87. K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
  88. K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
  89. K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
  90. K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
  91. K80, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
  92. KA0, KB0, KA1, KA3, KB5, KA6, KB6, KA7, KB7, KA8 \
  93. ) { \
  94. { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
  95. { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
  96. { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
  97. { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
  98. { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
  99. { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
  100. { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
  101. { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
  102. { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
  103. { ___, K91, K92, K93, K94, K95, ___, K97, ___ }, \
  104. { KA0, KA1, ___, KA3, ___, ___, KA6, KA7, KA8 }, \
  105. { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
  106. }
  107. #define LAYOUT_tkl_ansi_wkl(\
  108. K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
  109. K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
  110. K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
  111. K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
  112. K80, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
  113. KA0, KA1, KA3, KB5, KB6, KA7, KB7, KA8 \
  114. ) { \
  115. { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
  116. { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
  117. { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
  118. { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
  119. { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
  120. { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
  121. { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
  122. { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
  123. { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
  124. { ___, K91, K92, K93, K94, K95, ___, K97, ___ }, \
  125. { KA0, KA1, ___, KA3, ___, ___, ___, KA7, KA8 }, \
  126. { ___, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
  127. }
  128. #define LAYOUT_tkl_iso(\
  129. K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
  130. K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
  131. K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, K57, K48, \
  132. K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K56, K76, \
  133. K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
  134. KA0, KB0, KA1, KA3, KA5, KB5, KA6, KB6, KA7, KB7, KA8 \
  135. ) { \
  136. { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
  137. { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
  138. { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
  139. { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
  140. { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
  141. { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
  142. { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
  143. { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
  144. { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
  145. { K90, K91, K92, K93, K94, K95, ___, K97, ___ }, \
  146. { KA0, KA1, ___, KA3, ___, KA5, KA6, KA7, KA8 }, \
  147. { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
  148. }
  149. #define LAYOUT_tkl_iso_tsangan(\
  150. K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
  151. K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
  152. K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, K57, K48, \
  153. K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K56, K76, \
  154. K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
  155. KA0, KB0, KA1, KA3, KB5, KA6, KB6, KA7, KB7, KA8 \
  156. ) { \
  157. { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
  158. { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
  159. { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
  160. { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
  161. { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
  162. { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
  163. { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
  164. { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
  165. { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
  166. { K90, K91, K92, K93, K94, K95, ___, K97, ___ }, \
  167. { KA0, KA1, ___, KA3, ___, ___, KA6, KA7, KA8 }, \
  168. { KB0, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
  169. }
  170. #define LAYOUT_tkl_iso_wkl(\
  171. K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
  172. K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, \
  173. K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, K57, K48, \
  174. K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K56, K76, \
  175. K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, \
  176. KA0, KA1, KA3, KB5, KB6, KA7, KB7, KA8 \
  177. ) { \
  178. { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
  179. { ___, K11, K12, K13, K14, K15, K16, K17, ___ }, \
  180. { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
  181. { K30, K31, K32, K33, K34, K35, K36, K37, ___ }, \
  182. { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
  183. { K50, K51, K52, K53, K54, K55, K56, K57, ___ }, \
  184. { K60, K61, K62, K63, K64, K65, ___, ___, ___ }, \
  185. { K70, K71, K72, K73, K74, K75, K76, ___, ___ }, \
  186. { K80, K81, K82, K83, K84, K85, K86, ___, ___ }, \
  187. { K90, K91, K92, K93, K94, K95, ___, K97, ___ }, \
  188. { KA0, KA1, ___, KA3, ___, ___, ___, KA7, KA8 }, \
  189. { ___, ___, ___, ___, ___, KB5, KB6, KB7, ___ } \
  190. }