universal.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. /**
  2. * @file universal.h
  3. *
  4. Copyright 2020 astro <yuleiz@gmail.com>
  5. This program is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 2 of the License, or
  8. (at your option) any later version.
  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. 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 first section contains all of the arguements
  20. // The second converts the arguments into a two-dimensional array
  21. #define LAYOUT_60_ansi( \
  22. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
  23. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
  24. k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
  25. k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
  26. k40, k42, k43, k47, k48, k49, k4a, k4b \
  27. ) \
  28. { \
  29. {k00, k01, k02, k03, k04, k05, k06, k08, k09, k0a, k0b, k0c, KC_NO, k0e}, \
  30. {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e}, \
  31. {k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \
  32. {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO}, \
  33. {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, k48, k49, k4a, k4b} \
  34. }
  35. #define LAYOUT_60_iso( \
  36. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
  37. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
  38. k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \
  39. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
  40. k40, k42, k43, k47, k48, k49, k4a, k4b \
  41. ) \
  42. { \
  43. {k00, k01, k02, k03, k04, k05, k06, k08, k09, k0a, k0b, k0c, KC_NO, k0e}, \
  44. {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO}, \
  45. {k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e}, \
  46. {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO}, \
  47. {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, k48, k49, k4a, k4b} \
  48. }
  49. #define LAYOUT_60_ansi_tsangan_split_rshift( \
  50. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
  51. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
  52. k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
  53. k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  54. k40, k42, k43, k47, k49, k4a, k4b \
  55. ) \
  56. { \
  57. {k00, k01, k02, k03, k04, k05, k06, k08, k09, k0a, k0b, k0c, KC_NO, k0e}, \
  58. {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e}, \
  59. {k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \
  60. {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
  61. {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, KC_NO, k49, k4a, k4b} \
  62. }
  63. #define LAYOUT_60_hhkb( \
  64. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
  65. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
  66. k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
  67. k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  68. k42, k43, k47, k49, k4a \
  69. ) \
  70. { \
  71. {k00, k01, k02, k03, k04, k05, k06, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
  72. {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e}, \
  73. {k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \
  74. {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
  75. {KC_NO, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, KC_NO, k49, k4a, KC_NO} \
  76. }
  77. #define LAYOUT_60_tsangan_hhkb( \
  78. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
  79. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
  80. k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
  81. k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  82. k40, k42, k43, k47, k49, k4a, k4b \
  83. ) \
  84. { \
  85. {k00, k01, k02, k03, k04, k05, k06, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
  86. {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e}, \
  87. {k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \
  88. {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
  89. {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, KC_NO, k49, k4a, k4b} \
  90. }
  91. #define LAYOUT_60_ansi_split_bs_rshift( \
  92. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
  93. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
  94. k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
  95. k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  96. k40, k42, k43, k47, k48, k49, k4a, k4b \
  97. ) \
  98. { \
  99. {k00, k01, k02, k03, k04, k05, k06, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
  100. {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e}, \
  101. {k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, k2e}, \
  102. {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
  103. {k40, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, k48, k49, k4a, k4b} \
  104. }
  105. #if defined(RGB_MATRIX_DISABLE_KEYCODES)
  106. # ifndef RGB_MATRIX_TOGGLE
  107. # define RGB_MATRIX_TOGGLE KC_F16
  108. # endif
  109. # ifndef RGB_MATRIX_STEP
  110. # define RGB_MATRIX_STEP KC_F17
  111. # endif
  112. # ifndef RGB_MATRIX_INC_HUE
  113. # define RGB_MATRIX_INC_HUE KC_F18
  114. # endif
  115. # ifndef RGB_MATRIX_DEC_HUE
  116. # define RGB_MATRIX_DEC_HUE KC_F19
  117. # endif
  118. # ifndef RGB_MATRIX_INC_SAT
  119. # define RGB_MATRIX_INC_SAT KC_F20
  120. # endif
  121. # ifndef RGB_MATRIX_DEC_SAT
  122. # define RGB_MATRIX_DEC_SAT KC_F21
  123. # endif
  124. # ifndef RGB_MATRIX_INC_VAL
  125. # define RGB_MATRIX_INC_VAL KC_F22
  126. # endif
  127. # ifndef RGB_MATRIX_DEC_VAL
  128. # define RGB_MATRIX_DEC_VAL KC_F23
  129. # endif
  130. #endif