planck.h 5.4 KB

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