uk78.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #pragma once
  2. #include "quantum.h"
  3. // readability
  4. #define ___ KC_NO
  5. /* Re: Right Shift
  6. *
  7. * Per a conversation I had on reddit with Rozakiin, matrix positions k3C,
  8. * k3D and k3E are never in use all together at the same time.
  9. *
  10. * A 2.75u-sized right Shift uses position k3D, rendering k3C and k3E
  11. * inaccessible.
  12. *
  13. * A split right Shift, in either 1.75u/1u or 1u/1.75u (JIS layout) uses
  14. * positions k3C and k3E, rendering k3D inaccessible.
  15. *
  16. * - @noroadsleft
  17. * July 13, 2018
  18. */
  19. #define LAYOUT_all( \
  20. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, \
  21. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1E, k1F, k1G, k1H, k1I, \
  22. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2E, k2F, k2G, k2H, k2I, \
  23. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3I, \
  24. k40, k41, k42, k46, k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I \
  25. ) { \
  26. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I }, \
  27. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E, k1F, k1G, k1H, k1I }, \
  28. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, ___, k2E, k2F, k2G, k2H, k2I }, \
  29. { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3I }, \
  30. { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I } \
  31. }
  32. /* LAYOUT_ansi
  33. *
  34. * This layout uses:
  35. *
  36. * - Split Backspace (k0D and k0E)
  37. * - ANSI Enter (k2E)
  38. * - ANSI 2.25u Left Shift (k30)
  39. * - Compact right Shift (k3C and k3E)
  40. * - Two 1.5u modifiers (k4A and k4C) between the spacebar and the Left
  41. * arrow key
  42. * ,---------------------------------------------------------------------------.
  43. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -_| =+| \||Bsp|Del|P/ |P* |P- |
  44. * |---------------------------------------------------------------------------|
  45. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [{| ]}| \||P7 |P8 |P9 |P= |
  46. * |---------------------------------------------------------------------------|
  47. * |Caps | A| S| D| F| G| H| J| K| L| ;:| '"| Enter|P4 |P5 |P6 |P+ |
  48. * |---------------------------------------------------------------------------|
  49. * |Shift | Z| X| C| V| B| N| M| ,<| .>| /?| Shift| Up|P1 |P2 |P3 |SLk|
  50. * |---------------------------------------------------------------------------|
  51. * |Ctrl|GUI |Alt | | Alt| Fn|Lft|Dwn|Rgh|P0 |P. |Ent|
  52. * `---------------------------------------------------------------------------'
  53. */
  54. #define LAYOUT_ansi( \
  55. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, \
  56. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1E, k1F, k1G, k1H, k1I, \
  57. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2E, k2F, k2G, k2H, k2I, \
  58. k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3E, k3F, k3G, k3H, k3I, \
  59. k40, k41, k42, k46, k4A, k4C, k4D, k4E, k4F, k4G, k4H, k4I \
  60. ) { \
  61. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I }, \
  62. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E, k1F, k1G, k1H, k1I }, \
  63. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, ___, k2E, k2F, k2G, k2H, k2I }, \
  64. { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G, k3H, k3I }, \
  65. { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, ___, k4C, k4D, k4E, k4F, k4G, k4H, k4I } \
  66. }
  67. /* LAYOUT_iso
  68. *
  69. * This layout uses:
  70. *
  71. * - Split Backspace (k0D and k0E)
  72. * - ISO Enter (k1E)
  73. * - ISO Left Shift and 1u (k30 and k31)
  74. * - Compact right Shift (k3C and k3E)
  75. * - Two 1.5u modifiers (k4A and k4C) between the spacebar and the Left
  76. * arrow key
  77. * ,---------------------------------------------------------------------------.
  78. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -_| =+| \||Bsp|Del|P/ |P* |P- |
  79. * |---------------------------------------------------------------------------|
  80. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [{| ]}|Enter|P7 |P8 |P9 |P= |
  81. * |------------------------------------------------------. ----------------|
  82. * |Caps | A| S| D| F| G| H| J| K| L| ;:| '@| #~| |P4 |P5 |P6 |P+ |
  83. * |---------------------------------------------------------------------------|
  84. * |Sft | \|| Z| X| C| V| B| N| M| ,<| .>| /?| Shift| Up|P1 |P2 |P3 |SLk|
  85. * |---------------------------------------------------------------------------|
  86. * |Ctrl|GUI |Alt | | Alt| Fn|Lft|Dwn|Rgh|P0 |P. |Ent|
  87. * `---------------------------------------------------------------------------'
  88. */
  89. #define LAYOUT_iso( \
  90. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, \
  91. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1E, k1F, k1G, k1H, k1I, \
  92. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2F, k2G, k2H, k2I, \
  93. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3E, k3F, k3G, k3H, k3I, \
  94. k40, k41, k42, k46, k4A, k4C, k4D, k4E, k4F, k4G, k4H, k4I \
  95. ) { \
  96. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I }, \
  97. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E, k1F, k1G, k1H, k1I }, \
  98. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, ___, ___, k2F, k2G, k2H, k2I }, \
  99. { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G, k3H, k3I }, \
  100. { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, ___, k4C, k4D, k4E, k4F, k4G, k4H, k4I } \
  101. }