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.

144 lines
5.3 KiB

  1. #ifndef PLANCK_H
  2. #define PLANCK_H
  3. #include "quantum.h"
  4. #ifdef __AVR__
  5. #define LAYOUT_planck_mit( \
  6. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  7. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  8. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  9. k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
  10. ) \
  11. { \
  12. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
  13. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
  14. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
  15. { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
  16. }
  17. #define LAYOUT_planck_grid( \
  18. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  19. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  20. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  21. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
  22. ) \
  23. { \
  24. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
  25. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
  26. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
  27. { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
  28. }
  29. // Used to create a keymap using only KC_ prefixed keys
  30. #define KC_KEYMAP( \
  31. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  32. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  33. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  34. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
  35. ) \
  36. LAYOUT_planck_grid( \
  37. KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
  38. KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
  39. KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
  40. KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
  41. )
  42. #define KEYMAP LAYOUT_planck_grid
  43. #define LAYOUT_ortho_4x12 LAYOUT_planck_grid
  44. #define KC_LAYOUT_ortho_4x12 KC_KEYMAP
  45. #else
  46. #define LAYOUT_planck_1x2uC( \
  47. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  48. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  49. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  50. k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
  51. ) \
  52. { \
  53. { k00, k01, k02, k03, k04, k05 }, \
  54. { k10, k11, k12, k13, k14, k15 }, \
  55. { k20, k21, k22, k23, k24, k25 }, \
  56. { k30, k31, k32, k39, k3a, k3b }, \
  57. { k06, k07, k08, k09, k0a, k0b }, \
  58. { k16, k17, k18, k19, k1a, k1b }, \
  59. { k26, k27, k28, k29, k2a, k2b }, \
  60. { k36, k37, k38, k33, k34, k35 } \
  61. }
  62. #define LAYOUT_planck_1x2uR( \
  63. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  64. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  65. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  66. k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
  67. ) \
  68. { \
  69. { k00, k01, k02, k03, k04, k05 }, \
  70. { k10, k11, k12, k13, k14, k15 }, \
  71. { k20, k21, k22, k23, k24, k25 }, \
  72. { k30, k31, k32, k39, k3a, k3b }, \
  73. { k06, k07, k08, k09, k0a, k0b }, \
  74. { k16, k17, k18, k19, k1a, k1b }, \
  75. { k26, k27, k28, k29, k2a, k2b }, \
  76. { k36, k37, k38, k33, k34, k35 } \
  77. }
  78. #define LAYOUT_planck_1x2uL( \
  79. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  80. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  81. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  82. k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b \
  83. ) \
  84. { \
  85. { k00, k01, k02, k03, k04, k05 }, \
  86. { k10, k11, k12, k13, k14, k15 }, \
  87. { k20, k21, k22, k23, k24, k25 }, \
  88. { k30, k31, k32, k39, k3a, k3b }, \
  89. { k06, k07, k08, k09, k0a, k0b }, \
  90. { k16, k17, k18, k19, k1a, k1b }, \
  91. { k26, k27, k28, k29, k2a, k2b }, \
  92. { k36, k37, k38, k33, k34, k35 } \
  93. }
  94. #define LAYOUT_planck_2x2u( \
  95. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  96. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  97. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  98. k30, k31, k32, k33, k34, k36, k38, k39, k3a, k3b \
  99. ) \
  100. { \
  101. { k00, k01, k02, k03, k04, k05 }, \
  102. { k10, k11, k12, k13, k14, k15 }, \
  103. { k20, k21, k22, k23, k24, k25 }, \
  104. { k30, k31, k32, k39, k3a, k3b }, \
  105. { k06, k07, k08, k09, k0a, k0b }, \
  106. { k16, k17, k18, k19, k1a, k1b }, \
  107. { k26, k27, k28, k29, k2a, k2b }, \
  108. { k36, k37, k38, k33, k34, k35 } \
  109. }
  110. #define LAYOUT_planck_grid( \
  111. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  112. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  113. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  114. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
  115. ) \
  116. { \
  117. { k00, k01, k02, k03, k04, k05 }, \
  118. { k10, k11, k12, k13, k14, k15 }, \
  119. { k20, k21, k22, k23, k24, k25 }, \
  120. { k30, k31, k32, k39, k3a, k3b }, \
  121. { k06, k07, k08, k09, k0a, k0b }, \
  122. { k16, k17, k18, k19, k1a, k1b }, \
  123. { k26, k27, k28, k29, k2a, k2b }, \
  124. { k36, k37, k38, k33, k34, k35 } \
  125. }
  126. #define KEYMAP LAYOUT_planck_grid
  127. #define LAYOUT_ortho_4x12 LAYOUT_planck_grid
  128. #define KC_LAYOUT_ortho_4x12 KC_KEYMAP
  129. #endif
  130. #endif