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.

109 lines
4.9 KiB

  1. /* Copyright 2017 Fabian Topfstedt
  2. * Copyright 2021 James Young (@noroadsleft)
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation, either version 2 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17. #pragma once
  18. #include "quantum.h"
  19. #define XXX KC_NO
  20. /* AMJ40 ver2.0 staggered layouts
  21. * ,-----------------------------------------------.
  22. * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
  23. * |-----------------------------------------------|
  24. * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1b |
  25. * |-----------------------------------------------|
  26. * |20 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |
  27. * |-----------------------------------------------|
  28. * |30 |31 |32 | 34 |35 |39 |3a |3b | Layout 1 Bottom Row
  29. * `-----------------------------------------------'
  30. * ,-----------------------------------------------.
  31. * |30 |31 |32 | 35 |3a |3b | Layout 2
  32. * `-----------------------------------------------'
  33. * ,-----------------------------------------------.
  34. * |30 |31 |32 | 34 | 35 |39 |3a |3b | Layout 3
  35. * `-----------------------------------------------'
  36. * ,-----------------------------------------------.
  37. * |30 |31 |32 | 35 |3a |3b | Layout 4
  38. * `-----------------------------------------------'
  39. */
  40. // a.k.a. Layout 1 or Layout 3 (matrix is the same for both)
  41. #define LAYOUT( \
  42. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  43. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \
  44. k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  45. k30, k31, k32, k34, k35, k39, k3a, k3b \
  46. ) { \
  47. {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \
  48. {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b}, \
  49. {k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b}, \
  50. {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \
  51. }
  52. // a.k.a. Layout 2 or Layout 4 (matrix is the same for both)
  53. #define LAYOUT_625u_space( \
  54. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  55. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \
  56. k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  57. k30, k31, k32, k35, k3a, k3b \
  58. ) { \
  59. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
  60. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b }, \
  61. { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
  62. { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, XXX, k3a, k3b } \
  63. }
  64. /* AMJ40 ver2.0 ortholinear layouts
  65. * ,-----------------------------------------------.
  66. * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
  67. * |-----------------------------------------------|
  68. * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b |
  69. * |-----------------------------------------------|
  70. * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |
  71. * |-----------------------------------------------|
  72. * |30 |31 |32 |33 |34 | 35 |38 |39 |3a |3b | 2.75u Spacebar
  73. * `-----------------------------------------------'
  74. * ,-----------------------------------------------.
  75. * |30 |31 |32 | 35 |39 |3a |3b | 6u Spacebar
  76. * `-----------------------------------------------'
  77. */
  78. // equivalent to LAYOUT_all
  79. #define LAYOUT_ortho_275u_space( \
  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, k35, k38, k39, k3a, k3b \
  84. ) { \
  85. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
  86. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
  87. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
  88. { k30, k31, k32, k33, k34, k35, XXX, XXX, k38, k39, k3a, k3b } \
  89. }
  90. #define LAYOUT_ortho_600u_space( \
  91. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
  92. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
  93. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
  94. k30, k31, k32, k35, k39, k3a, k3b \
  95. ) { \
  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, XXX, XXX, k35, XXX, XXX, XXX, k39, k3a, k3b } \
  100. }