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.

104 lines
9.0 KiB

  1. /*
  2. Copyright 2022 @RoyMeetsWorld
  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. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #pragma once
  15. #include "quantum.h"
  16. /**
  17. * The layout macro for ANSI boards, with illustrative grid of a typical assignment.
  18. *
  19. * ESC 1 2 3 4 5 6 7 8 9 0 - + BACK
  20. *
  21. * TAB Q W E R T Y F1 F2 F7 F8 Y U I O P [ ] \
  22. *
  23. * CAPS A S D F G F3 F4 F9 F10 H J K L ; ' Enter
  24. *
  25. * LSHIFT Z X C V B F5 F6 F11F12 B N M , . / RSHIFT
  26. *
  27. * LCTLLGUILALT FN SPC MUTE MUTESPCE RALT FN RGUIRCTL
  28. *
  29. * ENTR ENTR
  30. *
  31. */
  32. #define LAYOUT( \
  33. L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R07, \
  34. L10, L11, L12, L13, L14, L15, L16, L17, L18, R10, R11, R12, R13, R14, R15, R16, R17, R18, R28, \
  35. L20, L21, L22, L23, L24, L25, L27, L28, R20, R21, R22, R23, R24, R25, R26, R27, R38, \
  36. L30, L31, L32, L33, L34, L35, L37, L38, R30, R31, R32, R33, R34, R35, R36, R37, R46, \
  37. L40, L41, L42, L43, L45, L48, R40, R42, R43, R44, R45, R47, \
  38. L47, R41 \
  39. ) \
  40. { \
  41. { L00, L01, L02, L03, L04, L05, L06, KC_NO, KC_NO }, \
  42. { L10, L11, L12, L13, L14, L15, L16, L17, L18 }, \
  43. { L20, L21, L22, L23, L24, L25, KC_NO, L27, L28 }, \
  44. { L30, L31, L32, L33, L34, L35, KC_NO, L37, L38 }, \
  45. { L40, L41, L42, L43, KC_NO, L45, KC_NO, L47, L48 }, \
  46. { R00, R01, R02, R03, R04, R05, KC_NO, R07, KC_NO }, \
  47. { R10, R11, R12, R13, R14, R15, R16, R17, R18 }, \
  48. { R20, R21, R22, R23, R24, R25, R26, R27, R28 }, \
  49. { R30, R31, R32, R33, R34, R35, R36, R37, R38 }, \
  50. { R40, R41, R42, R43, R44, R45, R46, R47, KC_NO } \
  51. }
  52. /**
  53. * The layout macro for split-key boards, with illustrative grid of a typical assignment.
  54. *
  55. * Backspace has two options with three distinct pads:
  56. * - center pad (regular 2u backspace)
  57. * - left pad + right pad (split backspace)
  58. *
  59. * You may wish to set the unused pad(s) to KC_NO or XXXXXX, as they will be ignored.
  60. *
  61. * BACK (R07)
  62. *
  63. * |
  64. *
  65. * ESC 1 2 3 4 5 6 7 8 9 0 - + \ BCK (R06 R08)
  66. *
  67. * TAB Q W E R T Y F1 F2 F7 F8 Y U I O P [ ] \
  68. *
  69. * CAPS A S D F G F3 F4 F9 F10 H J K L ; ' Enter
  70. *
  71. * LSFT \ Z X C V B F5 F6 F11F12 B N M , . / RSHIFTPSC
  72. *
  73. * LCTLLGUILALT FN SPC MUTE MUTESPCE RALT FN RGUIRCTL
  74. *
  75. * ENTR ENTR
  76. *
  77. */
  78. #define LAYOUT_all( \
  79. L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, R07, R08, \
  80. L10, L11, L12, L13, L14, L15, L16, L17, L18, R10, R11, R12, R13, R14, R15, R16, R17, R18, R28, \
  81. L20, L21, L22, L23, L24, L25, L27, L28, R20, R21, R22, R23, R24, R25, R26, R27, R38, \
  82. L30, L44, L31, L32, L33, L34, L35, L37, L38, R30, R31, R32, R33, R34, R35, R36, R37, R46, R48, \
  83. L40, L41, L42, L43, L45, L48, R40, R42, R43, R44, R45, R47, \
  84. L47, R41 \
  85. ) \
  86. { \
  87. { L00, L01, L02, L03, L04, L05, L06, KC_NO, KC_NO }, \
  88. { L10, L11, L12, L13, L14, L15, L16, L17, L18 }, \
  89. { L20, L21, L22, L23, L24, L25, KC_NO, L27, L28 }, \
  90. { L30, L31, L32, L33, L34, L35, KC_NO, L37, L38 }, \
  91. { L40, L41, L42, L43, L44, L45, KC_NO, L47, L48 }, \
  92. { R00, R01, R02, R03, R04, R05, R06, R07, R08 }, \
  93. { R10, R11, R12, R13, R14, R15, R16, R17, R18 }, \
  94. { R20, R21, R22, R23, R24, R25, R26, R27, R28 }, \
  95. { R30, R31, R32, R33, R34, R35, R36, R37, R38 }, \
  96. { R40, R41, R42, R43, R44, R45, R46, R47, R48 } \
  97. }