kbd75.h 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #ifndef KB_H
  2. #define KB_H
  3. #include "quantum.h"
  4. /* LAYOUT
  5. * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
  6. * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
  7. * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
  8. * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
  9. * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
  10. * │1.5U │ │ │ │ │ │ │ │ │ │ │ │ │1.5U │ │
  11. * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
  12. * │1.75U │ │ │ │ │ │ │ │ │ │ │ │2.25U │ │
  13. * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
  14. * │2.25U │ │ │ │ │ │ │ │ │ │ │1.75U │ │ │
  15. * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
  16. * │1.25│1.25│1.25│2.25U │1.25│2.75U │ │ │ │ │ │ │
  17. * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘
  18. */
  19. // LAYOUT for all possible switch positions on a KBD75
  20. #define LAYOUT( \
  21. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
  22. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
  23. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
  24. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
  25. K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
  26. K500, K501, K503, K504, K506, K508, K510, K511, K512, K513, K514, K515 \
  27. ) { \
  28. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
  29. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
  30. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
  31. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
  32. { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
  33. { K500, K501, KC_NO, K503, K504, KC_NO, K506, KC_NO, K508, KC_NO, K510, K511, K512, K513, K514, K515 } \
  34. }
  35. /* 1U bottom row ─────────────────────────── ↓ ─ ↓ ─ ↓
  36. * ┌────┬────┬────┬────────────────────────┬───┬───┬───┬───┬───┬───┐
  37. * │1.25│1.25│1.25│6.25U │1U │1U │1U │1U │1U │1U │
  38. * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
  39. */
  40. #define LAYOUT_ansi_1u( \
  41. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
  42. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
  43. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
  44. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
  45. K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
  46. K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \
  47. ) { \
  48. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
  49. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
  50. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
  51. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
  52. { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
  53. { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \
  54. }
  55. #define LAYOUT_iso_1u( \
  56. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
  57. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
  58. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
  59. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K315, \
  60. K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
  61. K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \
  62. ) { \
  63. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
  64. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
  65. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
  66. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
  67. { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
  68. { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \
  69. }
  70. /* normal bottom row ──────────────────────── ↓ ─── ↓
  71. * ┌────┬────┬────┬────────────────────────┬─────┬─────┬───┬───┬───┐
  72. * │1.25│1.25│1.25│6.25U │1.5U │1.5U │1U │1U │1U │
  73. * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
  74. */
  75. #define LAYOUT_ansi( \
  76. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
  77. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
  78. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
  79. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
  80. K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
  81. K500, K501, K503, K506, K510, K512, K513, K514, K515 \
  82. ) { \
  83. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
  84. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
  85. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
  86. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
  87. { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
  88. { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \
  89. }
  90. #define LAYOUT_iso( \
  91. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
  92. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
  93. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
  94. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K315, \
  95. K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
  96. K500, K501, K503, K506, K510, K512, K513, K514, K515 \
  97. ) { \
  98. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
  99. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
  100. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
  101. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
  102. { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
  103. { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \
  104. }
  105. #endif