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.

128 lines
8.3 KiB

  1. /* Copyright 2019 Jack Humbert <jmdaly@gmail.com>
  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. // This a shortcut to help you visually see your layout.
  19. // The following is a layout that uses all available switch positions.
  20. // The first section contains all of the arguments
  21. // The second converts the arguments into a two-dimensional array
  22. #define LAYOUT_all( \
  23. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
  24. K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
  25. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
  26. K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
  27. K400, K401, K402, K404, K406, K408, K410, K411, K412, K413, K414 \
  28. ) \
  29. { \
  30. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
  31. { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
  32. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
  33. { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
  34. { K400, K401, K402, KC_NO, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 }, \
  35. }
  36. #define LAYOUT_60_ansi( \
  37. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
  38. K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
  39. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
  40. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \
  41. K400, K401, K402, K406, K410, K411, K413, K414 \
  42. ) \
  43. { \
  44. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \
  45. { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
  46. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \
  47. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO }, \
  48. { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413, K414 }, \
  49. }
  50. #define LAYOUT_60_ansi_split_bs_rshift( \
  51. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
  52. K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
  53. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
  54. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
  55. K400, K401, K402, K406, K410, K411, K413, K414 \
  56. ) \
  57. { \
  58. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
  59. { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
  60. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \
  61. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
  62. { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413, K414 }, \
  63. }
  64. #define LAYOUT_60_iso( \
  65. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
  66. K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
  67. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
  68. K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \
  69. K400, K401, K402, K406, K410, K411, K413, K414 \
  70. ) \
  71. { \
  72. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \
  73. { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO }, \
  74. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
  75. { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO }, \
  76. { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413, K414 }, \
  77. }
  78. #define LAYOUT_60_hhkb( \
  79. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
  80. K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
  81. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
  82. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
  83. K401, K402, K406, K411, K413 \
  84. ) \
  85. { \
  86. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
  87. { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
  88. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \
  89. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
  90. { KC_NO, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, KC_NO, K411, KC_NO, K413, KC_NO }, \
  91. }
  92. #define LAYOUT_60_hhkb_split_space( \
  93. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
  94. K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
  95. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
  96. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
  97. K401, K402, K404, K406, K408, K411, K413 \
  98. ) \
  99. { \
  100. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
  101. { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
  102. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \
  103. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
  104. { KC_NO, K401, K402, KC_NO, K404, KC_NO, K406, KC_NO, K408, KC_NO, KC_NO, K411, KC_NO, K413, KC_NO }, \
  105. }
  106. #define LAYOUT_60_hhkb_split_625u_space( \
  107. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
  108. K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
  109. K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
  110. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
  111. K401, K402, K404, K406, K408, K410, K411, K413 \
  112. ) \
  113. { \
  114. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
  115. { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
  116. { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214 }, \
  117. { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
  118. { KC_NO, K401, K402, KC_NO, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, KC_NO, K413, KC_NO }, \
  119. }