frosty_flake.h 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #pragma once
  2. #include "quantum.h"
  3. // This a shortcut to help you visually see your layout.
  4. // The following is an example using the Planck MIT layout
  5. // The first section contains all of the arguements
  6. // The second converts the arguments into a two-dimensional array
  7. /*
  8. Matrix col/row mapping
  9. ,----. ,-------------------. ,-------------------. ,-------------------. ,--------------.
  10. | J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 |
  11. `----' `-------------------' `-------------------' `-------------------' `--------------'
  12. ,-------------------------------------------------------------------------. ,--------------. ,-------------------.
  13. | J4 | J7 | I7 | H7 | G7 | G4 | F4 | F7 | E7 | D7 | R7 | R4 | E4 | B2 | | L4 | O4 | Q4 | | K1 | L1 | Q1 | Q0 |
  14. |-------------------------------------------------------------------------| |--------------| |-------------------|
  15. | J2 | J5 | I5 | H5 | G5 | G2 | F2 | F5 | E5 | D5 | R5 | R2 | E2 | B3 | | K4 | O7 | Q7 | | K5 | L5 | Q5 | O5 |
  16. |-------------------------------------------------------------------------| '--------------' |-------------- |
  17. | O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 | | K2 | L2 | Q2 | |
  18. |-------------------------------------------------------------------------| ,----. |-------------------|
  19. | N2 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 | | K3 | L3 | Q3 | O3 |
  20. |-------------------------------------------------------------------------| ,--------------. |-------------- |
  21. | A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 | | L6 | Q6 | |
  22. `-------------------------------------------------------------------------' `--------------' `-------------------'
  23. */
  24. #define LAYOUT( \
  25. KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
  26. KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \
  27. KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \
  28. KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, KK2, KL2, KQ2, \
  29. KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, KK3, KL3, KQ3, KO3, \
  30. KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0, KL6, KQ6 \
  31. ) \
  32. { \
  33. /* 0 1 2 3 4 5 6 7 */ \
  34. /* A */ { KC_NO, KA1, KC_NO, KC_NO, KA4, KA5, KC_NO, KA7, }, \
  35. /* B */ { KB0, KB1, KB2, KB3, KB4, KC_NO, KB6, KB7, }, \
  36. /* C */ { KC0, KC_NO, KC_NO, KC_NO, KC_NO, KC5, KC6, KC7, }, \
  37. /* D */ { KD0, KD1, KD2, KD3, KD4, KD5, KC_NO, KD7, }, \
  38. /* E */ { KC_NO, KE1, KE2, KE3, KE4, KE5, KE6, KE7, }, \
  39. /* F */ { KF0, KF1, KF2, KF3, KF4, KF5, KF6, KF7, }, \
  40. /* G */ { KG0, KG1, KG2, KG3, KG4, KG5, KG6, KG7, }, \
  41. /* H */ { KC_NO, KH1, KH2, KH3, KH4, KH5, KH6, KH7, }, \
  42. /* I */ { KC_NO, KI1, KI2, KI3, KI4, KI5, KI6, KI7, }, \
  43. /* J */ { KC_NO, KJ1, KJ2, KJ3, KJ4, KJ5, KJ6, KJ7, }, \
  44. /* K */ { KK0, KK1, KK2, KK3, KK4, KK5, KK6, KC_NO, }, \
  45. /* L */ { KL0, KL1, KL2, KL3, KL4, KL5, KL6, KC_NO, }, \
  46. /* M */ { KC_NO, KC_NO, KC_NO, KM3, KC_NO, KC_NO, KC_NO, KC_NO, }, \
  47. /* N */ { KC_NO, KC_NO, KN2, KN3, KC_NO, KC_NO, KC_NO, KC_NO, }, \
  48. /* O */ { KO0, KC_NO, KC_NO, KO3, KO4, KO5, KO6, KO7, }, \
  49. /* P */ { KC_NO, KC_NO, KP2, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, }, \
  50. /* Q */ { KQ0, KQ1, KQ2, KQ3, KQ4, KQ5, KQ6, KQ7, }, \
  51. /* R */ { KR0, KC_NO, KR2, KR3, KR4, KR5, KR6, KR7, }, \
  52. }
  53. /*
  54. Matrix col/row mapping (TKL)
  55. ,----. ,-------------------. ,-------------------. ,-------------------. ,--------------.
  56. | J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 |
  57. `----' `-------------------' `-------------------' `-------------------' `--------------'
  58. ,-------------------------------------------------------------------------. ,--------------.
  59. | J4 | J7 | I7 | H7 | G7 | G4 | F4 | F7 | E7 | D7 | R7 | R4 | E4 | B2 | | L4 | O4 | Q4 |
  60. |-------------------------------------------------------------------------| |--------------|
  61. | J2 | J5 | I5 | H5 | G5 | G2 | F2 | F5 | E5 | D5 | R5 | R2 | E2 | B3 | | K4 | O7 | Q7 |
  62. |-------------------------------------------------------------------------| '--------------'
  63. | O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 |
  64. |-------------------------------------------------------------------------| ,----.
  65. | N2 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 |
  66. |-------------------------------------------------------------------------| ,--------------.
  67. | A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 |
  68. `-------------------------------------------------------------------------' `--------------'
  69. */
  70. #define LAYOUT_tkl( \
  71. KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
  72. KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
  73. KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
  74. KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
  75. KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
  76. KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
  77. ) \
  78. { \
  79. /* 0 1 2 3 4 5 6 7 */ \
  80. /* A */ { KC_NO, KA1, KC_NO, KC_NO, KA4, KA5, KC_NO, KA7, }, \
  81. /* B */ { KB0, KB1, KB2, KB3, KB4, KC_NO, KB6, KB7, }, \
  82. /* C */ { KC0, KC_NO, KC_NO, KC_NO, KC_NO, KC5, KC6, KC7, }, \
  83. /* D */ { KD0, KD1, KD2, KD3, KD4, KD5, KC_NO, KD7, }, \
  84. /* E */ { KC_NO, KE1, KE2, KE3, KE4, KE5, KE6, KE7, }, \
  85. /* F */ { KF0, KF1, KF2, KF3, KF4, KF5, KF6, KF7, }, \
  86. /* G */ { KG0, KG1, KG2, KG3, KG4, KG5, KG6, KG7, }, \
  87. /* H */ { KC_NO, KH1, KH2, KH3, KH4, KH5, KH6, KH7, }, \
  88. /* I */ { KC_NO, KI1, KI2, KI3, KI4, KI5, KI6, KI7, }, \
  89. /* J */ { KC_NO, KJ1, KJ2, KJ3, KJ4, KJ5, KJ6, KJ7, }, \
  90. /* K */ { KK0, KC_NO, KC_NO, KC_NO, KK4, KC_NO, KK6, KC_NO, }, \
  91. /* L */ { KL0, KC_NO, KC_NO, KC_NO, KL4, KC_NO, KC_NO, KC_NO, }, \
  92. /* M */ { KC_NO, KC_NO, KC_NO, KM3, KC_NO, KC_NO, KC_NO, KC_NO, }, \
  93. /* N */ { KC_NO, KC_NO, KN2, KN3, KC_NO, KC_NO, KC_NO, KC_NO, }, \
  94. /* O */ { KO0, KC_NO, KC_NO, KC_NO, KO4, KC_NO, KO6, KO7, }, \
  95. /* P */ { KC_NO, KC_NO, KP2, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, }, \
  96. /* Q */ { KC_NO, KC_NO, KC_NO, KC_NO, KQ4, KC_NO, KC_NO, KQ7, }, \
  97. /* R */ { KR0, KC_NO, KR2, KR3, KR4, KR5, KR6, KR7, }, \
  98. }
  99. #define LAYOUT_tkl_ansi( \
  100. KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
  101. KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
  102. KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
  103. KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
  104. KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
  105. KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
  106. ) LAYOUT_tkl( \
  107. KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
  108. KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
  109. KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
  110. KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
  111. KN2, KC_NO, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
  112. KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
  113. )