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.

146 lines
5.4 KiB

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