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.

214 lines
18 KiB

  1. /*
  2. Copyright 2021 Alexander Lee <chlx.bsmt@gmail.com>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #pragma once
  15. #include "quantum.h"
  16. // Corresponding changes to the layout names and/or definitions must also be made to info.json
  17. #define XXX KC_NO
  18. /* //////////////////// LAYOUT_all ////////////////////
  19. * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”
  20. * โ”‚00 โ”‚01 โ”‚02 โ”‚03 โ”‚04 โ”‚05 โ”‚06 โ”‚07 โ”‚08 โ”‚09 โ”‚0a โ”‚0b โ”‚0c โ”‚0d โ”‚0e โ”‚
  21. * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ค
  22. * โ”‚10 โ”‚11 โ”‚12 โ”‚13 โ”‚14 โ”‚15 โ”‚16 โ”‚17 โ”‚18 โ”‚19 โ”‚1a โ”‚1b โ”‚1c โ”‚1d โ”‚
  23. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ค
  24. * โ”‚20 โ”‚21 โ”‚22 โ”‚23 โ”‚24 โ”‚25 โ”‚26 โ”‚27 โ”‚28 โ”‚29 โ”‚2a โ”‚2b โ”‚2c โ”‚2d โ”‚
  25. * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”ค
  26. * โ”‚30 โ”‚31 โ”‚32 โ”‚33 โ”‚34 โ”‚35 โ”‚36 โ”‚37 โ”‚38 โ”‚39 โ”‚3a โ”‚3b โ”‚3c โ”‚3d โ”‚
  27. * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ค
  28. * โ”‚40 โ”‚41 โ”‚42 โ”‚45 (6.25u) โ”‚4a โ”‚4b โ”‚4c โ”‚4d โ”‚
  29. * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜
  30. */
  31. #define LAYOUT_all( \
  32. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
  33. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
  34. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
  35. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  36. k40, k41, k42, k45, k4a, k4b, k4c, k4d \
  37. ) { \
  38. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
  39. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
  40. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
  41. { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
  42. { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
  43. }
  44. /* //////////////////// LAYOUT_60_ansi ////////////////////
  45. * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  46. * โ”‚00 โ”‚01 โ”‚02 โ”‚03 โ”‚04 โ”‚05 โ”‚06 โ”‚07 โ”‚08 โ”‚09 โ”‚0a โ”‚0b โ”‚0c โ”‚0d โ”‚
  47. * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค
  48. * โ”‚10 โ”‚11 โ”‚12 โ”‚13 โ”‚14 โ”‚15 โ”‚16 โ”‚17 โ”‚18 โ”‚19 โ”‚1a โ”‚1b โ”‚1c โ”‚1d โ”‚
  49. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ค
  50. * โ”‚20 โ”‚21 โ”‚22 โ”‚23 โ”‚24 โ”‚25 โ”‚26 โ”‚27 โ”‚28 โ”‚29 โ”‚2a โ”‚2b โ”‚2d โ”‚
  51. * โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
  52. * โ”‚31 โ”‚32 โ”‚33 โ”‚34 โ”‚35 โ”‚36 โ”‚37 โ”‚38 โ”‚39 โ”‚3a โ”‚3b โ”‚3c โ”‚
  53. * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค
  54. * โ”‚40 โ”‚41 โ”‚42 โ”‚45 โ”‚4a โ”‚4b โ”‚4c โ”‚4d โ”‚
  55. * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜
  56. */
  57. #define LAYOUT_60_ansi( \
  58. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
  59. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
  60. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
  61. k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
  62. k40, k41, k42, k45, k4a, k4b, k4c, k4d \
  63. ) { \
  64. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
  65. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
  66. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
  67. { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
  68. { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
  69. }
  70. /* //////////////////// LAYOUT_60_ansi_split_bs_rshift ////////////////////
  71. * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”
  72. * โ”‚00 โ”‚01 โ”‚02 โ”‚03 โ”‚04 โ”‚05 โ”‚06 โ”‚07 โ”‚08 โ”‚09 โ”‚0a โ”‚0b โ”‚0c โ”‚0d โ”‚0e โ”‚
  73. * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ค
  74. * โ”‚10 โ”‚11 โ”‚12 โ”‚13 โ”‚14 โ”‚15 โ”‚16 โ”‚17 โ”‚18 โ”‚19 โ”‚1a โ”‚1b โ”‚1c โ”‚1d โ”‚
  75. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ค
  76. * โ”‚20 โ”‚21 โ”‚22 โ”‚23 โ”‚24 โ”‚25 โ”‚26 โ”‚27 โ”‚28 โ”‚29 โ”‚2a โ”‚2b โ”‚2d โ”‚
  77. * โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ค
  78. * โ”‚31 โ”‚32 โ”‚33 โ”‚34 โ”‚35 โ”‚36 โ”‚37 โ”‚38 โ”‚39 โ”‚3a โ”‚3b โ”‚3c โ”‚3d โ”‚
  79. * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ค
  80. * โ”‚40 โ”‚41 โ”‚42 โ”‚45 โ”‚4a โ”‚4b โ”‚4d โ”‚4e โ”‚
  81. * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜
  82. */
  83. #define LAYOUT_60_ansi_split_bs_rshift( \
  84. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
  85. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
  86. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
  87. k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  88. k40, k41, k42, k45, k4a, k4b, k4c, k4d \
  89. ) { \
  90. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
  91. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
  92. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
  93. { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
  94. { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
  95. }
  96. /* //////////////////// LAYOUT_60_hhkb ////////////////////
  97. * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”
  98. * โ”‚00 โ”‚01 โ”‚02 โ”‚03 โ”‚04 โ”‚05 โ”‚06 โ”‚07 โ”‚08 โ”‚09 โ”‚0a โ”‚0b โ”‚0c โ”‚0d โ”‚0e โ”‚
  99. * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ค
  100. * โ”‚10 โ”‚11 โ”‚12 โ”‚13 โ”‚14 โ”‚15 โ”‚16 โ”‚17 โ”‚18 โ”‚19 โ”‚1a โ”‚1b โ”‚1c โ”‚1d โ”‚
  101. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ค
  102. * โ”‚20 โ”‚21 โ”‚22 โ”‚23 โ”‚24 โ”‚25 โ”‚26 โ”‚27 โ”‚28 โ”‚29 โ”‚2a โ”‚2b โ”‚2d โ”‚
  103. * โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ค
  104. * โ”‚31 โ”‚32 โ”‚33 โ”‚34 โ”‚35 โ”‚36 โ”‚37 โ”‚38 โ”‚39 โ”‚3a โ”‚3b โ”‚3c โ”‚3d โ”‚
  105. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ค
  106. * โ”‚โ–“โ–“โ–“โ–“โ–“โ”‚41 โ”‚42 โ”‚45 (7u) โ”‚4b โ”‚4c โ”‚โ–“โ–“โ–“โ–“โ–“โ”‚
  107. * โ””โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”˜
  108. */
  109. #define LAYOUT_60_hhkb( \
  110. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
  111. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
  112. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
  113. k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  114. k41, k42, k45, k4b, k4c \
  115. ) { \
  116. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
  117. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
  118. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
  119. { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
  120. { XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, XXX, XXX } \
  121. }
  122. /* //////////////////// LAYOUT_60_iso ////////////////////
  123. * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  124. * โ”‚00 โ”‚01 โ”‚02 โ”‚03 โ”‚04 โ”‚05 โ”‚06 โ”‚07 โ”‚08 โ”‚09 โ”‚0a โ”‚0b โ”‚0c โ”‚0d โ”‚
  125. * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค
  126. * โ”‚10 โ”‚11 โ”‚12 โ”‚13 โ”‚14 โ”‚15 โ”‚16 โ”‚17 โ”‚18 โ”‚19 โ”‚1a โ”‚1b โ”‚1c โ”‚ โ”‚
  127. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”2d โ”‚
  128. * โ”‚20 โ”‚21 โ”‚22 โ”‚23 โ”‚24 โ”‚25 โ”‚26 โ”‚27 โ”‚28 โ”‚29 โ”‚2a โ”‚2b โ”‚2c โ”‚ โ”‚
  129. * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค
  130. * โ”‚30 โ”‚31 โ”‚32 โ”‚33 โ”‚34 โ”‚35 โ”‚36 โ”‚37 โ”‚38 โ”‚39 โ”‚3a โ”‚3b โ”‚3c โ”‚
  131. * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค
  132. * โ”‚40 โ”‚41 โ”‚42 โ”‚45 โ”‚4a โ”‚4b โ”‚4c โ”‚4d โ”‚
  133. * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜
  134. */
  135. #define LAYOUT_60_iso( \
  136. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
  137. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
  138. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
  139. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
  140. k40, k41, k42, k45, k4a, k4b, k4c, k4d \
  141. ) { \
  142. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
  143. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \
  144. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
  145. { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
  146. { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
  147. }
  148. /* //////////////////// LAYOUT_60_iso_split_bs_rshift ////////////////////
  149. * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”
  150. * โ”‚00 โ”‚01 โ”‚02 โ”‚03 โ”‚04 โ”‚05 โ”‚06 โ”‚07 โ”‚08 โ”‚09 โ”‚0a โ”‚0b โ”‚0c โ”‚0d โ”‚0e โ”‚
  151. * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ค
  152. * โ”‚10 โ”‚11 โ”‚12 โ”‚13 โ”‚14 โ”‚15 โ”‚16 โ”‚17 โ”‚18 โ”‚19 โ”‚1a โ”‚1b โ”‚1c โ”‚ โ”‚
  153. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”2d โ”‚
  154. * โ”‚20 โ”‚21 โ”‚22 โ”‚23 โ”‚24 โ”‚25 โ”‚26 โ”‚27 โ”‚28 โ”‚29 โ”‚2a โ”‚2b โ”‚2c โ”‚ โ”‚
  155. * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”ค
  156. * โ”‚30 โ”‚31 โ”‚32 โ”‚33 โ”‚34 โ”‚35 โ”‚36 โ”‚37 โ”‚38 โ”‚39 โ”‚3a โ”‚3b โ”‚3c โ”‚3d โ”‚
  157. * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ค
  158. * โ”‚40 โ”‚41 โ”‚42 โ”‚45 โ”‚4a โ”‚4b โ”‚4c โ”‚4d โ”‚
  159. * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜
  160. */
  161. #define LAYOUT_60_iso_split_bs_rshift( \
  162. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
  163. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
  164. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
  165. k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  166. k40, k41, k42, k45, k4a, k4b, k4c, k4d \
  167. ) { \
  168. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
  169. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \
  170. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
  171. { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
  172. { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
  173. }
  174. /* //////////////////// LAYOUT_60_tsangan_hhkb ////////////////////
  175. * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”
  176. * โ”‚00 โ”‚01 โ”‚02 โ”‚03 โ”‚04 โ”‚05 โ”‚06 โ”‚07 โ”‚08 โ”‚09 โ”‚0a โ”‚0b โ”‚0c โ”‚0d โ”‚0e โ”‚
  177. * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ค
  178. * โ”‚10 โ”‚11 โ”‚12 โ”‚13 โ”‚14 โ”‚15 โ”‚16 โ”‚17 โ”‚18 โ”‚19 โ”‚1a โ”‚1b โ”‚1c โ”‚1d โ”‚
  179. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ค
  180. * โ”‚20 โ”‚21 โ”‚22 โ”‚23 โ”‚24 โ”‚25 โ”‚26 โ”‚27 โ”‚28 โ”‚29 โ”‚2a โ”‚2b โ”‚2d โ”‚
  181. * โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ค
  182. * โ”‚31 โ”‚32 โ”‚33 โ”‚34 โ”‚35 โ”‚36 โ”‚37 โ”‚38 โ”‚39 โ”‚3a โ”‚3b โ”‚3c โ”‚3d โ”‚
  183. * โ”œโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ค
  184. * โ”‚40 โ”‚41 โ”‚42 โ”‚45 (7u) โ”‚4b โ”‚4c โ”‚4d โ”‚
  185. * โ””โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”˜
  186. */
  187. #define LAYOUT_60_tsangan_hhkb( \
  188. k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
  189. k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
  190. k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
  191. k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
  192. k40, k41, k42, k45, k4b, k4c, k4d \
  193. ) { \
  194. { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
  195. { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
  196. { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
  197. { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
  198. { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, k4d, XXX } \
  199. }