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.

110 lines
6.6 KiB

  1. #ifndef UK78_H
  2. #define UK78_H
  3. #include "quantum.h"
  4. // readability
  5. #define ____ KC_NO
  6. /* Re: Right Shift
  7. *
  8. * Per a conversation I had on reddit with Rozakiin, matrix positions K312,
  9. * K313 and K314 are never in use all together at the same time.
  10. *
  11. * A 2.75u-sized right Shift uses position K313, rendering K312 and K314
  12. * inaccessible.
  13. *
  14. * A split right Shift, in either 1.75u/1u or 1u/1.75u (JIS layout) uses
  15. * positions K312 and K314, rendering K313 inaccessible.
  16. *
  17. * - @noroadsleft
  18. * July 13, 2018
  19. */
  20. #define LAYOUT_all( \
  21. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \
  22. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, K116, K117, K118, \
  23. K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, K216, K217, K218, \
  24. K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, \
  25. K400, K401, K402, K406, K410, K411, K412, K413, K414, K415, K416, K417, K418 \
  26. ) { \
  27. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
  28. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
  29. { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, K214, K215, K216, K217, K218 }, \
  30. { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318 }, \
  31. { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, K411, K412, K413, K414, K415, K416, K417, K418 } \
  32. }
  33. /* LAYOUT_ansi
  34. *
  35. * This layout uses:
  36. *
  37. * - Split Backspace (K013 and K014)
  38. * - ANSI Enter (K214)
  39. * - ANSI 2.25u Left Shift (K300)
  40. * - Compact right Shift (K312 and K314)
  41. * - Two 1.5u modifiers (K410 and K412) between the spacebar and the Left
  42. * arrow key
  43. * ,---------------------------------------------------------------------------.
  44. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -_| =+| \||Bsp|Del|P/ |P* |P- |
  45. * |---------------------------------------------------------------------------|
  46. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [{| ]}| \||P7 |P8 |P9 |P= |
  47. * |---------------------------------------------------------------------------|
  48. * |Caps | A| S| D| F| G| H| J| K| L| ;:| '"| Enter|P4 |P5 |P6 |P+ |
  49. * |---------------------------------------------------------------------------|
  50. * |Shift | Z| X| C| V| B| N| M| ,<| .>| /?| Shift| Up|P1 |P2 |P3 |SLk|
  51. * |---------------------------------------------------------------------------|
  52. * |Ctrl|GUI |Alt | | Alt| Fn|Lft|Dwn|Rgh|P0 |P. |Ent|
  53. * `---------------------------------------------------------------------------'
  54. */
  55. #define LAYOUT_ansi( \
  56. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \
  57. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, K116, K117, K118, \
  58. K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K214, K215, K216, K217, K218, \
  59. K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, K315, K316, K317, K318, \
  60. K400, K401, K402, K406, K410, K412, K413, K414, K415, K416, K417, K418 \
  61. ) { \
  62. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
  63. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
  64. { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, ____, ____, K214, K215, K216, K217, K218 }, \
  65. { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, K314, K315, K316, K317, K318 }, \
  66. { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, ____, K412, K413, K414, K415, K416, K417, K418 } \
  67. }
  68. /* LAYOUT_iso
  69. *
  70. * This layout uses:
  71. *
  72. * - Split Backspace (K013 and K014)
  73. * - ISO Enter (K114)
  74. * - ISO Left Shift and 1u (K300 and K301)
  75. * - Compact right Shift (K312 and K314)
  76. * - Two 1.5u modifiers (K410 and K412) between the spacebar and the Left
  77. * arrow key
  78. * ,---------------------------------------------------------------------------.
  79. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -_| =+| \||Bsp|Del|P/ |P* |P- |
  80. * |---------------------------------------------------------------------------|
  81. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [{| ]}|Enter|P7 |P8 |P9 |P= |
  82. * |------------------------------------------------------. ----------------|
  83. * |Caps | A| S| D| F| G| H| J| K| L| ;:| '@| #~| |P4 |P5 |P6 |P+ |
  84. * |---------------------------------------------------------------------------|
  85. * |Sft | \|| Z| X| C| V| B| N| M| ,<| .>| /?| Shift| Up|P1 |P2 |P3 |SLk|
  86. * |---------------------------------------------------------------------------|
  87. * |Ctrl|GUI |Alt | | Alt| Fn|Lft|Dwn|Rgh|P0 |P. |Ent|
  88. * `---------------------------------------------------------------------------'
  89. */
  90. #define LAYOUT_iso( \
  91. K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \
  92. K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, K116, K117, K118, \
  93. K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K215, K216, K217, K218, \
  94. K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, K315, K316, K317, K318, \
  95. K400, K401, K402, K406, K410, K412, K413, K414, K415, K416, K417, K418 \
  96. ) { \
  97. { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
  98. { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
  99. { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, ____, K215, K216, K217, K218 }, \
  100. { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, K314, K315, K316, K317, K318 }, \
  101. { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, ____, K412, K413, K414, K415, K416, K417, K418 } \
  102. }
  103. #endif