Przeglądaj źródła

Move miscellaneous layouts to data driven (#20516)

Ryan 3 lat temu
rodzic
commit
f111bea3cd
100 zmienionych plików z 6144 dodań i 6927 usunięć
  1. 0 43
      keyboards/aeboards/aegis/aegis.h
  2. 117 117
      keyboards/aeboards/aegis/info.json
  3. 89 88
      keyboards/aeboards/ext65/rev1/info.json
  4. 1 1
      keyboards/aeboards/ext65/rev1/rev1.c
  5. 0 40
      keyboards/aeboards/ext65/rev1/rev1.h
  6. 89 88
      keyboards/aeboards/ext65/rev2/info.json
  7. 1 1
      keyboards/aeboards/ext65/rev2/rev2.c
  8. 0 40
      keyboards/aeboards/ext65/rev2/rev2.h
  9. 93 419
      keyboards/aeboards/ext65/rev3/info.json
  10. 1 1
      keyboards/aeboards/ext65/rev3/rev3.c
  11. 0 40
      keyboards/aeboards/ext65/rev3/rev3.h
  12. 0 35
      keyboards/alfredslab/swift65/hotswap/hotswap.h
  13. 73 65
      keyboards/alfredslab/swift65/hotswap/info.json
  14. 296 280
      keyboards/alfredslab/swift65/solder/info.json
  15. 0 77
      keyboards/alfredslab/swift65/solder/solder.h
  16. 1 1
      keyboards/baguette/baguette.c
  17. 0 57
      keyboards/baguette/baguette.h
  18. 148 135
      keyboards/baguette/info.json
  19. 0 27
      keyboards/bajjak/bajjak.h
  20. 101 15
      keyboards/bajjak/info.json
  21. 1 1
      keyboards/bbrfkr/dynamis/dynamis.c
  22. 0 78
      keyboards/bbrfkr/dynamis/dynamis.h
  23. 142 138
      keyboards/bbrfkr/dynamis/info.json
  24. 83 83
      keyboards/bear_face/v1/info.json
  25. 1 1
      keyboards/bear_face/v1/v1.c
  26. 0 36
      keyboards/bear_face/v1/v1.h
  27. 167 168
      keyboards/bear_face/v2/info.json
  28. 1 1
      keyboards/bear_face/v2/v2.c
  29. 0 52
      keyboards/bear_face/v2/v2.h
  30. 0 33
      keyboards/boardrun/classic/classic.h
  31. 78 74
      keyboards/boardrun/classic/info.json
  32. 1 1
      keyboards/bolsa/damapad/damapad.c
  33. 0 42
      keyboards/bolsa/damapad/damapad.h
  34. 45 98
      keyboards/bolsa/damapad/info.json
  35. 0 57
      keyboards/capsunlocked/cu24/cu24.h
  36. 59 3
      keyboards/capsunlocked/cu24/info.json
  37. 0 94
      keyboards/chavdai40/info.json
  38. 103 1
      keyboards/chavdai40/rev1/info.json
  39. 0 49
      keyboards/chavdai40/rev1/rev1.h
  40. 103 1
      keyboards/chavdai40/rev2/info.json
  41. 0 49
      keyboards/chavdai40/rev2/rev2.h
  42. 0 67
      keyboards/checkerboards/candybar_ortho/candybar_ortho.h
  43. 212 6
      keyboards/checkerboards/candybar_ortho/info.json
  44. 0 0
      keyboards/checkerboards/plexus75/info.json
  45. 0 65
      keyboards/checkerboards/plexus75/plexus75.h
  46. 0 0
      keyboards/checkerboards/plexus75_he/info.json
  47. 0 76
      keyboards/checkerboards/plexus75_he/plexus75_he.h
  48. 213 18
      keyboards/checkerboards/quark_plus/info.json
  49. 1 1
      keyboards/checkerboards/quark_plus/quark_plus.c
  50. 0 82
      keyboards/checkerboards/quark_plus/quark_plus.h
  51. 224 4
      keyboards/checkerboards/quark_squared/info.json
  52. 0 17
      keyboards/checkerboards/quark_squared/quark_squared.c
  53. 0 76
      keyboards/checkerboards/quark_squared/quark_squared.h
  54. 33 5
      keyboards/coarse/ixora/info.json
  55. 0 40
      keyboards/coarse/ixora/ixora.h
  56. 0 108
      keyboards/converter/adb_usb/adb_usb.h
  57. 214 185
      keyboards/converter/adb_usb/info.json
  58. 172 153
      keyboards/converter/m0110_usb/info.json
  59. 0 131
      keyboards/converter/m0110_usb/m0110_usb.h
  60. 434 359
      keyboards/converter/sun_usb/type5/info.json
  61. 0 148
      keyboards/converter/sun_usb/type5/type5.h
  62. 234 19
      keyboards/crimsonkeyboards/resume1800/info.json
  63. 0 53
      keyboards/crimsonkeyboards/resume1800/resume1800.h
  64. 68 313
      keyboards/delikeeb/vaneelaex/info.json
  65. 0 42
      keyboards/delikeeb/vaneelaex/vaneelaex.h
  66. 0 1
      keyboards/deltasplit75/v2/info.json
  67. 0 55
      keyboards/deltasplit75/v2/v2.h
  68. 16 65
      keyboards/dinofizz/fnrow/v1/info.json
  69. 1 1
      keyboards/dinofizz/fnrow/v1/v1.c
  70. 0 25
      keyboards/dinofizz/fnrow/v1/v1.h
  71. 0 53
      keyboards/drhigsby/bkf/bkf.h
  72. 102 7
      keyboards/drhigsby/bkf/info.json
  73. 228 19
      keyboards/drhigsby/packrat/info.json
  74. 0 16
      keyboards/drhigsby/packrat/packrat.c
  75. 0 79
      keyboards/drhigsby/packrat/packrat.h
  76. 99 88
      keyboards/ebastler/isometria_75/rev1/info.json
  77. 0 35
      keyboards/ebastler/isometria_75/rev1/rev1.h
  78. 61 52
      keyboards/ergoslab/rev1/info.json
  79. 1 1
      keyboards/ergoslab/rev1/rev1.c
  80. 0 22
      keyboards/ergoslab/rev1/rev1.h
  81. 0 59
      keyboards/eu_isolation/eu_isolation.h
  82. 148 150
      keyboards/eu_isolation/info.json
  83. 0 18
      keyboards/evolv/evolv.c
  84. 0 54
      keyboards/evolv/evolv.h
  85. 211 210
      keyboards/evolv/info.json
  86. 1 1
      keyboards/exclusive/e85/hotswap/hotswap.c
  87. 0 63
      keyboards/exclusive/e85/hotswap/hotswap.h
  88. 203 176
      keyboards/exclusive/e85/hotswap/info.json
  89. 0 71
      keyboards/eyeohdesigns/babyv/babyv.h
  90. 212 9
      keyboards/eyeohdesigns/babyv/info.json
  91. 568 560
      keyboards/eyeohdesigns/sprh/info.json
  92. 0 16
      keyboards/eyeohdesigns/sprh/sprh.c
  93. 0 139
      keyboards/eyeohdesigns/sprh/sprh.h
  94. 640 11
      keyboards/eyeohdesigns/theboulevard/info.json
  95. 0 17
      keyboards/eyeohdesigns/theboulevard/theboulevard.c
  96. 0 169
      keyboards/eyeohdesigns/theboulevard/theboulevard.h
  97. 53 45
      keyboards/flehrad/numbrero/info.json
  98. 0 30
      keyboards/flehrad/numbrero/numbrero.h
  99. 1 1
      keyboards/gboards/butterstick/butterstick.c
  100. 0 11
      keyboards/gboards/butterstick/butterstick.h

+ 0 - 43
keyboards/aeboards/aegis/aegis.h

@@ -1,43 +0,0 @@
-/* Copyright 2018 Jason Williams (Wilba)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define _____ KC_NO
-
-#define LAYOUT_aegis( \
-  K0000, K0100, K0001, K0101,        K0002, K0102, K0003, K0103, K0004, K0104, K0005, K0105, K0006, K0106, K0007, K0107, K0008, \
-  K0200, K0300, K0201, K0301,        K0202, K0302, K0203, K0303, K0204, K0304, K0205, K0305, K0206, K0306, K0207, K0307, K0208, K0308, K0108, \
-  K0400, K0500, K0401, K0501,        K0402, K0502, K0403, K0503, K0404, K0504, K0405, K0505, K0406, K0506, K0407, K0507, K0408, K0508, \
-  K0600, K0700, K0601, K0701,        K0602, K0702, K0603, K0703, K0604, K0704, K0605, K0705, K0606, K0706, K0607, K0707, K0608, \
-  K0800, K0900, K0801, K0901,        K0802, K0902, K0803, K0903, K0804, K0904, K0805, K0905, K0806, K0906, K0807, K0907, K0808, K0908, \
-  K1000, K1100, K1001,        K1101, K1002, K1102, K1003, K1103,                      K1105,                      K1107, K1008, K1108 \
-) { \
-  { K0000, K0001, K0002, K0003, K0004, K0005, K0006, K0007, K0008 }, \
-  { K0100, K0101, K0102, K0103, K0104, K0105, K0106, K0107, K0108 }, \
-  { K0200, K0201, K0202, K0203, K0204, K0205, K0206, K0207, K0208 }, \
-  { K0300, K0301, K0302, K0303, K0304, K0305, K0306, K0307, K0308 }, \
-  { K0400, K0401, K0402, K0403, K0404, K0405, K0406, K0407, K0408 }, \
-  { K0500, K0501, K0502, K0503, K0504, K0505, K0506, K0507, K0508 }, \
-  { K0600, K0601, K0602, K0603, K0604, K0605, K0606, K0607, K0608 }, \
-  { K0700, K0701, K0702, K0703, K0704, K0705, K0706, K0707, _____ }, \
-  { K0800, K0801, K0802, K0803, K0804, K0805, K0806, K0807, K0808 }, \
-  { K0900, K0901, K0902, K0903, K0904, K0905, K0906, K0907, K0908 }, \
-  { K1000, K1001, K1002, K1003, _____, _____, _____, _____, K1008 }, \
-  { K1100, K1101, K1102, K1103, _____, K1105, _____, K1107, K1108 } \
-}

+ 117 - 117
keyboards/aeboards/aegis/info.json

@@ -18,123 +18,123 @@
     "layouts": {
         "LAYOUT_aegis": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
-
-                {"x": 4.5, "y": 0},
-
-                {"x": 6.5, "y": 0},
-                {"x": 7.5, "y": 0},
-                {"x": 8.5, "y": 0},
-                {"x": 9.5, "y": 0},
-
-                {"x": 11, "y": 0},
-                {"x": 12, "y": 0},
-                {"x": 13, "y": 0},
-                {"x": 14, "y": 0},
-
-                {"x": 15.5, "y": 0},
-                {"x": 16.5, "y": 0},
-                {"x": 17.5, "y": 0},
-                {"x": 18.5, "y": 0},
-
-                {"x": 0, "y": 1.5},
-                {"x": 1, "y": 1.5},
-                {"x": 2, "y": 1.5},
-                {"x": 3, "y": 1.5},
-
-                {"x": 4.5, "y": 1.5},
-                {"x": 5.5, "y": 1.5},
-                {"x": 6.5, "y": 1.5},
-                {"x": 7.5, "y": 1.5},
-                {"x": 8.5, "y": 1.5},
-                {"x": 9.5, "y": 1.5},
-                {"x": 10.5, "y": 1.5},
-                {"x": 11.5, "y": 1.5},
-                {"x": 12.5, "y": 1.5},
-                {"x": 13.5, "y": 1.5},
-                {"x": 14.5, "y": 1.5},
-                {"x": 15.5, "y": 1.5},
-                {"x": 16.5, "y": 1.5},
-                {"x": 17.5, "y": 1.5},
-                {"x": 18.5, "y": 1.5},
-
-                {"x": 0, "y": 2.5},
-                {"x": 1, "y": 2.5},
-                {"x": 2, "y": 2.5},
-                {"x": 3, "y": 2.5},
-
-                {"x": 4.5, "y": 2.5, "w": 1.5},
-                {"x": 6, "y": 2.5},
-                {"x": 7, "y": 2.5},
-                {"x": 8, "y": 2.5},
-                {"x": 9, "y": 2.5},
-                {"x": 10, "y": 2.5},
-                {"x": 11, "y": 2.5},
-                {"x": 12, "y": 2.5},
-                {"x": 13, "y": 2.5},
-                {"x": 14, "y": 2.5},
-                {"x": 15, "y": 2.5},
-                {"x": 16, "y": 2.5},
-                {"x": 17, "y": 2.5},
-                {"x": 18, "y": 2.5, "w": 1.5},
-
-                {"x": 0, "y": 3.5},
-                {"x": 1, "y": 3.5},
-                {"x": 2, "y": 3.5},
-                {"x": 3, "y": 3.5},
-
-                {"x": 4.5, "y": 3.5, "w": 1.75},
-                {"x": 6.25, "y": 3.5},
-                {"x": 7.25, "y": 3.5},
-                {"x": 8.25, "y": 3.5},
-                {"x": 9.25, "y": 3.5},
-                {"x": 10.25, "y": 3.5},
-                {"x": 11.25, "y": 3.5},
-                {"x": 12.25, "y": 3.5},
-                {"x": 13.25, "y": 3.5},
-                {"x": 14.25, "y": 3.5},
-                {"x": 15.25, "y": 3.5},
-                {"x": 16.25, "y": 3.5},
-                {"x": 17.25, "y": 3.5, "w": 2.25},
-
-                {"x": 0, "y": 4.5},
-                {"x": 1, "y": 4.5},
-                {"x": 2, "y": 4.5},
-                {"x": 3, "y": 4.5},
-
-                {"x": 4.25, "y": 4.75},
-
-                {"x": 5.5, "y": 4.5, "w": 1.25},
-                {"x": 6.75, "y": 4.5},
-                {"x": 7.75, "y": 4.5},
-                {"x": 8.75, "y": 4.5},
-                {"x": 9.75, "y": 4.5},
-                {"x": 10.75, "y": 4.5},
-                {"x": 11.75, "y": 4.5},
-                {"x": 12.75, "y": 4.5},
-                {"x": 13.75, "y": 4.5},
-                {"x": 14.75, "y": 4.5},
-                {"x": 15.75, "y": 4.5},
-                {"x": 16.75, "y": 4.5, "w": 1.75},
-                {"x": 18.5, "y": 4.5},
-
-                {"x": 0, "y": 5.5},
-                {"x": 1, "y": 5.5},
-                {"x": 2, "y": 5.5},
-
-                {"x": 3.25, "y": 5.75},
-                {"x": 4.25, "y": 5.75},
-                {"x": 5.25, "y": 5.75},
-
-                {"x": 6.5, "y": 5.5, "w": 1.25},
-                {"x": 7.75, "y": 5.5, "w": 1.25},
-                {"x": 9, "y": 5.5, "w": 6.25},
-                {"x": 15.25, "y": 5.5, "w": 1.5},
-                {"x": 16.75, "y": 5.5, "w": 1.25},
-                {"x": 18, "y": 5.5, "w": 1.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [0, 1], "x": 2, "y": 0},
+                {"matrix": [1, 1], "x": 3, "y": 0},
+
+                {"matrix": [0, 2], "x": 4.5, "y": 0},
+
+                {"matrix": [1, 2], "x": 6.5, "y": 0},
+                {"matrix": [0, 3], "x": 7.5, "y": 0},
+                {"matrix": [1, 3], "x": 8.5, "y": 0},
+                {"matrix": [0, 4], "x": 9.5, "y": 0},
+
+                {"matrix": [1, 4], "x": 11, "y": 0},
+                {"matrix": [0, 5], "x": 12, "y": 0},
+                {"matrix": [1, 5], "x": 13, "y": 0},
+                {"matrix": [0, 6], "x": 14, "y": 0},
+
+                {"matrix": [1, 6], "x": 15.5, "y": 0},
+                {"matrix": [0, 7], "x": 16.5, "y": 0},
+                {"matrix": [1, 7], "x": 17.5, "y": 0},
+                {"matrix": [0, 8], "x": 18.5, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1.5},
+                {"matrix": [3, 0], "x": 1, "y": 1.5},
+                {"matrix": [2, 1], "x": 2, "y": 1.5},
+                {"matrix": [3, 1], "x": 3, "y": 1.5},
+
+                {"matrix": [2, 2], "x": 4.5, "y": 1.5},
+                {"matrix": [3, 2], "x": 5.5, "y": 1.5},
+                {"matrix": [2, 3], "x": 6.5, "y": 1.5},
+                {"matrix": [3, 3], "x": 7.5, "y": 1.5},
+                {"matrix": [2, 4], "x": 8.5, "y": 1.5},
+                {"matrix": [3, 4], "x": 9.5, "y": 1.5},
+                {"matrix": [2, 5], "x": 10.5, "y": 1.5},
+                {"matrix": [3, 5], "x": 11.5, "y": 1.5},
+                {"matrix": [2, 6], "x": 12.5, "y": 1.5},
+                {"matrix": [3, 6], "x": 13.5, "y": 1.5},
+                {"matrix": [2, 7], "x": 14.5, "y": 1.5},
+                {"matrix": [3, 7], "x": 15.5, "y": 1.5},
+                {"matrix": [2, 8], "x": 16.5, "y": 1.5},
+                {"matrix": [3, 8], "x": 17.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 18.5, "y": 1.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 2.5},
+                {"matrix": [5, 0], "x": 1, "y": 2.5},
+                {"matrix": [4, 1], "x": 2, "y": 2.5},
+                {"matrix": [5, 1], "x": 3, "y": 2.5},
+
+                {"matrix": [4, 2], "x": 4.5, "y": 2.5, "w": 1.5},
+                {"matrix": [5, 2], "x": 6, "y": 2.5},
+                {"matrix": [4, 3], "x": 7, "y": 2.5},
+                {"matrix": [5, 3], "x": 8, "y": 2.5},
+                {"matrix": [4, 4], "x": 9, "y": 2.5},
+                {"matrix": [5, 4], "x": 10, "y": 2.5},
+                {"matrix": [4, 5], "x": 11, "y": 2.5},
+                {"matrix": [5, 5], "x": 12, "y": 2.5},
+                {"matrix": [4, 6], "x": 13, "y": 2.5},
+                {"matrix": [5, 6], "x": 14, "y": 2.5},
+                {"matrix": [4, 7], "x": 15, "y": 2.5},
+                {"matrix": [5, 7], "x": 16, "y": 2.5},
+                {"matrix": [4, 8], "x": 17, "y": 2.5},
+                {"matrix": [5, 8], "x": 18, "y": 2.5, "w": 1.5},
+
+                {"matrix": [6, 0], "x": 0, "y": 3.5},
+                {"matrix": [7, 0], "x": 1, "y": 3.5},
+                {"matrix": [6, 1], "x": 2, "y": 3.5},
+                {"matrix": [7, 1], "x": 3, "y": 3.5},
+
+                {"matrix": [6, 2], "x": 4.5, "y": 3.5, "w": 1.75},
+                {"matrix": [7, 2], "x": 6.25, "y": 3.5},
+                {"matrix": [6, 3], "x": 7.25, "y": 3.5},
+                {"matrix": [7, 3], "x": 8.25, "y": 3.5},
+                {"matrix": [6, 4], "x": 9.25, "y": 3.5},
+                {"matrix": [7, 4], "x": 10.25, "y": 3.5},
+                {"matrix": [6, 5], "x": 11.25, "y": 3.5},
+                {"matrix": [7, 5], "x": 12.25, "y": 3.5},
+                {"matrix": [6, 6], "x": 13.25, "y": 3.5},
+                {"matrix": [7, 6], "x": 14.25, "y": 3.5},
+                {"matrix": [6, 7], "x": 15.25, "y": 3.5},
+                {"matrix": [7, 7], "x": 16.25, "y": 3.5},
+                {"matrix": [6, 8], "x": 17.25, "y": 3.5, "w": 2.25},
+
+                {"matrix": [8, 0], "x": 0, "y": 4.5},
+                {"matrix": [9, 0], "x": 1, "y": 4.5},
+                {"matrix": [8, 1], "x": 2, "y": 4.5},
+                {"matrix": [9, 1], "x": 3, "y": 4.5},
+
+                {"matrix": [8, 2], "x": 4.25, "y": 4.75},
+
+                {"matrix": [9, 2], "x": 5.5, "y": 4.5, "w": 1.25},
+                {"matrix": [8, 3], "x": 6.75, "y": 4.5},
+                {"matrix": [9, 3], "x": 7.75, "y": 4.5},
+                {"matrix": [8, 4], "x": 8.75, "y": 4.5},
+                {"matrix": [9, 4], "x": 9.75, "y": 4.5},
+                {"matrix": [8, 5], "x": 10.75, "y": 4.5},
+                {"matrix": [9, 5], "x": 11.75, "y": 4.5},
+                {"matrix": [8, 6], "x": 12.75, "y": 4.5},
+                {"matrix": [9, 6], "x": 13.75, "y": 4.5},
+                {"matrix": [8, 7], "x": 14.75, "y": 4.5},
+                {"matrix": [9, 7], "x": 15.75, "y": 4.5},
+                {"matrix": [8, 8], "x": 16.75, "y": 4.5, "w": 1.75},
+                {"matrix": [9, 8], "x": 18.5, "y": 4.5},
+
+                {"matrix": [10, 0], "x": 0, "y": 5.5},
+                {"matrix": [11, 0], "x": 1, "y": 5.5},
+                {"matrix": [10, 1], "x": 2, "y": 5.5},
+
+                {"matrix": [11, 1], "x": 3.25, "y": 5.75},
+                {"matrix": [10, 2], "x": 4.25, "y": 5.75},
+                {"matrix": [11, 2], "x": 5.25, "y": 5.75},
+
+                {"matrix": [10, 3], "x": 6.5, "y": 5.5, "w": 1.25},
+                {"matrix": [11, 3], "x": 7.75, "y": 5.5, "w": 1.25},
+                {"matrix": [11, 5], "x": 9, "y": 5.5, "w": 6.25},
+                {"matrix": [11, 7], "x": 15.25, "y": 5.5, "w": 1.5},
+                {"matrix": [10, 8], "x": 16.75, "y": 5.5, "w": 1.25},
+                {"matrix": [11, 8], "x": 18, "y": 5.5, "w": 1.5}
             ]
         }
     }

+ 89 - 88
keyboards/aeboards/ext65/rev1/info.json

@@ -17,103 +17,104 @@
     "layouts": {
         "LAYOUT_ext65": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [0, 1], "x": 2, "y": 0},
+                {"matrix": [1, 1], "x": 3, "y": 0},
 
-                {"x": 4.5, "y": 0},
-                {"x": 5.5, "y": 0},
-                {"x": 6.5, "y": 0},
-                {"x": 7.5, "y": 0},
-                {"x": 8.5, "y": 0},
-                {"x": 9.5, "y": 0},
-                {"x": 10.5, "y": 0},
-                {"x": 11.5, "y": 0},
-                {"x": 12.5, "y": 0},
-                {"x": 13.5, "y": 0},
-                {"x": 14.5, "y": 0},
-                {"x": 15.5, "y": 0},
-                {"x": 16.5, "y": 0},
-                {"x": 17.5, "y": 0},
-                {"x": 18.5, "y": 0},
-                {"x": 19.5, "y": 0},
+                {"matrix": [0, 2], "x": 4.5, "y": 0},
+                {"matrix": [1, 2], "x": 5.5, "y": 0},
+                {"matrix": [0, 3], "x": 6.5, "y": 0},
+                {"matrix": [1, 3], "x": 7.5, "y": 0},
+                {"matrix": [0, 4], "x": 8.5, "y": 0},
+                {"matrix": [1, 4], "x": 9.5, "y": 0},
+                {"matrix": [0, 5], "x": 10.5, "y": 0},
+                {"matrix": [1, 5], "x": 11.5, "y": 0},
+                {"matrix": [0, 6], "x": 12.5, "y": 0},
+                {"matrix": [1, 6], "x": 13.5, "y": 0},
+                {"matrix": [0, 7], "x": 14.5, "y": 0},
+                {"matrix": [1, 7], "x": 15.5, "y": 0},
+                {"matrix": [0, 8], "x": 16.5, "y": 0},
+                {"matrix": [1, 8], "x": 17.5, "y": 0},
+                {"matrix": [5, 8], "x": 18.5, "y": 0},
+                {"matrix": [0, 9], "x": 19.5, "y": 0},
 
-                {"x": 0, "y": 1},
-                {"x": 1, "y": 1},
-                {"x": 2, "y": 1},
-                {"x": 3, "y": 1},
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [2, 1], "x": 2, "y": 1},
+                {"matrix": [3, 1], "x": 3, "y": 1},
 
-                {"x": 4.5, "y": 1, "w": 1.5},
-                {"x": 6, "y": 1},
-                {"x": 7, "y": 1},
-                {"x": 8, "y": 1},
-                {"x": 9, "y": 1},
-                {"x": 10, "y": 1},
-                {"x": 11, "y": 1},
-                {"x": 12, "y": 1},
-                {"x": 13, "y": 1},
-                {"x": 14, "y": 1},
-                {"x": 15, "y": 1},
-                {"x": 16, "y": 1},
-                {"x": 17, "y": 1},
-                {"x": 18, "y": 1, "w": 1.5},
-                {"x": 19.5, "y": 1},
+                {"matrix": [2, 2], "x": 4.5, "y": 1, "w": 1.5},
+                {"matrix": [3, 2], "x": 6, "y": 1},
+                {"matrix": [2, 3], "x": 7, "y": 1},
+                {"matrix": [3, 3], "x": 8, "y": 1},
+                {"matrix": [2, 4], "x": 9, "y": 1},
+                {"matrix": [3, 4], "x": 10, "y": 1},
+                {"matrix": [2, 5], "x": 11, "y": 1},
+                {"matrix": [3, 5], "x": 12, "y": 1},
+                {"matrix": [2, 6], "x": 13, "y": 1},
+                {"matrix": [3, 6], "x": 14, "y": 1},
+                {"matrix": [2, 7], "x": 15, "y": 1},
+                {"matrix": [3, 7], "x": 16, "y": 1},
+                {"matrix": [2, 8], "x": 17, "y": 1},
+                {"matrix": [3, 8], "x": 18, "y": 1, "w": 1.5},
+                {"matrix": [2, 9], "x": 19.5, "y": 1},
 
-                {"x": 0, "y": 2},
-                {"x": 1, "y": 2},
-                {"x": 2, "y": 2},
-                {"x": 3, "y": 2},
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [4, 1], "x": 2, "y": 2},
+                {"matrix": [5, 1], "x": 3, "y": 2},
 
-                {"x": 4.5, "y": 2, "w": 1.75},
-                {"x": 6.25, "y": 2},
-                {"x": 7.25, "y": 2},
-                {"x": 8.25, "y": 2},
-                {"x": 9.25, "y": 2},
-                {"x": 10.25, "y": 2},
-                {"x": 11.25, "y": 2},
-                {"x": 12.25, "y": 2},
-                {"x": 13.25, "y": 2},
-                {"x": 14.25, "y": 2},
-                {"x": 15.25, "y": 2},
-                {"x": 16.25, "y": 2},
-                {"x": 17.25, "y": 2, "w": 2.25},
-                {"x": 19.5, "y": 2},
+                {"matrix": [4, 2], "x": 4.5, "y": 2, "w": 1.75},
+                {"matrix": [5, 2], "x": 6.25, "y": 2},
+                {"matrix": [4, 3], "x": 7.25, "y": 2},
+                {"matrix": [5, 3], "x": 8.25, "y": 2},
+                {"matrix": [4, 4], "x": 9.25, "y": 2},
+                {"matrix": [5, 4], "x": 10.25, "y": 2},
+                {"matrix": [4, 5], "x": 11.25, "y": 2},
+                {"matrix": [5, 5], "x": 12.25, "y": 2},
+                {"matrix": [4, 6], "x": 13.25, "y": 2},
+                {"matrix": [5, 6], "x": 14.25, "y": 2},
+                {"matrix": [4, 7], "x": 15.25, "y": 2},
+                {"matrix": [5, 7], "x": 16.25, "y": 2},
+                {"matrix": [4, 8], "x": 17.25, "y": 2, "w": 2.25},
+                {"matrix": [4, 9], "x": 19.5, "y": 2},
 
-                {"x": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"x": 2, "y": 3},
-                {"x": 3, "y": 3},
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [6, 1], "x": 2, "y": 3},
+                {"matrix": [7, 1], "x": 3, "y": 3},
 
-                {"x": 4.5, "y": 3, "w": 2.25},
-                {"x": 6.75, "y": 3},
-                {"x": 7.75, "y": 3},
-                {"x": 8.75, "y": 3},
-                {"x": 9.75, "y": 3},
-                {"x": 10.75, "y": 3},
-                {"x": 11.75, "y": 3},
-                {"x": 12.75, "y": 3},
-                {"x": 13.75, "y": 3},
-                {"x": 14.75, "y": 3},
-                {"x": 15.75, "y": 3},
-                {"x": 16.75, "y": 3, "w": 1.75},
-                {"x": 18.5, "y": 3},
-                {"x": 19.5, "y": 3},
+                {"matrix": [6, 2], "x": 4.5, "y": 3, "w": 2.25},
+                {"matrix": [7, 2], "x": 6.75, "y": 3},
+                {"matrix": [6, 3], "x": 7.75, "y": 3},
+                {"matrix": [7, 3], "x": 8.75, "y": 3},
+                {"matrix": [6, 4], "x": 9.75, "y": 3},
+                {"matrix": [7, 4], "x": 10.75, "y": 3},
+                {"matrix": [6, 5], "x": 11.75, "y": 3},
+                {"matrix": [7, 5], "x": 12.75, "y": 3},
+                {"matrix": [6, 6], "x": 13.75, "y": 3},
+                {"matrix": [7, 6], "x": 14.75, "y": 3},
+                {"matrix": [6, 7], "x": 15.75, "y": 3},
+                {"matrix": [7, 8], "x": 16.75, "y": 3, "w": 1.75},
+                {"matrix": [6, 8], "x": 18.5, "y": 3},
+                {"matrix": [7, 9], "x": 19.5, "y": 3},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4.5, "y": 4, "w": 1.5},
-                {"x": 6, "y": 4},
-                {"x": 7, "y": 4, "w": 1.5},
-                {"x": 8.5, "y": 4, "w": 6.25},
-                {"x": 14.75, "y": 4, "w": 1.25},
-                {"x": 16, "y": 4},
+                {"matrix": [8, 0], "x": 0, "y": 4},
+                {"matrix": [9, 0], "x": 1, "y": 4},
+                {"matrix": [8, 1], "x": 2, "y": 4},
+                {"matrix": [9, 1], "x": 3, "y": 4},
 
-                {"x": 17.5, "y": 4},
-                {"x": 18.5, "y": 4},
-                {"x": 19.5, "y": 4}
+                {"matrix": [8, 2], "x": 4.5, "y": 4, "w": 1.5},
+                {"matrix": [9, 2], "x": 6, "y": 4},
+                {"matrix": [8, 3], "x": 7, "y": 4, "w": 1.5},
+                {"matrix": [8, 5], "x": 8.5, "y": 4, "w": 6.25},
+                {"matrix": [9, 6], "x": 14.75, "y": 4, "w": 1.25},
+                {"matrix": [8, 7], "x": 16, "y": 4},
+
+                {"matrix": [9, 8], "x": 17.5, "y": 4},
+                {"matrix": [8, 8], "x": 18.5, "y": 4},
+                {"matrix": [9, 9], "x": 19.5, "y": 4}
             ]
         }
     }

+ 1 - 1
keyboards/aeboards/ext65/rev1/rev1.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "rev1.h"
+#include "quantum.h"
 
 void keyboard_pre_init_user(void) {
   // Call the keyboard pre init code.

+ 0 - 40
keyboards/aeboards/ext65/rev1/rev1.h

@@ -1,40 +0,0 @@
-/* Copyright 2020 Harrison Chan (Xelus)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ____ KC_NO
-
-#define LAYOUT_ext65( \
-  K000, K100, K001, K101,  K002, K102, K003, K103, K004, K104, K005, K105, K006, K106, K007, K107, K008, K108, K508, K009, \
-  K200, K300, K201, K301,  K202, K302, K203, K303, K204, K304, K205, K305, K206, K306, K207, K307, K208, K308,       K209, \
-  K400, K500, K401, K501,  K402, K502, K403, K503, K404, K504, K405, K505, K406, K506, K407, K507, K408,             K409, \
-  K600, K700, K601, K701,  K602, K702, K603, K703, K604, K704, K605, K705, K606, K706, K607, K708,             K608, K709, \
-  K800, K900, K801, K901,  K802, K902, K803,                   K805,             K906, K807,             K908, K808, K909  \
-) { \
-  { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \
-  { K100, K101, K102, K103, K104, K105, K106, K107, K108, ____ }, \
-  { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \
-  { K300, K301, K302, K303, K304, K305, K306, K307, K308, ____ }, \
-  { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409 }, \
-  { K500, K501, K502, K503, K504, K505, K506, K507, K508, ____ }, \
-  { K600, K601, K602, K603, K604, K605, K606, K607, K608, ____ }, \
-  { K700, K701, K702, K703, K704, K705, K706, ____, K708, K709 }, \
-  { K800, K801, K802, K803, ____, K805, ____, K807, K808, ____ }, \
-  { K900, K901, K902, ____, ____, ____, K906, ____, K908, K909 } \
-}

+ 89 - 88
keyboards/aeboards/ext65/rev2/info.json

@@ -26,103 +26,104 @@
     "layouts": {
         "LAYOUT_ext65": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [0, 1], "x": 2, "y": 0},
+                {"matrix": [1, 1], "x": 3, "y": 0},
 
-                {"x": 4.5, "y": 0},
-                {"x": 5.5, "y": 0},
-                {"x": 6.5, "y": 0},
-                {"x": 7.5, "y": 0},
-                {"x": 8.5, "y": 0},
-                {"x": 9.5, "y": 0},
-                {"x": 10.5, "y": 0},
-                {"x": 11.5, "y": 0},
-                {"x": 12.5, "y": 0},
-                {"x": 13.5, "y": 0},
-                {"x": 14.5, "y": 0},
-                {"x": 15.5, "y": 0},
-                {"x": 16.5, "y": 0},
-                {"x": 17.5, "y": 0},
-                {"x": 18.5, "y": 0},
-                {"x": 19.5, "y": 0},
+                {"matrix": [0, 2], "x": 4.5, "y": 0},
+                {"matrix": [1, 2], "x": 5.5, "y": 0},
+                {"matrix": [0, 3], "x": 6.5, "y": 0},
+                {"matrix": [1, 3], "x": 7.5, "y": 0},
+                {"matrix": [0, 4], "x": 8.5, "y": 0},
+                {"matrix": [1, 4], "x": 9.5, "y": 0},
+                {"matrix": [0, 5], "x": 10.5, "y": 0},
+                {"matrix": [1, 5], "x": 11.5, "y": 0},
+                {"matrix": [0, 6], "x": 12.5, "y": 0},
+                {"matrix": [1, 6], "x": 13.5, "y": 0},
+                {"matrix": [0, 7], "x": 14.5, "y": 0},
+                {"matrix": [1, 7], "x": 15.5, "y": 0},
+                {"matrix": [0, 8], "x": 16.5, "y": 0},
+                {"matrix": [1, 8], "x": 17.5, "y": 0},
+                {"matrix": [5, 8], "x": 18.5, "y": 0},
+                {"matrix": [0, 9], "x": 19.5, "y": 0},
 
-                {"x": 0, "y": 1},
-                {"x": 1, "y": 1},
-                {"x": 2, "y": 1},
-                {"x": 3, "y": 1},
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [2, 1], "x": 2, "y": 1},
+                {"matrix": [3, 1], "x": 3, "y": 1},
 
-                {"x": 4.5, "y": 1, "w": 1.5},
-                {"x": 6, "y": 1},
-                {"x": 7, "y": 1},
-                {"x": 8, "y": 1},
-                {"x": 9, "y": 1},
-                {"x": 10, "y": 1},
-                {"x": 11, "y": 1},
-                {"x": 12, "y": 1},
-                {"x": 13, "y": 1},
-                {"x": 14, "y": 1},
-                {"x": 15, "y": 1},
-                {"x": 16, "y": 1},
-                {"x": 17, "y": 1},
-                {"x": 18, "y": 1, "w": 1.5},
-                {"x": 19.5, "y": 1},
+                {"matrix": [2, 2], "x": 4.5, "y": 1, "w": 1.5},
+                {"matrix": [3, 2], "x": 6, "y": 1},
+                {"matrix": [2, 3], "x": 7, "y": 1},
+                {"matrix": [3, 3], "x": 8, "y": 1},
+                {"matrix": [2, 4], "x": 9, "y": 1},
+                {"matrix": [3, 4], "x": 10, "y": 1},
+                {"matrix": [2, 5], "x": 11, "y": 1},
+                {"matrix": [3, 5], "x": 12, "y": 1},
+                {"matrix": [2, 6], "x": 13, "y": 1},
+                {"matrix": [3, 6], "x": 14, "y": 1},
+                {"matrix": [2, 7], "x": 15, "y": 1},
+                {"matrix": [3, 7], "x": 16, "y": 1},
+                {"matrix": [2, 8], "x": 17, "y": 1},
+                {"matrix": [3, 8], "x": 18, "y": 1, "w": 1.5},
+                {"matrix": [2, 9], "x": 19.5, "y": 1},
 
-                {"x": 0, "y": 2},
-                {"x": 1, "y": 2},
-                {"x": 2, "y": 2},
-                {"x": 3, "y": 2},
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [4, 1], "x": 2, "y": 2},
+                {"matrix": [5, 1], "x": 3, "y": 2},
 
-                {"x": 4.5, "y": 2, "w": 1.75},
-                {"x": 6.25, "y": 2},
-                {"x": 7.25, "y": 2},
-                {"x": 8.25, "y": 2},
-                {"x": 9.25, "y": 2},
-                {"x": 10.25, "y": 2},
-                {"x": 11.25, "y": 2},
-                {"x": 12.25, "y": 2},
-                {"x": 13.25, "y": 2},
-                {"x": 14.25, "y": 2},
-                {"x": 15.25, "y": 2},
-                {"x": 16.25, "y": 2},
-                {"x": 17.25, "y": 2, "w": 2.25},
-                {"x": 19.5, "y": 2},
+                {"matrix": [4, 2], "x": 4.5, "y": 2, "w": 1.75},
+                {"matrix": [5, 2], "x": 6.25, "y": 2},
+                {"matrix": [4, 3], "x": 7.25, "y": 2},
+                {"matrix": [5, 3], "x": 8.25, "y": 2},
+                {"matrix": [4, 4], "x": 9.25, "y": 2},
+                {"matrix": [5, 4], "x": 10.25, "y": 2},
+                {"matrix": [4, 5], "x": 11.25, "y": 2},
+                {"matrix": [5, 5], "x": 12.25, "y": 2},
+                {"matrix": [4, 6], "x": 13.25, "y": 2},
+                {"matrix": [5, 6], "x": 14.25, "y": 2},
+                {"matrix": [4, 7], "x": 15.25, "y": 2},
+                {"matrix": [5, 7], "x": 16.25, "y": 2},
+                {"matrix": [4, 8], "x": 17.25, "y": 2, "w": 2.25},
+                {"matrix": [4, 9], "x": 19.5, "y": 2},
 
-                {"x": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"x": 2, "y": 3},
-                {"x": 3, "y": 3},
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [6, 1], "x": 2, "y": 3},
+                {"matrix": [7, 1], "x": 3, "y": 3},
 
-                {"x": 4.5, "y": 3, "w": 2.25},
-                {"x": 6.75, "y": 3},
-                {"x": 7.75, "y": 3},
-                {"x": 8.75, "y": 3},
-                {"x": 9.75, "y": 3},
-                {"x": 10.75, "y": 3},
-                {"x": 11.75, "y": 3},
-                {"x": 12.75, "y": 3},
-                {"x": 13.75, "y": 3},
-                {"x": 14.75, "y": 3},
-                {"x": 15.75, "y": 3},
-                {"x": 16.75, "y": 3, "w": 1.75},
-                {"x": 18.5, "y": 3},
-                {"x": 19.5, "y": 3},
+                {"matrix": [6, 2], "x": 4.5, "y": 3, "w": 2.25},
+                {"matrix": [7, 2], "x": 6.75, "y": 3},
+                {"matrix": [6, 3], "x": 7.75, "y": 3},
+                {"matrix": [7, 3], "x": 8.75, "y": 3},
+                {"matrix": [6, 4], "x": 9.75, "y": 3},
+                {"matrix": [7, 4], "x": 10.75, "y": 3},
+                {"matrix": [6, 5], "x": 11.75, "y": 3},
+                {"matrix": [7, 5], "x": 12.75, "y": 3},
+                {"matrix": [6, 6], "x": 13.75, "y": 3},
+                {"matrix": [7, 6], "x": 14.75, "y": 3},
+                {"matrix": [6, 7], "x": 15.75, "y": 3},
+                {"matrix": [7, 8], "x": 16.75, "y": 3, "w": 1.75},
+                {"matrix": [6, 8], "x": 18.5, "y": 3},
+                {"matrix": [7, 9], "x": 19.5, "y": 3},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4.5, "y": 4, "w": 1.5},
-                {"x": 6, "y": 4},
-                {"x": 7, "y": 4, "w": 1.5},
-                {"x": 8.5, "y": 4, "w": 6.25},
-                {"x": 14.75, "y": 4, "w": 1.25},
-                {"x": 16, "y": 4},
+                {"matrix": [8, 0], "x": 0, "y": 4},
+                {"matrix": [9, 0], "x": 1, "y": 4},
+                {"matrix": [8, 1], "x": 2, "y": 4},
+                {"matrix": [9, 1], "x": 3, "y": 4},
 
-                {"x": 17.5, "y": 4},
-                {"x": 18.5, "y": 4},
-                {"x": 19.5, "y": 4}
+                {"matrix": [8, 2], "x": 4.5, "y": 4, "w": 1.5},
+                {"matrix": [9, 2], "x": 6, "y": 4},
+                {"matrix": [8, 3], "x": 7, "y": 4, "w": 1.5},
+                {"matrix": [8, 5], "x": 8.5, "y": 4, "w": 6.25},
+                {"matrix": [9, 6], "x": 14.75, "y": 4, "w": 1.25},
+                {"matrix": [8, 7], "x": 16, "y": 4},
+
+                {"matrix": [9, 8], "x": 17.5, "y": 4},
+                {"matrix": [8, 8], "x": 18.5, "y": 4},
+                {"matrix": [9, 9], "x": 19.5, "y": 4}
             ]
         }
     }

+ 1 - 1
keyboards/aeboards/ext65/rev2/rev2.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "rev2.h"
+#include "quantum.h"
 
 // Tested and verified working on ext65rev2
 void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }

+ 0 - 40
keyboards/aeboards/ext65/rev2/rev2.h

@@ -1,40 +0,0 @@
-/* Copyright 2020 Harrison Chan (Xelus)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ____ KC_NO
-
-#define LAYOUT_ext65( \
-  K000, K100, K001, K101,  K002, K102, K003, K103, K004, K104, K005, K105, K006, K106, K007, K107, K008, K108, K508, K009, \
-  K200, K300, K201, K301,  K202, K302, K203, K303, K204, K304, K205, K305, K206, K306, K207, K307, K208, K308,       K209, \
-  K400, K500, K401, K501,  K402, K502, K403, K503, K404, K504, K405, K505, K406, K506, K407, K507, K408,             K409, \
-  K600, K700, K601, K701,  K602, K702, K603, K703, K604, K704, K605, K705, K606, K706, K607, K708,             K608, K709, \
-  K800, K900, K801, K901,  K802, K902, K803,                   K805,             K906, K807,             K908, K808, K909  \
-) { \
-  { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \
-  { K100, K101, K102, K103, K104, K105, K106, K107, K108, ____ }, \
-  { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \
-  { K300, K301, K302, K303, K304, K305, K306, K307, K308, ____ }, \
-  { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409 }, \
-  { K500, K501, K502, K503, K504, K505, K506, K507, K508, ____ }, \
-  { K600, K601, K602, K603, K604, K605, K606, K607, K608, ____ }, \
-  { K700, K701, K702, K703, K704, K705, K706, ____, K708, K709 }, \
-  { K800, K801, K802, K803, ____, K805, ____, K807, K808, ____ }, \
-  { K900, K901, K902, ____, ____, ____, K906, ____, K908, K909 } \
-}

+ 93 - 419
keyboards/aeboards/ext65/rev3/info.json

@@ -22,425 +22,99 @@
     "layouts": {
         "LAYOUT_ext65_hotswap": {
             "layout": [
-                {
-                    "x": 0,
-                    "y": 0
-                },
-                {
-                    "x": 1,
-                    "y": 0
-                },
-                {
-                    "x": 2,
-                    "y": 0
-                },
-                {
-                    "x": 3,
-                    "y": 0
-                },
-                {
-                    "label": "Esc",
-                    "x": 4.5,
-                    "y": 0
-                },
-                {
-                    "label": "!",
-                    "x": 5.5,
-                    "y": 0
-                },
-                {
-                    "label": "@",
-                    "x": 6.5,
-                    "y": 0
-                },
-                {
-                    "label": "#",
-                    "x": 7.5,
-                    "y": 0
-                },
-                {
-                    "label": "$",
-                    "x": 8.5,
-                    "y": 0
-                },
-                {
-                    "label": "%",
-                    "x": 9.5,
-                    "y": 0
-                },
-                {
-                    "label": "^",
-                    "x": 10.5,
-                    "y": 0
-                },
-                {
-                    "label": "&",
-                    "x": 11.5,
-                    "y": 0
-                },
-                {
-                    "label": "*",
-                    "x": 12.5,
-                    "y": 0
-                },
-                {
-                    "label": "(",
-                    "x": 13.5,
-                    "y": 0
-                },
-                {
-                    "label": ")",
-                    "x": 14.5,
-                    "y": 0
-                },
-                {
-                    "label": "_",
-                    "x": 15.5,
-                    "y": 0
-                },
-                {
-                    "label": "+",
-                    "x": 16.5,
-                    "y": 0
-                },
-                {
-                    "label": "Backspace",
-                    "x": 17.5,
-                    "y": 0,
-                    "w": 2
-                },
-                {
-                    "label": "Home",
-                    "x": 19.5,
-                    "y": 0
-                },
-                {
-                    "x": 0,
-                    "y": 1,
-                    "h": 2
-                },
-                {
-                    "x": 1,
-                    "y": 1
-                },
-                {
-                    "x": 2,
-                    "y": 1
-                },
-                {
-                    "x": 3,
-                    "y": 1
-                },
-                {
-                    "label": "Tab",
-                    "x": 4.5,
-                    "y": 1,
-                    "w": 1.5
-                },
-                {
-                    "label": "Q",
-                    "x": 6,
-                    "y": 1
-                },
-                {
-                    "label": "W",
-                    "x": 7,
-                    "y": 1
-                },
-                {
-                    "label": "E",
-                    "x": 8,
-                    "y": 1
-                },
-                {
-                    "label": "R",
-                    "x": 9,
-                    "y": 1
-                },
-                {
-                    "label": "T",
-                    "x": 10,
-                    "y": 1
-                },
-                {
-                    "label": "Y",
-                    "x": 11,
-                    "y": 1
-                },
-                {
-                    "label": "U",
-                    "x": 12,
-                    "y": 1
-                },
-                {
-                    "label": "I",
-                    "x": 13,
-                    "y": 1
-                },
-                {
-                    "label": "O",
-                    "x": 14,
-                    "y": 1
-                },
-                {
-                    "label": "P",
-                    "x": 15,
-                    "y": 1
-                },
-                {
-                    "label": "{",
-                    "x": 16,
-                    "y": 1
-                },
-                {
-                    "label": "}",
-                    "x": 17,
-                    "y": 1
-                },
-                {
-                    "label": "|",
-                    "x": 18,
-                    "y": 1,
-                    "w": 1.5
-                },
-                {
-                    "label": "PgUp",
-                    "x": 19.5,
-                    "y": 1
-                },
-                {
-                    "x": 1,
-                    "y": 2
-                },
-                {
-                    "x": 2,
-                    "y": 2
-                },
-                {
-                    "x": 3,
-                    "y": 2
-                },
-                {
-                    "label": "Caps Lock",
-                    "x": 4.5,
-                    "y": 2,
-                    "w": 1.75
-                },
-                {
-                    "label": "A",
-                    "x": 6.25,
-                    "y": 2
-                },
-                {
-                    "label": "S",
-                    "x": 7.25,
-                    "y": 2
-                },
-                {
-                    "label": "D",
-                    "x": 8.25,
-                    "y": 2
-                },
-                {
-                    "label": "F",
-                    "x": 9.25,
-                    "y": 2
-                },
-                {
-                    "label": "G",
-                    "x": 10.25,
-                    "y": 2
-                },
-                {
-                    "label": "H",
-                    "x": 11.25,
-                    "y": 2
-                },
-                {
-                    "label": "J",
-                    "x": 12.25,
-                    "y": 2
-                },
-                {
-                    "label": "K",
-                    "x": 13.25,
-                    "y": 2
-                },
-                {
-                    "label": "L",
-                    "x": 14.25,
-                    "y": 2
-                },
-                {
-                    "label": ":",
-                    "x": 15.25,
-                    "y": 2
-                },
-                {
-                    "label": "\"",
-                    "x": 16.25,
-                    "y": 2
-                },
-                {
-                    "label": "Enter",
-                    "x": 17.25,
-                    "y": 2,
-                    "w": 2.25
-                },
-                {
-                    "label": "PgDn",
-                    "x": 19.5,
-                    "y": 2
-                },
-                {
-                    "x": 0,
-                    "y": 3,
-                    "h": 2
-                },
-                {
-                    "x": 1,
-                    "y": 3
-                },
-                {
-                    "x": 2,
-                    "y": 3
-                },
-                {
-                    "x": 3,
-                    "y": 3
-                },
-                {
-                    "label": "Shift",
-                    "x": 4.5,
-                    "y": 3,
-                    "w": 2.25
-                },
-                {
-                    "label": "Z",
-                    "x": 6.75,
-                    "y": 3
-                },
-                {
-                    "label": "X",
-                    "x": 7.75,
-                    "y": 3
-                },
-                {
-                    "label": "C",
-                    "x": 8.75,
-                    "y": 3
-                },
-                {
-                    "label": "V",
-                    "x": 9.75,
-                    "y": 3
-                },
-                {
-                    "label": "B",
-                    "x": 10.75,
-                    "y": 3
-                },
-                {
-                    "label": "N",
-                    "x": 11.75,
-                    "y": 3
-                },
-                {
-                    "label": "M",
-                    "x": 12.75,
-                    "y": 3
-                },
-                {
-                    "label": "<",
-                    "x": 13.75,
-                    "y": 3
-                },
-                {
-                    "label": ">",
-                    "x": 14.75,
-                    "y": 3
-                },
-                {
-                    "label": "?",
-                    "x": 15.75,
-                    "y": 3
-                },
-                {
-                    "label": "Shift",
-                    "x": 16.75,
-                    "y": 3,
-                    "w": 1.75
-                },
-                {
-                    "label": "\u2191",
-                    "x": 18.5,
-                    "y": 3
-                },
-                {
-                    "label": "End",
-                    "x": 19.5,
-                    "y": 3
-                },
-                {
-                    "x": 1,
-                    "y": 4
-                },
-                {
-                    "x": 2,
-                    "y": 4,
-                    "w": 2
-                },
-                {
-                    "label": "Ctrl",
-                    "x": 4.5,
-                    "y": 4,
-                    "w": 1.25
-                },
-                {
-                    "label": "Win",
-                    "x": 5.75,
-                    "y": 4,
-                    "w": 1.25
-                },
-                {
-                    "label": "Alt",
-                    "x": 7,
-                    "y": 4,
-                    "w": 1.25
-                },
-                {
-                    "label": "Space",
-                    "x": 8.25,
-                    "y": 4,
-                    "w": 6.25
-                },
-                {
-                    "label": "Alt",
-                    "x": 14.5,
-                    "y": 4,
-                    "w": 1.5
-                },
-                {
-                    "label": "Fn",
-                    "x": 16,
-                    "y": 4,
-                    "w": 1.5
-                },
-                {
-                    "label": "\u2190",
-                    "x": 17.5,
-                    "y": 4
-                },
-                {
-                    "label": "\u2193",
-                    "x": 18.5,
-                    "y": 4
-                },
-                {
-                    "label": "\u2192",
-                    "x": 19.5,
-                    "y": 4
-                }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [0, 1], "x": 2, "y": 0},
+                {"matrix": [1, 1], "x": 3, "y": 0},
+
+                {"matrix": [0, 2], "x": 4.5, "y": 0},
+                {"matrix": [1, 2], "x": 5.5, "y": 0},
+                {"matrix": [0, 3], "x": 6.5, "y": 0},
+                {"matrix": [1, 3], "x": 7.5, "y": 0},
+                {"matrix": [0, 4], "x": 8.5, "y": 0},
+                {"matrix": [1, 4], "x": 9.5, "y": 0},
+                {"matrix": [0, 5], "x": 10.5, "y": 0},
+                {"matrix": [1, 5], "x": 11.5, "y": 0},
+                {"matrix": [0, 6], "x": 12.5, "y": 0},
+                {"matrix": [1, 6], "x": 13.5, "y": 0},
+                {"matrix": [0, 7], "x": 14.5, "y": 0},
+                {"matrix": [1, 7], "x": 15.5, "y": 0},
+                {"matrix": [0, 8], "x": 16.5, "y": 0},
+                {"matrix": [1, 8], "x": 17.5, "y": 0, "w": 2},
+                {"matrix": [0, 9], "x": 19.5, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1, "h": 2},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [2, 1], "x": 2, "y": 1},
+                {"matrix": [3, 1], "x": 3, "y": 1},
+
+                {"matrix": [2, 2], "x": 4.5, "y": 1, "w": 1.5},
+                {"matrix": [3, 2], "x": 6, "y": 1},
+                {"matrix": [2, 3], "x": 7, "y": 1},
+                {"matrix": [3, 3], "x": 8, "y": 1},
+                {"matrix": [2, 4], "x": 9, "y": 1},
+                {"matrix": [3, 4], "x": 10, "y": 1},
+                {"matrix": [2, 5], "x": 11, "y": 1},
+                {"matrix": [3, 5], "x": 12, "y": 1},
+                {"matrix": [2, 6], "x": 13, "y": 1},
+                {"matrix": [3, 6], "x": 14, "y": 1},
+                {"matrix": [2, 7], "x": 15, "y": 1},
+                {"matrix": [3, 7], "x": 16, "y": 1},
+                {"matrix": [2, 8], "x": 17, "y": 1},
+                {"matrix": [3, 8], "x": 18, "y": 1, "w": 1.5},
+                {"matrix": [2, 9], "x": 19.5, "y": 1},
+
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [4, 1], "x": 2, "y": 2},
+                {"matrix": [5, 1], "x": 3, "y": 2},
+
+                {"matrix": [4, 2], "x": 4.5, "y": 2, "w": 1.75},
+                {"matrix": [5, 2], "x": 6.25, "y": 2},
+                {"matrix": [4, 3], "x": 7.25, "y": 2},
+                {"matrix": [5, 3], "x": 8.25, "y": 2},
+                {"matrix": [4, 4], "x": 9.25, "y": 2},
+                {"matrix": [5, 4], "x": 10.25, "y": 2},
+                {"matrix": [4, 5], "x": 11.25, "y": 2},
+                {"matrix": [5, 5], "x": 12.25, "y": 2},
+                {"matrix": [4, 6], "x": 13.25, "y": 2},
+                {"matrix": [5, 6], "x": 14.25, "y": 2},
+                {"matrix": [4, 7], "x": 15.25, "y": 2},
+                {"matrix": [5, 7], "x": 16.25, "y": 2},
+                {"matrix": [4, 8], "x": 17.25, "y": 2, "w": 2.25},
+                {"matrix": [4, 9], "x": 19.5, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3, "h": 2},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [6, 1], "x": 2, "y": 3},
+                {"matrix": [7, 1], "x": 3, "y": 3},
+
+                {"matrix": [6, 2], "x": 4.5, "y": 3, "w": 2.25},
+                {"matrix": [7, 2], "x": 6.75, "y": 3},
+                {"matrix": [6, 3], "x": 7.75, "y": 3},
+                {"matrix": [7, 3], "x": 8.75, "y": 3},
+                {"matrix": [6, 4], "x": 9.75, "y": 3},
+                {"matrix": [7, 4], "x": 10.75, "y": 3},
+                {"matrix": [6, 5], "x": 11.75, "y": 3},
+                {"matrix": [7, 5], "x": 12.75, "y": 3},
+                {"matrix": [6, 6], "x": 13.75, "y": 3},
+                {"matrix": [7, 6], "x": 14.75, "y": 3},
+                {"matrix": [6, 7], "x": 15.75, "y": 3},
+                {"matrix": [7, 8], "x": 16.75, "y": 3, "w": 1.75},
+                {"matrix": [6, 8], "x": 18.5, "y": 3},
+                {"matrix": [7, 9], "x": 19.5, "y": 3},
+
+                {"matrix": [9, 0], "x": 1, "y": 4},
+                {"matrix": [8, 1], "x": 2, "y": 4, "w": 2},
+
+                {"matrix": [8, 2], "x": 4.5, "y": 4, "w": 1.25},
+                {"matrix": [9, 2], "x": 5.75, "y": 4, "w": 1.25},
+                {"matrix": [8, 3], "x": 7, "y": 4, "w": 1.25},
+                {"matrix": [8, 5], "x": 8.25, "y": 4, "w": 6.25},
+                {"matrix": [9, 6], "x": 14.5, "y": 4, "w": 1.5},
+                {"matrix": [8, 7], "x": 16, "y": 4, "w": 1.5},
+                {"matrix": [9, 8], "x": 17.5, "y": 4},
+                {"matrix": [8, 8], "x": 18.5, "y": 4},
+                {"matrix": [9, 9], "x": 19.5, "y": 4}
             ]
         }
     }

+ 1 - 1
keyboards/aeboards/ext65/rev3/rev3.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "rev3.h"
+#include "quantum.h"
 
 // Tested and verified working on EXT65 Rev3
 void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }

+ 0 - 40
keyboards/aeboards/ext65/rev3/rev3.h

@@ -1,40 +0,0 @@
-/* Copyright 2022 Harrison Chan (Xelus)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ____ KC_NO
-
-#define LAYOUT_ext65_hotswap( \
-  K000, K100, K001, K101,  K002, K102, K003, K103, K004, K104, K005, K105, K006, K106, K007, K107, K008, K108, K009, \
-  K200, K300, K201, K301,  K202, K302, K203, K303, K204, K304, K205, K305, K206, K306, K207, K307, K208, K308, K209, \
-        K500, K401, K501,  K402, K502, K403, K503, K404, K504, K405, K505, K406, K506, K407, K507, K408,       K409, \
-  K600, K700, K601, K701,  K602, K702, K603, K703, K604, K704, K605, K705, K606, K706, K607, K708,       K608, K709, \
-        K900, K801,        K802, K902, K803,                   K805,             K906, K807,       K908, K808, K909  \
-) { \
-  { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \
-  { K100, K101, K102, K103, K104, K105, K106, K107, K108, ____ }, \
-  { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \
-  { K300, K301, K302, K303, K304, K305, K306, K307, K308, ____ }, \
-  { ____, K401, K402, K403, K404, K405, K406, K407, K408, K409 }, \
-  { K500, K501, K502, K503, K504, K505, K506, K507, ____, ____ }, \
-  { K600, K601, K602, K603, K604, K605, K606, K607, K608, ____ }, \
-  { K700, K701, K702, K703, K704, K705, K706, ____, K708, K709 }, \
-  { ____, K801, K802, K803, ____, K805, ____, K807, K808, ____ }, \
-  { K900, ____, K902, ____, ____, ____, K906, ____, K908, K909 } \
-}

+ 0 - 35
keyboards/alfredslab/swift65/hotswap/hotswap.h

@@ -1,35 +0,0 @@
-/* Copyright 2022 Steven Phillips (spooknik)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_7u_space( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
-    K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
-    K40, K41, K42, K46, K4B, K4C, K4D, K4E  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \
-    { XXX, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, K4E }, \
-}

+ 73 - 65
keyboards/alfredslab/swift65/hotswap/info.json

@@ -25,71 +25,79 @@
     "layouts": {
         "LAYOUT_7u_space": {
             "layout": [
-                { "label": "K00 (B1,F7)", "x": 0, "y": 0 },
-                { "label": "K01 (B1,F6)", "x": 1, "y": 0 },
-                { "label": "K02 (B1,F5)", "x": 2, "y": 0 },
-                { "label": "K03 (B1,F4)", "x": 3, "y": 0 },
-                { "label": "K04 (B1,F1)", "x": 4, "y": 0 },
-                { "label": "K05 (B1,F0)", "x": 5, "y": 0 },
-                { "label": "K06 (B1,C7)", "x": 6, "y": 0 },
-                { "label": "K07 (B1,C6)", "x": 7, "y": 0 },
-                { "label": "K08 (B1,B6)", "x": 8, "y": 0 },
-                { "label": "K09 (B1,B5)", "x": 9, "y": 0 },
-                { "label": "K0A (B1,B4)", "x": 10, "y": 0 },
-                { "label": "K0B (B1,D7)", "x": 11, "y": 0 },
-                { "label": "K0C (B1,D5)", "x": 12, "y": 0 },
-                { "label": "K0D (B1,D3)", "x": 13, "y": 0, "w": 2 },
-                { "label": "K0E (B1,D1)", "x": 15.25, "y": 0 },
-                { "label": "K10 (B2,F7)", "x": 0, "y": 1, "w": 1.5 },
-                { "label": "K11 (B2,F6)", "x": 1.5, "y": 1 },
-                { "label": "K12 (B2,F5)", "x": 2.5, "y": 1 },
-                { "label": "K13 (B2,F4)", "x": 3.5, "y": 1 },
-                { "label": "K14 (B2,F1)", "x": 4.5, "y": 1 },
-                { "label": "K15 (B2,F0)", "x": 5.5, "y": 1 },
-                { "label": "K16 (B2,C7)", "x": 6.5, "y": 1 },
-                { "label": "K17 (B2,C6)", "x": 7.5, "y": 1 },
-                { "label": "K18 (B2,B6)", "x": 8.5, "y": 1 },
-                { "label": "K19 (B2,B5)", "x": 9.5, "y": 1 },
-                { "label": "K1A (B2,B4)", "x": 10.5, "y": 1 },
-                { "label": "K1B (B2,D7)", "x": 11.5, "y": 1 },
-                { "label": "K1C (B2,D5)", "x": 12.5, "y": 1 },
-                { "label": "K1D (B2,D3)", "x": 13.5, "y": 1, "w": 1.5 },
-                { "label": "K1E (B2,D1)", "x": 15.25, "y": 1 },
-                { "label": "K20 (B3,F7)", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "K21 (B3,F6)", "x": 1.75, "y": 2 },
-                { "label": "K22 (B3,F5)", "x": 2.75, "y": 2 },
-                { "label": "K23 (B3,F4)", "x": 3.75, "y": 2 },
-                { "label": "K24 (B3,F1)", "x": 4.75, "y": 2 },
-                { "label": "K25 (B3,F0)", "x": 5.75, "y": 2 },
-                { "label": "K26 (B3,C7)", "x": 6.75, "y": 2 },
-                { "label": "K27 (B3,C6)", "x": 7.75, "y": 2 },
-                { "label": "K28 (B3,B6)", "x": 8.75, "y": 2 },
-                { "label": "K29 (B3,B5)", "x": 9.75, "y": 2 },
-                { "label": "K2A (B3,B4)", "x": 10.75, "y": 2 },
-                { "label": "K2B (B3,D7)", "x": 11.75, "y": 2 },
-                { "label": "K2D (B3,D3)", "x": 12.75, "y": 2, "w": 2.25 },
-                { "label": "K2E (B3,D1)", "x": 15.25, "y": 2 },
-                { "label": "K31 (D6,F6)", "x": 0, "y": 3, "w": 2.25 },
-                { "label": "K32 (D6,F5)", "x": 2.25, "y": 3 },
-                { "label": "K33 (D6,F4)", "x": 3.25, "y": 3 },
-                { "label": "K34 (D6,F1)", "x": 4.25, "y": 3 },
-                { "label": "K35 (D6,F0)", "x": 5.25, "y": 3 },
-                { "label": "K36 (D6,C7)", "x": 6.25, "y": 3 },
-                { "label": "K37 (D6,C6)", "x": 7.25, "y": 3 },
-                { "label": "K38 (D6,B6)", "x": 8.25, "y": 3 },
-                { "label": "K39 (D6,B5)", "x": 9.25, "y": 3 },
-                { "label": "K3A (D6,B4)", "x": 10.25, "y": 3 },
-                { "label": "K3B (D6,D7)", "x": 11.25, "y": 3 },
-                { "label": "K3C (D6,D5)", "x": 12.25, "y": 3, "w": 1.75 },
-                { "label": "K3D (D6,D3)", "x": 14, "y": 3 },
-                { "label": "K40 (D4,F7)", "x": 0, "y": 4, "w": 1.5 },
-                { "label": "K41 (D4,F6)", "x": 1.5, "y": 4},
-                { "label": "K42 (D4,F5)", "x": 2.5, "y": 4, "w": 1.5 },
-                { "label": "K46 (D4,C7)", "x": 4, "y": 4, "w": 7},
-                { "label": "K4B (D4,D7)", "x": 11, "y": 4, "w": 1.5 },
-                { "label": "K4C (D4,D5)", "x": 13, "y": 4 },
-                { "label": "K4D (D4,D3)", "x": 14, "y": 4 },
-                { "label": "K4E (D4,D1)", "x": 15, "y": 4 }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+                {"matrix": [0, 14], "x": 15.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"matrix": [1, 14], "x": 15.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [2, 14], "x": 15.25, "y": 2},
+
+                {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 296 - 280
keyboards/alfredslab/swift65/solder/info.json

@@ -25,298 +25,314 @@
     "layouts": {
         "LAYOUT_625u_space": {
             "layout": [
-                {"label":"K00 (B1,F7)", "x":0, "y":0},
-                {"label":"K01 (B1,F6)", "x":1, "y":0},
-                {"label":"K02 (B1,F5)", "x":2, "y":0},
-                {"label":"K03 (B1,F4)", "x":3, "y":0},
-                {"label":"K04 (B1,F1)", "x":4, "y":0},
-                {"label":"K05 (B1,F0)", "x":5, "y":0},
-                {"label":"K06 (B1,C7)", "x":6, "y":0},
-                {"label":"K07 (B1,C6)", "x":7, "y":0},
-                {"label":"K08 (B1,B6)", "x":8, "y":0},
-                {"label":"K09 (B1,B5)", "x":9, "y":0},
-                {"label":"K0A (B1,B4)", "x":10, "y":0},
-                {"label":"K0B (B1,D7)", "x":11, "y":0},
-                {"label":"K0C (B1,D5)", "x":12, "y":0},
-                {"label":"K0D (B1,D3)", "x":13, "y":0, "w":2},
-                {"label":"K0E (B1,D1)", "x":15.25, "y":0},
-
-                {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
-                {"label":"K11 (B2,F6)", "x":1.5, "y":1},
-                {"label":"K12 (B2,F5)", "x":2.5, "y":1},
-                {"label":"K13 (B2,F4)", "x":3.5, "y":1},
-                {"label":"K14 (B2,F1)", "x":4.5, "y":1},
-                {"label":"K15 (B2,F0)", "x":5.5, "y":1},
-                {"label":"K16 (B2,C7)", "x":6.5, "y":1},
-                {"label":"K17 (B2,C6)", "x":7.5, "y":1},
-                {"label":"K18 (B2,B6)", "x":8.5, "y":1},
-                {"label":"K19 (B2,B5)", "x":9.5, "y":1},
-                {"label":"K1A (B2,B4)", "x":10.5, "y":1},
-                {"label":"K1B (B2,D7)", "x":11.5, "y":1},
-                {"label":"K1C (B2,D5)", "x":12.5, "y":1},
-                {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
-                {"label":"K1E (B2,D1)", "x":15.25, "y":1},
-
-                {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
-                {"label":"K21 (B3,F6)", "x":1.75, "y":2},
-                {"label":"K22 (B3,F5)", "x":2.75, "y":2},
-                {"label":"K23 (B3,F4)", "x":3.75, "y":2},
-                {"label":"K24 (B3,F1)", "x":4.75, "y":2},
-                {"label":"K25 (B3,F0)", "x":5.75, "y":2},
-                {"label":"K26 (B3,C7)", "x":6.75, "y":2},
-                {"label":"K27 (B3,C6)", "x":7.75, "y":2},
-                {"label":"K28 (B3,B6)", "x":8.75, "y":2},
-                {"label":"K29 (B3,B5)", "x":9.75, "y":2},
-                {"label":"K2A (B3,B4)", "x":10.75, "y":2},
-                {"label":"K2B (B3,D7)", "x":11.75, "y":2},
-                {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
-                {"label":"K2E (B3,D1)", "x":15.25, "y":2},
-
-                {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
-                {"label":"K32 (D4,F5)", "x":2.25, "y":3},
-                {"label":"K33 (D4,F4)", "x":3.25, "y":3},
-                {"label":"K34 (D4,F1)", "x":4.25, "y":3},
-                {"label":"K35 (D4,F0)", "x":5.25, "y":3},
-                {"label":"K36 (D4,C7)", "x":6.25, "y":3},
-                {"label":"K37 (D4,C6)", "x":7.25, "y":3},
-                {"label":"K38 (D4,B6)", "x":8.25, "y":3},
-                {"label":"K39 (D4,B5)", "x":9.25, "y":3},
-                {"label":"K3A (D4,B4)", "x":10.25, "y":3},
-                {"label":"K3B (D4,D7)", "x":11.25, "y":3},
-                {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
-                {"label":"K3D (D4,D3)", "x":14, "y":3},
-
-                {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25},
-                {"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25},
-                {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25},
-                {"label":"K46 (D6,C7)", "x":3.75, "y":4, "w":6.25},
-                {"label":"K4A (D6,B4)", "x":10, "y":4, "w":1.25},
-                {"label":"K4B (D6,D7)", "x":11.25, "y":4, "w":1.25},
-                {"label":"K4C (D6,D5)", "x":13, "y":4},
-                {"label":"K4D (D6,D3)", "x":14, "y":4},
-                {"label":"K4E (D6,D1)", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+                {"matrix": [0, 14], "x": 15.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"matrix": [1, 14], "x": 15.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [2, 14], "x": 15.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_625u_space_split_bs": {
             "layout": [
-                {"label":"K00 (B1,F7)", "x":0, "y":0},
-                {"label":"K01 (B1,F6)", "x":1, "y":0},
-                {"label":"K02 (B1,F5)", "x":2, "y":0},
-                {"label":"K03 (B1,F4)", "x":3, "y":0},
-                {"label":"K04 (B1,F1)", "x":4, "y":0},
-                {"label":"K05 (B1,F0)", "x":5, "y":0},
-                {"label":"K06 (B1,C7)", "x":6, "y":0},
-                {"label":"K07 (B1,C6)", "x":7, "y":0},
-                {"label":"K08 (B1,B6)", "x":8, "y":0},
-                {"label":"K09 (B1,B5)", "x":9, "y":0},
-                {"label":"K0A (B1,B4)", "x":10, "y":0},
-                {"label":"K0B (B1,D7)", "x":11, "y":0},
-                {"label":"K0C (B1,D5)", "x":12, "y":0},
-                {"label":"K0D (B1,D3)", "x":13, "y":0},
-                {"label":"K0F (B1,D0)", "x":14, "y":0},
-                {"label":"K0E (B1,D1)", "x":15.25, "y":0},
-
-                {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
-                {"label":"K11 (B2,F6)", "x":1.5, "y":1},
-                {"label":"K12 (B2,F5)", "x":2.5, "y":1},
-                {"label":"K13 (B2,F4)", "x":3.5, "y":1},
-                {"label":"K14 (B2,F1)", "x":4.5, "y":1},
-                {"label":"K15 (B2,F0)", "x":5.5, "y":1},
-                {"label":"K16 (B2,C7)", "x":6.5, "y":1},
-                {"label":"K17 (B2,C6)", "x":7.5, "y":1},
-                {"label":"K18 (B2,B6)", "x":8.5, "y":1},
-                {"label":"K19 (B2,B5)", "x":9.5, "y":1},
-                {"label":"K1A (B2,B4)", "x":10.5, "y":1},
-                {"label":"K1B (B2,D7)", "x":11.5, "y":1},
-                {"label":"K1C (B2,D5)", "x":12.5, "y":1},
-                {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
-                {"label":"K1E (B2,D1)", "x":15.25, "y":1},
-
-                {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
-                {"label":"K21 (B3,F6)", "x":1.75, "y":2},
-                {"label":"K22 (B3,F5)", "x":2.75, "y":2},
-                {"label":"K23 (B3,F4)", "x":3.75, "y":2},
-                {"label":"K24 (B3,F1)", "x":4.75, "y":2},
-                {"label":"K25 (B3,F0)", "x":5.75, "y":2},
-                {"label":"K26 (B3,C7)", "x":6.75, "y":2},
-                {"label":"K27 (B3,C6)", "x":7.75, "y":2},
-                {"label":"K28 (B3,B6)", "x":8.75, "y":2},
-                {"label":"K29 (B3,B5)", "x":9.75, "y":2},
-                {"label":"K2A (B3,B4)", "x":10.75, "y":2},
-                {"label":"K2B (B3,D7)", "x":11.75, "y":2},
-                {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
-                {"label":"K2E (B3,D1)", "x":15.25, "y":2},
-
-                {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
-                {"label":"K32 (D4,F5)", "x":2.25, "y":3},
-                {"label":"K33 (D4,F4)", "x":3.25, "y":3},
-                {"label":"K34 (D4,F1)", "x":4.25, "y":3},
-                {"label":"K35 (D4,F0)", "x":5.25, "y":3},
-                {"label":"K36 (D4,C7)", "x":6.25, "y":3},
-                {"label":"K37 (D4,C6)", "x":7.25, "y":3},
-                {"label":"K38 (D4,B6)", "x":8.25, "y":3},
-                {"label":"K39 (D4,B5)", "x":9.25, "y":3},
-                {"label":"K3A (D4,B4)", "x":10.25, "y":3},
-                {"label":"K3B (D4,D7)", "x":11.25, "y":3},
-                {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
-                {"label":"K3D (D4,D3)", "x":14, "y":3},
-
-                {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25},
-                {"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25},
-                {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25},
-                {"label":"K46 (D6,C7)", "x":3.75, "y":4, "w":6.25},
-                {"label":"K4A (D6,B4)", "x":10, "y":4, "w":1.25},
-                {"label":"K4B (D6,D7)", "x":11.25, "y":4, "w":1.25},
-                {"label":"K4C (D6,D5)", "x":13, "y":4},
-                {"label":"K4D (D6,D3)", "x":14, "y":4},
-                {"label":"K4E (D6,D1)", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 15], "x": 14, "y": 0},
+
+                {"matrix": [0, 14], "x": 15.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"matrix": [1, 14], "x": 15.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [2, 14], "x": 15.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_7u_space": {
             "layout": [
-                {"label":"K00 (B1,F7)", "x":0, "y":0},
-                {"label":"K01 (B1,F6)", "x":1, "y":0},
-                {"label":"K02 (B1,F5)", "x":2, "y":0},
-                {"label":"K03 (B1,F4)", "x":3, "y":0},
-                {"label":"K04 (B1,F1)", "x":4, "y":0},
-                {"label":"K05 (B1,F0)", "x":5, "y":0},
-                {"label":"K06 (B1,C7)", "x":6, "y":0},
-                {"label":"K07 (B1,C6)", "x":7, "y":0},
-                {"label":"K08 (B1,B6)", "x":8, "y":0},
-                {"label":"K09 (B1,B5)", "x":9, "y":0},
-                {"label":"K0A (B1,B4)", "x":10, "y":0},
-                {"label":"K0B (B1,D7)", "x":11, "y":0},
-                {"label":"K0C (B1,D5)", "x":12, "y":0},
-                {"label":"K0D (B1,D3)", "x":13, "y":0, "w":2},
-                {"label":"K0E (B1,D1)", "x":15.25, "y":0},
-
-                {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
-                {"label":"K11 (B2,F6)", "x":1.5, "y":1},
-                {"label":"K12 (B2,F5)", "x":2.5, "y":1},
-                {"label":"K13 (B2,F4)", "x":3.5, "y":1},
-                {"label":"K14 (B2,F1)", "x":4.5, "y":1},
-                {"label":"K15 (B2,F0)", "x":5.5, "y":1},
-                {"label":"K16 (B2,C7)", "x":6.5, "y":1},
-                {"label":"K17 (B2,C6)", "x":7.5, "y":1},
-                {"label":"K18 (B2,B6)", "x":8.5, "y":1},
-                {"label":"K19 (B2,B5)", "x":9.5, "y":1},
-                {"label":"K1A (B2,B4)", "x":10.5, "y":1},
-                {"label":"K1B (B2,D7)", "x":11.5, "y":1},
-                {"label":"K1C (B2,D5)", "x":12.5, "y":1},
-                {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
-                {"label":"K1E (B2,D1)", "x":15.25, "y":1},
-
-                {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
-                {"label":"K21 (B3,F6)", "x":1.75, "y":2},
-                {"label":"K22 (B3,F5)", "x":2.75, "y":2},
-                {"label":"K23 (B3,F4)", "x":3.75, "y":2},
-                {"label":"K24 (B3,F1)", "x":4.75, "y":2},
-                {"label":"K25 (B3,F0)", "x":5.75, "y":2},
-                {"label":"K26 (B3,C7)", "x":6.75, "y":2},
-                {"label":"K27 (B3,C6)", "x":7.75, "y":2},
-                {"label":"K28 (B3,B6)", "x":8.75, "y":2},
-                {"label":"K29 (B3,B5)", "x":9.75, "y":2},
-                {"label":"K2A (B3,B4)", "x":10.75, "y":2},
-                {"label":"K2B (B3,D7)", "x":11.75, "y":2},
-                {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
-                {"label":"K2E (B3,D1)", "x":15.25, "y":2},
-
-                {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
-                {"label":"K32 (D4,F5)", "x":2.25, "y":3},
-                {"label":"K33 (D4,F4)", "x":3.25, "y":3},
-                {"label":"K34 (D4,F1)", "x":4.25, "y":3},
-                {"label":"K35 (D4,F0)", "x":5.25, "y":3},
-                {"label":"K36 (D4,C7)", "x":6.25, "y":3},
-                {"label":"K37 (D4,C6)", "x":7.25, "y":3},
-                {"label":"K38 (D4,B6)", "x":8.25, "y":3},
-                {"label":"K39 (D4,B5)", "x":9.25, "y":3},
-                {"label":"K3A (D4,B4)", "x":10.25, "y":3},
-                {"label":"K3B (D4,D7)", "x":11.25, "y":3},
-                {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
-                {"label":"K3D (D4,D3)", "x":14, "y":3},
-
-                {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.5},
-                {"label":"K41 (D6,F6)", "x":1.5, "y":4},
-                {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.5},
-                {"label":"K46 (D6,C7)", "x":4, "y":4, "w":7},
-                {"label":"K4B (D6,D7)", "x":11, "y":4, "w":1.5},
-                {"label":"K4C (D6,D5)", "x":13, "y":4},
-                {"label":"K4D (D6,D3)", "x":14, "y":4},
-                {"label":"K4E (D6,D1)", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+                {"matrix": [0, 14], "x": 15.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"matrix": [1, 14], "x": 15.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [2, 14], "x": 15.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_7u_space_split_bs": {
             "layout": [
-                {"label":"K00 (B1,F7)", "x":0, "y":0},
-                {"label":"K01 (B1,F6)", "x":1, "y":0},
-                {"label":"K02 (B1,F5)", "x":2, "y":0},
-                {"label":"K03 (B1,F4)", "x":3, "y":0},
-                {"label":"K04 (B1,F1)", "x":4, "y":0},
-                {"label":"K05 (B1,F0)", "x":5, "y":0},
-                {"label":"K06 (B1,C7)", "x":6, "y":0},
-                {"label":"K07 (B1,C6)", "x":7, "y":0},
-                {"label":"K08 (B1,B6)", "x":8, "y":0},
-                {"label":"K09 (B1,B5)", "x":9, "y":0},
-                {"label":"K0A (B1,B4)", "x":10, "y":0},
-                {"label":"K0B (B1,D7)", "x":11, "y":0},
-                {"label":"K0C (B1,D5)", "x":12, "y":0},
-                {"label":"K0D (B1,D3)", "x":13, "y":0},
-                {"label":"K0F (B1,D0)", "x":14, "y":0},
-                {"label":"K0E (B1,D1)", "x":15.25, "y":0},
-
-                {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
-                {"label":"K11 (B2,F6)", "x":1.5, "y":1},
-                {"label":"K12 (B2,F5)", "x":2.5, "y":1},
-                {"label":"K13 (B2,F4)", "x":3.5, "y":1},
-                {"label":"K14 (B2,F1)", "x":4.5, "y":1},
-                {"label":"K15 (B2,F0)", "x":5.5, "y":1},
-                {"label":"K16 (B2,C7)", "x":6.5, "y":1},
-                {"label":"K17 (B2,C6)", "x":7.5, "y":1},
-                {"label":"K18 (B2,B6)", "x":8.5, "y":1},
-                {"label":"K19 (B2,B5)", "x":9.5, "y":1},
-                {"label":"K1A (B2,B4)", "x":10.5, "y":1},
-                {"label":"K1B (B2,D7)", "x":11.5, "y":1},
-                {"label":"K1C (B2,D5)", "x":12.5, "y":1},
-                {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
-                {"label":"K1E (B2,D1)", "x":15.25, "y":1},
-
-                {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
-                {"label":"K21 (B3,F6)", "x":1.75, "y":2},
-                {"label":"K22 (B3,F5)", "x":2.75, "y":2},
-                {"label":"K23 (B3,F4)", "x":3.75, "y":2},
-                {"label":"K24 (B3,F1)", "x":4.75, "y":2},
-                {"label":"K25 (B3,F0)", "x":5.75, "y":2},
-                {"label":"K26 (B3,C7)", "x":6.75, "y":2},
-                {"label":"K27 (B3,C6)", "x":7.75, "y":2},
-                {"label":"K28 (B3,B6)", "x":8.75, "y":2},
-                {"label":"K29 (B3,B5)", "x":9.75, "y":2},
-                {"label":"K2A (B3,B4)", "x":10.75, "y":2},
-                {"label":"K2B (B3,D7)", "x":11.75, "y":2},
-                {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
-                {"label":"K2E (B3,D1)", "x":15.25, "y":2},
-
-                {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
-                {"label":"K32 (D4,F5)", "x":2.25, "y":3},
-                {"label":"K33 (D4,F4)", "x":3.25, "y":3},
-                {"label":"K34 (D4,F1)", "x":4.25, "y":3},
-                {"label":"K35 (D4,F0)", "x":5.25, "y":3},
-                {"label":"K36 (D4,C7)", "x":6.25, "y":3},
-                {"label":"K37 (D4,C6)", "x":7.25, "y":3},
-                {"label":"K38 (D4,B6)", "x":8.25, "y":3},
-                {"label":"K39 (D4,B5)", "x":9.25, "y":3},
-                {"label":"K3A (D4,B4)", "x":10.25, "y":3},
-                {"label":"K3B (D4,D7)", "x":11.25, "y":3},
-                {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
-                {"label":"K3D (D4,D3)", "x":14, "y":3},
-
-                {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.5},
-                {"label":"K41 (D6,F6)", "x":1.5, "y":4},
-                {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.5},
-                {"label":"K46 (D6,C7)", "x":4, "y":4, "w":7},
-                {"label":"K4B (D6,D7)", "x":11, "y":4, "w":1.5},
-                {"label":"K4C (D6,D5)", "x":13, "y":4},
-                {"label":"K4D (D6,D3)", "x":14, "y":4},
-                {"label":"K4E (D6,D1)", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 15], "x": 14, "y": 0},
+
+                {"matrix": [0, 14], "x": 15.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"matrix": [1, 14], "x": 15.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [2, 14], "x": 15.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 77
keyboards/alfredslab/swift65/solder/solder.h

@@ -1,77 +0,0 @@
-/* Copyright 2021 Steven Phillips (spooknik)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_625u_space( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,       K0E,  \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,     K1E,  \
-    K20,    K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,         K2E,  \
-    K30,       K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,     K3D,        \
-    K40,  K41,  K43,              K46,                K4A,  K4B,     K4C, K4D, K4E    \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, XXX }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, XXX }, \
-}
-
-#define LAYOUT_625u_space_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F,  K0E,  \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,     K1E,  \
-    K20,    K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,         K2E,  \
-    K30,       K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,     K3D,        \
-    K40,  K41,  K43,              K46,                K4A,  K4B,     K4C, K4D, K4E    \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, XXX }, \
-}
-
-#define LAYOUT_7u_space( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,       K0E,  \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,     K1E,  \
-    K20,    K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,         K2E,  \
-    K30,       K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,     K3D,        \
-    K40,  K41,  K43,              K46,                      K4B,     K4C, K4D, K4E    \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, XXX }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, K4E, XXX }, \
-}
-
-#define LAYOUT_7u_space_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F,  K0E,  \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,     K1E,  \
-    K20,    K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,         K2E,  \
-    K30,       K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,     K3D,        \
-    K40,  K41,  K43,              K46,                      K4B,     K4C, K4D, K4E    \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, K4E, XXX }, \
-}

+ 1 - 1
keyboards/baguette/baguette.c

@@ -13,7 +13,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-#include "baguette.h"
+#include "quantum.h"
 
 #ifndef DEBOUNCE
 #    define DEBOUNCE 5

+ 0 - 57
keyboards/baguette/baguette.h

@@ -1,57 +0,0 @@
-/* Copyright 2018 Yiancar
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,      k1F, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,      k2D, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
-              k42, k43,                k47,                k4B, k4C, k4D, k4E, k4F \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, XXX, k1F }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D, XXX, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \
-    { XXX, XXX, k42, k43, XXX, XXX, XXX, k47, XXX, XXX, XXX, k4B, k4C, k4D, k4E, k4F } \
-}
-
-#define LAYOUT_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,           k1F, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2D, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
-              k42, k43,                k47,                k4B, k4C, k4D, k4E, k4F \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, XXX, XXX, k1F }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2D, XXX, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \
-    { XXX, XXX, k42, k43, XXX, XXX, XXX, k47, XXX, XXX, XXX, k4B, k4C, k4D, k4E, k4F } \
-}

+ 148 - 135
keyboards/baguette/info.json

@@ -23,145 +23,158 @@
   "layouts": {
     "LAYOUT_ansi": {
       "layout": [
-        {"label":"`", "x":0, "y":0},
-        {"label":"1", "x":1, "y":0},
-        {"label":"2", "x":2, "y":0},
-        {"label":"3", "x":3, "y":0},
-        {"label":"4", "x":4, "y":0},
-        {"label":"5", "x":5, "y":0},
-        {"label":"6", "x":6, "y":0},
-        {"label":"7", "x":7, "y":0},
-        {"label":"8", "x":8, "y":0},
-        {"label":"9", "x":9, "y":0},
-        {"label":"0", "x":10, "y":0},
-        {"label":"-", "x":11, "y":0},
-        {"label":"=", "x":12, "y":0},
-        {"label":"Backspace", "x":13, "y":0},
-        {"label":"Backspace2", "x":14, "y":0},
-        {"label":"Insert", "x":15.5, "y":0},
-        {"label":"Tab", "x":0, "y":1, "w":1.5},
-        {"label":"Q", "x":1.5, "y":1},
-        {"label":"W", "x":2.5, "y":1},
-        {"label":"E", "x":3.5, "y":1},
-        {"label":"R", "x":4.5, "y":1},
-        {"label":"T", "x":5.5, "y":1},
-        {"label":"Y", "x":6.5, "y":1},
-        {"label":"U", "x":7.5, "y":1},
-        {"label":"I", "x":8.5, "y":1},
-        {"label":"O", "x":9.5, "y":1},
-        {"label":"P", "x":10.5, "y":1},
-        {"label":"[", "x":11.5, "y":1},
-        {"label":"]", "x":12.5, "y":1},
-        {"label":"\\", "x":13.5, "y":1, "w":1.5},
-        {"label":"Delete", "x":15.5, "y":1},
-        {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-        {"label":"A", "x":1.75, "y":2},
-        {"label":"S", "x":2.75, "y":2},
-        {"label":"D", "x":3.75, "y":2},
-        {"label":"F", "x":4.75, "y":2},
-        {"label":"G", "x":5.75, "y":2},
-        {"label":"H", "x":6.75, "y":2},
-        {"label":"J", "x":7.75, "y":2},
-        {"label":"K", "x":8.75, "y":2},
-        {"label":"L", "x":9.75, "y":2},
-        {"label":";", "x":10.75, "y":2},
-        {"label":"'", "x":11.75, "y":2},
-        {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-        {"label":"Shift", "x":0, "y":3, "w":1.25},
-        {"label":"ISO \\", "x":1.25, "y":3},
-        {"label":"Z", "x":2.25, "y":3},
-        {"label":"X", "x":3.25, "y":3},
-        {"label":"C", "x":4.25, "y":3},
-        {"label":"V", "x":5.25, "y":3},
-        {"label":"B", "x":6.25, "y":3},
-        {"label":"N", "x":7.25, "y":3},
-        {"label":"M", "x":8.25, "y":3},
-        {"label":",", "x":9.25, "y":3},
-        {"label":".", "x":10.25, "y":3},
-        {"label":"/", "x":11.25, "y":3},
-        {"label":"JP RO", "x":12.25, "y":3},
-        {"label":"Shift", "x":13.25, "y":3, "w":1.25},
-        {"label":"Up", "x":14.5, "y":3},
-        {"label":"GUI", "x":1.25, "y":4},
-        {"label":"Alt", "x":2.25, "y":4, "w":1.25},
-        {"label":"Space", "x":3.5, "y":4, "w":6.25},
-        {"label":"Ctrl", "x":9.75, "y":4, "w":1.25},
-        {"label":"Fn", "x":11, "y":4},
-        {"label":"Left", "x":13.5, "y":4},
-        {"label":"Down", "x":14.5, "y":4},
-        {"label":"Right", "x":15.5, "y":4}
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+        {"matrix": [0, 5], "x": 5, "y": 0},
+        {"matrix": [0, 6], "x": 6, "y": 0},
+        {"matrix": [0, 7], "x": 7, "y": 0},
+        {"matrix": [0, 8], "x": 8, "y": 0},
+        {"matrix": [0, 9], "x": 9, "y": 0},
+        {"matrix": [0, 10], "x": 10, "y": 0},
+        {"matrix": [0, 11], "x": 11, "y": 0},
+        {"matrix": [0, 12], "x": 12, "y": 0},
+        {"matrix": [0, 13], "x": 13, "y": 0},
+        {"matrix": [0, 14], "x": 14, "y": 0},
+
+        {"matrix": [0, 15], "x": 15.5, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+        {"matrix": [1, 1], "x": 1.5, "y": 1},
+        {"matrix": [1, 2], "x": 2.5, "y": 1},
+        {"matrix": [1, 3], "x": 3.5, "y": 1},
+        {"matrix": [1, 4], "x": 4.5, "y": 1},
+        {"matrix": [1, 5], "x": 5.5, "y": 1},
+        {"matrix": [1, 6], "x": 6.5, "y": 1},
+        {"matrix": [1, 7], "x": 7.5, "y": 1},
+        {"matrix": [1, 8], "x": 8.5, "y": 1},
+        {"matrix": [1, 9], "x": 9.5, "y": 1},
+        {"matrix": [1, 10], "x": 10.5, "y": 1},
+        {"matrix": [1, 11], "x": 11.5, "y": 1},
+        {"matrix": [1, 12], "x": 12.5, "y": 1},
+        {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+        {"matrix": [1, 15], "x": 15.5, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+        {"matrix": [2, 1], "x": 1.75, "y": 2},
+        {"matrix": [2, 2], "x": 2.75, "y": 2},
+        {"matrix": [2, 3], "x": 3.75, "y": 2},
+        {"matrix": [2, 4], "x": 4.75, "y": 2},
+        {"matrix": [2, 5], "x": 5.75, "y": 2},
+        {"matrix": [2, 6], "x": 6.75, "y": 2},
+        {"matrix": [2, 7], "x": 7.75, "y": 2},
+        {"matrix": [2, 8], "x": 8.75, "y": 2},
+        {"matrix": [2, 9], "x": 9.75, "y": 2},
+        {"matrix": [2, 10], "x": 10.75, "y": 2},
+        {"matrix": [2, 11], "x": 11.75, "y": 2},
+        {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+        {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+        {"matrix": [3, 1], "x": 1.25, "y": 3},
+        {"matrix": [3, 2], "x": 2.25, "y": 3},
+        {"matrix": [3, 3], "x": 3.25, "y": 3},
+        {"matrix": [3, 4], "x": 4.25, "y": 3},
+        {"matrix": [3, 5], "x": 5.25, "y": 3},
+        {"matrix": [3, 6], "x": 6.25, "y": 3},
+        {"matrix": [3, 7], "x": 7.25, "y": 3},
+        {"matrix": [3, 8], "x": 8.25, "y": 3},
+        {"matrix": [3, 9], "x": 9.25, "y": 3},
+        {"matrix": [3, 10], "x": 10.25, "y": 3},
+        {"matrix": [3, 11], "x": 11.25, "y": 3},
+        {"matrix": [3, 12], "x": 12.25, "y": 3},
+        {"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.25},
+        {"matrix": [3, 14], "x": 14.5, "y": 3},
+
+        {"matrix": [4, 2], "x": 1.25, "y": 4},
+        {"matrix": [4, 3], "x": 2.25, "y": 4, "w": 1.25},
+        {"matrix": [4, 7], "x": 3.5, "y": 4, "w": 6.25},
+        {"matrix": [4, 11], "x": 9.75, "y": 4, "w": 1.25},
+        {"matrix": [4, 12], "x": 11, "y": 4},
+
+        {"matrix": [4, 13], "x": 13.5, "y": 4},
+        {"matrix": [4, 14], "x": 14.5, "y": 4},
+        {"matrix": [4, 15], "x": 15.5, "y": 4}
       ]
     },
-
     "LAYOUT_iso": {
       "layout": [
-        {"label":"`", "x":0, "y":0},
-        {"label":"1", "x":1, "y":0},
-        {"label":"2", "x":2, "y":0},
-        {"label":"3", "x":3, "y":0},
-        {"label":"4", "x":4, "y":0},
-        {"label":"5", "x":5, "y":0},
-        {"label":"6", "x":6, "y":0},
-        {"label":"7", "x":7, "y":0},
-        {"label":"8", "x":8, "y":0},
-        {"label":"9", "x":9, "y":0},
-        {"label":"0", "x":10, "y":0},
-        {"label":"-", "x":11, "y":0},
-        {"label":"=", "x":12, "y":0},
-        {"label":"Backspace", "x":13, "y":0},
-        {"label":"Backspace2", "x":14, "y":0},
-        {"label":"Insert", "x":15.5, "y":0},
-        {"label":"Tab", "x":0, "y":1, "w":1.5},
-        {"label":"Q", "x":1.5, "y":1},
-        {"label":"W", "x":2.5, "y":1},
-        {"label":"E", "x":3.5, "y":1},
-        {"label":"R", "x":4.5, "y":1},
-        {"label":"T", "x":5.5, "y":1},
-        {"label":"Y", "x":6.5, "y":1},
-        {"label":"U", "x":7.5, "y":1},
-        {"label":"I", "x":8.5, "y":1},
-        {"label":"O", "x":9.5, "y":1},
-        {"label":"P", "x":10.5, "y":1},
-        {"label":"[", "x":11.5, "y":1},
-        {"label":"]", "x":12.5, "y":1},
-        {"label":"Delete", "x":15.5, "y":1},
-        {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-        {"label":"A", "x":1.75, "y":2},
-        {"label":"S", "x":2.75, "y":2},
-        {"label":"D", "x":3.75, "y":2},
-        {"label":"F", "x":4.75, "y":2},
-        {"label":"G", "x":5.75, "y":2},
-        {"label":"H", "x":6.75, "y":2},
-        {"label":"J", "x":7.75, "y":2},
-        {"label":"K", "x":8.75, "y":2},
-        {"label":"L", "x":9.75, "y":2},
-        {"label":";", "x":10.75, "y":2},
-        {"label":"'", "x":11.75, "y":2},
-        {"label":"ISO #", "x":12.75, "y":2},
-        {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
-        {"label":"Shift", "x":0, "y":3, "w":1.25},
-        {"label":"ISO \\", "x":1.25, "y":3},
-        {"label":"Z", "x":2.25, "y":3},
-        {"label":"X", "x":3.25, "y":3},
-        {"label":"C", "x":4.25, "y":3},
-        {"label":"V", "x":5.25, "y":3},
-        {"label":"B", "x":6.25, "y":3},
-        {"label":"N", "x":7.25, "y":3},
-        {"label":"M", "x":8.25, "y":3},
-        {"label":",", "x":9.25, "y":3},
-        {"label":".", "x":10.25, "y":3},
-        {"label":"/", "x":11.25, "y":3},
-        {"label":"\\", "x":12.25, "y":3},
-        {"label":"Shift", "x":13.25, "y":3, "w":1.25},
-        {"label":"Up", "x":14.5, "y":3},
-        {"label":"GUI", "x":1.25, "y":4},
-        {"label":"Alt", "x":2.25, "y":4, "w":1.25},
-        {"label":"Space", "x":3.5, "y":4, "w":6.25},
-        {"label":"Ctrl", "x":9.75, "y":4, "w":1.25},
-        {"label":"Fn", "x":11, "y":4},
-        {"label":"Left", "x":13.5, "y":4},
-        {"label":"Down", "x":14.5, "y":4},
-        {"label":"Right", "x":15.5, "y":4}
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+        {"matrix": [0, 5], "x": 5, "y": 0},
+        {"matrix": [0, 6], "x": 6, "y": 0},
+        {"matrix": [0, 7], "x": 7, "y": 0},
+        {"matrix": [0, 8], "x": 8, "y": 0},
+        {"matrix": [0, 9], "x": 9, "y": 0},
+        {"matrix": [0, 10], "x": 10, "y": 0},
+        {"matrix": [0, 11], "x": 11, "y": 0},
+        {"matrix": [0, 12], "x": 12, "y": 0},
+        {"matrix": [0, 13], "x": 13, "y": 0},
+        {"matrix": [0, 14], "x": 14, "y": 0},
+
+        {"matrix": [0, 15], "x": 15.5, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+        {"matrix": [1, 1], "x": 1.5, "y": 1},
+        {"matrix": [1, 2], "x": 2.5, "y": 1},
+        {"matrix": [1, 3], "x": 3.5, "y": 1},
+        {"matrix": [1, 4], "x": 4.5, "y": 1},
+        {"matrix": [1, 5], "x": 5.5, "y": 1},
+        {"matrix": [1, 6], "x": 6.5, "y": 1},
+        {"matrix": [1, 7], "x": 7.5, "y": 1},
+        {"matrix": [1, 8], "x": 8.5, "y": 1},
+        {"matrix": [1, 9], "x": 9.5, "y": 1},
+        {"matrix": [1, 10], "x": 10.5, "y": 1},
+        {"matrix": [1, 11], "x": 11.5, "y": 1},
+        {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+        {"matrix": [1, 15], "x": 15.5, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+        {"matrix": [2, 1], "x": 1.75, "y": 2},
+        {"matrix": [2, 2], "x": 2.75, "y": 2},
+        {"matrix": [2, 3], "x": 3.75, "y": 2},
+        {"matrix": [2, 4], "x": 4.75, "y": 2},
+        {"matrix": [2, 5], "x": 5.75, "y": 2},
+        {"matrix": [2, 6], "x": 6.75, "y": 2},
+        {"matrix": [2, 7], "x": 7.75, "y": 2},
+        {"matrix": [2, 8], "x": 8.75, "y": 2},
+        {"matrix": [2, 9], "x": 9.75, "y": 2},
+        {"matrix": [2, 10], "x": 10.75, "y": 2},
+        {"matrix": [2, 11], "x": 11.75, "y": 2},
+        {"matrix": [2, 12], "x": 12.75, "y": 2},
+        {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+        {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+        {"matrix": [3, 1], "x": 1.25, "y": 3},
+        {"matrix": [3, 2], "x": 2.25, "y": 3},
+        {"matrix": [3, 3], "x": 3.25, "y": 3},
+        {"matrix": [3, 4], "x": 4.25, "y": 3},
+        {"matrix": [3, 5], "x": 5.25, "y": 3},
+        {"matrix": [3, 6], "x": 6.25, "y": 3},
+        {"matrix": [3, 7], "x": 7.25, "y": 3},
+        {"matrix": [3, 8], "x": 8.25, "y": 3},
+        {"matrix": [3, 9], "x": 9.25, "y": 3},
+        {"matrix": [3, 10], "x": 10.25, "y": 3},
+        {"matrix": [3, 11], "x": 11.25, "y": 3},
+        {"matrix": [3, 12], "x": 12.25, "y": 3},
+        {"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.25},
+        {"matrix": [3, 14], "x": 14.5, "y": 3},
+
+        {"matrix": [4, 2], "x": 1.25, "y": 4},
+        {"matrix": [4, 3], "x": 2.25, "y": 4, "w": 1.25},
+        {"matrix": [4, 7], "x": 3.5, "y": 4, "w": 6.25},
+        {"matrix": [4, 11], "x": 9.75, "y": 4, "w": 1.25},
+        {"matrix": [4, 12], "x": 11, "y": 4},
+
+        {"matrix": [4, 13], "x": 13.5, "y": 4},
+        {"matrix": [4, 14], "x": 14.5, "y": 4},
+        {"matrix": [4, 15], "x": 15.5, "y": 4}
       ]
     }
   }

+ 0 - 27
keyboards/bajjak/bajjak.h

@@ -126,30 +126,3 @@ typedef union {
 } keyboard_config_t;
 
 extern keyboard_config_t keyboard_config;
-
-#define LAYOUT_6x7( \
-                        L00, L01, L02, L03, L04, L05, L06,  R00, R01, R02, R03, R04, R05, R06, \
-                        L10, L11, L12, L13, L14, L15, L16,  R10, R11, R12, R13, R14, R15, R16, \
-                        L20, L21, L22, L23, L24, L25, L26,  R20, R21, R22, R23, R24, R25, R26, \
-                        L30, L31, L32, L33, L34, L35, L36,  R30, R31, R32, R33, R34, R35, R36, \
-                        L40, L41, L42, L43, L44, L45,            R41, R42, R43, R44, R45, R46, \
-                        L50, L51, L52, L53, L54,                      R52, R53, R54, R55, R56, \
-                                                 L65, L66,  R60, R61,                          \
-                                                      L64,  R62,                               \
-                                            L63, L62, L61,  R65, R64, R63                      \
-                        ) { \
-        { L00, L10, L20, L30, L40,   L50,   KC_NO }, \
-        { L01, L11, L21, L31, L41,   L51,   L61   }, \
-        { L02, L12, L22, L32, L42,   L52,   L62   }, \
-        { L03, L13, L23, L33, L43,   L53,   L63   }, \
-        { L04, L14, L24, L34, L44,   L54,   L64   }, \
-        { L05, L15, L25, L35, L45,   KC_NO, L65   }, \
-        { L06, L16, L26, L36, KC_NO, KC_NO, L66   }, \
-        { R00, R10, R20, R30, KC_NO, KC_NO, R60   }, \
-        { R01, R11, R21, R31, R41,   KC_NO, R61   }, \
-        { R02, R12, R22, R32, R42,   R52,   R62   }, \
-        { R03, R13, R23, R33, R43,   R53,   R63   }, \
-        { R04, R14, R24, R34, R44,   R54,   R64   }, \
-        { R05, R15, R25, R35, R45,   R55,   R65   },\
-        { R06, R16, R26, R36, R46,   R56,   KC_NO } \
-    }

+ 101 - 15
keyboards/bajjak/info.json

@@ -13,27 +13,113 @@
     "layouts": {
         "LAYOUT_6x7": {
             "layout": [
-            {"x":0, "y":0.375, "w":1.5},    {"x":1.5, "y":0.375},   {"x":2.5, "y":0.125},   {"x":3.5, "y":0},       {"x":4.5, "y":0.125},   {"x":5.5, "y":0.25},    {"x":6.5, "y":0.25},
-            {"x":9.5, "y":0.25},            {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125},    {"x":12.5, "y":0},      {"x":13.5, "y":0.125},  {"x":14.5, "y":0.375},  {"x":15.5, "y":0.375, "w":1.5},
+                {"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5},
+                {"matrix": [1, 0], "x": 1.5, "y": 0.375},
+                {"matrix": [2, 0], "x": 2.5, "y": 0.125},
+                {"matrix": [3, 0], "x": 3.5, "y": 0},
+                {"matrix": [4, 0], "x": 4.5, "y": 0.125},
+                {"matrix": [5, 0], "x": 5.5, "y": 0.25},
+                {"matrix": [6, 0], "x": 6.5, "y": 0.25},
 
-            {"x":0, "y":1.375, "w":1.5},    {"x":1.5, "y":1.375},   {"x":2.5, "y":1.125},   {"x":3.5, "y":1},       {"x":4.5, "y":1.125},   {"x":5.5, "y":1.25},    {"x":6.5, "y":1.25},
-            {"x":9.5, "y":1.25},            {"x":10.5, "y":1.25},   {"x":11.5, "y":1.125},  {"x":12.5, "y":1},      {"x":13.5, "y":1.125},  {"x":14.5, "y":1.375},  {"x":15.5, "y":1.375, "w":1.5},
+                {"matrix": [7, 0], "x": 9.5, "y": 0.25},
+                {"matrix": [8, 0], "x": 10.5, "y": 0.25},
+                {"matrix": [9, 0], "x": 11.5, "y": 0.125},
+                {"matrix": [10, 0], "x": 12.5, "y": 0},
+                {"matrix": [11, 0], "x": 13.5, "y": 0.125},
+                {"matrix": [12, 0], "x": 14.5, "y": 0.375},
+                {"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5},
 
-            {"x":0, "y":2.375, "w":1.5},    {"x":1.5, "y":2.375},   {"x":2.5, "y":2.125},   {"x":3.5, "y":2},       {"x":4.5, "y":2.125},   {"x":5.5, "y":2.25},    {"x":6.5, "y":2.25},
-            {"x":9.5, "y":2.25},            {"x":10.5, "y":2.25},   {"x":11.5, "y":2.125},  {"x":12.5, "y":2},      {"x":13.5, "y":2.125},  {"x":14.5, "y":2.375},  {"x":15.5, "y":2.375, "w":1.5},
+                {"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1.375},
+                {"matrix": [2, 1], "x": 2.5, "y": 1.125},
+                {"matrix": [3, 1], "x": 3.5, "y": 1},
+                {"matrix": [4, 1], "x": 4.5, "y": 1.125},
+                {"matrix": [5, 1], "x": 5.5, "y": 1.25},
+                {"matrix": [6, 1], "x": 6.5, "y": 1.25},
 
-            {"x":0, "y":3.375, "w":1.5},    {"x":1.5, "y":3.375},   {"x":2.5, "y":3.125},   {"x":3.5, "y":3},       {"x":4.5, "y":3.125},   {"x":5.5, "y":3.25},    {"x":6.5, "y":3.25},
-            {"x":9.5, "y":3.25},            {"x":10.5, "y":3.25},   {"x":11.5, "y":3.125},  {"x":12.5, "y":3},      {"x":13.5, "y":3.125},  {"x":14.5, "y":3.375},  {"x":15.5, "y":3.375, "w":1.5},
+                {"matrix": [7, 1], "x": 9.5, "y": 1.25},
+                {"matrix": [8, 1], "x": 10.5, "y": 1.25},
+                {"matrix": [9, 1], "x": 11.5, "y": 1.125},
+                {"matrix": [10, 1], "x": 12.5, "y": 1},
+                {"matrix": [11, 1], "x": 13.5, "y": 1.125},
+                {"matrix": [12, 1], "x": 14.5, "y": 1.375},
+                {"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5},
 
-            {"x":0, "y":4.375, "w":1.5},    {"x":1.5, "y":4.375},   {"x":2.5, "y":4.125},   {"x":3.5, "y":4},       {"x":4.5, "y":4.125},   {"x":5.5, "y":4.25},
-            {"x":10.5, "y":4.25},           {"x":11.5, "y":4.125},  {"x":12.5, "y":4},      {"x":13.5, "y":4.125},  {"x":14.5, "y":4.375},  {"x":15.5, "y":4.375, "w":1.5},
+                {"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5},
+                {"matrix": [1, 2], "x": 1.5, "y": 2.375},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.125},
+                {"matrix": [3, 2], "x": 3.5, "y": 2},
+                {"matrix": [4, 2], "x": 4.5, "y": 2.125},
+                {"matrix": [5, 2], "x": 5.5, "y": 2.25},
+                {"matrix": [6, 2], "x": 6.5, "y": 2.25},
 
-            {"x":0, "y":5.375, "w":1.5},    {"x":1.5, "y":5.375},   {"x":2.5, "y":5.125},   {"x":3.5, "y":5},       {"x":4.5, "y":5.125},
-            {"x":11.5, "y":5.125},          {"x":12.5, "y":5},      {"x":13.5, "y":5.125},  {"x":14.5, "y":5.375},  {"x":15.5, "y":5.375, "w":1.5},
+                {"matrix": [7, 2], "x": 9.5, "y": 2.25},
+                {"matrix": [8, 2], "x": 10.5, "y": 2.25},
+                {"matrix": [9, 2], "x": 11.5, "y": 2.125},
+                {"matrix": [10, 2], "x": 12.5, "y": 2},
+                {"matrix": [11, 2], "x": 13.5, "y": 2.125},
+                {"matrix": [12, 2], "x": 14.5, "y": 2.375},
+                {"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5},
 
-                                            {"x":6, "y":6}, {"x":7, "y":6},      {"x":9, "y":6}, {"x":10, "y":6},
-                                                            {"x":7, "y":7},      {"x":9, "y":7},
-              {"x":5, "y":7, "h":2}, {"x":6, "y":7, "h":2}, {"x":7, "y":8},      {"x":9, "y":8}, {"x":10, "y":7, "h":2}, {"x":11, "y":7, "h":2}
+                {"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5},
+                {"matrix": [1, 3], "x": 1.5, "y": 3.375},
+                {"matrix": [2, 3], "x": 2.5, "y": 3.125},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [4, 3], "x": 4.5, "y": 3.125},
+                {"matrix": [5, 3], "x": 5.5, "y": 3.25},
+                {"matrix": [6, 3], "x": 6.5, "y": 3.25},
+
+                {"matrix": [7, 3], "x": 9.5, "y": 3.25},
+                {"matrix": [8, 3], "x": 10.5, "y": 3.25},
+                {"matrix": [9, 3], "x": 11.5, "y": 3.125},
+                {"matrix": [10, 3], "x": 12.5, "y": 3},
+                {"matrix": [11, 3], "x": 13.5, "y": 3.125},
+                {"matrix": [12, 3], "x": 14.5, "y": 3.375},
+                {"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5},
+
+                {"matrix": [0, 4], "x": 0, "y": 4.375, "w": 1.5},
+                {"matrix": [1, 4], "x": 1.5, "y": 4.375},
+                {"matrix": [2, 4], "x": 2.5, "y": 4.125},
+                {"matrix": [3, 4], "x": 3.5, "y": 4},
+                {"matrix": [4, 4], "x": 4.5, "y": 4.125},
+                {"matrix": [5, 4], "x": 5.5, "y": 4.25},
+
+                {"matrix": [8, 4], "x": 10.5, "y": 4.25},
+                {"matrix": [9, 4], "x": 11.5, "y": 4.125},
+                {"matrix": [10, 4], "x": 12.5, "y": 4},
+                {"matrix": [11, 4], "x": 13.5, "y": 4.125},
+                {"matrix": [12, 4], "x": 14.5, "y": 4.375},
+                {"matrix": [13, 4], "x": 15.5, "y": 4.375, "w": 1.5},
+
+                {"matrix": [0, 5], "x": 0, "y": 5.375, "w": 1.5},
+                {"matrix": [1, 5], "x": 1.5, "y": 5.375},
+                {"matrix": [2, 5], "x": 2.5, "y": 5.125},
+                {"matrix": [3, 5], "x": 3.5, "y": 5},
+                {"matrix": [4, 5], "x": 4.5, "y": 5.125},
+
+                {"matrix": [9, 5], "x": 11.5, "y": 5.125},
+                {"matrix": [10, 5], "x": 12.5, "y": 5},
+                {"matrix": [11, 5], "x": 13.5, "y": 5.125},
+                {"matrix": [12, 5], "x": 14.5, "y": 5.375},
+                {"matrix": [13, 5], "x": 15.5, "y": 5.375, "w": 1.5},
+
+                {"matrix": [5, 6], "x": 6, "y": 6},
+                {"matrix": [6, 6], "x": 7, "y": 6},
+
+                {"matrix": [7, 6], "x": 9, "y": 6},
+                {"matrix": [8, 6], "x": 10, "y": 6},
+
+                {"matrix": [4, 6], "x": 7, "y": 7},
+
+                {"matrix": [9, 6], "x": 9, "y": 7},
+
+                {"matrix": [3, 6], "x": 5, "y": 7, "h": 2},
+                {"matrix": [2, 6], "x": 6, "y": 7, "h": 2},
+                {"matrix": [1, 6], "x": 7, "y": 8},
+
+                {"matrix": [12, 6], "x": 9, "y": 8},
+                {"matrix": [11, 6], "x": 10, "y": 7, "h": 2},
+                {"matrix": [10, 6], "x": 11, "y": 7, "h": 2}
             ]
         }
     }

+ 1 - 1
keyboards/bbrfkr/dynamis/dynamis.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "dynamis.h"
+#include "quantum.h"
 
 #ifdef ENCODER_ENABLE
 bool encoder_update_kb(uint8_t index, bool clockwise) {

+ 0 - 78
keyboards/bbrfkr/dynamis/dynamis.h

@@ -1,78 +0,0 @@
-/* Copyright 2022 bbrfkr
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/*
- *              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐               ┌───────┐
- *              │00 │01 │02 │03 │04 │05 │06 │56 │55 │54 │53 │52 │51 │50 │90 │               │50     │ 2u Backspace
- *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤               └─┬─────┤
- *              │10   │11 │12 │13 │14 │15 │16 │66 │65 │64 │63 │62 │61 │60   │                 │     │
- *  2.25u       ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤              ┌──┴┐70  │ ISO Enter
- *  LShift      │20    │21 │22 │23 │24 │25 │26 │76 │75 │74 │73 │72 │70      │              │71 │    │
- * ┌────────┐   ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤┌───┐       ┌─┴───┴────┤
- * │31      │   │30  │31 │32 │33 │34 │35 │36 │86 │85 │84 │83 │82 │81    │80 ││91 │       │81        │ 2.75u RShift
- * └────────┘   ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴┬──┴┼───┼───┐   └──────────┘
- *              │40  │41  │42  │43      │44  │45        │46  │96  │95  │ │94 │93 │92 │
- *              └────┴────┴────┴────────┴────┴──────────┴────┴────┴────┘ └───┴───┴───┘
- *              ┌────┬────┬────┬────────────────────────┬────┬────┬────┐
- *              │40  │41  │42  │43                      │46  │96  │95  │ 6.25u Spacebar
- *              └────┴────┴────┴────────────────────────┴────┴────┴────┘
- */
-
-#define LAYOUT_ansi( \
-      C00, C01, C02, C03, C04, C05, C06, C56, C55, C54, C53, C52, C51, C50, C90, \
-      C10, C11, C12, C13, C14, C15, C16, C66, C65, C64, C63, C62, C61, C60, \
-      C20, C21, C22, C23, C24, C25, C26, C76, C75, C74, C73, C72,      C70, \
-      C30, C31, C32, C33, C34, C35, C36, C86, C85, C84, C83, C82, C81, C80,      C91, \
-      C40, C41, C42,      C43,      C44,           C45, C46, C96, C95,      C94, C93, C92 \
-    ) \
-    { \
-        { C00, C01, C02, C03, C04, C05, C06 }, \
-        { C10, C11, C12, C13, C14, C15, C16 }, \
-        { C20, C21, C22, C23, C24, C25, C26 }, \
-        { C30, C31, C32, C33, C34, C35, C36 }, \
-        { C40, C41, C42, C43, C44, C45, C46 }, \
-        { C50, C51, C52, C53, C54, C55, C56 }, \
-        { C60, C61, C62, C63, C64, C65, C66 }, \
-        { C70, XXX, C72, C73, C74, C75, C76 }, \
-        { C80, C81, C82, C83, C84, C85, C86 }, \
-        { C90, C91, C92, C93, C94, C95, C96 } \
-    }
-
-#define LAYOUT_iso( \
-      C00, C01, C02, C03, C04, C05, C06, C56, C55, C54, C53, C52, C51, C50, C90, \
-      C10, C11, C12, C13, C14, C15, C16, C66, C65, C64, C63, C62, C61, \
-      C20, C21, C22, C23, C24, C25, C26, C76, C75, C74, C73, C72, C71, C70, \
-      C30, C31, C32, C33, C34, C35, C36, C86, C85, C84, C83, C82, C81, C80,      C91, \
-      C40, C41, C42,      C43,      C44,           C45, C46, C96, C95,      C94, C93, C92 \
-    ) \
-    { \
-        { C00, C01, C02, C03, C04, C05, C06 }, \
-        { C10, C11, C12, C13, C14, C15, C16 }, \
-        { C20, C21, C22, C23, C24, C25, C26 }, \
-        { C30, C31, C32, C33, C34, C35, C36 }, \
-        { C40, C41, C42, C43, C44, C45, C46 }, \
-        { C50, C51, C52, C53, C54, C55, C56 }, \
-        { XXX, C61, C62, C63, C64, C65, C66 }, \
-        { C70, C71, C72, C73, C74, C75, C76 }, \
-        { C80, C81, C82, C83, C84, C85, C86 }, \
-        { C90, C91, C92, C93, C94, C95, C96 } \
-    }

+ 142 - 138
keyboards/bbrfkr/dynamis/info.json

@@ -26,156 +26,160 @@
     "layouts": {
         "LAYOUT_ansi": {
             "layout": [
-                {"label":"`", "x":0, "y":0},
-                {"label":"1", "x":1, "y":0},
-                {"label":"2", "x":2, "y":0},
-                {"label":"3", "x":3, "y":0},
-                {"label":"4", "x":4, "y":0},
-                {"label":"5", "x":5, "y":0},
-                {"label":"6", "x":6, "y":0},
-                {"label":"7", "x":7, "y":0},
-                {"label":"8", "x":8, "y":0},
-                {"label":"9", "x":9, "y":0},
-                {"label":"0", "x":10, "y":0},
-                {"label":"-", "x":11, "y":0},
-                {"label":"=", "x":12, "y":0},
-                {"label":"Back space", "x":13, "y":0},
-                {"label":"Delete", "x":14, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [5, 6], "x": 7, "y": 0},
+                {"matrix": [5, 5], "x": 8, "y": 0},
+                {"matrix": [5, 4], "x": 9, "y": 0},
+                {"matrix": [5, 3], "x": 10, "y": 0},
+                {"matrix": [5, 2], "x": 11, "y": 0},
+                {"matrix": [5, 1], "x": 12, "y": 0},
+                {"matrix": [5, 0], "x": 13, "y": 0},
+                {"matrix": [9, 0], "x": 14, "y": 0},
 
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"[", "x":11.5, "y":1},
-                {"label":"]", "x":12.5, "y":1},
-                {"label":"\\", "x":13.5, "y":1, "w":1.5},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [6, 6], "x": 7.5, "y": 1},
+                {"matrix": [6, 5], "x": 8.5, "y": 1},
+                {"matrix": [6, 4], "x": 9.5, "y": 1},
+                {"matrix": [6, 3], "x": 10.5, "y": 1},
+                {"matrix": [6, 2], "x": 11.5, "y": 1},
+                {"matrix": [6, 1], "x": 12.5, "y": 1},
+                {"matrix": [6, 0], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"label":"CapsLock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";", "x":10.75, "y":2},
-                {"label":"'", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [7, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 5], "x": 8.75, "y": 2},
+                {"matrix": [7, 4], "x": 9.75, "y": 2},
+                {"matrix": [7, 3], "x": 10.75, "y": 2},
+                {"matrix": [7, 2], "x": 11.75, "y": 2},
+                {"matrix": [7, 0], "x": 12.75, "y": 2, "w": 2.25},
 
-                { "x": 0, "y": 3, "w": 1.25 },
-                {"label":"Shift", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",", "x":9.25, "y":3},
-                {"label":".", "x":10.25, "y":3},
-                {"label":"/", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Lower", "x":14, "y":3},
-                {"label":"Up", "x":15.25, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [8, 6], "x": 7.25, "y": 3},
+                {"matrix": [8, 5], "x": 8.25, "y": 3},
+                {"matrix": [8, 4], "x": 9.25, "y": 3},
+                {"matrix": [8, 3], "x": 10.25, "y": 3},
+                {"matrix": [8, 2], "x": 11.25, "y": 3},
+                {"matrix": [8, 1], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [8, 0], "x": 14, "y": 3},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Alt", "x":1.25, "y":4, "w":1.25},
-                {"label":"Lower", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":2.25},
-                {"label":"Space", "x":6, "y":4, "w":1.25},
-                {"label":"Enter", "x":7.25, "y":4, "w":2.75},
-                {"label":"Raise", "x":10, "y":4, "w":1.25},
-                {"label":"Alt", "x":11.25, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":12.5, "y":4, "w":1.25},
-                {"label":"Left", "x":14.25, "y":4},
-                {"label":"Down", "x":15.25, "y":4},
-                {"label":"Right", "x":16.25, "y":4}
+                {"matrix": [9, 1], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25},
+                {"matrix": [4, 4], "x": 6, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 7.25, "y": 4, "w": 2.75},
+                {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
+
+                {"matrix": [9, 4], "x": 14.25, "y": 4},
+                {"matrix": [9, 3], "x": 15.25, "y": 4},
+                {"matrix": [9, 2], "x": 16.25, "y": 4}
             ]
         },
         "LAYOUT_iso": {
             "layout": [
-                {"label":"`", "x":0, "y":0},
-                {"label":"1", "x":1, "y":0},
-                {"label":"2", "x":2, "y":0},
-                {"label":"3", "x":3, "y":0},
-                {"label":"4", "x":4, "y":0},
-                {"label":"5", "x":5, "y":0},
-                {"label":"6", "x":6, "y":0},
-                {"label":"7", "x":7, "y":0},
-                {"label":"8", "x":8, "y":0},
-                {"label":"9", "x":9, "y":0},
-                {"label":"0", "x":10, "y":0},
-                {"label":"-", "x":11, "y":0},
-                {"label":"=", "x":12, "y":0},
-                {"label":"Back space", "x":13, "y":0},
-                {"label":"Delete", "x":14, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [5, 6], "x": 7, "y": 0},
+                {"matrix": [5, 5], "x": 8, "y": 0},
+                {"matrix": [5, 4], "x": 9, "y": 0},
+                {"matrix": [5, 3], "x": 10, "y": 0},
+                {"matrix": [5, 2], "x": 11, "y": 0},
+                {"matrix": [5, 1], "x": 12, "y": 0},
+                {"matrix": [5, 0], "x": 13, "y": 0},
+                {"matrix": [9, 0], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [6, 6], "x": 7.5, "y": 1},
+                {"matrix": [6, 5], "x": 8.5, "y": 1},
+                {"matrix": [6, 4], "x": 9.5, "y": 1},
+                {"matrix": [6, 3], "x": 10.5, "y": 1},
+                {"matrix": [6, 2], "x": 11.5, "y": 1},
+                {"matrix": [6, 1], "x": 12.5, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [7, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 5], "x": 8.75, "y": 2},
+                {"matrix": [7, 4], "x": 9.75, "y": 2},
+                {"matrix": [7, 3], "x": 10.75, "y": 2},
+                {"matrix": [7, 2], "x": 11.75, "y": 2},
+                {"matrix": [7, 1], "x": 12.75, "y": 2},
+                {"matrix": [7, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
 
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"[", "x":11.5, "y":1},
-                {"label":"]", "x":12.5, "y":1},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [8, 6], "x": 7.25, "y": 3},
+                {"matrix": [8, 5], "x": 8.25, "y": 3},
+                {"matrix": [8, 4], "x": 9.25, "y": 3},
+                {"matrix": [8, 3], "x": 10.25, "y": 3},
+                {"matrix": [8, 2], "x": 11.25, "y": 3},
+                {"matrix": [8, 1], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [8, 0], "x": 14, "y": 3},
 
-                {"label":"CapsLock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";", "x":10.75, "y":2},
-                {"label":"'", "x":11.75, "y":2},
-                {"label":"#", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
+                {"matrix": [9, 1], "x": 15.25, "y": 3},
 
-                { "x": 0, "y": 3, "w": 1.25 },
-                {"label":"Shift", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",", "x":9.25, "y":3},
-                {"label":".", "x":10.25, "y":3},
-                {"label":"/", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Lower", "x":14, "y":3},
-                {"label":"Up", "x":15.25, "y":3},
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25},
+                {"matrix": [4, 4], "x": 6, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 7.25, "y": 4, "w": 2.75},
+                {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Alt", "x":1.25, "y":4, "w":1.25},
-                {"label":"Lower", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":2.25},
-                {"label":"Space", "x":6, "y":4, "w":1.25},
-                {"label":"Enter", "x":7.25, "y":4, "w":2.75},
-                {"label":"Raise", "x":10, "y":4, "w":1.25},
-                {"label":"Alt", "x":11.25, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":12.5, "y":4, "w":1.25},
-                {"label":"Left", "x":14.25, "y":4},
-                {"label":"Down", "x":15.25, "y":4},
-                {"label":"Right", "x":16.25, "y":4}
+                {"matrix": [9, 4], "x": 14.25, "y": 4},
+                {"matrix": [9, 3], "x": 15.25, "y": 4},
+                {"matrix": [9, 2], "x": 16.25, "y": 4}
             ]
         }
     }

+ 83 - 83
keyboards/bear_face/v1/info.json

@@ -5,94 +5,94 @@
     "layouts": {
         "LAYOUT_83_ansi": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0, "w":1.5},
-                {"label":"F1", "x":1.5, "y":0},
-                {"label":"F2", "x":2.5, "y":0},
-                {"label":"F3", "x":3.5, "y":0},
-                {"label":"F4", "x":4.5, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.5, "y":0},
-                {"label":"F10", "x":10.5, "y":0},
-                {"label":"F11", "x":11.5, "y":0},
-                {"label":"F12", "x":12.5, "y":0},
-                {"label":"Pn", "x":13.5, "y":0},
-                {"label":"Delete", "x":14.5, "y":0, "w":1.5},
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+                {"matrix": [0, 13], "x": 13.5, "y": 0},
+                {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
 
-                {"label":"~", "x":0, "y":1},
-                {"label":"!", "x":1, "y":1},
-                {"label":"@", "x":2, "y":1},
-                {"label":"#", "x":3, "y":1},
-                {"label":"$", "x":4, "y":1},
-                {"label":"%", "x":5, "y":1},
-                {"label":"^", "x":6, "y":1},
-                {"label":"&", "x":7, "y":1},
-                {"label":"*", "x":8, "y":1},
-                {"label":"(", "x":9, "y":1},
-                {"label":")", "x":10, "y":1},
-                {"label":"_", "x":11, "y":1},
-                {"label":"+", "x":12, "y":1},
-                {"label":"Backspace", "x":13, "y":1, "w":2},
-                {"label":"Home", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+                {"matrix": [1, 12], "x": 12, "y": 1},
+                {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"label":"Tab", "x":0, "y":2, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2},
-                {"label":"W", "x":2.5, "y":2},
-                {"label":"E", "x":3.5, "y":2},
-                {"label":"R", "x":4.5, "y":2},
-                {"label":"T", "x":5.5, "y":2},
-                {"label":"Y", "x":6.5, "y":2},
-                {"label":"U", "x":7.5, "y":2},
-                {"label":"I", "x":8.5, "y":2},
-                {"label":"O", "x":9.5, "y":2},
-                {"label":"P", "x":10.5, "y":2},
-                {"label":"{", "x":11.5, "y":2},
-                {"label":"}", "x":12.5, "y":2},
-                {"label":"|", "x":13.5, "y":2, "w":1.5},
-                {"label":"Pg Up", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2},
+                {"matrix": [2, 2], "x": 2.5, "y": 2},
+                {"matrix": [2, 3], "x": 3.5, "y": 2},
+                {"matrix": [2, 4], "x": 4.5, "y": 2},
+                {"matrix": [2, 5], "x": 5.5, "y": 2},
+                {"matrix": [2, 6], "x": 6.5, "y": 2},
+                {"matrix": [2, 7], "x": 7.5, "y": 2},
+                {"matrix": [2, 8], "x": 8.5, "y": 2},
+                {"matrix": [2, 9], "x": 9.5, "y": 2},
+                {"matrix": [2, 10], "x": 10.5, "y": 2},
+                {"matrix": [2, 11], "x": 11.5, "y": 2},
+                {"matrix": [2, 12], "x": 12.5, "y": 2},
+                {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
-                {"label":"A", "x":1.75, "y":3},
-                {"label":"S", "x":2.75, "y":3},
-                {"label":"D", "x":3.75, "y":3},
-                {"label":"F", "x":4.75, "y":3},
-                {"label":"G", "x":5.75, "y":3},
-                {"label":"H", "x":6.75, "y":3},
-                {"label":"J", "x":7.75, "y":3},
-                {"label":"K", "x":8.75, "y":3},
-                {"label":"L", "x":9.75, "y":3},
-                {"label":":", "x":10.75, "y":3},
-                {"label":"\"", "x":11.75, "y":3},
-                {"label":"Enter", "x":12.75, "y":3, "w":2.25},
-                {"label":"Pg Dn", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3},
+                {"matrix": [3, 2], "x": 2.75, "y": 3},
+                {"matrix": [3, 3], "x": 3.75, "y": 3},
+                {"matrix": [3, 4], "x": 4.75, "y": 3},
+                {"matrix": [3, 5], "x": 5.75, "y": 3},
+                {"matrix": [3, 6], "x": 6.75, "y": 3},
+                {"matrix": [3, 7], "x": 7.75, "y": 3},
+                {"matrix": [3, 8], "x": 8.75, "y": 3},
+                {"matrix": [3, 9], "x": 9.75, "y": 3},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3},
+                {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"label":"Shift", "x":0, "y":4, "w":2.25},
-                {"label":"Z", "x":2.25, "y":4},
-                {"label":"X", "x":3.25, "y":4},
-                {"label":"C", "x":4.25, "y":4},
-                {"label":"V", "x":5.25, "y":4},
-                {"label":"B", "x":6.25, "y":4},
-                {"label":"N", "x":7.25, "y":4},
-                {"label":"M", "x":8.25, "y":4},
-                {"label":"<", "x":9.25, "y":4},
-                {"label":">", "x":10.25, "y":4},
-                {"label":"?", "x":11.25, "y":4},
-                {"label":"Shift", "x":12.25, "y":4, "w":1.75},
-                {"label":"Up", "x":14, "y":4},
-                {"label":"End", "x":15, "y":4},
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
+                {"matrix": [4, 1], "x": 2.25, "y": 4},
+                {"matrix": [4, 2], "x": 3.25, "y": 4},
+                {"matrix": [4, 3], "x": 4.25, "y": 4},
+                {"matrix": [4, 4], "x": 5.25, "y": 4},
+                {"matrix": [4, 5], "x": 6.25, "y": 4},
+                {"matrix": [4, 6], "x": 7.25, "y": 4},
+                {"matrix": [4, 7], "x": 8.25, "y": 4},
+                {"matrix": [4, 8], "x": 9.25, "y": 4},
+                {"matrix": [4, 9], "x": 10.25, "y": 4},
+                {"matrix": [4, 10], "x": 11.25, "y": 4},
+                {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4},
 
-                {"label":"Ctrl", "x":0, "y":5, "w":1.25},
-                {"label":"Win", "x":1.25, "y":5, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":5, "w":1.25},
-                {"x":3.75, "y":5, "w":6.25},
-                {"label":"Alt", "x":10, "y":5},
-                {"label":"Fn", "x":11, "y":5},
-                {"label":"Ctrl", "x":12, "y":5},
-                {"label":"Left", "x":13, "y":5},
-                {"label":"Down", "x":14, "y":5},
-                {"label":"Right", "x":15, "y":5}
+                {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+                {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5},
+                {"matrix": [5, 10], "x": 11, "y": 5},
+                {"matrix": [5, 11], "x": 12, "y": 5},
+                {"matrix": [5, 12], "x": 13, "y": 5},
+                {"matrix": [5, 13], "x": 14, "y": 5},
+                {"matrix": [5, 14], "x": 15, "y": 5}
             ]
         }
     }

+ 1 - 1
keyboards/bear_face/v1/v1.c

@@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "v1.h"
+#include "quantum.h"
 
 void keyboard_pre_init_kb(void) {
     //Sets LED pin as output

+ 0 - 36
keyboards/bear_face/v1/v1.h

@@ -1,36 +0,0 @@
-/*
-Copyright 2020 chemicalwill <https://github.com/chemicalwill>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_83_ansi( \
-    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
-    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
-    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
-    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, \
-    K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410,       K412, K413, K414, \
-    K500, K501, K502,             K505,                   K509, K510, K511, K512, K513, K514  \
-) { \
-    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014 }, \
-    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114 }, \
-    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214 }, \
-    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314 }, \
-    { K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  KC_NO, K412,  K413,  K414 }, \
-    { K500,  K501,  K502,  KC_NO, KC_NO, K505,  KC_NO, KC_NO, KC_NO, K509,  K510,  K511,  K512,  K513,  K514 }  \
-}

+ 167 - 168
keyboards/bear_face/v2/info.json

@@ -5,188 +5,187 @@
     "layouts": {
         "LAYOUT_83_ansi": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0, "w":1.5},
-                {"label":"F1", "x":1.5, "y":0},
-                {"label":"F2", "x":2.5, "y":0},
-                {"label":"F3", "x":3.5, "y":0},
-                {"label":"F4", "x":4.5, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.5, "y":0},
-                {"label":"F10", "x":10.5, "y":0},
-                {"label":"F11", "x":11.5, "y":0},
-                {"label":"F12", "x":12.5, "y":0},
-                {"label":"Pn", "x":13.5, "y":0},
-                {"label":"Delete", "x":14.5, "y":0, "w":1.5},
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+                {"matrix": [0, 13], "x": 13.5, "y": 0},
+                {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
 
-                {"label":"~", "x":0, "y":1},
-                {"label":"!", "x":1, "y":1},
-                {"label":"@", "x":2, "y":1},
-                {"label":"#", "x":3, "y":1},
-                {"label":"$", "x":4, "y":1},
-                {"label":"%", "x":5, "y":1},
-                {"label":"^", "x":6, "y":1},
-                {"label":"&", "x":7, "y":1},
-                {"label":"*", "x":8, "y":1},
-                {"label":"(", "x":9, "y":1},
-                {"label":")", "x":10, "y":1},
-                {"label":"_", "x":11, "y":1},
-                {"label":"+", "x":12, "y":1},
-                {"label":"Backspace", "x":13, "y":1, "w":2},
-                {"label":"Home", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+                {"matrix": [1, 12], "x": 12, "y": 1},
+                {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"label":"Tab", "x":0, "y":2, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2},
-                {"label":"W", "x":2.5, "y":2},
-                {"label":"E", "x":3.5, "y":2},
-                {"label":"R", "x":4.5, "y":2},
-                {"label":"T", "x":5.5, "y":2},
-                {"label":"Y", "x":6.5, "y":2},
-                {"label":"U", "x":7.5, "y":2},
-                {"label":"I", "x":8.5, "y":2},
-                {"label":"O", "x":9.5, "y":2},
-                {"label":"P", "x":10.5, "y":2},
-                {"label":"{", "x":11.5, "y":2},
-                {"label":"}", "x":12.5, "y":2},
-                {"label":"|", "x":13.5, "y":2, "w":1.5},
-                {"label":"Pg Up", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2},
+                {"matrix": [2, 2], "x": 2.5, "y": 2},
+                {"matrix": [2, 3], "x": 3.5, "y": 2},
+                {"matrix": [2, 4], "x": 4.5, "y": 2},
+                {"matrix": [2, 5], "x": 5.5, "y": 2},
+                {"matrix": [2, 6], "x": 6.5, "y": 2},
+                {"matrix": [2, 7], "x": 7.5, "y": 2},
+                {"matrix": [2, 8], "x": 8.5, "y": 2},
+                {"matrix": [2, 9], "x": 9.5, "y": 2},
+                {"matrix": [2, 10], "x": 10.5, "y": 2},
+                {"matrix": [2, 11], "x": 11.5, "y": 2},
+                {"matrix": [2, 12], "x": 12.5, "y": 2},
+                {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
-                {"label":"A", "x":1.75, "y":3},
-                {"label":"S", "x":2.75, "y":3},
-                {"label":"D", "x":3.75, "y":3},
-                {"label":"F", "x":4.75, "y":3},
-                {"label":"G", "x":5.75, "y":3},
-                {"label":"H", "x":6.75, "y":3},
-                {"label":"J", "x":7.75, "y":3},
-                {"label":"K", "x":8.75, "y":3},
-                {"label":"L", "x":9.75, "y":3},
-                {"label":":", "x":10.75, "y":3},
-                {"label":"\"", "x":11.75, "y":3},
-                {"label":"Enter", "x":12.75, "y":3, "w":2.25},
-                {"label":"Pg Dn", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3},
+                {"matrix": [3, 2], "x": 2.75, "y": 3},
+                {"matrix": [3, 3], "x": 3.75, "y": 3},
+                {"matrix": [3, 4], "x": 4.75, "y": 3},
+                {"matrix": [3, 5], "x": 5.75, "y": 3},
+                {"matrix": [3, 6], "x": 6.75, "y": 3},
+                {"matrix": [3, 7], "x": 7.75, "y": 3},
+                {"matrix": [3, 8], "x": 8.75, "y": 3},
+                {"matrix": [3, 9], "x": 9.75, "y": 3},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3},
+                {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"label":"Shift", "x":0, "y":4, "w":2.25},
-                {"label":"Z", "x":2.25, "y":4},
-                {"label":"X", "x":3.25, "y":4},
-                {"label":"C", "x":4.25, "y":4},
-                {"label":"V", "x":5.25, "y":4},
-                {"label":"B", "x":6.25, "y":4},
-                {"label":"N", "x":7.25, "y":4},
-                {"label":"M", "x":8.25, "y":4},
-                {"label":"<", "x":9.25, "y":4},
-                {"label":">", "x":10.25, "y":4},
-                {"label":"?", "x":11.25, "y":4},
-                {"label":"Shift", "x":12.25, "y":4, "w":1.75},
-                {"label":"Up", "x":14, "y":4},
-                {"label":"End", "x":15, "y":4},
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4},
+                {"matrix": [4, 3], "x": 3.25, "y": 4},
+                {"matrix": [4, 4], "x": 4.25, "y": 4},
+                {"matrix": [4, 5], "x": 5.25, "y": 4},
+                {"matrix": [4, 6], "x": 6.25, "y": 4},
+                {"matrix": [4, 7], "x": 7.25, "y": 4},
+                {"matrix": [4, 8], "x": 8.25, "y": 4},
+                {"matrix": [4, 9], "x": 9.25, "y": 4},
+                {"matrix": [4, 10], "x": 10.25, "y": 4},
+                {"matrix": [4, 11], "x": 11.25, "y": 4},
+                {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4},
 
-                {"label":"Ctrl", "x":0, "y":5, "w":1.25},
-                {"label":"Win", "x":1.25, "y":5, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":5, "w":1.25},
-                {"x":3.75, "y":5, "w":6.25},
-                {"label":"Alt", "x":10, "y":5},
-                {"label":"Fn", "x":11, "y":5},
-                {"label":"Ctrl", "x":12, "y":5},
-                {"label":"Left", "x":13, "y":5},
-                {"label":"Down", "x":14, "y":5},
-                {"label":"Right", "x":15, "y":5}
+                {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+                {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5},
+                {"matrix": [5, 10], "x": 11, "y": 5},
+                {"matrix": [5, 11], "x": 12, "y": 5},
+                {"matrix": [5, 12], "x": 13, "y": 5},
+                {"matrix": [5, 13], "x": 14, "y": 5},
+                {"matrix": [5, 14], "x": 15, "y": 5}
             ]
         },
-
         "LAYOUT_84_iso": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0, "w":1.5},
-                {"label":"F1", "x":1.5, "y":0},
-                {"label":"F2", "x":2.5, "y":0},
-                {"label":"F3", "x":3.5, "y":0},
-                {"label":"F4", "x":4.5, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.5, "y":0},
-                {"label":"F10", "x":10.5, "y":0},
-                {"label":"F11", "x":11.5, "y":0},
-                {"label":"F12", "x":12.5, "y":0},
-                {"label":"Pn", "x":13.5, "y":0},
-                {"label":"Delete", "x":14.5, "y":0, "w":1.5},
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+                {"matrix": [0, 13], "x": 13.5, "y": 0},
+                {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
 
-                {"label":"\u00ac", "x":0, "y":1},
-                {"label":"!", "x":1, "y":1},
-                {"label":"@", "x":2, "y":1},
-                {"label":"\u00a3", "x":3, "y":1},
-                {"label":"$", "x":4, "y":1},
-                {"label":"%", "x":5, "y":1},
-                {"label":"^", "x":6, "y":1},
-                {"label":"&", "x":7, "y":1},
-                {"label":"*", "x":8, "y":1},
-                {"label":"(", "x":9, "y":1},
-                {"label":")", "x":10, "y":1},
-                {"label":"_", "x":11, "y":1},
-                {"label":"+", "x":12, "y":1},
-                {"label":"Backspace", "x":13, "y":1, "w":2},
-                {"label":"Home", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+                {"matrix": [1, 12], "x": 12, "y": 1},
+                {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"label":"Tab", "x":0, "y":2, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2},
-                {"label":"W", "x":2.5, "y":2},
-                {"label":"E", "x":3.5, "y":2},
-                {"label":"R", "x":4.5, "y":2},
-                {"label":"T", "x":5.5, "y":2},
-                {"label":"Y", "x":6.5, "y":2},
-                {"label":"U", "x":7.5, "y":2},
-                {"label":"I", "x":8.5, "y":2},
-                {"label":"O", "x":9.5, "y":2},
-                {"label":"P", "x":10.5, "y":2},
-                {"label":"{", "x":11.5, "y":2},
-                {"label":"}", "x":12.5, "y":2},
-                {"label":"Pg Up", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2},
+                {"matrix": [2, 2], "x": 2.5, "y": 2},
+                {"matrix": [2, 3], "x": 3.5, "y": 2},
+                {"matrix": [2, 4], "x": 4.5, "y": 2},
+                {"matrix": [2, 5], "x": 5.5, "y": 2},
+                {"matrix": [2, 6], "x": 6.5, "y": 2},
+                {"matrix": [2, 7], "x": 7.5, "y": 2},
+                {"matrix": [2, 8], "x": 8.5, "y": 2},
+                {"matrix": [2, 9], "x": 9.5, "y": 2},
+                {"matrix": [2, 10], "x": 10.5, "y": 2},
+                {"matrix": [2, 11], "x": 11.5, "y": 2},
+                {"matrix": [2, 12], "x": 12.5, "y": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
-                {"label":"A", "x":1.75, "y":3},
-                {"label":"S", "x":2.75, "y":3},
-                {"label":"D", "x":3.75, "y":3},
-                {"label":"F", "x":4.75, "y":3},
-                {"label":"G", "x":5.75, "y":3},
-                {"label":"H", "x":6.75, "y":3},
-                {"label":"J", "x":7.75, "y":3},
-                {"label":"K", "x":8.75, "y":3},
-                {"label":"L", "x":9.75, "y":3},
-                {"label":":", "x":10.75, "y":3},
-                {"label":"\"", "x":11.75, "y":3},
-                {"label":"~", "x":12.75, "y":3},
-                {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2},
-                {"label":"Pg Dn", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3},
+                {"matrix": [3, 2], "x": 2.75, "y": 3},
+                {"matrix": [3, 3], "x": 3.75, "y": 3},
+                {"matrix": [3, 4], "x": 4.75, "y": 3},
+                {"matrix": [3, 5], "x": 5.75, "y": 3},
+                {"matrix": [3, 6], "x": 6.75, "y": 3},
+                {"matrix": [3, 7], "x": 7.75, "y": 3},
+                {"matrix": [3, 8], "x": 8.75, "y": 3},
+                {"matrix": [3, 9], "x": 9.75, "y": 3},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3},
+                {"matrix": [3, 12], "x": 12.75, "y": 3},
+                {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"label":"Shift", "x":0, "y":4, "w":1.25},
-                {"label":"|", "x":1.25, "y":4},
-                {"label":"Z", "x":2.25, "y":4},
-                {"label":"X", "x":3.25, "y":4},
-                {"label":"C", "x":4.25, "y":4},
-                {"label":"V", "x":5.25, "y":4},
-                {"label":"B", "x":6.25, "y":4},
-                {"label":"N", "x":7.25, "y":4},
-                {"label":"M", "x":8.25, "y":4},
-                {"label":"<", "x":9.25, "y":4},
-                {"label":">", "x":10.25, "y":4},
-                {"label":"?", "x":11.25, "y":4},
-                {"label":"Shift", "x":12.25, "y":4, "w":1.75},
-                {"label":"Up", "x":14, "y":4},
-                {"label":"End", "x":15, "y":4},
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4},
+                {"matrix": [4, 2], "x": 2.25, "y": 4},
+                {"matrix": [4, 3], "x": 3.25, "y": 4},
+                {"matrix": [4, 4], "x": 4.25, "y": 4},
+                {"matrix": [4, 5], "x": 5.25, "y": 4},
+                {"matrix": [4, 6], "x": 6.25, "y": 4},
+                {"matrix": [4, 7], "x": 7.25, "y": 4},
+                {"matrix": [4, 8], "x": 8.25, "y": 4},
+                {"matrix": [4, 9], "x": 9.25, "y": 4},
+                {"matrix": [4, 10], "x": 10.25, "y": 4},
+                {"matrix": [4, 11], "x": 11.25, "y": 4},
+                {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4},
 
-                {"label":"Ctrl", "x":0, "y":5, "w":1.25},
-                {"label":"Win", "x":1.25, "y":5, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":5, "w":1.25},
-                {"x":3.75, "y":5, "w":6.25},
-                {"label":"Alt Gr", "x":10, "y":5},
-                {"label":"Fn", "x":11, "y":5},
-                {"label":"Ctrl", "x":12, "y":5},
-                {"label":"Left", "x":13, "y":5},
-                {"label":"Down", "x":14, "y":5},
-                {"label":"Right", "x":15, "y":5}
+                {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+                {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5},
+                {"matrix": [5, 10], "x": 11, "y": 5},
+                {"matrix": [5, 11], "x": 12, "y": 5},
+                {"matrix": [5, 12], "x": 13, "y": 5},
+                {"matrix": [5, 13], "x": 14, "y": 5},
+                {"matrix": [5, 14], "x": 15, "y": 5}
             ]
         }
     }

+ 1 - 1
keyboards/bear_face/v2/v2.c

@@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "v2.h"
+#include "quantum.h"
 
 void keyboard_pre_init_kb(void) {
     //Sets LED pin as output

+ 0 - 52
keyboards/bear_face/v2/v2.h

@@ -1,52 +0,0 @@
-/*
-Copyright 2020 chemicalwill <https://github.com/chemicalwill>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_83_ansi( \
-    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
-    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
-    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
-    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, \
-    K400,       K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, \
-    K500, K501, K502,             K505,                   K509, K510, K511, K512, K513, K514  \
-) { \
-    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014 }, \
-    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114 }, \
-    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214 }, \
-    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314 }, \
-    { K400,  KC_NO, K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  K412,  K413,  K414 }, \
-    { K500,  K501,  K502,  KC_NO, KC_NO, K505,  KC_NO, KC_NO, KC_NO, K509,  K510,  K511,  K512,  K513,  K514 }  \
-}
-
-#define LAYOUT_84_iso( \
-    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
-    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
-    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, \
-    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
-    K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, \
-    K500, K501, K502,             K505,                   K509, K510, K511, K512, K513, K514  \
-) { \
-    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014 }, \
-    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114 }, \
-    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214 }, \
-    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  K314 }, \
-    { K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  K412,  K413,  K414 }, \
-    { K500,  K501,  K502,  KC_NO, KC_NO, K505,  KC_NO, KC_NO, KC_NO, K509,  K510,  K511,  K512,  K513,  K514 }  \
-}

+ 0 - 33
keyboards/boardrun/classic/classic.h

@@ -1,33 +0,0 @@
-/*
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_classic( \
-  k11, k12, k13, k14, k15, k16, k17,          k18, k19, k110, k111, k112, k113, k114, \
-  k21, k22, k23, k24, k25, k26, k27,          k28, k29, k210, k211, k212, k213, k214, \
-  k31, k32, k33, k34, k35, k36, k37,          k38, k39, k310, k311, k312, k313, k314, \
-  k41, k42, k43, k44, k45, k46, k47,          k48, k49, k410, k411, k412, k413, k414, \
-       k52, k53, k54, k55, k56, k57,   k51,   k58, k59, k510, k511, k512, k513       \
-) \
-{ \
-  { k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114 , KC_NO, KC_NO, KC_NO,}, \
-  { k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214 , KC_NO, KC_NO, KC_NO,}, \
-  { k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314 , KC_NO, KC_NO, KC_NO,}, \
-  { k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413, k414 , KC_NO, KC_NO, KC_NO,}, \
-  { k51, k52, k53, k54, k55, k56, k57, k58, k59, k510, k511, k512, k513, KC_NO, KC_NO, KC_NO, KC_NO} \
-}

+ 78 - 74
keyboards/boardrun/classic/info.json

@@ -22,82 +22,86 @@
     "layouts": {
         "LAYOUT_classic": {
             "layout": [
-                {"y":0, "x":0,   "label":"Esc", "w":1.5},   
-                {"y":0, "x":1.5, "label":"1"},    
-                {"y":0, "x":2.5, "label":"2"},      
-                {"y":0, "x":3.5, "label":"3"}, 
-                {"y":0, "x":4.5, "label":"4"},          
-                {"y":0, "x":5.5, "label":"5"},        
-                {"y":0, "x":6.5, "label":"-"},
-                {"y":0, "x":9,   "label":"="},        
-                {"y":0, "x":10,  "label":"6"},
-                {"y":0, "x":11,  "label":"7"},
-                {"y":0, "x":12,  "label":"8"},
-                {"y":0, "x":13,  "label":"9"},
-                {"y":0, "x":14,  "label":"0"},
-                {"y":0, "x":15,  "label":"Backspace", "w":1.5},
-                
-                {"y":1, "x":0,   "label":"Tab", "w":1.5},
-                {"y":1, "x":1.5, "label":"Q"},    
-                {"y":1, "x":2.5, "label":"W"},      
-                {"y":1, "x":3.5, "label":"E"}, 
-                {"y":1, "x":4.5, "label":"R"},          
-                {"y":1, "x":5.5, "label":"T"},        
-                {"y":1, "x":6.5, "label":"["},
-                {"y":1, "x":9,   "label":"]"},        
-                {"y":1, "x":10,  "label":"Y"},
-                {"y":1, "x":11,  "label":"U"},
-                {"y":1, "x":12,  "label":"I"},
-                {"y":1, "x":13,  "label":"O"},
-                {"y":1, "x":14,  "label":"P"},
-                {"y":1, "x":15,  "label":"\\",    "w":1.5},
-                
-                {"y":2, "x":0,   "label":"LCtrl", "w":1.5},
-                {"y":2, "x":1.5, "label":"A"},    
-                {"y":2, "x":2.5, "label":"S"},      
-                {"y":2, "x":3.5, "label":"D"}, 
-                {"y":2, "x":4.5, "label":"F"},          
-                {"y":2, "x":5.5, "label":"G"},        
-                {"y":2, "x":6.5, "label":"Home"},
-                {"y":2, "x":9,   "label":"PgUp"},        
-                {"y":2, "x":10,  "label":"H"},
-                {"y":2, "x":11,  "label":"J"},
-                {"y":2, "x":12,  "label":"K"},
-                {"y":2, "x":13,  "label":"L"},
-                {"y":2, "x":14,  "label":";"},
-                {"y":2, "x":15,  "label":"'", "w":1.5},
-                
-                {"y":3, "x":0,   "label":"LShift", "w":1.5},
-                {"y":3, "x":1.5, "label":"Z"},    
-                {"y":3, "x":2.5, "label":"X"},      
-                {"y":3, "x":3.5, "label":"C"}, 
-                {"y":3, "x":4.5, "label":"V"},          
-                {"y":3, "x":5.5, "label":"B"},        
-                {"y":3, "x":6.5, "label":"End"},
-                {"y":3, "x":9,   "label":"PgDn"},        
-                {"y":3, "x":10,  "label":"N"},
-                {"y":3, "x":11,  "label":"M"},
-                {"y":3, "x":12,  "label":","},
-                {"y":3, "x":13,  "label":"."},
-                {"y":3, "x":14,  "label":"/"},
-                {"y":3, "x":15,  "label":"RShift / Enter", "w":1.5},
-                
-                {"y":4, "x":1.5, "label":"LGui"},    
-                {"y":4, "x":2.5, "label":"Del"},      
-                {"y":4, "x":3.5, "label":"`"}, 
-                {"y":4, "x":4.5, "label":"LAlt"},          
-                {"y":4, "x":5.5, "label":"Space"},        
-                {"y":4, "x":6.5, "label":"Space"},
-                {"y":4, "x":7.75,"label":"Fn"},
-                {"y":4, "x":9,   "label":"Space / AltGr"},        
-                {"y":4, "x":10,  "label":"Space / AltGr"},
-                {"y":4, "x":11,  "label":"Left"},
-                {"y":4, "x":12,  "label":"Down"},
-                {"y":4, "x":13,  "label":"Up"},
-                {"y":4, "x":14,  "label":"Right"}
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
 
+                {"matrix": [0, 7], "x": 9, "y": 0},
+                {"matrix": [0, 8], "x": 10, "y": 0},
+                {"matrix": [0, 9], "x": 11, "y": 0},
+                {"matrix": [0, 10], "x": 12, "y": 0},
+                {"matrix": [0, 11], "x": 13, "y": 0},
+                {"matrix": [0, 12], "x": 14, "y": 0},
+                {"matrix": [0, 13], "x": 15, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+
+                {"matrix": [1, 7], "x": 9, "y": 1},
+                {"matrix": [1, 8], "x": 10, "y": 1},
+                {"matrix": [1, 9], "x": 11, "y": 1},
+                {"matrix": [1, 10], "x": 12, "y": 1},
+                {"matrix": [1, 11], "x": 13, "y": 1},
+                {"matrix": [1, 12], "x": 14, "y": 1},
+                {"matrix": [1, 13], "x": 15, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2},
+                {"matrix": [2, 2], "x": 2.5, "y": 2},
+                {"matrix": [2, 3], "x": 3.5, "y": 2},
+                {"matrix": [2, 4], "x": 4.5, "y": 2},
+                {"matrix": [2, 5], "x": 5.5, "y": 2},
+                {"matrix": [2, 6], "x": 6.5, "y": 2},
+
+                {"matrix": [2, 7], "x": 9, "y": 2},
+                {"matrix": [2, 8], "x": 10, "y": 2},
+                {"matrix": [2, 9], "x": 11, "y": 2},
+                {"matrix": [2, 10], "x": 12, "y": 2},
+                {"matrix": [2, 11], "x": 13, "y": 2},
+                {"matrix": [2, 12], "x": 14, "y": 2},
+                {"matrix": [2, 13], "x": 15, "y": 2, "w": 1.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 3},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+
+                {"matrix": [3, 7], "x": 9, "y": 3},
+                {"matrix": [3, 8], "x": 10, "y": 3},
+                {"matrix": [3, 9], "x": 11, "y": 3},
+                {"matrix": [3, 10], "x": 12, "y": 3},
+                {"matrix": [3, 11], "x": 13, "y": 3},
+                {"matrix": [3, 12], "x": 14, "y": 3},
+                {"matrix": [3, 13], "x": 15, "y": 3, "w": 1.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4},
+                {"matrix": [4, 3], "x": 3.5, "y": 4},
+                {"matrix": [4, 4], "x": 4.5, "y": 4},
+                {"matrix": [4, 5], "x": 5.5, "y": 4},
+                {"matrix": [4, 6], "x": 6.5, "y": 4},
+
+                {"matrix": [4, 0], "x": 7.75, "y": 4},
+
+                {"matrix": [4, 7], "x": 9, "y": 4},
+                {"matrix": [4, 8], "x": 10, "y": 4},
+                {"matrix": [4, 9], "x": 11, "y": 4},
+                {"matrix": [4, 10], "x": 12, "y": 4},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4}
             ]
         }
     }
-
 }

+ 1 - 1
keyboards/bolsa/damapad/damapad.c

@@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "damapad.h" 
+#include "quantum.h"
 
 #ifdef OLED_ENABLE
 bool oled_task_kb(void) {

+ 0 - 42
keyboards/bolsa/damapad/damapad.h

@@ -1,42 +0,0 @@
-/*
-Copyright 2021 Matthew Dias
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_wkl( \
-	K00, K01, K02, K03, K04, K05, \
-	K10, K11, K12, K13, K14, K15, \
-	K20, K21,      K23,      K25  \
-) { \
-	{ K00, K01, K02, K03, K04, K05 }, \
-	{ K10, K11, K12, K13, K14, K15 }, \
-	{ K20, K21, XXX, K23, XXX, K25 }  \
-}
-
-#define LAYOUT_bar( \
-	K00, K01, K02, K03, K04, K05, \
-	K10, K11, K12, K13, K14, K15, \
-	K20,           K23,      K25  \
-) { \
-	{ K00, K01, K02, K03, K04, K05 }, \
-	{ K10, K11, K12, K13, K14, K15 }, \
-	{ K20, XXX, XXX, K23, XXX, K25 }  \
-}

+ 45 - 98
keyboards/bolsa/damapad/info.json

@@ -22,106 +22,53 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT_wkl": {
-            "layout": [{
-                "x": 5.25,
-                "y": 0
-            }, {
-                "x": 0,
-                "y": 0.25
-            }, {
-                "x": 1,
-                "y": 0.25
-            }, {
-                "x": 2,
-                "y": 0.25
-            }, {
-                "x": 3,
-                "y": 0.25
-            }, {
-                "x": 4,
-                "y": 0.25
-            }, {
-                "x": 0,
-                "y": 1.25
-            }, {
-                "x": 1,
-                "y": 1.25
-            }, {
-                "x": 2,
-                "y": 1.25
-            }, {
-                "x": 3,
-                "y": 1.25
-            }, {
-                "x": 4,
-                "y": 1.25
-            }, {
-                "x": 5.25,
-                "y": 1.25
-            }, {
-                "x": 0,
-                "y": 2.25
-            }, {
-                "x": 1.75,
-                "y": 2.25
-            }, {
-                "x": 2.75,
-                "y": 2.25,
-                "w": 2.25
-            }, {
-                "x": 5.25,
-                "y": 2.25
-            }]
+            "layout": [
+                {"matrix": [0, 0], "x": 5.25, "y": 0},
+
+                {"matrix": [0, 1], "x": 0, "y": 0.25},
+                {"matrix": [0, 2], "x": 1, "y": 0.25},
+                {"matrix": [0, 3], "x": 2, "y": 0.25},
+                {"matrix": [0, 4], "x": 3, "y": 0.25},
+                {"matrix": [0, 5], "x": 4, "y": 0.25},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.25},
+                {"matrix": [1, 1], "x": 1, "y": 1.25},
+                {"matrix": [1, 2], "x": 2, "y": 1.25},
+                {"matrix": [1, 3], "x": 3, "y": 1.25},
+                {"matrix": [1, 4], "x": 4, "y": 1.25},
+
+                {"matrix": [1, 5], "x": 5.25, "y": 1.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.25},
+                {"matrix": [2, 1], "x": 1.75, "y": 2.25},
+                {"matrix": [2, 3], "x": 2.75, "y": 2.25, "w": 2.25},
+
+                {"matrix": [2, 5], "x": 5.25, "y": 2.25}
+            ]
         },
         "LAYOUT_bar": {
-            "layout": [{
-                "x": 5.25,
-                "y": 0
-            }, {
-                "x": 0,
-                "y": 0.25
-            }, {
-                "x": 1,
-                "y": 0.25
-            }, {
-                "x": 2,
-                "y": 0.25
-            }, {
-                "x": 3,
-                "y": 0.25
-            }, {
-                "x": 4,
-                "y": 0.25
-            }, {
-                "x": 0,
-                "y": 1.25
-            }, {
-                "x": 1,
-                "y": 1.25
-            }, {
-                "x": 2,
-                "y": 1.25
-            }, {
-                "x": 3,
-                "y": 1.25
-            }, {
-                "x": 4,
-                "y": 1.25
-            }, {
-                "x": 5.25,
-                "y": 1.25
-            }, {
-                "x": 0,
-                "y": 2.25,
-                "w": 2.75
-            }, {
-                "x": 2.75,
-                "y": 2.25,
-                "w": 2.25
-            }, {
-                "x": 5.25,
-                "y": 2.25
-            }]
+            "layout": [
+                {"matrix": [0, 0], "x": 5.25, "y": 0},
+
+                {"matrix": [0, 1], "x": 0, "y": 0.25},
+                {"matrix": [0, 2], "x": 1, "y": 0.25},
+                {"matrix": [0, 3], "x": 2, "y": 0.25},
+                {"matrix": [0, 4], "x": 3, "y": 0.25},
+                {"matrix": [0, 5], "x": 4, "y": 0.25},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.25},
+                {"matrix": [1, 1], "x": 1, "y": 1.25},
+                {"matrix": [1, 2], "x": 2, "y": 1.25},
+                {"matrix": [1, 3], "x": 3, "y": 1.25},
+                {"matrix": [1, 4], "x": 4, "y": 1.25},
+
+                {"matrix": [1, 5], "x": 5.25, "y": 1.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 2.75},
+                {"matrix": [2, 3], "x": 2.75, "y": 2.25, "w": 2.25},
+
+                {"matrix": [2, 5], "x": 5.25, "y": 2.25}
+            ]
         }
     }
 }

+ 0 - 57
keyboards/capsunlocked/cu24/cu24.h

@@ -1,57 +0,0 @@
-/* Copyright 2018 Yiancar
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-// This a shortcut to help you visually see your layout.
-// The following is an example using the Planck MIT layout
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT_grid( \
-    k00, k01, k02, k03, \
-    k10, k11, k12, k13, \
-    k20, k21, k22, k23, \
-    k30, k31, k32, k33, \
-    k40, k41, k42, k43, \
-    k50, k51, k52, k53 \
-) { \
-    { k00, k01, k02, k03 }, \
-    { k10, k11, k12, k13 }, \
-    { k20, k21, k22, k23 }, \
-    { k30, k31, k32, k33 }, \
-    { k40, k41, k42, k43 }, \
-    { k50, k51, k52, k53 } \
-}
-
-#define LAYOUT_numpad( \
-    k00, k01, k02, k03, \
-    k10, k11, k12, k13, \
-    k20, k21, k22, k23, \
-    k30, k31, k32, \
-    k40, k41, k42, k43, \
-         k51, k52 \
-) { \
-    { k00, k01, k02, k03 }, \
-    { k10, k11, k12, k13 }, \
-    { k20, k21, k22, k23 }, \
-    { k30, k31, k32, XXX }, \
-    { k40, k41, k42, k43 }, \
-    { XXX, k51, k52, XXX } \
-}

+ 59 - 3
keyboards/capsunlocked/cu24/info.json

@@ -25,11 +25,67 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT_grid": {
-            "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"x":1, "y":4}, {"label":".", "x":2, "y":4}, {"x":3, "y":4}, {"x":0, "y":5}, {"x":1, "y":5}, {"x":2, "y":5}, {"x":3, "y":5}]
-        },
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
 
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4},
+                {"matrix": [4, 1], "x": 1, "y": 4},
+                {"matrix": [4, 2], "x": 2, "y": 4},
+                {"matrix": [4, 3], "x": 3, "y": 4},
+
+                {"matrix": [5, 0], "x": 0, "y": 5},
+                {"matrix": [5, 1], "x": 1, "y": 5},
+                {"matrix": [5, 2], "x": 2, "y": 5},
+                {"matrix": [5, 3], "x": 3, "y": 5}
+            ]
+        },
         "LAYOUT_numpad": {
-            "layout": [{"label":"Num Lock", "x":0, "y":0}, {"label":"/", "x":1, "y":0}, {"label":"*", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"x":3, "y":2, "h":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"0", "x":0, "y":4}, {"x":1, "y":4}, {"label":".", "x":2, "y":4}, {"x":3, "y":4, "h":2}, {"x":0, "y":5, "w":2}, {"x":2, "y":5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4},
+                {"matrix": [4, 1], "x": 1, "y": 4},
+                {"matrix": [4, 2], "x": 2, "y": 4},
+                {"matrix": [4, 3], "x": 3, "y": 4, "h": 2},
+
+                {"matrix": [5, 1], "x": 0, "y": 5, "w": 2},
+                {"matrix": [5, 2], "x": 2, "y": 5}
+            ]
         }
     }
 }

+ 0 - 94
keyboards/chavdai40/info.json

@@ -5,99 +5,5 @@
     "usb": {
         "vid": "0x16D0",
         "pid": "0x0F95"
-    },
-    "layouts": {
-        "LAYOUT_44key": {
-            "layout": [
-                {"x":0, "y":0, "w":1.5}, 
-                {"label":"Q", "x":1.5, "y":0}, 
-                {"label":"W", "x":2.5, "y":0}, 
-                {"label":"E", "x":3.5, "y":0}, 
-                {"label":"R", "x":4.5, "y":0}, 
-                {"label":"T", "x":5.5, "y":0}, 
-                {"label":"Y", "x":6.5, "y":0}, 
-                {"label":"U", "x":7.5, "y":0}, 
-                {"label":"I", "x":8.5, "y":0}, 
-                {"label":"O", "x":9.5, "y":0}, 
-                {"label":"P", "x":10.5, "y":0}, 
-                {"label":"_", "x":11.5, "y":0}, 
-                {"label":"Backspace", "x":12.5, "y":0, "w":1.5}, 
-                {"label":"Ctrl", "x":0, "y":1, "w":1.75}, 
-                {"label":"A", "x":1.75, "y":1}, 
-                {"label":"S", "x":2.75, "y":1}, 
-                {"label":"D", "x":3.75, "y":1}, 
-                {"label":"F", "x":4.75, "y":1}, 
-                {"label":"G", "x":5.75, "y":1}, 
-                {"label":"H", "x":6.75, "y":1}, 
-                {"label":"J", "x":7.75, "y":1}, 
-                {"label":"K", "x":8.75, "y":1}, 
-                {"label":"L", "x":9.75, "y":1}, 
-                {"label":":", "x":10.75, "y":1}, 
-                {"label":"Enter", "x":11.75, "y":1, "w":2.25}, 
-                {"label":"Shift", "x":0, "y":2, "w":2.25}, 
-                {"label":"Z", "x":2.25, "y":2}, 
-                {"label":"X", "x":3.25, "y":2}, 
-                {"label":"C", "x":4.25, "y":2}, 
-                {"label":"V", "x":5.25, "y":2}, 
-                {"label":"B", "x":6.25, "y":2}, 
-                {"label":"N", "x":7.25, "y":2}, 
-                {"label":"M", "x":8.25, "y":2}, 
-                {"label":"<", "x":9.25, "y":2}, 
-                {"label":">", "x":10.25, "y":2}, 
-                {"label":"?", "x":11.25, "y":2, "w":1.25}, 
-                {"x":12.5, "y":2, "w":1.25}, 
-                {"label":"Alt", "x":1.38, "y":3, "w":1.25}, 
-                {"label":"Win", "x":2.63, "y":3, "w":1.25}, 
-                {"x":3.88, "y":3, "w":2.25}, 
-                {"x":6.13, "y":3, "w":2.75}, 
-                {"label":"Win", "x":8.88, "y":3, "w":1.25}, 
-                {"label":"Alt", "x":10.13, "y":3, "w":1.25}, 
-                {"label":"Esc", "x":11.38, "y":3, "w":1.25}]
-        },
-        "LAYOUT_42key": {
-            "layout": [
-                {"x":0, "y":0, "w":1.5},
-                {"label":"Q", "x":1.5, "y":0},
-                {"label":"W", "x":2.5, "y":0},
-                {"label":"E", "x":3.5, "y":0},
-                {"label":"R", "x":4.5, "y":0},
-                {"label":"T", "x":5.5, "y":0},
-                {"label":"Y", "x":6.5, "y":0},
-                {"label":"U", "x":7.5, "y":0},
-                {"label":"I", "x":8.5, "y":0},
-                {"label":"O", "x":9.5, "y":0},
-                {"label":"P", "x":10.5, "y":0},
-                {"label":"_", "x":11.5, "y":0},
-                {"label":"Backspace", "x":12.5, "y":0, "w":1.5},
-                {"label":"Ctrl", "x":0, "y":1, "w":1.75},
-                {"label":"A", "x":1.75, "y":1},
-                {"label":"S", "x":2.75, "y":1},
-                {"label":"D", "x":3.75, "y":1},
-                {"label":"F", "x":4.75, "y":1},
-                {"label":"G", "x":5.75, "y":1},
-                {"label":"H", "x":6.75, "y":1},
-                {"label":"J", "x":7.75, "y":1},
-                {"label":"K", "x":8.75, "y":1},
-                {"label":"L", "x":9.75, "y":1},
-                {"label":":", "x":10.75, "y":1},
-                {"label":"Enter", "x":11.75, "y":1, "w":2.25},
-                {"label":"Shift", "x":0, "y":2, "w":2.25},
-                {"label":"Z", "x":2.25, "y":2}, 
-                {"label":"X", "x":3.25, "y":2}, 
-                {"label":"C", "x":4.25, "y":2}, 
-                {"label":"V", "x":5.25, "y":2}, 
-                {"label":"B", "x":6.25, "y":2}, 
-                {"label":"N", "x":7.25, "y":2}, 
-                {"label":"M", "x":8.25, "y":2}, 
-                {"label":"<", "x":9.25, "y":2}, 
-                {"label":">", "x":10.25, "y":2},
-                {"label":"?", "x":11.25, "y":2, "w":1.25},
-                {"x":12.5, "y":2, "w":1.25},
-                {"label":"Alt", "x":1.38, "y":3, "w":1.25},
-                {"label":"Win", "x":2.63, "y":3, "w":1.25},
-                {"x":3.88, "y":3, "w":6.25},
-                {"label":"Win", "x":10.13, "y":3, "w":1.25},
-                {"label":"Alt", "x":11.38, "y":3, "w":1.25}]
-        }
     }
 }

+ 103 - 1
keyboards/chavdai40/rev1/info.json

@@ -9,5 +9,107 @@
     },
     "diode_direction": "COL2ROW",
     "processor": "STM32F042",
-    "bootloader": "stm32-dfu"
+    "bootloader": "stm32-dfu",
+    "layouts": {
+        "LAYOUT_42key": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+                {"matrix": [1, 1], "x": 1.75, "y": 1},
+                {"matrix": [1, 2], "x": 2.75, "y": 1},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1, "w": 2.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25},
+                {"matrix": [2, 1], "x": 2.25, "y": 2},
+                {"matrix": [2, 2], "x": 3.25, "y": 2},
+                {"matrix": [2, 3], "x": 4.25, "y": 2},
+                {"matrix": [2, 4], "x": 5.25, "y": 2},
+                {"matrix": [2, 5], "x": 6.25, "y": 2},
+                {"matrix": [2, 6], "x": 7.25, "y": 2},
+                {"matrix": [2, 7], "x": 8.25, "y": 2},
+                {"matrix": [2, 8], "x": 9.25, "y": 2},
+                {"matrix": [2, 9], "x": 10.25, "y": 2},
+                {"matrix": [2, 10], "x": 11.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 11], "x": 12.5, "y": 2, "w": 1.25},
+
+                {"matrix": [3, 0], "x": 1.38, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 2.63, "y": 3, "w": 1.25},
+                {"matrix": [3, 5], "x": 3.88, "y": 3, "w": 6.25},
+                {"matrix": [3, 9], "x": 10.13, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 11.38, "y": 3, "w": 1.25}
+            ]
+        },
+        "LAYOUT_44key": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+                {"matrix": [1, 1], "x": 1.75, "y": 1},
+                {"matrix": [1, 2], "x": 2.75, "y": 1},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1, "w": 2.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25},
+                {"matrix": [2, 1], "x": 2.25, "y": 2},
+                {"matrix": [2, 2], "x": 3.25, "y": 2},
+                {"matrix": [2, 3], "x": 4.25, "y": 2},
+                {"matrix": [2, 4], "x": 5.25, "y": 2},
+                {"matrix": [2, 5], "x": 6.25, "y": 2},
+                {"matrix": [2, 6], "x": 7.25, "y": 2},
+                {"matrix": [2, 7], "x": 8.25, "y": 2},
+                {"matrix": [2, 8], "x": 9.25, "y": 2},
+                {"matrix": [2, 9], "x": 10.25, "y": 2},
+                {"matrix": [2, 10], "x": 11.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 11], "x": 12.5, "y": 2, "w": 1.25},
+
+                {"matrix": [3, 0], "x": 1.38, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 2.63, "y": 3, "w": 1.25},
+                {"matrix": [3, 3], "x": 3.88, "y": 3, "w": 2.25},
+                {"matrix": [3, 5], "x": 6.13, "y": 3, "w": 2.75},
+                {"matrix": [3, 8], "x": 8.88, "y": 3, "w": 1.25},
+                {"matrix": [3, 9], "x": 10.13, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 11.38, "y": 3, "w": 1.25}
+            ]
+        }
+    }
 }

+ 0 - 49
keyboards/chavdai40/rev1/rev1.h

@@ -1,49 +0,0 @@
-/* Copyright 2020 t-miyajima
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-// This a shortcut to help you visually see your layout.
-
-#define LAYOUT_44key( \
-    k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
-    k14 , k15, k16, k17, k18, k19, k20, k21, k22, k23, k24,  k25   , \
-     k26 ,  k27, k28, k29, k30, k31, k32, k33, k34, k35,  k36,  k37, \
-         k38,  k39,      k40,         k41,   k42,   k43,   k44       \
-) { \
-    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13 }, \
-    { k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, XXX }, \
-    { k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, XXX }, \
-    { k38, k39, XXX, k40, XXX, k41, XXX, XXX, k42, k43, k44, XXX, XXX }  \
-}
-
-#define LAYOUT_42key( \
-    k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
-    k14 , k15, k16, k17, k18, k19, k20, k21, k22, k23, k24,  k25   , \
-     k26 ,  k27, k28, k29, k30, k31, k32, k33, k34, k35,  k36,  k37, \
-         k38,  k39,                   k41,          k43,   k44       \
-) { \
-    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13 }, \
-    { k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, XXX }, \
-    { k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, XXX }, \
-    { k38, k39, XXX, XXX, XXX, k41, XXX, XXX, XXX, k43, k44, XXX, XXX }  \
-}
-

+ 103 - 1
keyboards/chavdai40/rev2/info.json

@@ -9,5 +9,107 @@
     },
     "diode_direction": "COL2ROW",
     "processor": "STM32F042",
-    "bootloader": "stm32-dfu"
+    "bootloader": "stm32-dfu",
+    "layouts": {
+        "LAYOUT_42key": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+                {"matrix": [1, 1], "x": 1.75, "y": 1},
+                {"matrix": [1, 2], "x": 2.75, "y": 1},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1, "w": 2.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25},
+                {"matrix": [2, 1], "x": 2.25, "y": 2},
+                {"matrix": [2, 2], "x": 3.25, "y": 2},
+                {"matrix": [2, 3], "x": 4.25, "y": 2},
+                {"matrix": [2, 4], "x": 5.25, "y": 2},
+                {"matrix": [2, 5], "x": 6.25, "y": 2},
+                {"matrix": [2, 6], "x": 7.25, "y": 2},
+                {"matrix": [2, 7], "x": 8.25, "y": 2},
+                {"matrix": [2, 8], "x": 9.25, "y": 2},
+                {"matrix": [2, 9], "x": 10.25, "y": 2},
+                {"matrix": [2, 10], "x": 11.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 11], "x": 12.5, "y": 2, "w": 1.25},
+
+                {"matrix": [3, 0], "x": 1.38, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 2.63, "y": 3, "w": 1.25},
+                {"matrix": [3, 5], "x": 3.88, "y": 3, "w": 6.25},
+                {"matrix": [3, 9], "x": 10.13, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 11.38, "y": 3, "w": 1.25}
+            ]
+        },
+        "LAYOUT_44key": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+                {"matrix": [1, 1], "x": 1.75, "y": 1},
+                {"matrix": [1, 2], "x": 2.75, "y": 1},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1, "w": 2.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25},
+                {"matrix": [2, 1], "x": 2.25, "y": 2},
+                {"matrix": [2, 2], "x": 3.25, "y": 2},
+                {"matrix": [2, 3], "x": 4.25, "y": 2},
+                {"matrix": [2, 4], "x": 5.25, "y": 2},
+                {"matrix": [2, 5], "x": 6.25, "y": 2},
+                {"matrix": [2, 6], "x": 7.25, "y": 2},
+                {"matrix": [2, 7], "x": 8.25, "y": 2},
+                {"matrix": [2, 8], "x": 9.25, "y": 2},
+                {"matrix": [2, 9], "x": 10.25, "y": 2},
+                {"matrix": [2, 10], "x": 11.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 11], "x": 12.5, "y": 2, "w": 1.25},
+
+                {"matrix": [3, 0], "x": 1.38, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 2.63, "y": 3, "w": 1.25},
+                {"matrix": [3, 3], "x": 3.88, "y": 3, "w": 2.25},
+                {"matrix": [3, 5], "x": 6.13, "y": 3, "w": 2.75},
+                {"matrix": [3, 8], "x": 8.88, "y": 3, "w": 1.25},
+                {"matrix": [3, 9], "x": 10.13, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 11.38, "y": 3, "w": 1.25}
+            ]
+        }
+    }
 }

+ 0 - 49
keyboards/chavdai40/rev2/rev2.h

@@ -1,49 +0,0 @@
-/* Copyright 2020 t-miyajima
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-// This a shortcut to help you visually see your layout.
-
-#define LAYOUT_44key( \
-    k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
-    k14 , k15, k16, k17, k18, k19, k20, k21, k22, k23, k24,  k25   , \
-     k26 ,  k27, k28, k29, k30, k31, k32, k33, k34, k35,  k36,  k37, \
-         k38,  k39,      k40,         k41,   k42,   k43,   k44       \
-) { \
-    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13 }, \
-    { k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, XXX }, \
-    { k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, XXX }, \
-    { k38, k39, XXX, k40, XXX, k41, XXX, XXX, k42, k43, k44, XXX, XXX }  \
-}
-
-#define LAYOUT_42key( \
-    k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
-    k14 , k15, k16, k17, k18, k19, k20, k21, k22, k23, k24,  k25   , \
-     k26 ,  k27, k28, k29, k30, k31, k32, k33, k34, k35,  k36,  k37, \
-         k38,  k39,                   k41,          k43,   k44       \
-) { \
-    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13 }, \
-    { k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, XXX }, \
-    { k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, XXX }, \
-    { k38, k39, XXX, XXX, XXX, k41, XXX, XXX, XXX, k43, k44, XXX, XXX }  \
-}
-

+ 0 - 67
keyboards/checkerboards/candybar_ortho/candybar_ortho.h

@@ -1,67 +0,0 @@
-/* Copyright 2021 Nathan Spears
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_grid( \
-  k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, \
-  k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, k28, \
-  k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k57, k48, \
-  k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k67, k77, k68  \
-) { \
-  { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \
-  { k10, k11, k12, k13, k14, k15, k16, k17, k08 }, \
-  { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k28 }, \
-  { k40, k41, k42, k43, k44, k45, k46, k47, XXX }, \
-  { k50, k51, k52, k53, k54, k55, k56, k57, k48 }, \
-  { k60, k61, k62, k63, k64, k65, k66, k67, XXX }, \
-  { k70, k71, k72, k73, k74, k75, k76, k77, k68 }  \
-}
-#define LAYOUT_2x3u( \
-  k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, \
-  k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, k28, \
-  k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k57, k48, \
-  k60, k70, k61, k71,      k72,      k73, k64, k74,      k75,      k76, k67, k77, k68  \
-) { \
-  { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \
-  { k10, k11, k12, k13, k14, k15, k16, k17, k08 }, \
-  { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k28 }, \
-  { k40, k41, k42, k43, k44, k45, k46, k47, XXX }, \
-  { k50, k51, k52, k53, k54, k55, k56, k57, k48 }, \
-  { k60, k61, XXX, XXX, k64, XXX, XXX, k67, XXX }, \
-  { k70, k71, k72, k73, k74, k75, k76, k77, k68 }  \
-}
-#define LAYOUT_7u( \
-  k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, \
-  k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, k28, \
-  k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k57, k48, \
-  k60, k70, k61, k71, k62,                k64,                k66, k76, k67, k77, k68  \
-) { \
-  { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \
-  { k10, k11, k12, k13, k14, k15, k16, k17, k08 }, \
-  { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k28 }, \
-  { k40, k41, k42, k43, k44, k45, k46, k47, XXX }, \
-  { k50, k51, k52, k53, k54, k55, k56, k57, k48 }, \
-  { k60, k61, k62, XXX, k64, XXX, k66, k67, XXX }, \
-  { k70, k71, XXX, XXX, XXX, XXX, k76, k77, k68 }  \
-}

+ 212 - 6
keyboards/checkerboards/candybar_ortho/info.json

@@ -20,13 +20,219 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT_grid": {
-            "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"label":"Y", "x":11, "y":0}, {"label":"U", "x":12, "y":0}, {"label":"I", "x":13, "y":0}, {"label":"O", "x":14, "y":0}, {"label":"P", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"x":10, "y":1}, {"label":"H", "x":11, "y":1}, {"label":"J", "x":12, "y":1}, {"label":"K", "x":13, "y":1}, {"label":"L", "x":14, "y":1}, {"label":";", "x":15, "y":1}, {"label":"'", "x":16, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"label":"N", "x":11, "y":2}, {"label":"M", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"/", "x":15, "y":2}, {"label":"Return", "x":16, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"&dArr;", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"8", "x":7, "y":3}, {"x":8, "y":3}, {"label":"10", "x":9, "y":3}, {"label":"11", "x":10, "y":3}, {"label":"12", "x":11, "y":3}, {"label":"&uArr;", "x":12, "y":3}, {"label":"&larr;", "x":13, "y":3}, {"label":"15", "x":14, "y":3}, {"label":"&uarr;", "x":15, "y":3}, {"label":"&rarr;", "x":16, "y":3}]
-                       },
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [0, 1], "x": 2, "y": 0},
+                {"matrix": [1, 1], "x": 3, "y": 0},
+                {"matrix": [0, 2], "x": 4, "y": 0},
+                {"matrix": [1, 2], "x": 5, "y": 0},
+                {"matrix": [0, 3], "x": 6, "y": 0},
+                {"matrix": [1, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [1, 4], "x": 9, "y": 0},
+                {"matrix": [0, 5], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "y": 0},
+                {"matrix": [0, 6], "x": 12, "y": 0},
+                {"matrix": [1, 6], "x": 13, "y": 0},
+                {"matrix": [0, 7], "x": 14, "y": 0},
+                {"matrix": [1, 7], "x": 15, "y": 0},
+                {"matrix": [1, 8], "x": 16, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [2, 1], "x": 2, "y": 1},
+                {"matrix": [3, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [2, 3], "x": 6, "y": 1},
+                {"matrix": [3, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [2, 5], "x": 10, "y": 1},
+                {"matrix": [3, 5], "x": 11, "y": 1},
+                {"matrix": [2, 6], "x": 12, "y": 1},
+                {"matrix": [3, 6], "x": 13, "y": 1},
+                {"matrix": [2, 7], "x": 14, "y": 1},
+                {"matrix": [3, 7], "x": 15, "y": 1},
+                {"matrix": [3, 8], "x": 16, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [4, 1], "x": 2, "y": 2},
+                {"matrix": [5, 1], "x": 3, "y": 2},
+                {"matrix": [4, 2], "x": 4, "y": 2},
+                {"matrix": [5, 2], "x": 5, "y": 2},
+                {"matrix": [4, 3], "x": 6, "y": 2},
+                {"matrix": [5, 3], "x": 7, "y": 2},
+                {"matrix": [4, 4], "x": 8, "y": 2},
+                {"matrix": [5, 4], "x": 9, "y": 2},
+                {"matrix": [4, 5], "x": 10, "y": 2},
+                {"matrix": [5, 5], "x": 11, "y": 2},
+                {"matrix": [4, 6], "x": 12, "y": 2},
+                {"matrix": [5, 6], "x": 13, "y": 2},
+                {"matrix": [4, 7], "x": 14, "y": 2},
+                {"matrix": [5, 7], "x": 15, "y": 2},
+                {"matrix": [5, 8], "x": 16, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [6, 1], "x": 2, "y": 3},
+                {"matrix": [7, 1], "x": 3, "y": 3},
+                {"matrix": [6, 2], "x": 4, "y": 3},
+                {"matrix": [7, 2], "x": 5, "y": 3},
+                {"matrix": [6, 3], "x": 6, "y": 3},
+                {"matrix": [7, 3], "x": 7, "y": 3},
+                {"matrix": [6, 4], "x": 8, "y": 3},
+                {"matrix": [7, 4], "x": 9, "y": 3},
+                {"matrix": [6, 5], "x": 10, "y": 3},
+                {"matrix": [7, 5], "x": 11, "y": 3},
+                {"matrix": [6, 6], "x": 12, "y": 3},
+                {"matrix": [7, 6], "x": 13, "y": 3},
+                {"matrix": [6, 7], "x": 14, "y": 3},
+                {"matrix": [7, 7], "x": 15, "y": 3},
+                {"matrix": [7, 8], "x": 16, "y": 3}
+            ]
+        },
         "LAYOUT_2x3u": {
-            "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"label":"Y", "x":11, "y":0}, {"label":"U", "x":12, "y":0}, {"label":"I", "x":13, "y":0}, {"label":"O", "x":14, "y":0}, {"label":"P", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"x":10, "y":1}, {"label":"H", "x":11, "y":1}, {"label":"J", "x":12, "y":1}, {"label":"K", "x":13, "y":1}, {"label":"L", "x":14, "y":1}, {"label":";", "x":15, "y":1}, {"label":"'", "x":16, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"label":"N", "x":11, "y":2}, {"label":"M", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"/", "x":15, "y":2}, {"label":"Return", "x":16, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3, "w":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3, "w":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":16, "y":3}]
-                       },
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [0, 1], "x": 2, "y": 0},
+                {"matrix": [1, 1], "x": 3, "y": 0},
+                {"matrix": [0, 2], "x": 4, "y": 0},
+                {"matrix": [1, 2], "x": 5, "y": 0},
+                {"matrix": [0, 3], "x": 6, "y": 0},
+                {"matrix": [1, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [1, 4], "x": 9, "y": 0},
+                {"matrix": [0, 5], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "y": 0},
+                {"matrix": [0, 6], "x": 12, "y": 0},
+                {"matrix": [1, 6], "x": 13, "y": 0},
+                {"matrix": [0, 7], "x": 14, "y": 0},
+                {"matrix": [1, 7], "x": 15, "y": 0},
+                {"matrix": [1, 8], "x": 16, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [2, 1], "x": 2, "y": 1},
+                {"matrix": [3, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [2, 3], "x": 6, "y": 1},
+                {"matrix": [3, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [2, 5], "x": 10, "y": 1},
+                {"matrix": [3, 5], "x": 11, "y": 1},
+                {"matrix": [2, 6], "x": 12, "y": 1},
+                {"matrix": [3, 6], "x": 13, "y": 1},
+                {"matrix": [2, 7], "x": 14, "y": 1},
+                {"matrix": [3, 7], "x": 15, "y": 1},
+                {"matrix": [3, 8], "x": 16, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [4, 1], "x": 2, "y": 2},
+                {"matrix": [5, 1], "x": 3, "y": 2},
+                {"matrix": [4, 2], "x": 4, "y": 2},
+                {"matrix": [5, 2], "x": 5, "y": 2},
+                {"matrix": [4, 3], "x": 6, "y": 2},
+                {"matrix": [5, 3], "x": 7, "y": 2},
+                {"matrix": [4, 4], "x": 8, "y": 2},
+                {"matrix": [5, 4], "x": 9, "y": 2},
+                {"matrix": [4, 5], "x": 10, "y": 2},
+                {"matrix": [5, 5], "x": 11, "y": 2},
+                {"matrix": [4, 6], "x": 12, "y": 2},
+                {"matrix": [5, 6], "x": 13, "y": 2},
+                {"matrix": [4, 7], "x": 14, "y": 2},
+                {"matrix": [5, 7], "x": 15, "y": 2},
+                {"matrix": [5, 8], "x": 16, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [6, 1], "x": 2, "y": 3},
+                {"matrix": [7, 1], "x": 3, "y": 3},
+                {"matrix": [7, 2], "x": 4, "y": 3, "w": 3},
+                {"matrix": [7, 3], "x": 7, "y": 3},
+                {"matrix": [6, 4], "x": 8, "y": 3},
+                {"matrix": [7, 4], "x": 9, "y": 3},
+                {"matrix": [7, 5], "x": 10, "y": 3, "w": 3},
+                {"matrix": [7, 6], "x": 13, "y": 3},
+                {"matrix": [6, 7], "x": 14, "y": 3},
+                {"matrix": [7, 7], "x": 15, "y": 3},
+                {"matrix": [7, 8], "x": 16, "y": 3}
+            ]
+        },
         "LAYOUT_7u": {
-            "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"label":"Y", "x":11, "y":0}, {"label":"U", "x":12, "y":0}, {"label":"I", "x":13, "y":0}, {"label":"O", "x":14, "y":0}, {"label":"P", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"x":10, "y":1}, {"label":"H", "x":11, "y":1}, {"label":"J", "x":12, "y":1}, {"label":"K", "x":13, "y":1}, {"label":"L", "x":14, "y":1}, {"label":";", "x":15, "y":1}, {"label":"'", "x":16, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"label":"N", "x":11, "y":2}, {"label":"M", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"/", "x":15, "y":2}, {"label":"Return", "x":16, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3, "w":7}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":16, "y":3}]
-                       }
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [0, 1], "x": 2, "y": 0},
+                {"matrix": [1, 1], "x": 3, "y": 0},
+                {"matrix": [0, 2], "x": 4, "y": 0},
+                {"matrix": [1, 2], "x": 5, "y": 0},
+                {"matrix": [0, 3], "x": 6, "y": 0},
+                {"matrix": [1, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [1, 4], "x": 9, "y": 0},
+                {"matrix": [0, 5], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "y": 0},
+                {"matrix": [0, 6], "x": 12, "y": 0},
+                {"matrix": [1, 6], "x": 13, "y": 0},
+                {"matrix": [0, 7], "x": 14, "y": 0},
+                {"matrix": [1, 7], "x": 15, "y": 0},
+                {"matrix": [1, 8], "x": 16, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [2, 1], "x": 2, "y": 1},
+                {"matrix": [3, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [2, 3], "x": 6, "y": 1},
+                {"matrix": [3, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [2, 5], "x": 10, "y": 1},
+                {"matrix": [3, 5], "x": 11, "y": 1},
+                {"matrix": [2, 6], "x": 12, "y": 1},
+                {"matrix": [3, 6], "x": 13, "y": 1},
+                {"matrix": [2, 7], "x": 14, "y": 1},
+                {"matrix": [3, 7], "x": 15, "y": 1},
+                {"matrix": [3, 8], "x": 16, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [4, 1], "x": 2, "y": 2},
+                {"matrix": [5, 1], "x": 3, "y": 2},
+                {"matrix": [4, 2], "x": 4, "y": 2},
+                {"matrix": [5, 2], "x": 5, "y": 2},
+                {"matrix": [4, 3], "x": 6, "y": 2},
+                {"matrix": [5, 3], "x": 7, "y": 2},
+                {"matrix": [4, 4], "x": 8, "y": 2},
+                {"matrix": [5, 4], "x": 9, "y": 2},
+                {"matrix": [4, 5], "x": 10, "y": 2},
+                {"matrix": [5, 5], "x": 11, "y": 2},
+                {"matrix": [4, 6], "x": 12, "y": 2},
+                {"matrix": [5, 6], "x": 13, "y": 2},
+                {"matrix": [4, 7], "x": 14, "y": 2},
+                {"matrix": [5, 7], "x": 15, "y": 2},
+                {"matrix": [5, 8], "x": 16, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [6, 1], "x": 2, "y": 3},
+                {"matrix": [7, 1], "x": 3, "y": 3},
+                {"matrix": [6, 2], "x": 4, "y": 3},
+                {"matrix": [6, 4], "x": 5, "y": 3, "w": 7},
+                {"matrix": [6, 6], "x": 12, "y": 3},
+                {"matrix": [7, 6], "x": 13, "y": 3},
+                {"matrix": [6, 7], "x": 14, "y": 3},
+                {"matrix": [7, 7], "x": 15, "y": 3},
+                {"matrix": [7, 8], "x": 16, "y": 3}
+            ]
+        }
     }
 }

Plik diff jest za duży
+ 0 - 0
keyboards/checkerboards/plexus75/info.json


+ 0 - 65
keyboards/checkerboards/plexus75/plexus75.h

@@ -1,65 +0,0 @@
-/* Copyright 2020 Nathan Spears
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_2x2u( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314, \
-       k41, k42,      k44, k45, k46, k47, k48, k49, k410,       k412, k413 \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014 }, \
-  { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114 }, \
-  { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214 }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314 }, \
-  { KC_NO, k41, k42, KC_NO, k44, k45, k46, k47, k48, k49, k410, KC_NO, k412, k413, KC_NO } \
-}
-
-#define LAYOUT_2x3u( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314, \
-       k41, k42,      k44, k45,      k47, k48,      k410,       k412, k413 \
-) \
-{ \
-  { k00,   k01, k02, k03,   k04, k05, k06,   k07, k08, k09,   k010, k011,  k012, k013, k014 }, \
-  { k10,   k11, k12, k13,   k14, k15, k16,   k17, k18, k19,   k110, k111,  k112, k113, k114 }, \
-  { k20,   k21, k22, k23,   k24, k25, k26,   k27, k28, k29,   k210, k211,  k212, k213, k214 }, \
-  { k30,   k31, k32, k33,   k34, k35, k36,   k37, k38, k39,   k310, k311,  k312, k313, k314 }, \
-  { KC_NO, k41, k42, KC_NO, k44, k45, KC_NO, k47, k48, KC_NO, k410, KC_NO, k412, k413, KC_NO } \
-}
-
-#define LAYOUT_7u( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, k014, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314, \
-       k41, k42,      k44,           k47,           k410,       k412, k413 \
-) \
-{ \
-  { k00,   k01, k02, k03,   k04, k05,   k06,   k07, k08,   k09,   k010, k011,  k012, k013, k014 }, \
-  { k10,   k11, k12, k13,   k14, k15,   k16,   k17, k18,   k19,   k110, k111,  k112, k113, k114 }, \
-  { k20,   k21, k22, k23,   k24, k25,   k26,   k27, k28,   k29,   k210, k211,  k212, k213, k214 }, \
-  { k30,   k31, k32, k33,   k34, k35,   k36,   k37, k38,   k39,   k310, k311,  k312, k313, k314 }, \
-  { KC_NO, k41, k42, KC_NO, k44, KC_NO, KC_NO, k47, KC_NO, KC_NO, k410, KC_NO, k412, k413, KC_NO } \
-}

Plik diff jest za duży
+ 0 - 0
keyboards/checkerboards/plexus75_he/info.json


+ 0 - 76
keyboards/checkerboards/plexus75_he/plexus75_he.h

@@ -1,76 +0,0 @@
-/* Copyright 2021 Nathan Spears
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_2x2u( \
-    k00, k01, k11, k12, k02, k03, k13, k14, k04, k05, k15, k16, k06, k07, k17, \
-    k20, k21, k31, k32, k22, k23, k33, k34, k24, k25, k35, k36, k26, k27, k37, \
-    k40, k41, k51, k52, k42, k43, k53, k54, k44, k45, k55, k56, k46, k47, k57, \
-    k60, k61, k71, k72, k62, k63, k73, k74, k64, k65, k75, k76, k66, k67, k77, \
-    k80, k81, k82, k92, k83, k84, k85, k95, k86, k87, k97 \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { XXX, k11, k12, k13, k14, k15, k16, k17 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { XXX, k31, k32, k33, k34, k35, k36, k37 }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47 }, \
-    { XXX, k51, k52, k53, k54, k55, k56, k57 }, \
-    { k60, k61, k62, k63, k64, k65, k66, k67 }, \
-    { XXX, k71, k72, k73, k74, k75, k76, k77 }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87 }, \
-    { XXX, XXX, k92, XXX, XXX, k95, XXX, k97 }  \
-}
-#define LAYOUT_2x3u( \
-    k00, k01, k11, k12, k02, k03, k13, k14, k04, k05, k15, k16, k06, k07, k17, \
-    k20, k21, k31, k32, k22, k23, k33, k34, k24, k25, k35, k36, k26, k27, k37, \
-    k40, k41, k51, k52, k42, k43, k53, k54, k44, k45, k55, k56, k46, k47, k57, \
-    k60, k61, k71, k72, k62, k63, k73, k74, k64, k65, k75, k76, k66, k67, k77, \
-    k80, k81, k82, k83, k84, k85, k86, k87, k97 \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { XXX, k11, k12, k13, k14, k15, k16, k17 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { XXX, k31, k32, k33, k34, k35, k36, k37 }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47 }, \
-    { XXX, k51, k52, k53, k54, k55, k56, k57 }, \
-    { k60, k61, k62, k63, k64, k65, k66, k67 }, \
-    { XXX, k71, k72, k73, k74, k75, k76, k77 }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87 }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, k97 }  \
-}
-#define LAYOUT_7u( \
-    k00, k01, k11, k12, k02, k03, k13, k14, k04, k05, k15, k16, k06, k07, k17, \
-    k20, k21, k31, k32, k22, k23, k33, k34, k24, k25, k35, k36, k26, k27, k37, \
-    k40, k41, k51, k52, k42, k43, k53, k54, k44, k45, k55, k56, k46, k47, k57, \
-    k60, k61, k71, k72, k62, k63, k73, k74, k64, k65, k75, k76, k66, k67, k77, \
-    k80, k81, k82, k84, k86, k87, k97 \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { XXX, k11, k12, k13, k14, k15, k16, k17 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { XXX, k31, k32, k33, k34, k35, k36, k37 }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47 }, \
-    { XXX, k51, k52, k53, k54, k55, k56, k57 }, \
-    { k60, k61, k62, k63, k64, k65, k66, k67 }, \
-    { XXX, k71, k72, k73, k74, k75, k76, k77 }, \
-    { k80, k81, k82, XXX, k84, XXX, k86, k87 }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, k97 }  \
-}

+ 213 - 18
keyboards/checkerboards/quark_plus/info.json

@@ -32,21 +32,216 @@
     "processor": "atmega32u2",
     "bootloader": "atmel-dfu",
     "layouts": {
-          "LAYOUT_grid": {
-              "layout":
-                [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"&dArr;", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"&uArr;", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}]
-                               },
-          "LAYOUT_2u":   {
-              "layout":
-                [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"MENU", "x":2, "y":3}, {"label":"ALT", "x":3, "y":3}, {"label":"&dArr;", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"&uArr;", "x":7, "y":3}, {"label":"LEFT", "x":8, "y":3}, {"label":"DOWN", "x":9, "y":3}, {"label":"UP", "x":10, "y":3}, {"label":"RIGHT", "x":11, "y":3}]
-                               },
-          "LAYOUT_2x225u": {
-              "layout":
-                [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3, "w":1.25}, {"label":"WIN", "x":1.25, "y":3, "w":1.25}, {"label":"ALT", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"ALT", "x":8.25, "y":3, "w":1.25}, {"label":"MENU", "x":9.5, "y":3, "w":1.25}, {"label":"CTRL", "x":10.75, "y":3, "w":1.25}]
-                               },
-          "LAYOUT_2x3u":   {
-              "layout":
-                [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"CTRL", "x":0, "y":3}, {"label":"WIN", "x":1, "y":3}, {"label":"ALT", "x":2, "y":3}, {"x":3, "y":3, "w":3}, {"x":6, "y":3, "w":3}, {"label":"ALT", "x":9, "y":3}, {"label":"MENU", "x":10, "y":3}, {"label":"CTRL", "x":11, "y":3}]
-                               }
-                 }
-  }
+        "LAYOUT_grid": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [1, 1], "x": 2, "y": 0},
+                {"matrix": [0, 1], "x": 3, "y": 0},
+                {"matrix": [0, 2], "x": 4, "y": 0},
+                {"matrix": [1, 2], "x": 5, "y": 0},
+                {"matrix": [1, 3], "x": 6, "y": 0},
+                {"matrix": [0, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [1, 4], "x": 9, "y": 0},
+                {"matrix": [1, 5], "x": 10, "y": 0},
+                {"matrix": [0, 5], "x": 11, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [3, 1], "x": 2, "y": 1},
+                {"matrix": [2, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [3, 3], "x": 6, "y": 1},
+                {"matrix": [2, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [3, 5], "x": 10, "y": 1},
+                {"matrix": [2, 5], "x": 11, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [5, 1], "x": 2, "y": 2},
+                {"matrix": [4, 1], "x": 3, "y": 2},
+                {"matrix": [4, 2], "x": 4, "y": 2},
+                {"matrix": [5, 2], "x": 5, "y": 2},
+                {"matrix": [5, 3], "x": 6, "y": 2},
+                {"matrix": [4, 3], "x": 7, "y": 2},
+                {"matrix": [4, 4], "x": 8, "y": 2},
+                {"matrix": [5, 4], "x": 9, "y": 2},
+                {"matrix": [5, 5], "x": 10, "y": 2},
+                {"matrix": [4, 5], "x": 11, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [7, 1], "x": 2, "y": 3},
+                {"matrix": [6, 1], "x": 3, "y": 3},
+                {"matrix": [6, 2], "x": 4, "y": 3},
+                {"matrix": [7, 2], "x": 5, "y": 3},
+                {"matrix": [7, 3], "x": 6, "y": 3},
+                {"matrix": [6, 3], "x": 7, "y": 3},
+                {"matrix": [6, 4], "x": 8, "y": 3},
+                {"matrix": [7, 4], "x": 9, "y": 3},
+                {"matrix": [7, 5], "x": 10, "y": 3},
+                {"matrix": [6, 5], "x": 11, "y": 3}
+            ]
+        },
+        "LAYOUT_2u": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [1, 1], "x": 2, "y": 0},
+                {"matrix": [0, 1], "x": 3, "y": 0},
+                {"matrix": [0, 2], "x": 4, "y": 0},
+                {"matrix": [1, 2], "x": 5, "y": 0},
+                {"matrix": [1, 3], "x": 6, "y": 0},
+                {"matrix": [0, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [1, 4], "x": 9, "y": 0},
+                {"matrix": [1, 5], "x": 10, "y": 0},
+                {"matrix": [0, 5], "x": 11, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [3, 1], "x": 2, "y": 1},
+                {"matrix": [2, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [3, 3], "x": 6, "y": 1},
+                {"matrix": [2, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [3, 5], "x": 10, "y": 1},
+                {"matrix": [2, 5], "x": 11, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [5, 1], "x": 2, "y": 2},
+                {"matrix": [4, 1], "x": 3, "y": 2},
+                {"matrix": [4, 2], "x": 4, "y": 2},
+                {"matrix": [5, 2], "x": 5, "y": 2},
+                {"matrix": [5, 3], "x": 6, "y": 2},
+                {"matrix": [4, 3], "x": 7, "y": 2},
+                {"matrix": [4, 4], "x": 8, "y": 2},
+                {"matrix": [5, 4], "x": 9, "y": 2},
+                {"matrix": [5, 5], "x": 10, "y": 2},
+                {"matrix": [4, 5], "x": 11, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [7, 1], "x": 2, "y": 3},
+                {"matrix": [6, 1], "x": 3, "y": 3},
+                {"matrix": [6, 2], "x": 4, "y": 3},
+                {"matrix": [7, 3], "x": 5, "y": 3, "w": 2},
+                {"matrix": [6, 3], "x": 7, "y": 3},
+                {"matrix": [6, 4], "x": 8, "y": 3},
+                {"matrix": [7, 4], "x": 9, "y": 3},
+                {"matrix": [7, 5], "x": 10, "y": 3},
+                {"matrix": [6, 5], "x": 11, "y": 3}
+            ]
+        },
+        "LAYOUT_2x225u": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [1, 1], "x": 2, "y": 0},
+                {"matrix": [0, 1], "x": 3, "y": 0},
+                {"matrix": [0, 2], "x": 4, "y": 0},
+                {"matrix": [1, 2], "x": 5, "y": 0},
+                {"matrix": [1, 3], "x": 6, "y": 0},
+                {"matrix": [0, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [1, 4], "x": 9, "y": 0},
+                {"matrix": [1, 5], "x": 10, "y": 0},
+                {"matrix": [0, 5], "x": 11, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [3, 1], "x": 2, "y": 1},
+                {"matrix": [2, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [3, 3], "x": 6, "y": 1},
+                {"matrix": [2, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [3, 5], "x": 10, "y": 1},
+                {"matrix": [2, 5], "x": 11, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [5, 1], "x": 2, "y": 2},
+                {"matrix": [4, 1], "x": 3, "y": 2},
+                {"matrix": [4, 2], "x": 4, "y": 2},
+                {"matrix": [5, 2], "x": 5, "y": 2},
+                {"matrix": [5, 3], "x": 6, "y": 2},
+                {"matrix": [4, 3], "x": 7, "y": 2},
+                {"matrix": [4, 4], "x": 8, "y": 2},
+                {"matrix": [5, 4], "x": 9, "y": 2},
+                {"matrix": [5, 5], "x": 10, "y": 2},
+                {"matrix": [4, 5], "x": 11, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [7, 0], "x": 1.25, "y": 3, "w": 1.25},
+                {"matrix": [6, 1], "x": 2.5, "y": 3, "w": 1.25},
+                {"matrix": [6, 2], "x": 3.75, "y": 3, "w": 2.25},
+                {"matrix": [6, 3], "x": 6, "y": 3, "w": 2.25},
+                {"matrix": [6, 4], "x": 8.25, "y": 3, "w": 1.25},
+                {"matrix": [7, 5], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [6, 5], "x": 10.75, "y": 3, "w": 1.25}
+            ]
+        },
+        "LAYOUT_2x3u": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [1, 1], "x": 2, "y": 0},
+                {"matrix": [0, 1], "x": 3, "y": 0},
+                {"matrix": [0, 2], "x": 4, "y": 0},
+                {"matrix": [1, 2], "x": 5, "y": 0},
+                {"matrix": [1, 3], "x": 6, "y": 0},
+                {"matrix": [0, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [1, 4], "x": 9, "y": 0},
+                {"matrix": [1, 5], "x": 10, "y": 0},
+                {"matrix": [0, 5], "x": 11, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [3, 1], "x": 2, "y": 1},
+                {"matrix": [2, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [3, 3], "x": 6, "y": 1},
+                {"matrix": [2, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [3, 5], "x": 10, "y": 1},
+                {"matrix": [2, 5], "x": 11, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [5, 0], "x": 1, "y": 2},
+                {"matrix": [5, 1], "x": 2, "y": 2},
+                {"matrix": [4, 1], "x": 3, "y": 2},
+                {"matrix": [4, 2], "x": 4, "y": 2},
+                {"matrix": [5, 2], "x": 5, "y": 2},
+                {"matrix": [5, 3], "x": 6, "y": 2},
+                {"matrix": [4, 3], "x": 7, "y": 2},
+                {"matrix": [4, 4], "x": 8, "y": 2},
+                {"matrix": [5, 4], "x": 9, "y": 2},
+                {"matrix": [5, 5], "x": 10, "y": 2},
+                {"matrix": [4, 5], "x": 11, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [7, 0], "x": 1, "y": 3},
+                {"matrix": [7, 1], "x": 2, "y": 3},
+                {"matrix": [6, 2], "x": 3, "y": 3, "w": 3},
+                {"matrix": [6, 3], "x": 6, "y": 3, "w": 3},
+                {"matrix": [7, 4], "x": 9, "y": 3},
+                {"matrix": [7, 5], "x": 10, "y": 3},
+                {"matrix": [6, 5], "x": 11, "y": 3}
+            ]
+        }
+    }
+}

+ 1 - 1
keyboards/checkerboards/quark_plus/quark_plus.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "quark_plus.h"
+#include "quantum.h"
 
 bool encoder_update_kb(uint8_t index, bool clockwise) {
     if (!encoder_update_user(index, clockwise)) { return false; }

+ 0 - 82
keyboards/checkerboards/quark_plus/quark_plus.h

@@ -1,82 +0,0 @@
-/* Copyright 2022 Nathan Spears
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_grid( \
-    k00, k10, k11, k01, k02, k12, k13, k03, k04, k14, k15, k05, \
-    k20, k30, k31, k21, k22, k32, k33, k23, k24, k34, k35, k25, \
-    k40, k50, k51, k41, k42, k52, k53, k43, k44, k54, k55, k45, \
-    k60, k70, k71, k61, k62, k72, k73, k63, k64, k74, k75, k65 \
-) { \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k33, k34, k35 }, \
-    { k40, k41, k42, k43, k44, k45 }, \
-    { k50, k51, k52, k53, k54, k55 }, \
-    { k60, k61, k62, k63, k64, k65 }, \
-    { k70, k71, k72, k73, k74, k75 } \
-}
-#define LAYOUT_2u( \
-    k00, k10, k11, k01, k02, k12, k13, k03, k04, k14, k15, k05, \
-    k20, k30, k31, k21, k22, k32, k33, k23, k24, k34, k35, k25, \
-    k40, k50, k51, k41, k42, k52, k53, k43, k44, k54, k55, k45, \
-    k60, k70, k71, k61, k62,      k73, k63, k64, k74, k75, k65 \
-) { \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k33, k34, k35 }, \
-    { k40, k41, k42, k43, k44, k45 }, \
-    { k50, k51, k52, k53, k54, k55 }, \
-    { k60, k61, k62, k63, k64, k65 }, \
-    { k70, k71, XXX, k73, k74, k75 } \
-}
-#define LAYOUT_2x225u( \
-    k00, k10, k11, k01, k02, k12, k13, k03, k04, k14, k15, k05, \
-    k20, k30, k31, k21, k22, k32, k33, k23, k24, k34, k35, k25, \
-    k40, k50, k51, k41, k42, k52, k53, k43, k44, k54, k55, k45, \
-    k60, k70,      k61, k62,           k63, k64,      k75, k65 \
-) { \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k33, k34, k35 }, \
-    { k40, k41, k42, k43, k44, k45 }, \
-    { k50, k51, k52, k53, k54, k55 }, \
-    { k60, k61, k62, k63, k64, k65 }, \
-    { k70, XXX, XXX, XXX, XXX, k75 } \
-}
-#define LAYOUT_2x3u( \
-    k00, k10, k11, k01, k02, k12, k13, k03, k04, k14, k15, k05, \
-    k20, k30, k31, k21, k22, k32, k33, k23, k24, k34, k35, k25, \
-    k40, k50, k51, k41, k42, k52, k53, k43, k44, k54, k55, k45, \
-    k60, k70, k71,      k62,           k63,      k74, k75, k65 \
-) { \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k33, k34, k35 }, \
-    { k40, k41, k42, k43, k44, k45 }, \
-    { k50, k51, k52, k53, k54, k55 }, \
-    { k60, XXX, k62, k63, XXX, k65 }, \
-    { k70, k71, XXX, XXX, k74, k75 } \
-}

+ 224 - 4
keyboards/checkerboards/quark_squared/info.json

@@ -25,16 +25,236 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT_4_2x225u": {
-            "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"label":"Super", "x":9.5, "y":3, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":3, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+                {"matrix": [2, 6], "x": 6, "y": 2},
+                {"matrix": [2, 7], "x": 7, "y": 2},
+                {"matrix": [2, 8], "x": 8, "y": 2},
+                {"matrix": [2, 9], "x": 9, "y": 2},
+                {"matrix": [2, 10], "x": 10, "y": 2},
+                {"matrix": [2, 11], "x": 11, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 3], "x": 2.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 2.25},
+                {"matrix": [3, 6], "x": 6, "y": 3, "w": 2.25},
+                {"matrix": [3, 8], "x": 8.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 11], "x": 10.75, "y": 3, "w": 1.25}
+            ]
         },
         "LAYOUT_4_2u": {
-            "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Alt", "x":1.25, "y":3, "w":1.25}, {"label":"Super", "x":2.5, "y":3, "w":1.25}, {"label":"&dArr;", "x":3.75, "y":3, "w":1.25}, {"x":5, "y":3, "w":2}, {"label":"&larr;", "x":7, "y":3, "w":1.25}, {"label":"&darr;", "x":8.25, "y":3, "w":1.25}, {"label":"&uarr;", "x":9.5, "y":3, "w":1.25}, {"label":"&rarr;", "x":10.75, "y":3, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+                {"matrix": [2, 6], "x": 6, "y": 2},
+                {"matrix": [2, 7], "x": 7, "y": 2},
+                {"matrix": [2, 8], "x": 8, "y": 2},
+                {"matrix": [2, 9], "x": 9, "y": 2},
+                {"matrix": [2, 10], "x": 10, "y": 2},
+                {"matrix": [2, 11], "x": 11, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 3], "x": 2.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 1.25},
+                {"matrix": [3, 5], "x": 5, "y": 3, "w": 2},
+                {"matrix": [3, 6], "x": 7, "y": 3, "w": 1.25},
+                {"matrix": [3, 8], "x": 8.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 11], "x": 10.75, "y": 3, "w": 1.25}
+            ]
         },
         "LAYOUT_5_2x225u": {
-            "layout": [{"label":"-", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Super", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":2.25}, {"label":"Alt", "x":8.25, "y":4, "w":1.25}, {"label":"Super", "x":9.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":4, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+                {"matrix": [2, 6], "x": 6, "y": 2},
+                {"matrix": [2, 7], "x": 7, "y": 2},
+                {"matrix": [2, 8], "x": 8, "y": 2},
+                {"matrix": [2, 9], "x": 9, "y": 2},
+                {"matrix": [2, 10], "x": 10, "y": 2},
+                {"matrix": [2, 11], "x": 11, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+                {"matrix": [3, 6], "x": 6, "y": 3},
+                {"matrix": [3, 7], "x": 7, "y": 3},
+                {"matrix": [3, 8], "x": 8, "y": 3},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25},
+                {"matrix": [4, 6], "x": 6, "y": 4, "w": 2.25},
+                {"matrix": [4, 8], "x": 8.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 9.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_5_2u": {
-            "layout": [{"label":"-", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, {"label":"2", "x":2, "y":0}, {"label":"3", "x":3, "y":0}, {"label":"4", "x":4, "y":0}, {"label":"5", "x":5, "y":0}, {"label":"6", "x":6, "y":0}, {"label":"7", "x":7, "y":0}, {"label":"8", "x":8, "y":0}, {"label":"9", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"+", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Super", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"&dArr;", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":2}, {"label":"&uArr;", "x":7, "y":4, "w":1.25}, {"label":"Alt", "x":8.25, "y":4, "w":1.25}, {"label":"Super", "x":9.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":4, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+                {"matrix": [2, 6], "x": 6, "y": 2},
+                {"matrix": [2, 7], "x": 7, "y": 2},
+                {"matrix": [2, 8], "x": 8, "y": 2},
+                {"matrix": [2, 9], "x": 9, "y": 2},
+                {"matrix": [2, 10], "x": 10, "y": 2},
+                {"matrix": [2, 11], "x": 11, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+                {"matrix": [3, 6], "x": 6, "y": 3},
+                {"matrix": [3, 7], "x": 7, "y": 3},
+                {"matrix": [3, 8], "x": 8, "y": 3},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 5, "y": 4, "w": 2},
+                {"matrix": [4, 6], "x": 7, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 8.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 9.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.25}
+            ]
         }
     }
 }

+ 0 - 17
keyboards/checkerboards/quark_squared/quark_squared.c

@@ -1,17 +0,0 @@
-/* Copyright 2021 Nathan Spears
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quark_squared.h"

+ 0 - 76
keyboards/checkerboards/quark_squared/quark_squared.h

@@ -1,76 +0,0 @@
-/* Copyright 2021 Nathan Spears
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-
-#define LAYOUT_4_2x225u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
-    k30, k31,      k33, k34,      k36,      k38, k39,      k3B  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
-    { k30, k31, XXX, k33, k34, XXX, k36, XXX, k38, k39, XXX, k3B }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }  \
-}
-
-#define LAYOUT_4_2u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
-    k30, k31,      k33, k34, k35,  k36,     k38, k39,      k3B  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
-    { k30, k31, XXX, k33, k34, k35, k36, XXX, k38, k39, XXX, k3B }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }  \
-}
-
-#define LAYOUT_5_2x225u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \
-    k40, k41,      k43, k44,      k46,      k48, k49,      k4B  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \
-    { k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, k49, XXX, k4B }  \
-}
-
-#define LAYOUT_5_2u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \
-    k40, k41,      k43, k44, k45, k46,      k48, k49,      k4B  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \
-    { k40, k41, XXX, k43, k44, k45, k46, XXX, k48, k49, XXX, k4B }  \
-}

+ 33 - 5
keyboards/coarse/ixora/info.json

@@ -23,16 +23,44 @@
     "debounce": 0,
     "layouts": {
         "LAYOUT_full": {
-            "layout": [{"label":"1", "x":0, "y":0}, {"label":"2", "x":1, "y":0}, {"label":"3", "x":2, "y":0}, {"label":"Caps Lock", "x":0, "y":1}, {"label":"Num Lock", "x":1, "y":1}, {"label":"Scroll Lock", "x":2, "y":1}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+
+                {"matrix": [0, 3], "x": 0, "y": 1},
+                {"matrix": [0, 4], "x": 1, "y": 1},
+                {"matrix": [0, 5], "x": 2, "y": 1}
+            ]
         },
         "LAYOUT_blocker_right": {
-            "layout": [{"label":"1", "x":0, "y":0}, {"label":"2", "x":1, "y":0}, {"label":"Caps Lock", "x":0, "y":1}, {"label":"Num Lock", "x":1, "y":1}, {"label":"Scroll Lock", "x":2, "y":1}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+
+                {"matrix": [0, 3], "x": 0, "y": 1},
+                {"matrix": [0, 4], "x": 1, "y": 1},
+                {"matrix": [0, 5], "x": 2, "y": 1}
+            ]
         },
         "LAYOUT_blocker_left": {
-            "layout": [{"label":"2", "x":1, "y":0}, {"label":"3", "x":2, "y":0}, {"label":"Caps Lock", "x":0, "y":1}, {"label":"Num Lock", "x":1, "y":1}, {"label":"Scroll Lock", "x":2, "y":1}]
+            "layout": [
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+
+                {"matrix": [0, 3], "x": 0, "y": 1},
+                {"matrix": [0, 4], "x": 1, "y": 1},
+                {"matrix": [0, 5], "x": 2, "y": 1}
+            ]
         },
         "LAYOUT_arrows": {
-            "layout": [{"label":"\u2191", "x":1, "y":0}, {"label":"\u2190", "x":0, "y":1}, {"label":"\u2193", "x":1, "y":1}, {"label":"\u2192", "x":2, "y":1}]
+            "layout": [
+                {"matrix": [0, 1], "x": 1, "y": 0},
+
+                {"matrix": [0, 3], "x": 0, "y": 1},
+                {"matrix": [0, 4], "x": 1, "y": 1},
+                {"matrix": [0, 5], "x": 2, "y": 1}
+            ]
         }
     }
-  }
+}

+ 0 - 40
keyboards/coarse/ixora/ixora.h

@@ -1,40 +0,0 @@
-#pragma once
-
-#define XXX KC_NO
-
-#include "quantum.h"
-
-// This a shortcut to help you visually see your layout.
-
-#define LAYOUT_full( \
-    K00, K01, K02, \
-    K03, K04, K05  \
-) \
-{ \
-    { K00, K01, K02, K03, K04, K05 } \
-}
-
-#define LAYOUT_blocker_right( \
-    K00, K01,      \
-    K03, K04, K05  \
-) \
-{ \
-    { K00, K01, XXX, K03, K04, K05 } \
-}
-
-#define LAYOUT_blocker_left( \
-         K01, K02, \
-    K03, K04, K05  \
-) \
-{ \
-    { XXX, K01, K02, K03, K04, K05 } \
-}
-
-#define LAYOUT_arrows( \
-         K01,      \
-    K03, K04, K05  \
-) \
-{ \
-    { XXX, K01, XXX, K03, K04, K05 } \
-}
-

+ 0 - 108
keyboards/converter/adb_usb/adb_usb.h

@@ -1,108 +0,0 @@
-/*
-Copyright 2011,2012,2013 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-Ported to QMK by Peter Roe <pete@13bit.me>
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* M0115/M3501 Apple Extended Keyboard ANSI
- * ,---.   ,---------------. ,---------------. ,---------------. ,-----------.             ,---.
- * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|             |Pwr|
- * `---'   `---------------' `---------------' `---------------' `-----------'             `---'
- * ,-----------------------------------------------------------. ,-----------. ,---------------.
- * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backspa| |Ins|Hom|PgU| |NmL|  =|  /|  *|
- * |-----------------------------------------------------------| |-----------| |---------------|
- * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \| |Del|End|PgD| |  7|  8|  9|  -|
- * |-----------------------------------------------------------| `-----------' |---------------|
- * |CapsLo|  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return  |               |  4|  5|  6|  +|
- * |-----------------------------------------------------------|     ,---.     |---------------|
- * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shift     |     |Up |     |  1|  2|  3|   |
- * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
- * |Ctrl |Opt |Cmd |         Space           |     |Opt |Ctrl  | |Lef|Dow|Rig| |      0|  .|   |
- * `-----------------------------------------------------------' `-----------' `---------------'
- */
-#define LAYOUT_ext_ansi( \
-    k35,      k7A, k78, k63, k76, k60, k61, k62, k64, k65, k6D, k67, k6F,  k69, k6B, k71,                 k7F, \
-    k32, k12, k13, k14, k15, k17, k16, k1A, k1C, k19, k1D, k1B, k18, k33,  k72, k73, k74,  k47, k51, k4B, k43, \
-    k30, k0C, k0D, k0E, k0F, k11, k10, k20, k22, k1F, k23, k21, k1E, k2A,  k75, k77, k79,  k59, k5B, k5C, k4E, \
-    k39, k00, k01, k02, k03, k05, k04, k26, k28, k25, k29, k27,      k24,                  k56, k57, k58, k45, \
-    k38, k06, k07, k08, k09, k0B, k2D, k2E, k2B, k2F, k2C,           k7B,       k3E,       k53, k54, k55,\
-    k36, k3A, k37,           k31,                               k7C, k7D,  k3B, k3D, k3C,  k52,      k41, k4C \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { k08, k09, XXX, k0B, k0C, k0D, k0E, k0F }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17 }, \
-    { k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
-    { k30, k31, k32, k33, XXX, k35, k36, k37 }, \
-    { k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \
-    { XXX, k41, XXX, k43, XXX, k45, XXX, k47 }, \
-    { XXX, XXX, XXX, k4B, k4C, XXX, k4E, XXX }, \
-    { XXX, k51, k52, k53, k54, k55, k56, k57 }, \
-    { k58, k59, XXX, k5B, k5C, XXX, XXX, XXX }, \
-    { k60, k61, k62, k63, k64, k65, XXX, k67 }, \
-    { XXX, k69, XXX, k6B, XXX, k6D, XXX, k6F }, \
-    { XXX, k71, k72, k73, k74, k75, k76, k77 }, \
-    { k78, k79, k7A, k7B, k7C, k7D, XXX, k7F } \
-}
-
-/* M0116 Apple Standard Keyboard ANSI
- *                     +-------+
- *                     | power |
- *                     +-------+
- * +---+---+---+---+---+---+---+---+---+---+---+---+---+-----+ +---+---+---+---+
- * |esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | bks | |clr| = | / | * |
- * +---------------------------------------------------------+ +---+---+---+---+
- * | tab | q | w | e | r | t | y | u | i | o | p | [ | ] |   | | 7 | 8 | 9 | + |
- * +-----------------------------------------------------+   | +---+---+---+---+
- * | ctrl | a | s | d | f | g | h | j | k | l | ; | ' |return| | 4 | 5 | 6 | - |
- * +---------------------------------------------------------+ +---+---+---+---+
- * | shift  | z | x | c | v | b | n | m | , | . | / |  shift | | 1 | 2 | 3 |   |
- * +---------------------------------------------------------+ +-------+---|ent|
- * |cap|opt|comnd| ` |                   | \ |lef|rig|dwn|up | |   0   | . |   |
- * +---------------------------------------------------------+ +-------+---+---+
- */
-#define LAYOUT_m0116_ansi( \
-                                  k7F, \
-    k35, k12, k13, k14, k15, k17, k16, k1A, k1C, k19, k1D, k1B, k18, k33,  k47, k51, k4B, k43, \
-    k30, k0C, k0D, k0E, k0F, k11, k10, k20, k22, k1F, k23, k21, k1E,       k59, k5B, k5C, k45, \
-    k36, k00, k01, k02, k03, k05, k04, k26, k28, k25, k29, k27,      k24,  k56, k57, k58, k4E, \
-    k38, k06, k07, k08, k09, k0B, k2D, k2E, k2B, k2F, k2C,           k7B,  k53, k54, k55, \
-    k39, k3A, k37, k32,           k31,           k2A, k3B, k3C, k3D, k3E,  k52,      k41, k4C \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { k08, k09, XXX, k0B, k0C, k0D, k0E, k0F }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17 }, \
-    { k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
-    { k30, k31, k32, k33, XXX, k35, k36, k37 }, \
-    { k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \
-    { XXX, k41, XXX, k43, XXX, k45, XXX, k47 }, \
-    { XXX, XXX, XXX, k4B, k4C, XXX, k4E, XXX }, \
-    { XXX, k51, k52, k53, k54, k55, k56, k57 }, \
-    { k58, k59, XXX, k5B, k5C, XXX, XXX, XXX }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \
-    { XXX, XXX, XXX, k7B, XXX, XXX, XXX, k7F } \
-}

+ 214 - 185
keyboards/converter/adb_usb/info.json

@@ -11,195 +11,224 @@
   "layouts": {
     "LAYOUT_ext_ansi": {
       "layout": [
-        {"label":"Escape", "x":0, "y":0},
-        {"label":"F1", "x":2, "y":0},
-        {"label":"F2", "x":3, "y":0},
-        {"label":"F3", "x":4, "y":0},
-        {"label":"F4", "x":5, "y":0},
-        {"label":"F5", "x":6.5, "y":0},
-        {"label":"F6", "x":7.5, "y":0},
-        {"label":"F7", "x":8.5, "y":0},
-        {"label":"F8", "x":9.5, "y":0},
-        {"label":"F9", "x":11, "y":0},
-        {"label":"F10", "x":12, "y":0},
-        {"label":"F11", "x":13, "y":0},
-        {"label":"F12", "x":14, "y":0},
-        {"label":"Print Screen", "x":15.25, "y":0},
-        {"label":"Scroll Lock", "x":16.25, "y":0},
-        {"label":"Pause", "x":17.25, "y":0},
-        {"label":"Eject", "x":21.5, "y":0},
-        {"label":"`", "x":0, "y":2},
-        {"label":"1", "x":1, "y":2},
-        {"label":"2", "x":2, "y":2},
-        {"label":"3", "x":3, "y":2},
-        {"label":"4", "x":4, "y":2},
-        {"label":"5", "x":5, "y":2},
-        {"label":"6", "x":6, "y":2},
-        {"label":"7", "x":7, "y":2},
-        {"label":"8", "x":8, "y":2},
-        {"label":"9", "x":9, "y":2},
-        {"label":"0", "x":10, "y":2},
-        {"label":"-", "x":11, "y":2},
-        {"label":"=", "x":12, "y":2},
-        {"label":"Backspace", "x":13, "y":2, "w":2},
-        {"label":"Insert", "x":15.25, "y":2},
-        {"label":"Home", "x":16.25, "y":2},
-        {"label":"Page Up", "x":17.25, "y":2},
-        {"label":"Num Lock", "x":18.5, "y":2},
-        {"label":"Num =", "x":19.5, "y":2},
-        {"label":"Num /", "x":20.5, "y":2},
-        {"label":"Num *", "x":21.5, "y":2},
-        {"label":"Tab", "x":0, "y":3, "w":1.5},
-        {"label":"Q", "x":1.5, "y":3},
-        {"label":"W", "x":2.5, "y":3},
-        {"label":"E", "x":3.5, "y":3},
-        {"label":"R", "x":4.5, "y":3},
-        {"label":"T", "x":5.5, "y":3},
-        {"label":"Y", "x":6.5, "y":3},
-        {"label":"U", "x":7.5, "y":3},
-        {"label":"I", "x":8.5, "y":3},
-        {"label":"O", "x":9.5, "y":3},
-        {"label":"P", "x":10.5, "y":3},
-        {"label":"[", "x":11.5, "y":3},
-        {"label":"]", "x":12.5, "y":3},
-        {"label":"\\", "x":13.5, "y":3, "w":1.5},
-        {"label":"Delete", "x":15.25, "y":3},
-        {"label":"End", "x":16.25, "y":3},
-        {"label":"Page Down", "x":17.25, "y":3},
-        {"label":"Num 7", "x":18.5, "y":3},
-        {"label":"Num 8", "x":19.5, "y":3},
-        {"label":"Num 9", "x":20.5, "y":3},
-        {"label":"Num -", "x":21.5, "y":3},
-        {"label":"Lcap", "x":0, "y":4, "w":1.75},
-        {"label":"A", "x":1.75, "y":4},
-        {"label":"S", "x":2.75, "y":4},
-        {"label":"D", "x":3.75, "y":4},
-        {"label":"F", "x":4.75, "y":4},
-        {"label":"G", "x":5.75, "y":4},
-        {"label":"H", "x":6.75, "y":4},
-        {"label":"J", "x":7.75, "y":4},
-        {"label":"K", "x":8.75, "y":4},
-        {"label":"L", "x":9.75, "y":4},
-        {"label":";", "x":10.75, "y":4},
-        {"label":"\"", "x":11.75, "y":4},
-        {"label":"Enter", "x":12.75, "y":4, "w":2.25},
-        {"label":"Num 4", "x":18.5, "y":4},
-        {"label":"Num 5", "x":19.5, "y":4},
-        {"label":"Num 6", "x":20.5, "y":4},
-        {"label":"Num +", "x":21.5, "y":4},
-        {"label":"Shift", "x":0, "y":5, "w":2.25},
-        {"label":"Z", "x":2.25, "y":5},
-        {"label":"X", "x":3.25, "y":5},
-        {"label":"C", "x":4.25, "y":5},
-        {"label":"V", "x":5.25, "y":5},
-        {"label":"B", "x":6.25, "y":5},
-        {"label":"N", "x":7.25, "y":5},
-        {"label":"M", "x":8.25, "y":5},
-        {"label":",", "x":9.25, "y":5},
-        {"label":".", "x":10.25, "y":5},
-        {"label":"/", "x":11.25, "y":5},
-        {"label":"Shift", "x":12.25, "y":5, "w":2.75},
-        {"label":"Up", "x":16.25, "y":5},
-        {"label":"Num 1", "x":18.5, "y":5},
-        {"label":"Num 2", "x":19.5, "y":5},
-        {"label":"Num 3", "x":20.5, "y":5},
-        {"label":"Ctrl", "x":0, "y":6, "w":1.5},
-        {"label":"Alt", "x":1.5, "y":6, "w":1.25},
-        {"label":"Command", "x":2.75, "y":6, "w":1.5},
-        {"label":"Space", "x":4.25, "y":6, "w":6.5},
-        {"label":"Alt", "x":12.25, "y":6, "w":1.25},
-        {"label":"Ctrl", "x":13.5, "y":6, "w":1.5},
-        {"label":"Left", "x":15.25, "y":6},
-        {"label":"Down", "x":16.25, "y":6},
-        {"label":"Right", "x":17.25, "y":6},
-        {"label":"Num 0", "x":18.5, "y":6, "w":2},
-        {"label":"Num .", "x":20.5, "y":6},
-        {"label":"Num Enter", "x":21.5, "y":5, "h":2}
+        {"matrix": [6, 5], "x": 0, "y": 0},
+
+        {"matrix": [15, 2], "x": 2, "y": 0},
+        {"matrix": [15, 0], "x": 3, "y": 0},
+        {"matrix": [12, 3], "x": 4, "y": 0},
+        {"matrix": [14, 6], "x": 5, "y": 0},
+
+        {"matrix": [12, 0], "x": 6.5, "y": 0},
+        {"matrix": [12, 1], "x": 7.5, "y": 0},
+        {"matrix": [12, 2], "x": 8.5, "y": 0},
+        {"matrix": [12, 4], "x": 9.5, "y": 0},
+
+        {"matrix": [12, 5], "x": 11, "y": 0},
+        {"matrix": [13, 5], "x": 12, "y": 0},
+        {"matrix": [12, 7], "x": 13, "y": 0},
+        {"matrix": [13, 7], "x": 14, "y": 0},
+
+        {"matrix": [13, 1], "x": 15.25, "y": 0},
+        {"matrix": [13, 3], "x": 16.25, "y": 0},
+        {"matrix": [14, 1], "x": 17.25, "y": 0},
+
+        {"matrix": [15, 7], "x": 21.5, "y": 0},
+
+        {"matrix": [6, 2], "x": 0, "y": 2},
+        {"matrix": [2, 2], "x": 1, "y": 2},
+        {"matrix": [2, 3], "x": 2, "y": 2},
+        {"matrix": [2, 4], "x": 3, "y": 2},
+        {"matrix": [2, 5], "x": 4, "y": 2},
+        {"matrix": [2, 7], "x": 5, "y": 2},
+        {"matrix": [2, 6], "x": 6, "y": 2},
+        {"matrix": [3, 2], "x": 7, "y": 2},
+        {"matrix": [3, 4], "x": 8, "y": 2},
+        {"matrix": [3, 1], "x": 9, "y": 2},
+        {"matrix": [3, 5], "x": 10, "y": 2},
+        {"matrix": [3, 3], "x": 11, "y": 2},
+        {"matrix": [3, 0], "x": 12, "y": 2},
+        {"matrix": [6, 3], "x": 13, "y": 2, "w": 2},
+
+        {"matrix": [14, 2], "x": 15.25, "y": 2},
+        {"matrix": [14, 3], "x": 16.25, "y": 2},
+        {"matrix": [14, 4], "x": 17.25, "y": 2},
+
+        {"matrix": [8, 7], "x": 18.5, "y": 2},
+        {"matrix": [10, 1], "x": 19.5, "y": 2},
+        {"matrix": [9, 3], "x": 20.5, "y": 2},
+        {"matrix": [8, 3], "x": 21.5, "y": 2},
+
+        {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.5},
+        {"matrix": [1, 4], "x": 1.5, "y": 3},
+        {"matrix": [1, 5], "x": 2.5, "y": 3},
+        {"matrix": [1, 6], "x": 3.5, "y": 3},
+        {"matrix": [1, 7], "x": 4.5, "y": 3},
+        {"matrix": [2, 1], "x": 5.5, "y": 3},
+        {"matrix": [2, 0], "x": 6.5, "y": 3},
+        {"matrix": [4, 0], "x": 7.5, "y": 3},
+        {"matrix": [4, 2], "x": 8.5, "y": 3},
+        {"matrix": [3, 7], "x": 9.5, "y": 3},
+        {"matrix": [4, 3], "x": 10.5, "y": 3},
+        {"matrix": [4, 1], "x": 11.5, "y": 3},
+        {"matrix": [3, 6], "x": 12.5, "y": 3},
+        {"matrix": [5, 2], "x": 13.5, "y": 3, "w": 1.5},
+
+        {"matrix": [14, 5], "x": 15.25, "y": 3},
+        {"matrix": [14, 7], "x": 16.25, "y": 3},
+        {"matrix": [15, 1], "x": 17.25, "y": 3},
+
+        {"matrix": [11, 1], "x": 18.5, "y": 3},
+        {"matrix": [11, 3], "x": 19.5, "y": 3},
+        {"matrix": [11, 4], "x": 20.5, "y": 3},
+        {"matrix": [9, 6], "x": 21.5, "y": 3},
+
+        {"matrix": [7, 1], "x": 0, "y": 4, "w": 1.75},
+        {"matrix": [0, 0], "x": 1.75, "y": 4},
+        {"matrix": [0, 1], "x": 2.75, "y": 4},
+        {"matrix": [0, 2], "x": 3.75, "y": 4},
+        {"matrix": [0, 3], "x": 4.75, "y": 4},
+        {"matrix": [0, 5], "x": 5.75, "y": 4},
+        {"matrix": [0, 4], "x": 6.75, "y": 4},
+        {"matrix": [4, 6], "x": 7.75, "y": 4},
+        {"matrix": [5, 0], "x": 8.75, "y": 4},
+        {"matrix": [4, 5], "x": 9.75, "y": 4},
+        {"matrix": [5, 1], "x": 10.75, "y": 4},
+        {"matrix": [4, 7], "x": 11.75, "y": 4},
+        {"matrix": [4, 4], "x": 12.75, "y": 4, "w": 2.25},
+
+        {"matrix": [10, 6], "x": 18.5, "y": 4},
+        {"matrix": [10, 7], "x": 19.5, "y": 4},
+        {"matrix": [11, 0], "x": 20.5, "y": 4},
+        {"matrix": [8, 5], "x": 21.5, "y": 4},
+
+        {"matrix": [7, 0], "x": 0, "y": 5, "w": 2.25},
+        {"matrix": [0, 6], "x": 2.25, "y": 5},
+        {"matrix": [0, 7], "x": 3.25, "y": 5},
+        {"matrix": [1, 0], "x": 4.25, "y": 5},
+        {"matrix": [1, 1], "x": 5.25, "y": 5},
+        {"matrix": [1, 3], "x": 6.25, "y": 5},
+        {"matrix": [5, 5], "x": 7.25, "y": 5},
+        {"matrix": [5, 6], "x": 8.25, "y": 5},
+        {"matrix": [5, 3], "x": 9.25, "y": 5},
+        {"matrix": [5, 7], "x": 10.25, "y": 5},
+        {"matrix": [5, 4], "x": 11.25, "y": 5},
+        {"matrix": [15, 3], "x": 12.25, "y": 5, "w": 2.75},
+
+        {"matrix": [7, 6], "x": 16.25, "y": 5},
+
+        {"matrix": [10, 3], "x": 18.5, "y": 5},
+        {"matrix": [10, 4], "x": 19.5, "y": 5},
+        {"matrix": [10, 5], "x": 20.5, "y": 5},
+
+        {"matrix": [6, 6], "x": 0, "y": 6, "w": 1.5},
+        {"matrix": [7, 2], "x": 1.5, "y": 6, "w": 1.25},
+        {"matrix": [6, 7], "x": 2.75, "y": 6, "w": 1.5},
+        {"matrix": [6, 1], "x": 4.25, "y": 6, "w": 6.5},
+        {"matrix": [15, 4], "x": 12.25, "y": 6, "w": 1.25},
+        {"matrix": [15, 5], "x": 13.5, "y": 6, "w": 1.5},
+
+        {"matrix": [7, 3], "x": 15.25, "y": 6},
+        {"matrix": [7, 5], "x": 16.25, "y": 6},
+        {"matrix": [7, 4], "x": 17.25, "y": 6},
+
+        {"matrix": [10, 2], "x": 18.5, "y": 6, "w": 2},
+        {"matrix": [8, 1], "x": 20.5, "y": 6},
+        {"matrix": [9, 4], "x": 21.5, "y": 5, "h": 2}
       ]
     },
     "LAYOUT_m0116_ansi": {
       "layout": [
-        {"label":"Power", "x":5, "y":0, "w":2},
-        {"label":"Esc", "x":0, "y":1.25},
-        {"label":"1", "x":1, "y":1.25},
-        {"label":"2", "x":2, "y":1.25},
-        {"label":"3", "x":3, "y":1.25},
-        {"label":"4", "x":4, "y":1.25},
-        {"label":"5", "x":5, "y":1.25},
-        {"label":"6", "x":6, "y":1.25},
-        {"label":"7", "x":7, "y":1.25},
-        {"label":"8", "x":8, "y":1.25},
-        {"label":"9", "x":9, "y":1.25},
-        {"label":"0", "x":10, "y":1.25},
-        {"label":"-", "x":11, "y":1.25},
-        {"label":"=", "x":12, "y":1.25},
-        {"label":"Delete", "x":13, "y":1.25, "w":1.5},
-        {"label":"Clear", "x":15.5, "y":1.25},
-        {"label":"Num =", "x":16.5, "y":1.25},
-        {"label":"Num /", "x":17.5, "y":1.25},
-        {"label":"Num *", "x":18.5, "y":1.25},
-        {"label":"Tab", "x":0, "y":2.25, "w":1.5},
-        {"label":"Q", "x":1.5, "y":2.25},
-        {"label":"W", "x":2.5, "y":2.25},
-        {"label":"E", "x":3.5, "y":2.25},
-        {"label":"R", "x":4.5, "y":2.25},
-        {"label":"T", "x":5.5, "y":2.25},
-        {"label":"Y", "x":6.5, "y":2.25},
-        {"label":"U", "x":7.5, "y":2.25},
-        {"label":"I", "x":8.5, "y":2.25},
-        {"label":"O", "x":9.5, "y":2.25},
-        {"label":"P", "x":10.5, "y":2.25},
-        {"label":"[", "x":11.5, "y":2.25},
-        {"label":"]", "x":12.5, "y":2.25},
-        {"label":"Num 7", "x":15.5, "y":2.25},
-        {"label":"Num 8", "x":16.5, "y":2.25},
-        {"label":"Num 9", "x":17.5, "y":2.25},
-        {"label":"Num +", "x":18.5, "y":2.25},
-        {"label":"Ctrl", "x":0, "y":3.25, "w":1.75},
-        {"label":"A", "x":1.75, "y":3.25},
-        {"label":"S", "x":2.75, "y":3.25},
-        {"label":"D", "x":3.75, "y":3.25},
-        {"label":"F", "x":4.75, "y":3.25},
-        {"label":"G", "x":5.75, "y":3.25},
-        {"label":"H", "x":6.75, "y":3.25},
-        {"label":"J", "x":7.75, "y":3.25},
-        {"label":"K", "x":8.75, "y":3.25},
-        {"label":"L", "x":9.75, "y":3.25},
-        {"label":";", "x":10.75, "y":3.25},
-        {"label":"'", "x":11.75, "y":3.25},
-        {"label":"Return", "x":12.75, "y":3.25, "w":1.75},
-        {"label":"Num 4", "x":15.5, "y":3.25},
-        {"label":"Num 5", "x":16.5, "y":3.25},
-        {"label":"Num 6", "x":17.5, "y":3.25},
-        {"label":"Num -", "x":18.5, "y":3.25},
-        {"label":"Shift", "x":0, "y":4.25, "w":2.25},
-        {"label":"Z", "x":2.25, "y":4.25},
-        {"label":"X", "x":3.25, "y":4.25},
-        {"label":"C", "x":4.25, "y":4.25},
-        {"label":"V", "x":5.25, "y":4.25},
-        {"label":"B", "x":6.25, "y":4.25},
-        {"label":"N", "x":7.25, "y":4.25},
-        {"label":"M", "x":8.25, "y":4.25},
-        {"label":",", "x":9.25, "y":4.25},
-        {"label":".", "x":10.25, "y":4.25},
-        {"label":"/", "x":11.25, "y":4.25},
-        {"label":"Shift", "x":12.25, "y":4.25, "w":2.25},
-        {"label":"Num 1", "x":15.5, "y":4.25},
-        {"label":"Num 2", "x":16.5, "y":4.25},
-        {"label":"Num 3", "x":17.5, "y":4.25},
-        {"label":"Caps Lock", "x":0, "y":5.25},
-        {"label":"Option", "x":1, "y":5.25},
-        {"label":"Command", "x":2, "y":5.25, "w":1.75},
-        {"label":"`", "x":3.75, "y":5.25},
-        {"label":"Space", "x":4.75, "y":5.25, "w":4.75},
-        {"label":"\\", "x":9.5, "y":5.25},
-        {"label":"Left", "x":10.5, "y":5.25},
-        {"label":"Right", "x":11.5, "y":5.25},
-        {"label":"Down", "x":12.5, "y":5.25},
-        {"label":"Up", "x":13.5, "y":5.25},
-        {"label":"Num 0", "x":15.5, "y":5.25, "w":2},
-        {"label":"Num .", "x":17.5, "y":5.25},
-        {"label":"Num Enter", "x":18.5, "y":4.25, "h":2}
+        {"matrix": [15, 7], "x": 5, "y": 0, "w": 2},
+
+        {"matrix": [6, 5], "x": 0, "y": 1.25},
+        {"matrix": [2, 2], "x": 1, "y": 1.25},
+        {"matrix": [2, 3], "x": 2, "y": 1.25},
+        {"matrix": [2, 4], "x": 3, "y": 1.25},
+        {"matrix": [2, 5], "x": 4, "y": 1.25},
+        {"matrix": [2, 7], "x": 5, "y": 1.25},
+        {"matrix": [2, 6], "x": 6, "y": 1.25},
+        {"matrix": [3, 2], "x": 7, "y": 1.25},
+        {"matrix": [3, 4], "x": 8, "y": 1.25},
+        {"matrix": [3, 1], "x": 9, "y": 1.25},
+        {"matrix": [3, 5], "x": 10, "y": 1.25},
+        {"matrix": [3, 3], "x": 11, "y": 1.25},
+        {"matrix": [3, 0], "x": 12, "y": 1.25},
+        {"matrix": [6, 3], "x": 13, "y": 1.25, "w": 1.5},
+
+        {"matrix": [8, 7], "x": 15.5, "y": 1.25},
+        {"matrix": [10, 1], "x": 16.5, "y": 1.25},
+        {"matrix": [9, 3], "x": 17.5, "y": 1.25},
+        {"matrix": [8, 3], "x": 18.5, "y": 1.25},
+
+        {"matrix": [6, 0], "x": 0, "y": 2.25, "w": 1.5},
+        {"matrix": [1, 4], "x": 1.5, "y": 2.25},
+        {"matrix": [1, 5], "x": 2.5, "y": 2.25},
+        {"matrix": [1, 6], "x": 3.5, "y": 2.25},
+        {"matrix": [1, 7], "x": 4.5, "y": 2.25},
+        {"matrix": [2, 1], "x": 5.5, "y": 2.25},
+        {"matrix": [2, 0], "x": 6.5, "y": 2.25},
+        {"matrix": [4, 0], "x": 7.5, "y": 2.25},
+        {"matrix": [4, 2], "x": 8.5, "y": 2.25},
+        {"matrix": [3, 7], "x": 9.5, "y": 2.25},
+        {"matrix": [4, 3], "x": 10.5, "y": 2.25},
+        {"matrix": [4, 1], "x": 11.5, "y": 2.25},
+        {"matrix": [3, 6], "x": 12.5, "y": 2.25},
+
+        {"matrix": [11, 1], "x": 15.5, "y": 2.25},
+        {"matrix": [11, 3], "x": 16.5, "y": 2.25},
+        {"matrix": [11, 4], "x": 17.5, "y": 2.25},
+        {"matrix": [8, 5], "x": 18.5, "y": 2.25},
+
+        {"matrix": [6, 6], "x": 0, "y": 3.25, "w": 1.75},
+        {"matrix": [0, 0], "x": 1.75, "y": 3.25},
+        {"matrix": [0, 1], "x": 2.75, "y": 3.25},
+        {"matrix": [0, 2], "x": 3.75, "y": 3.25},
+        {"matrix": [0, 3], "x": 4.75, "y": 3.25},
+        {"matrix": [0, 5], "x": 5.75, "y": 3.25},
+        {"matrix": [0, 4], "x": 6.75, "y": 3.25},
+        {"matrix": [4, 6], "x": 7.75, "y": 3.25},
+        {"matrix": [5, 0], "x": 8.75, "y": 3.25},
+        {"matrix": [4, 5], "x": 9.75, "y": 3.25},
+        {"matrix": [5, 1], "x": 10.75, "y": 3.25},
+        {"matrix": [4, 7], "x": 11.75, "y": 3.25},
+        {"matrix": [4, 4], "x": 12.75, "y": 3.25, "w": 1.75},
+
+        {"matrix": [10, 6], "x": 15.5, "y": 3.25},
+        {"matrix": [10, 7], "x": 16.5, "y": 3.25},
+        {"matrix": [11, 0], "x": 17.5, "y": 3.25},
+        {"matrix": [9, 6], "x": 18.5, "y": 3.25},
+
+        {"matrix": [7, 0], "x": 0, "y": 4.25, "w": 2.25},
+        {"matrix": [0, 6], "x": 2.25, "y": 4.25},
+        {"matrix": [0, 7], "x": 3.25, "y": 4.25},
+        {"matrix": [1, 0], "x": 4.25, "y": 4.25},
+        {"matrix": [1, 1], "x": 5.25, "y": 4.25},
+        {"matrix": [1, 3], "x": 6.25, "y": 4.25},
+        {"matrix": [5, 5], "x": 7.25, "y": 4.25},
+        {"matrix": [5, 6], "x": 8.25, "y": 4.25},
+        {"matrix": [5, 3], "x": 9.25, "y": 4.25},
+        {"matrix": [5, 7], "x": 10.25, "y": 4.25},
+        {"matrix": [5, 4], "x": 11.25, "y": 4.25},
+        {"matrix": [15, 3], "x": 12.25, "y": 4.25, "w": 2.25},
+
+        {"matrix": [10, 3], "x": 15.5, "y": 4.25},
+        {"matrix": [10, 4], "x": 16.5, "y": 4.25},
+        {"matrix": [10, 5], "x": 17.5, "y": 4.25},
+
+        {"matrix": [7, 1], "x": 0, "y": 5.25},
+        {"matrix": [7, 2], "x": 1, "y": 5.25},
+        {"matrix": [6, 7], "x": 2, "y": 5.25, "w": 1.75},
+        {"matrix": [6, 2], "x": 3.75, "y": 5.25},
+        {"matrix": [6, 1], "x": 4.75, "y": 5.25, "w": 4.75},
+        {"matrix": [5, 2], "x": 9.5, "y": 5.25},
+        {"matrix": [7, 3], "x": 10.5, "y": 5.25},
+        {"matrix": [7, 4], "x": 11.5, "y": 5.25},
+        {"matrix": [7, 5], "x": 12.5, "y": 5.25},
+        {"matrix": [7, 6], "x": 13.5, "y": 5.25},
+
+        {"matrix": [10, 2], "x": 15.5, "y": 5.25, "w": 2},
+        {"matrix": [8, 1], "x": 17.5, "y": 5.25},
+        {"matrix": [9, 4], "x": 18.5, "y": 4.25, "h": 2}
       ]
     }
   }

+ 172 - 153
keyboards/converter/m0110_usb/info.json

@@ -13,163 +13,182 @@
   "layouts": {
     "LAYOUT_ansi": {
       "layout": [
-        {"label":"`", "x":0, "y":0},
-        {"label":"1", "x":1, "y":0},
-        {"label":"2", "x":2, "y":0},
-        {"label":"3", "x":3, "y":0},
-        {"label":"4", "x":4, "y":0},
-        {"label":"5", "x":5, "y":0},
-        {"label":"6", "x":6, "y":0},
-        {"label":"7", "x":7, "y":0},
-        {"label":"8", "x":8, "y":0},
-        {"label":"9", "x":9, "y":0},
-        {"label":"0", "x":10, "y":0},
-        {"label":"-", "x":11, "y":0},
-        {"label":"=", "x":12, "y":0},
-        {"label":"Backspace", "x":13, "y":0, "w":1.5},
-        {"label":"Num Lock", "x":15.25, "y":0},
-        {"label":"=", "x":16.25, "y":0},
-        {"label":"/", "x":17.25, "y":0},
-        {"label":"*", "x":18.25, "y":0},
-        {"label":"Tab", "x":0, "y":1, "w":1.5},
-        {"label":"Q", "x":1.5, "y":1},
-        {"label":"W", "x":2.5, "y":1},
-        {"label":"E", "x":3.5, "y":1},
-        {"label":"R", "x":4.5, "y":1},
-        {"label":"T", "x":5.5, "y":1},
-        {"label":"Y", "x":6.5, "y":1},
-        {"label":"U", "x":7.5, "y":1},
-        {"label":"I", "x":8.5, "y":1},
-        {"label":"O", "x":9.5, "y":1},
-        {"label":"P", "x":10.5, "y":1},
-        {"label":"[", "x":11.5, "y":1},
-        {"label":"]", "x":12.5, "y":1},
-        {"label":"7", "x":15.25, "y":1},
-        {"label":"8", "x":16.25, "y":1},
-        {"label":"9", "x":17.25, "y":1},
-        {"label":"-", "x":18.25, "y":1},
-        {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-        {"label":"A", "x":1.75, "y":2},
-        {"label":"S", "x":2.75, "y":2},
-        {"label":"D", "x":3.75, "y":2},
-        {"label":"F", "x":4.75, "y":2},
-        {"label":"G", "x":5.75, "y":2},
-        {"label":"H", "x":6.75, "y":2},
-        {"label":"J", "x":7.75, "y":2},
-        {"label":"K", "x":8.75, "y":2},
-        {"label":"L", "x":9.75, "y":2},
-        {"label":";", "x":10.75, "y":2},
-        {"label":"'", "x":11.75, "y":2},
-        {"label":"Enter", "x":12.75, "y":2, "w":1.75},
-        {"label":"4", "x":15.25, "y":2},
-        {"label":"5", "x":16.25, "y":2},
-        {"label":"6", "x":17.25, "y":2},
-        {"label":"+", "x":18.25, "y":2},
-        {"label":"Shift", "x":0, "y":3, "w":2.25},
-        {"label":"Z", "x":2.25, "y":3},
-        {"label":"X", "x":3.25, "y":3},
-        {"label":"C", "x":4.25, "y":3},
-        {"label":"V", "x":5.25, "y":3},
-        {"label":"B", "x":6.25, "y":3},
-        {"label":"N", "x":7.25, "y":3},
-        {"label":"M", "x":8.25, "y":3},
-        {"label":",", "x":9.25, "y":3},
-        {"label":".", "x":10.25, "y":3},
-        {"label":"/", "x":11.25, "y":3},
-        {"label":"Up", "x":13.5, "y":3},
-        {"label":"1", "x":15.25, "y":3},
-        {"label":"2", "x":16.25, "y":3},
-        {"label":"3", "x":17.25, "y":3},
-        {"label":"Enter", "x":18.25, "y":3, "h":2},
-        {"label":"Alt", "x":0, "y":4, "w":1.5},
-        {"label":"GUI", "x":1.5, "y":4, "w":2},
-        {"label":"Space", "x":3.5, "y":4, "w":6},
-        {"label":"MO(1)", "x":9.5, "y":4},
-        {"label":"\\", "x":10.5, "y":4},
-        {"label":"Left", "x":11.5, "y":4},
-        {"label":"Right", "x":12.5, "y":4},
-        {"label":"Down", "x":13.5, "y":4},
-        {"label":"0", "x":15.25, "y":4, "w":2},
-        {"label":".", "x":17.25, "y":4}
+        {"matrix": [6, 2], "x": 0, "y": 0},
+        {"matrix": [2, 2], "x": 1, "y": 0},
+        {"matrix": [2, 3], "x": 2, "y": 0},
+        {"matrix": [2, 4], "x": 3, "y": 0},
+        {"matrix": [2, 5], "x": 4, "y": 0},
+        {"matrix": [2, 7], "x": 5, "y": 0},
+        {"matrix": [2, 6], "x": 6, "y": 0},
+        {"matrix": [3, 2], "x": 7, "y": 0},
+        {"matrix": [3, 4], "x": 8, "y": 0},
+        {"matrix": [3, 1], "x": 9, "y": 0},
+        {"matrix": [3, 5], "x": 10, "y": 0},
+        {"matrix": [3, 3], "x": 11, "y": 0},
+        {"matrix": [3, 0], "x": 12, "y": 0},
+        {"matrix": [6, 3], "x": 13, "y": 0, "w": 1.5},
+
+        {"matrix": [8, 7], "x": 15.25, "y": 0},
+        {"matrix": [13, 0], "x": 16.25, "y": 0},
+        {"matrix": [13, 5], "x": 17.25, "y": 0},
+        {"matrix": [12, 2], "x": 18.25, "y": 0},
+
+        {"matrix": [6, 0], "x": 0, "y": 1, "w": 1.5},
+        {"matrix": [1, 4], "x": 1.5, "y": 1},
+        {"matrix": [1, 5], "x": 2.5, "y": 1},
+        {"matrix": [1, 6], "x": 3.5, "y": 1},
+        {"matrix": [1, 7], "x": 4.5, "y": 1},
+        {"matrix": [2, 1], "x": 5.5, "y": 1},
+        {"matrix": [2, 0], "x": 6.5, "y": 1},
+        {"matrix": [4, 0], "x": 7.5, "y": 1},
+        {"matrix": [4, 2], "x": 8.5, "y": 1},
+        {"matrix": [3, 7], "x": 9.5, "y": 1},
+        {"matrix": [4, 3], "x": 10.5, "y": 1},
+        {"matrix": [4, 1], "x": 11.5, "y": 1},
+        {"matrix": [3, 6], "x": 12.5, "y": 1},
+
+        {"matrix": [11, 1], "x": 15.25, "y": 1},
+        {"matrix": [11, 3], "x": 16.25, "y": 1},
+        {"matrix": [11, 4], "x": 17.25, "y": 1},
+        {"matrix": [9, 6], "x": 18.25, "y": 1},
+
+        {"matrix": [7, 1], "x": 0, "y": 2, "w": 1.75},
+        {"matrix": [0, 0], "x": 1.75, "y": 2},
+        {"matrix": [0, 1], "x": 2.75, "y": 2},
+        {"matrix": [0, 2], "x": 3.75, "y": 2},
+        {"matrix": [0, 3], "x": 4.75, "y": 2},
+        {"matrix": [0, 5], "x": 5.75, "y": 2},
+        {"matrix": [0, 4], "x": 6.75, "y": 2},
+        {"matrix": [4, 6], "x": 7.75, "y": 2},
+        {"matrix": [5, 0], "x": 8.75, "y": 2},
+        {"matrix": [4, 5], "x": 9.75, "y": 2},
+        {"matrix": [5, 1], "x": 10.75, "y": 2},
+        {"matrix": [4, 7], "x": 11.75, "y": 2},
+        {"matrix": [4, 4], "x": 12.75, "y": 2, "w": 1.75},
+
+        {"matrix": [10, 6], "x": 15.25, "y": 2},
+        {"matrix": [10, 7], "x": 16.25, "y": 2},
+        {"matrix": [11, 0], "x": 17.25, "y": 2},
+        {"matrix": [12, 6], "x": 18.25, "y": 2},
+
+        {"matrix": [7, 0], "x": 0, "y": 3, "w": 2.25},
+        {"matrix": [0, 6], "x": 2.25, "y": 3},
+        {"matrix": [0, 7], "x": 3.25, "y": 3},
+        {"matrix": [1, 0], "x": 4.25, "y": 3},
+        {"matrix": [1, 1], "x": 5.25, "y": 3},
+        {"matrix": [1, 3], "x": 6.25, "y": 3},
+        {"matrix": [5, 5], "x": 7.25, "y": 3},
+        {"matrix": [5, 6], "x": 8.25, "y": 3},
+        {"matrix": [5, 3], "x": 9.25, "y": 3},
+        {"matrix": [5, 7], "x": 10.25, "y": 3},
+        {"matrix": [5, 4], "x": 11.25, "y": 3},
+
+        {"matrix": [9, 5], "x": 13.5, "y": 3},
+
+        {"matrix": [10, 3], "x": 15.25, "y": 3},
+        {"matrix": [10, 4], "x": 16.25, "y": 3},
+        {"matrix": [10, 5], "x": 17.25, "y": 3},
+        {"matrix": [9, 4], "x": 18.25, "y": 3, "h": 2},
+
+        {"matrix": [7, 2], "x": 0, "y": 4, "w": 1.5},
+        {"matrix": [6, 7], "x": 1.5, "y": 4, "w": 2},
+        {"matrix": [6, 1], "x": 3.5, "y": 4, "w": 6},
+        {"matrix": [6, 4], "x": 9.5, "y": 4},
+        {"matrix": [5, 2], "x": 10.5, "y": 4},
+        {"matrix": [8, 6], "x": 11.5, "y": 4},
+        {"matrix": [8, 2], "x": 12.5, "y": 4},
+        {"matrix": [9, 0], "x": 13.5, "y": 4},
+
+        {"matrix": [10, 2], "x": 15.25, "y": 4, "w": 2},
+        {"matrix": [8, 1], "x": 17.25, "y": 4}
       ]
     },
     "LAYOUT_iso": {
       "layout": [
-        {"label":"`", "x":0, "y":0},
-        {"label":"1", "x":1, "y":0},
-        {"label":"2", "x":2, "y":0},
-        {"label":"3", "x":3, "y":0},
-        {"label":"4", "x":4, "y":0},
-        {"label":"5", "x":5, "y":0},
-        {"label":"6", "x":6, "y":0},
-        {"label":"7", "x":7, "y":0},
-        {"label":"8", "x":8, "y":0},
-        {"label":"9", "x":9, "y":0},
-        {"label":"0", "x":10, "y":0},
-        {"label":"-", "x":11, "y":0},
-        {"label":"=", "x":12, "y":0},
-        {"label":"Backspace", "x":13, "y":0, "w":1.5},
-        {"label":"Num Lock", "x":15.25, "y":0},
-        {"label":"=", "x":16.25, "y":0},
-        {"label":"/", "x":17.25, "y":0},
-        {"label":"*", "x":18.25, "y":0},
-        {"label":"Tab", "x":0, "y":1, "w":1.5},
-        {"label":"Q", "x":1.5, "y":1},
-        {"label":"W", "x":2.5, "y":1},
-        {"label":"E", "x":3.5, "y":1},
-        {"label":"R", "x":4.5, "y":1},
-        {"label":"T", "x":5.5, "y":1},
-        {"label":"Y", "x":6.5, "y":1},
-        {"label":"U", "x":7.5, "y":1},
-        {"label":"I", "x":8.5, "y":1},
-        {"label":"O", "x":9.5, "y":1},
-        {"label":"P", "x":10.5, "y":1},
-        {"label":"[", "x":11.5, "y":1},
-        {"label":"]", "x":12.5, "y":1},
-        {"label":"Return", "x":13.75, "y":1, "w":0.75, "h":2},
-        {"label":"7", "x":15.25, "y":1},
-        {"label":"8", "x":16.25, "y":1},
-        {"label":"9", "x":17.25, "y":1},
-        {"label":"-", "x":18.25, "y":1},
-        {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-        {"label":"A", "x":1.75, "y":2},
-        {"label":"S", "x":2.75, "y":2},
-        {"label":"D", "x":3.75, "y":2},
-        {"label":"F", "x":4.75, "y":2},
-        {"label":"G", "x":5.75, "y":2},
-        {"label":"H", "x":6.75, "y":2},
-        {"label":"J", "x":7.75, "y":2},
-        {"label":"K", "x":8.75, "y":2},
-        {"label":"L", "x":9.75, "y":2},
-        {"label":";", "x":10.75, "y":2},
-        {"label":"'", "x":11.75, "y":2},
-        {"label":"#", "x":12.75, "y":2},
-        {"label":"4", "x":15.25, "y":2},
-        {"label":"5", "x":16.25, "y":2},
-        {"label":"6", "x":17.25, "y":2},
-        {"label":"+", "x":18.25, "y":2},
-        {"label":"Shift", "x":0, "y":3, "w":1.25},
-        {"label":"\\", "x":1.25, "y":3},
-        {"label":"Z", "x":2.25, "y":3},
-        {"label":"X", "x":3.25, "y":3},
-        {"label":"C", "x":4.25, "y":3},
-        {"label":"V", "x":5.25, "y":3},
-        {"label":"B", "x":6.25, "y":3},
-        {"label":"N", "x":7.25, "y":3},
-        {"label":"M", "x":8.25, "y":3},
-        {"label":",", "x":9.25, "y":3},
-        {"label":".", "x":10.25, "y":3},
-        {"label":"/", "x":11.25, "y":3},
-        {"label":"1", "x":15.25, "y":3},
-        {"label":"2", "x":16.25, "y":3},
-        {"label":"3", "x":17.25, "y":3},
-        {"label":"Enter", "x":18.25, "y":3, "h":2},
-        {"label":"Option", "x":1, "y":4},
-        {"label":"GUI", "x":2, "y":4, "w":1.5},
-        {"label":"Space", "x":3.5, "y":4, "w":7.5},
-        {"label":"Enter", "x":11, "y":4, "w":1.5},
-        {"label":"0", "x":15.25, "y":4, "w":2},
-        {"label":".", "x":17.25, "y":4}
+        {"matrix": [6, 2], "x": 0, "y": 0},
+        {"matrix": [2, 2], "x": 1, "y": 0},
+        {"matrix": [2, 3], "x": 2, "y": 0},
+        {"matrix": [2, 4], "x": 3, "y": 0},
+        {"matrix": [2, 5], "x": 4, "y": 0},
+        {"matrix": [2, 7], "x": 5, "y": 0},
+        {"matrix": [2, 6], "x": 6, "y": 0},
+        {"matrix": [3, 2], "x": 7, "y": 0},
+        {"matrix": [3, 4], "x": 8, "y": 0},
+        {"matrix": [3, 1], "x": 9, "y": 0},
+        {"matrix": [3, 5], "x": 10, "y": 0},
+        {"matrix": [3, 3], "x": 11, "y": 0},
+        {"matrix": [3, 0], "x": 12, "y": 0},
+        {"matrix": [6, 3], "x": 13, "y": 0, "w": 1.5},
+
+        {"matrix": [8, 7], "x": 15.25, "y": 0},
+        {"matrix": [13, 0], "x": 16.25, "y": 0},
+        {"matrix": [13, 5], "x": 17.25, "y": 0},
+        {"matrix": [12, 2], "x": 18.25, "y": 0},
+
+        {"matrix": [6, 0], "x": 0, "y": 1, "w": 1.5},
+        {"matrix": [1, 4], "x": 1.5, "y": 1},
+        {"matrix": [1, 5], "x": 2.5, "y": 1},
+        {"matrix": [1, 6], "x": 3.5, "y": 1},
+        {"matrix": [1, 7], "x": 4.5, "y": 1},
+        {"matrix": [2, 1], "x": 5.5, "y": 1},
+        {"matrix": [2, 0], "x": 6.5, "y": 1},
+        {"matrix": [4, 0], "x": 7.5, "y": 1},
+        {"matrix": [4, 2], "x": 8.5, "y": 1},
+        {"matrix": [3, 7], "x": 9.5, "y": 1},
+        {"matrix": [4, 3], "x": 10.5, "y": 1},
+        {"matrix": [4, 1], "x": 11.5, "y": 1},
+        {"matrix": [3, 6], "x": 12.5, "y": 1},
+        {"matrix": [5, 2], "x": 13.75, "y": 1, "w": 0.75, "h": 2},
+
+        {"matrix": [11, 1], "x": 15.25, "y": 1},
+        {"matrix": [11, 3], "x": 16.25, "y": 1},
+        {"matrix": [11, 4], "x": 17.25, "y": 1},
+        {"matrix": [9, 6], "x": 18.25, "y": 1},
+
+        {"matrix": [7, 1], "x": 0, "y": 2, "w": 1.75},
+        {"matrix": [0, 0], "x": 1.75, "y": 2},
+        {"matrix": [0, 1], "x": 2.75, "y": 2},
+        {"matrix": [0, 2], "x": 3.75, "y": 2},
+        {"matrix": [0, 3], "x": 4.75, "y": 2},
+        {"matrix": [0, 5], "x": 5.75, "y": 2},
+        {"matrix": [0, 4], "x": 6.75, "y": 2},
+        {"matrix": [4, 6], "x": 7.75, "y": 2},
+        {"matrix": [5, 0], "x": 8.75, "y": 2},
+        {"matrix": [4, 5], "x": 9.75, "y": 2},
+        {"matrix": [5, 1], "x": 10.75, "y": 2},
+        {"matrix": [4, 7], "x": 11.75, "y": 2},
+        {"matrix": [4, 4], "x": 12.75, "y": 2},
+
+        {"matrix": [10, 6], "x": 15.25, "y": 2},
+        {"matrix": [10, 7], "x": 16.25, "y": 2},
+        {"matrix": [11, 0], "x": 17.25, "y": 2},
+        {"matrix": [12, 6], "x": 18.25, "y": 2},
+
+        {"matrix": [7, 0], "x": 0, "y": 3, "w": 1.25},
+        {"matrix": [0, 6], "x": 1.25, "y": 3},
+        {"matrix": [0, 7], "x": 2.25, "y": 3},
+        {"matrix": [1, 0], "x": 3.25, "y": 3},
+        {"matrix": [1, 1], "x": 4.25, "y": 3},
+        {"matrix": [1, 3], "x": 5.25, "y": 3},
+        {"matrix": [5, 5], "x": 6.25, "y": 3},
+        {"matrix": [5, 6], "x": 7.25, "y": 3},
+        {"matrix": [5, 3], "x": 8.25, "y": 3},
+        {"matrix": [5, 7], "x": 9.25, "y": 3},
+        {"matrix": [5, 4], "x": 10.25, "y": 3},
+        {"matrix": [1, 2], "x": 11.25, "y": 3},
+
+        {"matrix": [10, 3], "x": 15.25, "y": 3},
+        {"matrix": [10, 4], "x": 16.25, "y": 3},
+        {"matrix": [10, 5], "x": 17.25, "y": 3},
+        {"matrix": [9, 4], "x": 18.25, "y": 3, "h": 2},
+
+        {"matrix": [7, 2], "x": 1, "y": 4},
+        {"matrix": [6, 7], "x": 2, "y": 4, "w": 1.5},
+        {"matrix": [6, 4], "x": 3.5, "y": 4, "w": 7.5},
+        {"matrix": [6, 1], "x": 11, "y": 4, "w": 1.5},
+
+        {"matrix": [10, 2], "x": 15.25, "y": 4, "w": 2},
+        {"matrix": [8, 1], "x": 17.25, "y": 4}
       ]
     }
   }

+ 0 - 131
keyboards/converter/m0110_usb/m0110_usb.h

@@ -1,131 +0,0 @@
-/*
-Copyright 2011,2012,2014,2015 Jun Wako <wakojun@gmail.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
---------------
-
-Ported to QMK by Techsock <info@techsock.com>
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* Common layout for M0110 and M0110A
- * This keymap works with both keyboards. As you can see, the M0110A is 
- * a superset of M0110 keyboard, only one exception is 'Enter'(34) of M0110
- * does not exist on the M0110A.
- *
- * ,---------------------------------------------------------. ,---------------.
- * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backs| |Clr|  =|  /|  *|
- * |---------------------------------------------------------| |---------------|
- * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|   | |  7|  8|  9|  -|
- * |-----------------------------------------------------'   | |---------------|
- * |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return| |  4|  5|  6|  +|
- * |---------------------------------------------------------| |---------------|
- * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shft|Up | |  1|  2|  3|   |
- * |---------------------------------------------------------| |-----------|Ent|
- * |Opt  |Mac    |         Space         |Ent|  \|Lft|Rgt|Dn | |      0|  .|   |
- * `---------------------------------------------------------' `---------------'
- *
- * M0110A scan codes
- * ,---------------------------------------------------------. ,---------------.
- * | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18|   33| | 47| 68| 6D| 62|
- * |---------------------------------------------------------| |---------------|
- * |   30| 0C| 0D| 0E| 0F| 11| 10| 20| 22| 1F| 23| 21| 1E|   | | 59| 5B| 5C| 4E|
- * |-----------------------------------------------------'   | |---------------|
- * |    39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27|    24| | 56| 57| 58| 66|
- * |---------------------------------------------------------| |---------------|
- * |      38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C|  38| 4D| | 53| 54| 55|   |
- * `---------------------------------------------------------' |-----------| 4C|
- * |   3A|     37|             31            | 2A| 46| 42| 48| |     52| 41|   |
- * `---------------------------------------------------------' `---------------'
- *
- * M0110 + M0120 scan codes
- * ,---------------------------------------------------------. ,---------------.
- * | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18|   33| | 47| 68| 6D| 62|
- * |---------------------------------------------------------| |---------------|
- * |   30| 0C| 0D| 0E| 0F| 11| 10| 20| 22| 1F| 23| 21| 1E| 2A| | 59| 5B| 5C| 4E|
- * |---------------------------------------------------------| |---------------|
- * |    39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27|    24| | 56| 57| 58| 66|
- * |---------------------------------------------------------| |---------------|
- * |      38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C|      38| | 53| 54| 55|   |
- * `---------------------------------------------------------' |-----------| 4C|
- *      | 3A|  37|             31              |   34| 3A|     |     52| 41|   |
- *      `------------------------------------------------'     `---------------'
- * Two right and left keys of 38 and 3A are identical, you cannot discriminate those two.
- */
-#define LAYOUT_ansi( \
-    K32, K12, K13, K14, K15, K17, K16, K1A, K1C, K19, K1D, K1B, K18, K33,  K47, K68, K6D, K62, \
-    K30, K0C, K0D, K0E, K0F, K11, K10, K20, K22, K1F, K23, K21, K1E,       K59, K5B, K5C, K4E, \
-    K39, K00, K01, K02, K03, K05, K04, K26, K28, K25, K29, K27,      K24,  K56, K57, K58, K66, \
-    K38, K06, K07, K08, K09, K0B, K2D, K2E, K2B, K2F, K2C,           K4D,  K53, K54, K55, K4C, \
-    K3A, K37,                K31,                K34, K2A, K46, K42, K48,  K52,      K41 \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K08, K09, XXX, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17 }, \
-    { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
-    { K30, K31, K32, K33, K34, XXX, XXX, K37 }, \
-    { K38, K39, K3A, XXX, XXX, XXX, XXX, XXX }, \
-    { XXX, K41, K42, XXX, XXX, XXX, K46, K47 }, \
-    { K48, XXX, XXX, XXX, K4C, K4D, K4E, XXX }, \
-    { XXX, XXX, K52, K53, K54, K55, K56, K57 }, \
-    { K58, K59, XXX, K5B, K5C, XXX, XXX, XXX }, \
-    { XXX, XXX, K62, XXX, XXX, XXX, K66, XXX }, \
-    { K68, XXX, XXX, XXX, XXX, K6D, XXX, XXX } \
-}
-
-/* International keyboard layout for M0110 + M0120
- * https://en.wikipedia.org/wiki/File:Apple_Macintosh_Plus_Keyboard.jpg
- * Probably International keyboard layout of M0110A doesn't exist.
- *
- * M0110 + M0120 scan codes
- * ,---------------------------------------------------------. ,---------------.
- * | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18|   33| | 47| 68| 6D| 62|
- * |---------------------------------------------------------| |---------------|
- * |   30| 0C| 0D| 0E| 0F| 11| 10| 20| 22| 1F| 23| 21| 1E| 2A| | 59| 5B| 5C| 4E|
- * |------------------------------------------------------,  | |---------------|
- * |    39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24|  | | 56| 57| 58| 66|
- * |---------------------------------------------------------| |---------------|
- * |  38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 0A|      38| | 53| 54| 55|   |
- * `---------------------------------------------------------' |-----------| 4C|
- *      | 3A|  37|             34              |   31| 3A|     |     52| 41|   |
- *      `------------------------------------------------'     `---------------'
- * Two right and left keys of 38 and 3A are identical, you cannot discriminate those two.
- */
-#define LAYOUT_iso( \
-    K32, K12, K13, K14, K15, K17, K16, K1A, K1C, K19, K1D, K1B, K18, K33,  K47, K68, K6D, K62, \
-    K30, K0C, K0D, K0E, K0F, K11, K10, K20, K22, K1F, K23, K21, K1E, K2A,  K59, K5B, K5C, K4E, \
-    K39, K00, K01, K02, K03, K05, K04, K26, K28, K25, K29, K27, K24,       K56, K57, K58, K66, \
-    K38, K06, K07, K08, K09, K0B, K2D, K2E, K2B, K2F, K2C, K0A,            K53, K54, K55, K4C, \
-         K3A, K37,                K34,                     K31,            K52,      K41 \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17 }, \
-    { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
-    { K30, K31, K32, K33, K34, XXX, XXX, K37 }, \
-    { K38, K39, K3A, XXX, XXX, XXX, XXX, XXX }, \
-    { XXX, K41, XXX, XXX, XXX, XXX, XXX, K47 }, \
-    { XXX, XXX, XXX, XXX, K4C, XXX, K4E, XXX }, \
-    { XXX, XXX, K52, K53, K54, K55, K56, K57 }, \
-    { K58, K59, XXX, K5B, K5C, XXX, XXX, XXX }, \
-    { XXX, XXX, K62, XXX, XXX, XXX, K66, XXX }, \
-    { K68, XXX, XXX, XXX, XXX, K6D, XXX, XXX } \
-}

+ 434 - 359
keyboards/converter/sun_usb/type5/info.json

@@ -2,373 +2,448 @@
   "layouts": {
     "LAYOUT_jp_unix": {
       "layout": [
-        {"label":"HELP", "x":0, "y":0, "w":2},
-        {"label":"NO", "x":2.25, "y":0},
-        {"label":"F1", "x":4.25, "y":0},
-        {"label":"F2", "x":5.25, "y":0},
-        {"label":"F3", "x":6.25, "y":0},
-        {"label":"F4", "x":7.25, "y":0},
-        {"label":"F5", "x":8.75, "y":0},
-        {"label":"F6", "x":9.75, "y":0},
-        {"label":"F7", "x":10.75, "y":0},
-        {"label":"F8", "x":11.75, "y":0},
-        {"label":"F9", "x":13.25, "y":0},
-        {"label":"F10", "x":14.25, "y":0},
-        {"label":"F11", "x":15.25, "y":0},
-        {"label":"F12", "x":16.25, "y":0},
-        {"label":"PRINT SCREEN", "x":17.5, "y":0},
-        {"label":"SCROLL LOCK", "x":18.5, "y":0},
-        {"label":"PAUSE", "x":19.5, "y":0},
-        {"label":"MUTE", "x":20.75, "y":0},
-        {"label":"VOLD", "x":21.75, "y":0},
-        {"label":"VOLU", "x":22.75, "y":0},
-        {"label":"PWR", "x":23.75, "y":0},
-        {"label":"STOP", "x":0, "y":2},
-        {"label":"AGAIN", "x":1, "y":2},
-        {"label":"ESC", "x":2.25, "y":2},
-        {"label":"1", "x":3.25, "y":2},
-        {"label":"2", "x":4.25, "y":2},
-        {"label":"3", "x":5.25, "y":2},
-        {"label":"4", "x":6.25, "y":2},
-        {"label":"5", "x":7.25, "y":2},
-        {"label":"6", "x":8.25, "y":2},
-        {"label":"7", "x":9.25, "y":2},
-        {"label":"8", "x":10.25, "y":2},
-        {"label":"9", "x":11.25, "y":2},
-        {"label":"0", "x":12.25, "y":2},
-        {"label":"MINUS", "x":13.25, "y":2},
-        {"label":"EQUAL", "x":14.25, "y":2},
-        {"label":"BACKSLASH", "x":15.25, "y":2},
-        {"label":"GRAVE", "x":16.25, "y":2},
-        {"label":"INSERT", "x":17.5, "y":2},
-        {"label":"HOME", "x":18.5, "y":2},
-        {"label":"PAGE UP", "x":19.5, "y":2},
-        {"label":"NUM LOCK", "x":20.75, "y":2},
-        {"label":"PSLASH", "x":21.75, "y":2},
-        {"label":"PASTERISK", "x":22.75, "y":2},
-        {"label":"PMINUS", "x":23.75, "y":2},
-        {"label":"MENU", "x":0, "y":3},
-        {"label":"UNDO", "x":1, "y":3},
-        {"label":"TAB", "x":2.25, "y":3, "w":1.5},
-        {"label":"Q", "x":3.75, "y":3},
-        {"label":"W", "x":4.75, "y":3},
-        {"label":"E", "x":5.75, "y":3},
-        {"label":"R", "x":6.75, "y":3},
-        {"label":"T", "x":7.75, "y":3},
-        {"label":"Y", "x":8.75, "y":3},
-        {"label":"U", "x":9.75, "y":3},
-        {"label":"I", "x":10.75, "y":3},
-        {"label":"O", "x":11.75, "y":3},
-        {"label":"P", "x":12.75, "y":3},
-        {"label":"LBRACKET", "x":13.75, "y":3},
-        {"label":"RBRACKET", "x":14.75, "y":3},
-        {"label":"BACKSPACE", "x":15.75, "y":3, "w":1.5},
-        {"label":"DELETE", "x":17.5, "y":3},
-        {"label":"END", "x":18.5, "y":3},
-        {"label":"PAGE DOWN", "x":19.5, "y":3},
-        {"label":"P7", "x":20.75, "y":3},
-        {"label":"P8", "x":21.75, "y":3},
-        {"label":"P9", "x":22.75, "y":3},
-        {"label":"PPLUS", "x":23.75, "y":3, "h":2},
-        {"label":"SELECT", "x":0, "y":4},
-        {"label":"COPY", "x":1, "y":4},
-        {"label":"LCTRL", "x":2.25, "y":4, "w":1.75},
-        {"label":"A", "x":4, "y":4},
-        {"label":"S", "x":5, "y":4},
-        {"label":"D", "x":6, "y":4},
-        {"label":"F", "x":7, "y":4},
-        {"label":"G", "x":8, "y":4},
-        {"label":"H", "x":9, "y":4},
-        {"label":"J", "x":10, "y":4},
-        {"label":"K", "x":11, "y":4},
-        {"label":"L", "x":12, "y":4},
-        {"label":"SEMICOLON", "x":13, "y":4},
-        {"label":"QUOTE", "x":14, "y":4},
-        {"label":"ENTER", "x":15, "y":4, "w":2.25},
-        {"label":"P4", "x":20.75, "y":4},
-        {"label":"P5", "x":21.75, "y":4},
-        {"label":"P6", "x":22.75, "y":4},
-        {"label":"EXECUTE", "x":0, "y":5},
-        {"label":"PASTE", "x":1, "y":5},
-        {"label":"LSHIFT", "x":2.25, "y":5, "w":2.25},
-        {"label":"Z", "x":4.5, "y":5},
-        {"label":"X", "x":5.5, "y":5},
-        {"label":"C", "x":6.5, "y":5},
-        {"label":"V", "x":7.5, "y":5},
-        {"label":"B", "x":8.5, "y":5},
-        {"label":"N", "x":9.5, "y":5},
-        {"label":"M", "x":10.5, "y":5},
-        {"label":"COMMA", "x":11.5, "y":5},
-        {"label":"PERIOD", "x":12.5, "y":5},
-        {"label":"SLASH", "x":13.5, "y":5},
-        {"label":"RSHIFT", "x":14.5, "y":5, "w":2.75},
-        {"label":"UP", "x":18.5, "y":5},
-        {"label":"P1", "x":20.75, "y":5},
-        {"label":"P2", "x":21.75, "y":5},
-        {"label":"P3", "x":22.75, "y":5},
-        {"label":"PENTER", "x":23.75, "y":5, "h":2},
-        {"label":"FIND", "x":0, "y":6},
-        {"label":"CUT", "x":1, "y":6},
-        {"label":"CAPS LOCK", "x":2.25, "y":6},
-        {"label":"LALT", "x":3.25, "y":6},
-        {"label":"LGUI", "x":4.25, "y":6},
-        {"label":"HENKAN", "x":5.25, "y":6, "w":1.5},
-        {"label":"SPACE", "x":6.75, "y":6, "w":5},
-        {"label":"MUHENKAN", "x":11.75, "y":6, "w":1.5},
-        {"label":"KANA", "x":13.25, "y":6},
-        {"label":"RGUI", "x":14.25, "y":6},
-        {"label":"APP", "x":15.25, "y":6},
-        {"label":"RALT", "x":16.25, "y":6},
-        {"label":"LEFT", "x":17.5, "y":6},
-        {"label":"DOWN", "x":18.5, "y":6},
-        {"label":"RIGHT", "x":19.5, "y":6},
-        {"label":"P0", "x":20.75, "y":6, "w":2},
-        {"label":"PDOT", "x":22.75, "y":6}
+        {"matrix": [14, 6], "x": 0, "y": 0, "w": 2},
+
+        {"matrix": [1, 7], "x": 2.25, "y": 0},
+
+        {"matrix": [0, 5], "x": 4.25, "y": 0},
+        {"matrix": [0, 6], "x": 5.25, "y": 0},
+        {"matrix": [1, 0], "x": 6.25, "y": 0},
+        {"matrix": [1, 2], "x": 7.25, "y": 0},
+
+        {"matrix": [1, 4], "x": 8.75, "y": 0},
+        {"matrix": [1, 6], "x": 9.75, "y": 0},
+        {"matrix": [2, 0], "x": 10.75, "y": 0},
+        {"matrix": [2, 1], "x": 11.75, "y": 0},
+
+        {"matrix": [2, 2], "x": 13.25, "y": 0},
+        {"matrix": [0, 7], "x": 14.25, "y": 0},
+        {"matrix": [1, 1], "x": 15.25, "y": 0},
+        {"matrix": [1, 3], "x": 16.25, "y": 0},
+
+        {"matrix": [2, 6], "x": 17.5, "y": 0},
+        {"matrix": [2, 7], "x": 18.5, "y": 0},
+        {"matrix": [2, 5], "x": 19.5, "y": 0},
+
+        {"matrix": [5, 5], "x": 20.75, "y": 0},
+        {"matrix": [0, 2], "x": 21.75, "y": 0},
+        {"matrix": [0, 4], "x": 22.75, "y": 0},
+        {"matrix": [6, 0], "x": 23.75, "y": 0},
+
+        {"matrix": [0, 1], "x": 0, "y": 2},
+        {"matrix": [0, 3], "x": 1, "y": 2},
+
+        {"matrix": [3, 5], "x": 2.25, "y": 2},
+        {"matrix": [3, 6], "x": 3.25, "y": 2},
+        {"matrix": [3, 7], "x": 4.25, "y": 2},
+        {"matrix": [4, 0], "x": 5.25, "y": 2},
+        {"matrix": [4, 1], "x": 6.25, "y": 2},
+        {"matrix": [4, 2], "x": 7.25, "y": 2},
+        {"matrix": [4, 3], "x": 8.25, "y": 2},
+        {"matrix": [4, 4], "x": 9.25, "y": 2},
+        {"matrix": [4, 5], "x": 10.25, "y": 2},
+        {"matrix": [4, 6], "x": 11.25, "y": 2},
+        {"matrix": [4, 7], "x": 12.25, "y": 2},
+        {"matrix": [5, 0], "x": 13.25, "y": 2},
+        {"matrix": [5, 1], "x": 14.25, "y": 2},
+        {"matrix": [11, 0], "x": 15.25, "y": 2},
+        {"matrix": [5, 2], "x": 16.25, "y": 2},
+
+        {"matrix": [5, 4], "x": 17.5, "y": 2},
+        {"matrix": [6, 4], "x": 18.5, "y": 2},
+        {"matrix": [12, 0], "x": 19.5, "y": 2},
+
+        {"matrix": [12, 2], "x": 20.75, "y": 2},
+        {"matrix": [5, 6], "x": 21.75, "y": 2},
+        {"matrix": [5, 7], "x": 22.75, "y": 2},
+        {"matrix": [8, 7], "x": 23.75, "y": 2},
+
+        {"matrix": [3, 1], "x": 0, "y": 3},
+        {"matrix": [3, 2], "x": 1, "y": 3},
+
+        {"matrix": [6, 5], "x": 2.25, "y": 3, "w": 1.5},
+        {"matrix": [6, 6], "x": 3.75, "y": 3},
+        {"matrix": [6, 7], "x": 4.75, "y": 3},
+        {"matrix": [7, 0], "x": 5.75, "y": 3},
+        {"matrix": [7, 1], "x": 6.75, "y": 3},
+        {"matrix": [7, 2], "x": 7.75, "y": 3},
+        {"matrix": [7, 3], "x": 8.75, "y": 3},
+        {"matrix": [7, 4], "x": 9.75, "y": 3},
+        {"matrix": [7, 5], "x": 10.75, "y": 3},
+        {"matrix": [7, 6], "x": 11.75, "y": 3},
+        {"matrix": [7, 7], "x": 12.75, "y": 3},
+        {"matrix": [8, 0], "x": 13.75, "y": 3},
+        {"matrix": [8, 1], "x": 14.75, "y": 3},
+        {"matrix": [5, 3], "x": 15.75, "y": 3, "w": 1.5},
+
+        {"matrix": [8, 2], "x": 17.5, "y": 3},
+        {"matrix": [9, 2], "x": 18.5, "y": 3},
+        {"matrix": [15, 3], "x": 19.5, "y": 3},
+
+        {"matrix": [8, 4], "x": 20.75, "y": 3},
+        {"matrix": [8, 5], "x": 21.75, "y": 3},
+        {"matrix": [8, 6], "x": 22.75, "y": 3},
+        {"matrix": [15, 5], "x": 23.75, "y": 3, "h": 2},
+
+        {"matrix": [6, 1], "x": 0, "y": 4},
+        {"matrix": [6, 3], "x": 1, "y": 4},
+
+        {"matrix": [9, 4], "x": 2.25, "y": 4, "w": 1.75},
+        {"matrix": [9, 5], "x": 4, "y": 4},
+        {"matrix": [9, 6], "x": 5, "y": 4},
+        {"matrix": [9, 7], "x": 6, "y": 4},
+        {"matrix": [10, 0], "x": 7, "y": 4},
+        {"matrix": [10, 1], "x": 8, "y": 4},
+        {"matrix": [10, 2], "x": 9, "y": 4},
+        {"matrix": [10, 3], "x": 10, "y": 4},
+        {"matrix": [10, 4], "x": 11, "y": 4},
+        {"matrix": [10, 5], "x": 12, "y": 4},
+        {"matrix": [10, 6], "x": 13, "y": 4},
+        {"matrix": [10, 7], "x": 14, "y": 4},
+        {"matrix": [11, 1], "x": 15, "y": 4, "w": 2.25},
+
+        {"matrix": [11, 3], "x": 20.75, "y": 4},
+        {"matrix": [11, 4], "x": 21.75, "y": 4},
+        {"matrix": [11, 5], "x": 22.75, "y": 4},
+
+        {"matrix": [9, 0], "x": 0, "y": 5},
+        {"matrix": [9, 1], "x": 1, "y": 5},
+
+        {"matrix": [12, 3], "x": 2.25, "y": 5, "w": 2.25},
+        {"matrix": [12, 4], "x": 4.5, "y": 5},
+        {"matrix": [12, 5], "x": 5.5, "y": 5},
+        {"matrix": [12, 6], "x": 6.5, "y": 5},
+        {"matrix": [12, 7], "x": 7.5, "y": 5},
+        {"matrix": [13, 0], "x": 8.5, "y": 5},
+        {"matrix": [13, 1], "x": 9.5, "y": 5},
+        {"matrix": [13, 2], "x": 10.5, "y": 5},
+        {"matrix": [13, 3], "x": 11.5, "y": 5},
+        {"matrix": [13, 4], "x": 12.5, "y": 5},
+        {"matrix": [13, 5], "x": 13.5, "y": 5},
+        {"matrix": [13, 6], "x": 14.5, "y": 5, "w": 2.75},
+
+        {"matrix": [2, 4], "x": 18.5, "y": 5},
+
+        {"matrix": [14, 0], "x": 20.75, "y": 5},
+        {"matrix": [14, 1], "x": 21.75, "y": 5},
+        {"matrix": [14, 2], "x": 22.75, "y": 5},
+        {"matrix": [11, 2], "x": 23.75, "y": 5, "h": 2},
+
+        {"matrix": [11, 7], "x": 0, "y": 6},
+        {"matrix": [12, 1], "x": 1, "y": 6},
+
+        {"matrix": [14, 7], "x": 2.25, "y": 6},
+        {"matrix": [2, 3], "x": 3.25, "y": 6},
+        {"matrix": [15, 0], "x": 4.25, "y": 6},
+        {"matrix": [14, 3], "x": 5.25, "y": 6, "w": 1.5},
+        {"matrix": [15, 1], "x": 6.75, "y": 6, "w": 5},
+        {"matrix": [14, 4], "x": 11.75, "y": 6, "w": 1.5},
+        {"matrix": [14, 5], "x": 13.25, "y": 6},
+        {"matrix": [15, 2], "x": 14.25, "y": 6},
+        {"matrix": [8, 3], "x": 15.25, "y": 6},
+        {"matrix": [1, 5], "x": 16.25, "y": 6},
+
+        {"matrix": [3, 0], "x": 17.5, "y": 6},
+        {"matrix": [3, 3], "x": 18.5, "y": 6},
+        {"matrix": [3, 4], "x": 19.5, "y": 6},
+
+        {"matrix": [11, 6], "x": 20.75, "y": 6, "w": 2},
+        {"matrix": [6, 2], "x": 22.75, "y": 6}
       ]
     },
     "LAYOUT_us_unix": {
       "layout": [
-        {"label":"HELP", "x":0, "y":0, "w":2},
-        {"label":"NO", "x":2.25, "y":0},
-        {"label":"F1", "x":4.25, "y":0},
-        {"label":"F2", "x":5.25, "y":0},
-        {"label":"F3", "x":6.25, "y":0},
-        {"label":"F4", "x":7.25, "y":0},
-        {"label":"F5", "x":8.75, "y":0},
-        {"label":"F6", "x":9.75, "y":0},
-        {"label":"F7", "x":10.75, "y":0},
-        {"label":"F8", "x":11.75, "y":0},
-        {"label":"F9", "x":13.25, "y":0},
-        {"label":"F10", "x":14.25, "y":0},
-        {"label":"F11", "x":15.25, "y":0},
-        {"label":"F12", "x":16.25, "y":0},
-        {"label":"PRINT SCREEN", "x":17.5, "y":0},
-        {"label":"SCROLL LOCK", "x":18.5, "y":0},
-        {"label":"PAUSE", "x":19.5, "y":0},
-        {"label":"MUTE", "x":20.75, "y":0},
-        {"label":"VOLD", "x":21.75, "y":0},
-        {"label":"VOLU", "x":22.75, "y":0},
-        {"label":"PWR", "x":23.75, "y":0},
-        {"label":"STOP", "x":0, "y":2},
-        {"label":"AGAIN", "x":1, "y":2},
-        {"label":"ESC", "x":2.25, "y":2},
-        {"label":"1", "x":3.25, "y":2},
-        {"label":"2", "x":4.25, "y":2},
-        {"label":"3", "x":5.25, "y":2},
-        {"label":"4", "x":6.25, "y":2},
-        {"label":"5", "x":7.25, "y":2},
-        {"label":"6", "x":8.25, "y":2},
-        {"label":"7", "x":9.25, "y":2},
-        {"label":"8", "x":10.25, "y":2},
-        {"label":"9", "x":11.25, "y":2},
-        {"label":"0", "x":12.25, "y":2},
-        {"label":"MINUS", "x":13.25, "y":2},
-        {"label":"EQUAL", "x":14.25, "y":2},
-        {"label":"BACKSLASH", "x":15.25, "y":2},
-        {"label":"GRAVE", "x":16.25, "y":2},
-        {"label":"INSERT", "x":17.5, "y":2},
-        {"label":"HOME", "x":18.5, "y":2},
-        {"label":"PAGE UP", "x":19.5, "y":2},
-        {"label":"NUM LOCK", "x":20.75, "y":2},
-        {"label":"PSLASH", "x":21.75, "y":2},
-        {"label":"PASTERISK", "x":22.75, "y":2},
-        {"label":"PMINUS", "x":23.75, "y":2},
-        {"label":"MENU", "x":0, "y":3},
-        {"label":"UNDO", "x":1, "y":3},
-        {"label":"TAB", "x":2.25, "y":3, "w":1.5},
-        {"label":"Q", "x":3.75, "y":3},
-        {"label":"W", "x":4.75, "y":3},
-        {"label":"E", "x":5.75, "y":3},
-        {"label":"R", "x":6.75, "y":3},
-        {"label":"T", "x":7.75, "y":3},
-        {"label":"Y", "x":8.75, "y":3},
-        {"label":"U", "x":9.75, "y":3},
-        {"label":"I", "x":10.75, "y":3},
-        {"label":"O", "x":11.75, "y":3},
-        {"label":"P", "x":12.75, "y":3},
-        {"label":"LBRACKET", "x":13.75, "y":3},
-        {"label":"RBRACKET", "x":14.75, "y":3},
-        {"label":"BACKSPACE", "x":15.75, "y":3, "w":1.5},
-        {"label":"DELETE", "x":17.5, "y":3},
-        {"label":"END", "x":18.5, "y":3},
-        {"label":"PAGE DOWN", "x":19.5, "y":3},
-        {"label":"P7", "x":20.75, "y":3},
-        {"label":"P8", "x":21.75, "y":3},
-        {"label":"P9", "x":22.75, "y":3},
-        {"label":"PPLUS", "x":23.75, "y":3, "h":2},
-        {"label":"SELECT", "x":0, "y":4},
-        {"label":"COPY", "x":1, "y":4},
-        {"label":"LCTRL", "x":2.25, "y":4, "w":1.75},
-        {"label":"A", "x":4, "y":4},
-        {"label":"S", "x":5, "y":4},
-        {"label":"D", "x":6, "y":4},
-        {"label":"F", "x":7, "y":4},
-        {"label":"G", "x":8, "y":4},
-        {"label":"H", "x":9, "y":4},
-        {"label":"J", "x":10, "y":4},
-        {"label":"K", "x":11, "y":4},
-        {"label":"L", "x":12, "y":4},
-        {"label":"SEMICOLON", "x":13, "y":4},
-        {"label":"QUOTE", "x":14, "y":4},
-        {"label":"ENTER", "x":15, "y":4, "w":2.25},
-        {"label":"P4", "x":20.75, "y":4},
-        {"label":"P5", "x":21.75, "y":4},
-        {"label":"P6", "x":22.75, "y":4},
-        {"label":"EXECUTE", "x":0, "y":5},
-        {"label":"PASTE", "x":1, "y":5},
-        {"label":"LSHIFT", "x":2.25, "y":5, "w":2.25},
-        {"label":"Z", "x":4.5, "y":5},
-        {"label":"X", "x":5.5, "y":5},
-        {"label":"C", "x":6.5, "y":5},
-        {"label":"V", "x":7.5, "y":5},
-        {"label":"B", "x":8.5, "y":5},
-        {"label":"N", "x":9.5, "y":5},
-        {"label":"M", "x":10.5, "y":5},
-        {"label":"COMMA", "x":11.5, "y":5},
-        {"label":"PERIOD", "x":12.5, "y":5},
-        {"label":"SLASH", "x":13.5, "y":5},
-        {"label":"RSHIFT", "x":14.5, "y":5, "w":2.75},
-        {"label":"UP", "x":18.5, "y":5},
-        {"label":"P1", "x":20.75, "y":5},
-        {"label":"P2", "x":21.75, "y":5},
-        {"label":"P3", "x":22.75, "y":5},
-        {"label":"PENTER", "x":23.75, "y":5, "h":2},
-        {"label":"FIND", "x":0, "y":6},
-        {"label":"CUT", "x":1, "y":6},
-        {"label":"CAPS LOCK", "x":2.25, "y":6, "w":1.75},
-        {"label":"LALT", "x":4, "y":6},
-        {"label":"LGUI", "x":5, "y":6},
-        {"label":"SPACE", "x":6, "y":6, "w":8.25},
-        {"label":"RGUI", "x":14.25, "y":6},
-        {"label":"APP", "x":15.25, "y":6},
-        {"label":"RALT", "x":16.25, "y":6},
-        {"label":"LEFT", "x":17.5, "y":6},
-        {"label":"DOWN", "x":18.5, "y":6},
-        {"label":"RIGHT", "x":19.5, "y":6},
-        {"label":"P0", "x":20.75, "y":6, "w":2},
-        {"label":"PDOT", "x":22.75, "y":6}
+        {"matrix": [14, 6], "x": 0, "y": 0, "w": 2},
+
+        {"matrix": [1, 7], "x": 2.25, "y": 0},
+
+        {"matrix": [0, 5], "x": 4.25, "y": 0},
+        {"matrix": [0, 6], "x": 5.25, "y": 0},
+        {"matrix": [1, 0], "x": 6.25, "y": 0},
+        {"matrix": [1, 2], "x": 7.25, "y": 0},
+
+        {"matrix": [1, 4], "x": 8.75, "y": 0},
+        {"matrix": [1, 6], "x": 9.75, "y": 0},
+        {"matrix": [2, 0], "x": 10.75, "y": 0},
+        {"matrix": [2, 1], "x": 11.75, "y": 0},
+
+        {"matrix": [2, 2], "x": 13.25, "y": 0},
+        {"matrix": [0, 7], "x": 14.25, "y": 0},
+        {"matrix": [1, 1], "x": 15.25, "y": 0},
+        {"matrix": [1, 3], "x": 16.25, "y": 0},
+
+        {"matrix": [2, 6], "x": 17.5, "y": 0},
+        {"matrix": [2, 7], "x": 18.5, "y": 0},
+        {"matrix": [2, 5], "x": 19.5, "y": 0},
+
+        {"matrix": [5, 5], "x": 20.75, "y": 0},
+        {"matrix": [0, 2], "x": 21.75, "y": 0},
+        {"matrix": [0, 4], "x": 22.75, "y": 0},
+        {"matrix": [6, 0], "x": 23.75, "y": 0},
+
+        {"matrix": [0, 1], "x": 0, "y": 2},
+        {"matrix": [0, 3], "x": 1, "y": 2},
+
+        {"matrix": [3, 5], "x": 2.25, "y": 2},
+        {"matrix": [3, 6], "x": 3.25, "y": 2},
+        {"matrix": [3, 7], "x": 4.25, "y": 2},
+        {"matrix": [4, 0], "x": 5.25, "y": 2},
+        {"matrix": [4, 1], "x": 6.25, "y": 2},
+        {"matrix": [4, 2], "x": 7.25, "y": 2},
+        {"matrix": [4, 3], "x": 8.25, "y": 2},
+        {"matrix": [4, 4], "x": 9.25, "y": 2},
+        {"matrix": [4, 5], "x": 10.25, "y": 2},
+        {"matrix": [4, 6], "x": 11.25, "y": 2},
+        {"matrix": [4, 7], "x": 12.25, "y": 2},
+        {"matrix": [5, 0], "x": 13.25, "y": 2},
+        {"matrix": [5, 1], "x": 14.25, "y": 2},
+        {"matrix": [11, 0], "x": 15.25, "y": 2},
+        {"matrix": [5, 2], "x": 16.25, "y": 2},
+
+        {"matrix": [5, 4], "x": 17.5, "y": 2},
+        {"matrix": [6, 4], "x": 18.5, "y": 2},
+        {"matrix": [12, 0], "x": 19.5, "y": 2},
+
+        {"matrix": [12, 2], "x": 20.75, "y": 2},
+        {"matrix": [5, 6], "x": 21.75, "y": 2},
+        {"matrix": [5, 7], "x": 22.75, "y": 2},
+        {"matrix": [8, 7], "x": 23.75, "y": 2},
+
+        {"matrix": [3, 1], "x": 0, "y": 3},
+        {"matrix": [3, 2], "x": 1, "y": 3},
+
+        {"matrix": [6, 5], "x": 2.25, "y": 3, "w": 1.5},
+        {"matrix": [6, 6], "x": 3.75, "y": 3},
+        {"matrix": [6, 7], "x": 4.75, "y": 3},
+        {"matrix": [7, 0], "x": 5.75, "y": 3},
+        {"matrix": [7, 1], "x": 6.75, "y": 3},
+        {"matrix": [7, 2], "x": 7.75, "y": 3},
+        {"matrix": [7, 3], "x": 8.75, "y": 3},
+        {"matrix": [7, 4], "x": 9.75, "y": 3},
+        {"matrix": [7, 5], "x": 10.75, "y": 3},
+        {"matrix": [7, 6], "x": 11.75, "y": 3},
+        {"matrix": [7, 7], "x": 12.75, "y": 3},
+        {"matrix": [8, 0], "x": 13.75, "y": 3},
+        {"matrix": [8, 1], "x": 14.75, "y": 3},
+        {"matrix": [5, 3], "x": 15.75, "y": 3, "w": 1.5},
+
+        {"matrix": [8, 2], "x": 17.5, "y": 3},
+        {"matrix": [9, 2], "x": 18.5, "y": 3},
+        {"matrix": [15, 3], "x": 19.5, "y": 3},
+
+        {"matrix": [8, 4], "x": 20.75, "y": 3},
+        {"matrix": [8, 5], "x": 21.75, "y": 3},
+        {"matrix": [8, 6], "x": 22.75, "y": 3},
+        {"matrix": [15, 5], "x": 23.75, "y": 3, "h": 2},
+
+        {"matrix": [6, 1], "x": 0, "y": 4},
+        {"matrix": [6, 3], "x": 1, "y": 4},
+
+        {"matrix": [9, 4], "x": 2.25, "y": 4, "w": 1.75},
+        {"matrix": [9, 5], "x": 4, "y": 4},
+        {"matrix": [9, 6], "x": 5, "y": 4},
+        {"matrix": [9, 7], "x": 6, "y": 4},
+        {"matrix": [10, 0], "x": 7, "y": 4},
+        {"matrix": [10, 1], "x": 8, "y": 4},
+        {"matrix": [10, 2], "x": 9, "y": 4},
+        {"matrix": [10, 3], "x": 10, "y": 4},
+        {"matrix": [10, 4], "x": 11, "y": 4},
+        {"matrix": [10, 5], "x": 12, "y": 4},
+        {"matrix": [10, 6], "x": 13, "y": 4},
+        {"matrix": [10, 7], "x": 14, "y": 4},
+        {"matrix": [11, 1], "x": 15, "y": 4, "w": 2.25},
+
+        {"matrix": [11, 3], "x": 20.75, "y": 4},
+        {"matrix": [11, 4], "x": 21.75, "y": 4},
+        {"matrix": [11, 5], "x": 22.75, "y": 4},
+
+        {"matrix": [9, 0], "x": 0, "y": 5},
+        {"matrix": [9, 1], "x": 1, "y": 5},
+
+        {"matrix": [12, 3], "x": 2.25, "y": 5, "w": 2.25},
+        {"matrix": [12, 4], "x": 4.5, "y": 5},
+        {"matrix": [12, 5], "x": 5.5, "y": 5},
+        {"matrix": [12, 6], "x": 6.5, "y": 5},
+        {"matrix": [12, 7], "x": 7.5, "y": 5},
+        {"matrix": [13, 0], "x": 8.5, "y": 5},
+        {"matrix": [13, 1], "x": 9.5, "y": 5},
+        {"matrix": [13, 2], "x": 10.5, "y": 5},
+        {"matrix": [13, 3], "x": 11.5, "y": 5},
+        {"matrix": [13, 4], "x": 12.5, "y": 5},
+        {"matrix": [13, 5], "x": 13.5, "y": 5},
+        {"matrix": [13, 6], "x": 14.5, "y": 5, "w": 2.75},
+
+        {"matrix": [2, 4], "x": 18.5, "y": 5},
+
+        {"matrix": [14, 0], "x": 20.75, "y": 5},
+        {"matrix": [14, 1], "x": 21.75, "y": 5},
+        {"matrix": [14, 2], "x": 22.75, "y": 5},
+        {"matrix": [11, 2], "x": 23.75, "y": 5, "h": 2},
+
+        {"matrix": [11, 7], "x": 0, "y": 6},
+        {"matrix": [12, 1], "x": 1, "y": 6},
+
+        {"matrix": [14, 7], "x": 2.25, "y": 6, "w": 1.75},
+        {"matrix": [2, 3], "x": 4, "y": 6},
+        {"matrix": [15, 0], "x": 5, "y": 6},
+        {"matrix": [15, 1], "x": 6, "y": 6, "w": 8.25},
+        {"matrix": [15, 2], "x": 14.25, "y": 6},
+        {"matrix": [8, 3], "x": 15.25, "y": 6},
+        {"matrix": [1, 5], "x": 16.25, "y": 6},
+
+        {"matrix": [3, 0], "x": 17.5, "y": 6},
+        {"matrix": [3, 3], "x": 18.5, "y": 6},
+        {"matrix": [3, 4], "x": 19.5, "y": 6},
+
+        {"matrix": [11, 6], "x": 20.75, "y": 6, "w": 2},
+        {"matrix": [6, 2], "x": 22.75, "y": 6}
       ]
     },
     "LAYOUT_ansi": {
       "layout": [
-        {"label":"HELP", "x":0, "y":0, "w":2},
-        {"label":"ESC", "x":2.25, "y":0},
-        {"label":"F1", "x":4.25, "y":0},
-        {"label":"F2", "x":5.25, "y":0},
-        {"label":"F3", "x":6.25, "y":0},
-        {"label":"F4", "x":7.25, "y":0},
-        {"label":"F5", "x":8.75, "y":0},
-        {"label":"F6", "x":9.75, "y":0},
-        {"label":"F7", "x":10.75, "y":0},
-        {"label":"F8", "x":11.75, "y":0},
-        {"label":"F9", "x":13.25, "y":0},
-        {"label":"F10", "x":14.25, "y":0},
-        {"label":"F11", "x":15.25, "y":0},
-        {"label":"F12", "x":16.25, "y":0},
-        {"label":"PRINT SCREEN", "x":17.5, "y":0},
-        {"label":"SCROLL LOCK", "x":18.5, "y":0},
-        {"label":"PAUSE", "x":19.5, "y":0},
-        {"label":"MUTE", "x":20.75, "y":0},
-        {"label":"VOLD", "x":21.75, "y":0},
-        {"label":"VOLU", "x":22.75, "y":0},
-        {"label":"PWR", "x":23.75, "y":0},
-        {"label":"STOP", "x":0, "y":2},
-        {"label":"AGAIN", "x":1, "y":2},
-        {"label":"GRAVE", "x":2.25, "y":2},
-        {"label":"1", "x":3.25, "y":2},
-        {"label":"2", "x":4.25, "y":2},
-        {"label":"3", "x":5.25, "y":2},
-        {"label":"4", "x":6.25, "y":2},
-        {"label":"5", "x":7.25, "y":2},
-        {"label":"6", "x":8.25, "y":2},
-        {"label":"7", "x":9.25, "y":2},
-        {"label":"8", "x":10.25, "y":2},
-        {"label":"9", "x":11.25, "y":2},
-        {"label":"0", "x":12.25, "y":2},
-        {"label":"MINUS", "x":13.25, "y":2},
-        {"label":"EQUAL", "x":14.25, "y":2},
-        {"label":"BACKSPACE", "x":15.25, "y":2, "w":2},
-        {"label":"INSERT", "x":17.5, "y":2},
-        {"label":"HOME", "x":18.5, "y":2},
-        {"label":"PAGE UP", "x":19.5, "y":2},
-        {"label":"NUM LOCK", "x":20.75, "y":2},
-        {"label":"PSLASH", "x":21.75, "y":2},
-        {"label":"PASTERISK", "x":22.75, "y":2},
-        {"label":"PMINUS", "x":23.75, "y":2},
-        {"label":"MENU", "x":0, "y":3},
-        {"label":"UNDO", "x":1, "y":3},
-        {"label":"TAB", "x":2.25, "y":3, "w":1.5},
-        {"label":"Q", "x":3.75, "y":3},
-        {"label":"W", "x":4.75, "y":3},
-        {"label":"E", "x":5.75, "y":3},
-        {"label":"R", "x":6.75, "y":3},
-        {"label":"T", "x":7.75, "y":3},
-        {"label":"Y", "x":8.75, "y":3},
-        {"label":"U", "x":9.75, "y":3},
-        {"label":"I", "x":10.75, "y":3},
-        {"label":"O", "x":11.75, "y":3},
-        {"label":"P", "x":12.75, "y":3},
-        {"label":"LBRACKET", "x":13.75, "y":3},
-        {"label":"RBRACKET", "x":14.75, "y":3},
-        {"label":"BACKSLASH", "x":15.75, "y":3, "w":1.5},
-        {"label":"DELETE", "x":17.5, "y":3},
-        {"label":"END", "x":18.5, "y":3},
-        {"label":"PAGE DOWN", "x":19.5, "y":3},
-        {"label":"P7", "x":20.75, "y":3},
-        {"label":"P8", "x":21.75, "y":3},
-        {"label":"P9", "x":22.75, "y":3},
-        {"label":"PPLUS", "x":23.75, "y":3, "h":2},
-        {"label":"SELECT", "x":0, "y":4},
-        {"label":"COPY", "x":1, "y":4},
-        {"label":"CAPS LOCK", "x":2.25, "y":4, "w":1.75},
-        {"label":"A", "x":4, "y":4},
-        {"label":"S", "x":5, "y":4},
-        {"label":"D", "x":6, "y":4},
-        {"label":"F", "x":7, "y":4},
-        {"label":"G", "x":8, "y":4},
-        {"label":"H", "x":9, "y":4},
-        {"label":"J", "x":10, "y":4},
-        {"label":"K", "x":11, "y":4},
-        {"label":"L", "x":12, "y":4},
-        {"label":"SEMICOLON", "x":13, "y":4},
-        {"label":"QUOTE", "x":14, "y":4},
-        {"label":"ENTER", "x":15, "y":4, "w":2.25},
-        {"label":"P4", "x":20.75, "y":4},
-        {"label":"P5", "x":21.75, "y":4},
-        {"label":"P6", "x":22.75, "y":4},
-        {"label":"EXECUTE", "x":0, "y":5},
-        {"label":"PASTE", "x":1, "y":5},
-        {"label":"LSHIFT", "x":2.25, "y":5, "w":2.25},
-        {"label":"Z", "x":4.5, "y":5},
-        {"label":"X", "x":5.5, "y":5},
-        {"label":"C", "x":6.5, "y":5},
-        {"label":"V", "x":7.5, "y":5},
-        {"label":"B", "x":8.5, "y":5},
-        {"label":"N", "x":9.5, "y":5},
-        {"label":"M", "x":10.5, "y":5},
-        {"label":"COMMA", "x":11.5, "y":5},
-        {"label":"PERIOD", "x":12.5, "y":5},
-        {"label":"SLASH", "x":13.5, "y":5},
-        {"label":"RSHIFT", "x":14.5, "y":5, "w":2.75},
-        {"label":"UP", "x":18.5, "y":5},
-        {"label":"P1", "x":20.75, "y":5},
-        {"label":"P2", "x":21.75, "y":5},
-        {"label":"P3", "x":22.75, "y":5},
-        {"label":"PENTER", "x":23.75, "y":5, "h":2},
-        {"label":"FIND", "x":0, "y":6},
-        {"label":"CUT", "x":1, "y":6},
-        {"label":"LCTRL", "x":2.25, "y":6, "w":1.75},
-        {"label":"LALT", "x":4, "y":6},
-        {"label":"LGUI", "x":5, "y":6},
-        {"label":"SPACE", "x":6, "y":6, "w":8.25},
-        {"label":"RGUI", "x":14.25, "y":6},
-        {"label":"APP", "x":15.25, "y":6},
-        {"label":"RALT", "x":16.25, "y":6},
-        {"label":"LEFT", "x":17.5, "y":6},
-        {"label":"DOWN", "x":18.5, "y":6},
-        {"label":"RIGHT", "x":19.5, "y":6},
-        {"label":"P0", "x":20.75, "y":6, "w":2},
-        {"label":"PDOT", "x":22.75, "y":6}
+        {"matrix": [14, 6], "x": 0, "y": 0, "w": 2},
+
+        {"matrix": [3, 5], "x": 2.25, "y": 0},
+
+        {"matrix": [0, 5], "x": 4.25, "y": 0},
+        {"matrix": [0, 6], "x": 5.25, "y": 0},
+        {"matrix": [1, 0], "x": 6.25, "y": 0},
+        {"matrix": [1, 2], "x": 7.25, "y": 0},
+
+        {"matrix": [1, 4], "x": 8.75, "y": 0},
+        {"matrix": [1, 6], "x": 9.75, "y": 0},
+        {"matrix": [2, 0], "x": 10.75, "y": 0},
+        {"matrix": [2, 1], "x": 11.75, "y": 0},
+
+        {"matrix": [2, 2], "x": 13.25, "y": 0},
+        {"matrix": [0, 7], "x": 14.25, "y": 0},
+        {"matrix": [1, 1], "x": 15.25, "y": 0},
+        {"matrix": [1, 3], "x": 16.25, "y": 0},
+
+        {"matrix": [2, 6], "x": 17.5, "y": 0},
+        {"matrix": [2, 7], "x": 18.5, "y": 0},
+        {"matrix": [2, 5], "x": 19.5, "y": 0},
+
+        {"matrix": [5, 5], "x": 20.75, "y": 0},
+        {"matrix": [0, 2], "x": 21.75, "y": 0},
+        {"matrix": [0, 4], "x": 22.75, "y": 0},
+        {"matrix": [6, 0], "x": 23.75, "y": 0},
+
+        {"matrix": [0, 1], "x": 0, "y": 2},
+        {"matrix": [0, 3], "x": 1, "y": 2},
+
+        {"matrix": [5, 2], "x": 2.25, "y": 2},
+        {"matrix": [3, 6], "x": 3.25, "y": 2},
+        {"matrix": [3, 7], "x": 4.25, "y": 2},
+        {"matrix": [4, 0], "x": 5.25, "y": 2},
+        {"matrix": [4, 1], "x": 6.25, "y": 2},
+        {"matrix": [4, 2], "x": 7.25, "y": 2},
+        {"matrix": [4, 3], "x": 8.25, "y": 2},
+        {"matrix": [4, 4], "x": 9.25, "y": 2},
+        {"matrix": [4, 5], "x": 10.25, "y": 2},
+        {"matrix": [4, 6], "x": 11.25, "y": 2},
+        {"matrix": [4, 7], "x": 12.25, "y": 2},
+        {"matrix": [5, 0], "x": 13.25, "y": 2},
+        {"matrix": [5, 1], "x": 14.25, "y": 2},
+        {"matrix": [5, 3], "x": 15.25, "y": 2, "w": 2},
+
+        {"matrix": [5, 4], "x": 17.5, "y": 2},
+        {"matrix": [6, 4], "x": 18.5, "y": 2},
+        {"matrix": [12, 0], "x": 19.5, "y": 2},
+
+        {"matrix": [12, 2], "x": 20.75, "y": 2},
+        {"matrix": [5, 6], "x": 21.75, "y": 2},
+        {"matrix": [5, 7], "x": 22.75, "y": 2},
+        {"matrix": [8, 7], "x": 23.75, "y": 2},
+
+        {"matrix": [3, 1], "x": 0, "y": 3},
+        {"matrix": [3, 2], "x": 1, "y": 3},
+
+        {"matrix": [6, 5], "x": 2.25, "y": 3, "w": 1.5},
+        {"matrix": [6, 6], "x": 3.75, "y": 3},
+        {"matrix": [6, 7], "x": 4.75, "y": 3},
+        {"matrix": [7, 0], "x": 5.75, "y": 3},
+        {"matrix": [7, 1], "x": 6.75, "y": 3},
+        {"matrix": [7, 2], "x": 7.75, "y": 3},
+        {"matrix": [7, 3], "x": 8.75, "y": 3},
+        {"matrix": [7, 4], "x": 9.75, "y": 3},
+        {"matrix": [7, 5], "x": 10.75, "y": 3},
+        {"matrix": [7, 6], "x": 11.75, "y": 3},
+        {"matrix": [7, 7], "x": 12.75, "y": 3},
+        {"matrix": [8, 0], "x": 13.75, "y": 3},
+        {"matrix": [8, 1], "x": 14.75, "y": 3},
+        {"matrix": [11, 0], "x": 15.75, "y": 3, "w": 1.5},
+
+        {"matrix": [8, 2], "x": 17.5, "y": 3},
+        {"matrix": [9, 2], "x": 18.5, "y": 3},
+        {"matrix": [15, 3], "x": 19.5, "y": 3},
+
+        {"matrix": [8, 4], "x": 20.75, "y": 3},
+        {"matrix": [8, 5], "x": 21.75, "y": 3},
+        {"matrix": [8, 6], "x": 22.75, "y": 3},
+        {"matrix": [15, 5], "x": 23.75, "y": 3, "h": 2},
+
+        {"matrix": [6, 1], "x": 0, "y": 4},
+        {"matrix": [6, 3], "x": 1, "y": 4},
+
+        {"matrix": [14, 7], "x": 2.25, "y": 4, "w": 1.75},
+        {"matrix": [9, 5], "x": 4, "y": 4},
+        {"matrix": [9, 6], "x": 5, "y": 4},
+        {"matrix": [9, 7], "x": 6, "y": 4},
+        {"matrix": [10, 0], "x": 7, "y": 4},
+        {"matrix": [10, 1], "x": 8, "y": 4},
+        {"matrix": [10, 2], "x": 9, "y": 4},
+        {"matrix": [10, 3], "x": 10, "y": 4},
+        {"matrix": [10, 4], "x": 11, "y": 4},
+        {"matrix": [10, 5], "x": 12, "y": 4},
+        {"matrix": [10, 6], "x": 13, "y": 4},
+        {"matrix": [10, 7], "x": 14, "y": 4},
+        {"matrix": [11, 1], "x": 15, "y": 4, "w": 2.25},
+
+        {"matrix": [11, 3], "x": 20.75, "y": 4},
+        {"matrix": [11, 4], "x": 21.75, "y": 4},
+        {"matrix": [11, 5], "x": 22.75, "y": 4},
+
+        {"matrix": [9, 0], "x": 0, "y": 5},
+        {"matrix": [9, 1], "x": 1, "y": 5},
+
+        {"matrix": [12, 3], "x": 2.25, "y": 5, "w": 2.25},
+        {"matrix": [12, 4], "x": 4.5, "y": 5},
+        {"matrix": [12, 5], "x": 5.5, "y": 5},
+        {"matrix": [12, 6], "x": 6.5, "y": 5},
+        {"matrix": [12, 7], "x": 7.5, "y": 5},
+        {"matrix": [13, 0], "x": 8.5, "y": 5},
+        {"matrix": [13, 1], "x": 9.5, "y": 5},
+        {"matrix": [13, 2], "x": 10.5, "y": 5},
+        {"matrix": [13, 3], "x": 11.5, "y": 5},
+        {"matrix": [13, 4], "x": 12.5, "y": 5},
+        {"matrix": [13, 5], "x": 13.5, "y": 5},
+        {"matrix": [13, 6], "x": 14.5, "y": 5, "w": 2.75},
+
+        {"matrix": [2, 4], "x": 18.5, "y": 5},
+
+        {"matrix": [14, 0], "x": 20.75, "y": 5},
+        {"matrix": [14, 1], "x": 21.75, "y": 5},
+        {"matrix": [14, 2], "x": 22.75, "y": 5},
+        {"matrix": [11, 2], "x": 23.75, "y": 5, "h": 2},
+
+        {"matrix": [11, 7], "x": 0, "y": 6},
+        {"matrix": [12, 1], "x": 1, "y": 6},
+
+        {"matrix": [9, 4], "x": 2.25, "y": 6, "w": 1.75},
+        {"matrix": [2, 3], "x": 4, "y": 6},
+        {"matrix": [15, 0], "x": 5, "y": 6},
+        {"matrix": [15, 1], "x": 6, "y": 6, "w": 8.25},
+        {"matrix": [15, 2], "x": 14.25, "y": 6},
+        {"matrix": [8, 3], "x": 15.25, "y": 6},
+        {"matrix": [1, 5], "x": 16.25, "y": 6},
+
+        {"matrix": [3, 0], "x": 17.5, "y": 6},
+        {"matrix": [3, 3], "x": 18.5, "y": 6},
+        {"matrix": [3, 4], "x": 19.5, "y": 6},
+
+        {"matrix": [11, 6], "x": 20.75, "y": 6, "w": 2},
+        {"matrix": [6, 2], "x": 22.75, "y": 6}
       ]
     }
   }

+ 0 - 148
keyboards/converter/sun_usb/type5/type5.h

@@ -1,148 +0,0 @@
-/*
-  Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-  This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* sun type 5 keyboard, JP Unix-style
-,-------.  ,---,  ,---------------. ,---------------. ,---------------.   ,-----------. ,---------------.
-|   76  |  | 0F|  | 05| 06| 08| 0A| | 0C| 0E| 10| 11| | 12| 07| 09| 0B|   | 16| 17| 15| | 2D| 02| 04| 30|
-`-------'  `---'  `---------------' `---------------' `---------------'   `-----------' `---------------'
-,-------.  ,-----------------------------------------------------------.  ,-----------. ,---------------.
-| 01| 03|  | 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 58| 2A|  | 2C| 34| 60| | 62| 2E| 2F| 47|
-|-------|  |-----------------------------------------------------------|  |------------ |---------------|
-| 19| 1A|  |  35 | 36| 37| 38| 39| 3A| 3B| 3C| 3D| 3E| 3F| 40| 41| 2B  |  | 42| 4A| 7B| | 44| 45| 46|   |
-|-------|  |-----------------------------------------------------------|  `-----------' |-----------| 7D|
-| 31| 33|  |  4C  | 4D| 4E| 4F| 50| 51| 52| 53| 54| 55| 56| 57|   59   |                | 5B| 5C| 5D|   |
-|-------|  |-----------------------------------------------------------|      ,---.     |-----------|---|
-| 48| 49|  |   63   | 64| 65| 66| 67| 68| 69| 6A| 6B| 6C| 6D|    6E    |      | 14|     | 70| 71| 72|   |
-|-------|  |-----------------------------------------------------------|  .-----------. |-----------| 5A|
-| 5F| 61|  | 77 | 13| 78 |*73 |       79         |*74 |*75| 7A | 43| 0D|  | 18| 1B| 1C| |   5E  | 32|   |
-`-------'  `-----------------------------------------------------------'  `-----------' `---------------'
-*/
-#define LAYOUT_jp_unix( \
-       K76,    K0F,      K05, K06, K08, K0A, K0C, K0E, K10, K11, K12, K07, K09, K0B,       K16, K17, K15,  K2D, K02, K04, K30, \
-    K01, K03,  K1D, K1E, K1F, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K58, K2A,  K2C, K34, K60,  K62, K2E, K2F, K47, \
-    K19, K1A,  K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K40, K41, K2B,       K42, K4A, K7B,  K44, K45, K46, K7D, \
-    K31, K33,  K4C, K4D, K4E, K4F, K50, K51, K52, K53, K54, K55, K56, K57,      K59,                       K5B, K5C, K5D, \
-    K48, K49,  K63,      K64, K65, K66, K67, K68, K69, K6A, K6B, K6C, K6D,      K6E,            K14,       K70, K71, K72, K5A, \
-    K5F, K61,  K77, K13, K78, K73,           K79,           K74, K75, K7A, K43, K0D,       K18, K1B, K1C,     K5E,   K32 \
-) { \
-    { XXX, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17 }, \
-    { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37 }, \
-    { K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
-    { K40, K41, K42, K43, K44, K45, K46, K47 }, \
-    { K48, K49, K4A, XXX, K4C, K4D, K4E, K4F }, \
-    { K50, K51, K52, K53, K54, K55, K56, K57 }, \
-    { K58, K59, K5A, K5B, K5C, K5D, K5E, K5F }, \
-    { K60, K61, K62, K63, K64, K65, K66, K67 }, \
-    { K68, K69, K6A, K6B, K6C, K6D, K6E, XXX }, \
-    { K70, K71, K72, K73, K74, K75, K76, K77 }, \
-    { K78, K79, K7A, K7B, XXX, K7D, XXX, XXX } \
-}
-
-/* Sun type 5 keyboard, US Unix-style
-,-------.  ,---,  ,---------------. ,---------------. ,---------------.   ,-----------. ,---------------.
-|   76  |  | 0F|  | 05| 06| 08| 0A| | 0C| 0E| 10| 11| | 12| 07| 09| 0B|   | 16| 17| 15| | 2D| 02| 04| 30|
-`-------'  `---'  `---------------' `---------------' `---------------'   `-----------' `---------------'
-,-------.  ,-----------------------------------------------------------.  ,-----------. ,---------------.
-| 01| 03|  | 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 58| 2A|  | 2C| 34| 60| | 62| 2E| 2F| 47|
-|-------|  |-----------------------------------------------------------|  |------------ |---------------|
-| 19| 1A|  |  35 | 36| 37| 38| 39| 3A| 3B| 3C| 3D| 3E| 3F| 40| 41| 2B  |  | 42| 4A| 7B| | 44| 45| 46|   |
-|-------|  |-----------------------------------------------------------|  `-----------' |-----------| 7D|
-| 31| 33|  |  4C  | 4D| 4E| 4F| 50| 51| 52| 53| 54| 55| 56| 57|   59   |                | 5B| 5C| 5D|   |
-|-------|  |-----------------------------------------------------------|      ,---.     |-----------|---|
-| 48| 49|  |   63   | 64| 65| 66| 67| 68| 69| 6A| 6B| 6C| 6D|    6E    |      | 14|     | 70| 71| 72|   |
-|-------|  |-----------------------------------------------------------|  .-----------. |-----------| 5A|
-| 5F| 61|  | 77 | 13| 78 |            79                 |  7A | 43| 0D|  | 18| 1B| 1C| |   5E  | 32|   |
-`-------'  `-----------------------------------------------------------'  `-----------' `---------------'
-*/
-#define LAYOUT_us_unix( \
-       K76,    K0F,      K05, K06, K08, K0A, K0C, K0E, K10, K11, K12, K07, K09, K0B,       K16, K17, K15,  K2D, K02, K04, K30, \
-    K01, K03,  K1D, K1E, K1F, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K58, K2A,  K2C, K34, K60,  K62, K2E, K2F, K47, \
-    K19, K1A,  K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K40, K41, K2B,       K42, K4A, K7B,  K44, K45, K46, K7D, \
-    K31, K33,  K4C, K4D, K4E, K4F, K50, K51, K52, K53, K54, K55, K56, K57,      K59,                       K5B, K5C, K5D, \
-    K48, K49,  K63,      K64, K65, K66, K67, K68, K69, K6A, K6B, K6C, K6D,      K6E,            K14,       K70, K71, K72, K5A, \
-    K5F, K61,  K77, K13, K78,                K79,                     K7A, K43, K0D,       K18, K1B, K1C,     K5E,   K32 \
-) { \
-    { XXX, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17 }, \
-    { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37 }, \
-    { K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
-    { K40, K41, K42, K43, K44, K45, K46, K47 }, \
-    { K48, K49, K4A, XXX, K4C, K4D, K4E, K4F }, \
-    { K50, K51, K52, K53, K54, K55, K56, K57 }, \
-    { K58, K59, K5A, K5B, K5C, K5D, K5E, K5F }, \
-    { K60, K61, K62, K63, K64, K65, K66, K67 }, \
-    { K68, K69, K6A, K6B, K6C, K6D, K6E, XXX }, \
-    { K70, K71, K72, XXX, XXX, XXX, K76, K77 }, \
-    { K78, K79, K7A, K7B, XXX, K7D, XXX, XXX } \
-}
-
-/* Sun type 5 keyboard, US ANSI-style
-   ,-------.  ,---,  ,---------------. ,---------------. ,---------------.   ,-----------. ,---------------.
-   |   76  |  | 1D|  | 05| 06| 08| 0A| | 0C| 0E| 10| 11| | 12| 07| 09| 0B|   | 16| 17| 15| | 2D| 02| 04| 30|
-   `-------'  `---'  `---------------' `---------------' `---------------'   `-----------' `---------------'
-   ,-------.  ,-----------------------------------------------------------.  ,-----------. ,---------------.
-   | 01| 03|  | 2A| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29|   2B  |  | 2C| 34| 60| | 62| 2E| 2F| 47|
-   |-------|  |-----------------------------------------------------------|  |------------ |---------------|
-   | 19| 1A|  |  35 | 36| 37| 38| 39| 3A| 3B| 3C| 3D| 3E| 3F| 40| 41| 58  |  | 42| 4A| 7B| | 44| 45| 46|   |
-   |-------|  |-----------------------------------------------------------|  `-----------' |-----------| 7D|
-   | 31| 33|  |  77  | 4D| 4E| 4F| 50| 51| 52| 53| 54| 55| 56| 57|   59   |                | 5B| 5C| 5D|   |
-   |-------|  |-----------------------------------------------------------|      ,---.     |-----------|---|
-   | 48| 49|  |   63   | 64| 65| 66| 67| 68| 69| 6A| 6B| 6C| 6D|    6E    |      | 14|     | 70| 71| 72|   |
-   |-------|  |-----------------------------------------------------------|  .-----------. |-----------| 5A|
-   | 5F| 61|  |  4C  | 13| 78 |              79              | 7A | 43| 0D|  | 18| 1B| 1C| |   5E  | 32|   |
-   `-------'  `-----------------------------------------------------------'  `-----------' `---------------'
-*/
-#define LAYOUT_ansi( \
-       K76,    K1D,      K05, K06, K08, K0A, K0C, K0E, K10, K11, K12, K07, K09, K0B,  K16, K17, K15,  K2D, K02, K04, K30, \
-    K01, K03,  K2A, K1E, K1F, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2B,  K2C, K34, K60,  K62, K2E, K2F, K47, \
-    K19, K1A,  K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K40, K41, K58,  K42, K4A, K7B,  K44, K45, K46, K7D, \
-    K31, K33,  K77, K4D, K4E, K4F, K50, K51, K52, K53, K54, K55, K56, K57,      K59,                  K5B, K5C, K5D, \
-    K48, K49,  K63,      K64, K65, K66, K67, K68, K69, K6A, K6B, K6C, K6D,      K6E,       K14,       K70, K71, K72, K5A, \
-    K5F, K61,  K4C, K13, K78,                K79,                     K7A, K43, K0D,  K18, K1B, K1C,     K5E,   K32 \
-) { \
-    { XXX, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K08, K09, K0A, K0B, K0C, K0D, K0E, XXX }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17 }, \
-    { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37 }, \
-    { K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
-    { K40, K41, K42, K43, K44, K45, K46, K47 }, \
-    { K48, K49, K4A, XXX, K4C, K4D, K4E, K4F }, \
-    { K50, K51, K52, K53, K54, K55, K56, K57 }, \
-    { K58, K59, K5A, K5B, K5C, K5D, K5E, K5F }, \
-    { K60, K61, K62, K63, K64, K65, K66, K67 }, \
-    { K68, K69, K6A, K6B, K6C, K6D, K6E, XXX }, \
-    { K70, K71, K72, XXX, XXX, XXX, K76, K77 }, \
-    { K78, K79, K7A, K7B, XXX, K7D, XXX, XXX } \
-}

+ 234 - 19
keyboards/crimsonkeyboards/resume1800/info.json

@@ -20,25 +20,240 @@
     "processor": "atmega32a",
     "bootloader": "usbasploader",
     "layouts": {
-		"LAYOUT_resume1800_ansi_all": {
+        "LAYOUT_resume1800_ansi_all": {
             "layout": [
-				{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0},{"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"F13", "x":13, "y":0}, {"label":"F14", "x":14, "y":0}, {"label":"PrtSc", "x":15, "y":0}, {"label":"Scroll Lock", "x":16, "y":0}, {"label":"Pause", "x":17, "y":0}, {"label":"Insert", "x":18, "y":0}, {"label":"End", "x":19, "y":0},
-				{"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Delete", "x":15, "y":1}, {"label":"Num Lock", "x":16, "y":1}, {"label":"/", "x":17, "y":1}, {"label":"*", "x":18, "y":1}, {"label":"-", "x":19, "y":1},
-				{"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Home", "x":15, "y":2}, {"label":"7", "x":16, "y":2}, {"label":"8", "x":17, "y":2}, {"label":"9", "x":18, "y":2}, {"label":"+", "x":19, "y":2},
-				{"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"PgUp", "x":15, "y":3}, {"label":"4", "x":16, "y":3}, {"label":"5", "x":17, "y":3}, {"label":"6", "x":18, "y":3}, {"label":"=", "x":19, "y":3},
-				{"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"PgDn", "x":15, "y":4}, {"label":"1", "x":16, "y":4}, {"label":"2", "x":17, "y":4}, {"label":"3", "x":18, "y":4}, {"label":"Enter", "x":19, "y":4},
-				{"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"00", "x":16, "y":5}, {"label":"0", "x":17, "y":5}, {"label":".", "x":18, "y":5}, {"label":"Bksp", "x":19, "y":5}
-			]
-		},
-		"LAYOUT_resume1800_iso_all": {
-			"layout": [
-				{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"F13", "x":13, "y":0}, {"label":"F14", "x":14, "y":0}, {"label":"PrtSc", "x":15, "y":0}, {"label":"Scroll Lock", "x":16, "y":0}, {"label":"Pause", "x":17, "y":0}, {"label":"Insert", "x":18, "y":0}, {"label":"End", "x":19, "y":0},
-				{"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Delete", "x":15, "y":1}, {"label":"Num Lock", "x":16, "y":1}, {"label":"/", "x":17, "y":1}, {"label":"*", "x":18, "y":1}, {"label":"-", "x":19, "y":1},
-				{"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"Home", "x":15, "y":2}, {"label":"7", "x":16, "y":2}, {"label":"8", "x":17, "y":2}, {"label":"9", "x":18, "y":2}, {"label":"+", "x":19, "y":2},
-				{"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"|", "x":12.75, "y":3}, {"label":"PgUp", "x":15, "y":3}, {"label":"4", "x":16, "y":3}, {"label":"5", "x":17, "y":3}, {"label":"6", "x":18, "y":3}, {"label":"=", "x":19, "y":3},
-				{"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"~", "x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"PgDn", "x":15, "y":4}, {"label":"1", "x":16, "y":4}, {"label":"2", "x":17, "y":4}, {"label":"3", "x":18, "y":4}, {"label":"Enter", "x":19, "y":4},
-				{"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"00", "x":16, "y":5}, {"label":"0", "x":17, "y":5}, {"label":".", "x":18, "y":5}, {"label":"Bksp", "x":19, "y":5}
-			]
-		}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+                {"matrix": [0, 16], "x": 16, "y": 0},
+                {"matrix": [0, 17], "x": 17, "y": 0},
+                {"matrix": [0, 18], "x": 18, "y": 0},
+                {"matrix": [0, 19], "x": 19, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+                {"matrix": [1, 12], "x": 12, "y": 1},
+                {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+                {"matrix": [1, 16], "x": 16, "y": 1},
+                {"matrix": [1, 17], "x": 17, "y": 1},
+                {"matrix": [1, 18], "x": 18, "y": 1},
+                {"matrix": [1, 19], "x": 19, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2},
+                {"matrix": [2, 2], "x": 2.5, "y": 2},
+                {"matrix": [2, 3], "x": 3.5, "y": 2},
+                {"matrix": [2, 4], "x": 4.5, "y": 2},
+                {"matrix": [2, 5], "x": 5.5, "y": 2},
+                {"matrix": [2, 6], "x": 6.5, "y": 2},
+                {"matrix": [2, 7], "x": 7.5, "y": 2},
+                {"matrix": [2, 8], "x": 8.5, "y": 2},
+                {"matrix": [2, 9], "x": 9.5, "y": 2},
+                {"matrix": [2, 10], "x": 10.5, "y": 2},
+                {"matrix": [2, 11], "x": 11.5, "y": 2},
+                {"matrix": [2, 12], "x": 12.5, "y": 2},
+                {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+                {"matrix": [2, 16], "x": 16, "y": 2},
+                {"matrix": [2, 17], "x": 17, "y": 2},
+                {"matrix": [2, 18], "x": 18, "y": 2},
+                {"matrix": [2, 19], "x": 19, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3},
+                {"matrix": [3, 2], "x": 2.75, "y": 3},
+                {"matrix": [3, 3], "x": 3.75, "y": 3},
+                {"matrix": [3, 4], "x": 4.75, "y": 3},
+                {"matrix": [3, 5], "x": 5.75, "y": 3},
+                {"matrix": [3, 6], "x": 6.75, "y": 3},
+                {"matrix": [3, 7], "x": 7.75, "y": 3},
+                {"matrix": [3, 8], "x": 8.75, "y": 3},
+                {"matrix": [3, 9], "x": 9.75, "y": 3},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3},
+                {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+                {"matrix": [3, 16], "x": 16, "y": 3},
+                {"matrix": [3, 17], "x": 17, "y": 3},
+                {"matrix": [3, 18], "x": 18, "y": 3},
+                {"matrix": [3, 19], "x": 19, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4},
+                {"matrix": [4, 3], "x": 3.25, "y": 4},
+                {"matrix": [4, 4], "x": 4.25, "y": 4},
+                {"matrix": [4, 5], "x": 5.25, "y": 4},
+                {"matrix": [4, 6], "x": 6.25, "y": 4},
+                {"matrix": [4, 7], "x": 7.25, "y": 4},
+                {"matrix": [4, 8], "x": 8.25, "y": 4},
+                {"matrix": [4, 9], "x": 9.25, "y": 4},
+                {"matrix": [4, 10], "x": 10.25, "y": 4},
+                {"matrix": [4, 11], "x": 11.25, "y": 4},
+                {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4},
+                {"matrix": [4, 16], "x": 16, "y": 4},
+                {"matrix": [4, 17], "x": 17, "y": 4},
+                {"matrix": [4, 18], "x": 18, "y": 4},
+                {"matrix": [4, 19], "x": 19, "y": 4},
+
+                {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5},
+                {"matrix": [5, 10], "x": 11, "y": 5},
+                {"matrix": [5, 11], "x": 12, "y": 5},
+                {"matrix": [5, 12], "x": 13, "y": 5},
+                {"matrix": [5, 13], "x": 14, "y": 5},
+                {"matrix": [5, 15], "x": 15, "y": 5},
+                {"matrix": [5, 16], "x": 16, "y": 5},
+                {"matrix": [5, 17], "x": 17, "y": 5},
+                {"matrix": [5, 18], "x": 18, "y": 5},
+                {"matrix": [5, 19], "x": 19, "y": 5}
+            ]
+        },
+        "LAYOUT_resume1800_iso_all": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+                {"matrix": [0, 16], "x": 16, "y": 0},
+                {"matrix": [0, 17], "x": 17, "y": 0},
+                {"matrix": [0, 18], "x": 18, "y": 0},
+                {"matrix": [0, 19], "x": 19, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+                {"matrix": [1, 12], "x": 12, "y": 1},
+                {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+                {"matrix": [1, 16], "x": 16, "y": 1},
+                {"matrix": [1, 17], "x": 17, "y": 1},
+                {"matrix": [1, 18], "x": 18, "y": 1},
+                {"matrix": [1, 19], "x": 19, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2},
+                {"matrix": [2, 2], "x": 2.5, "y": 2},
+                {"matrix": [2, 3], "x": 3.5, "y": 2},
+                {"matrix": [2, 4], "x": 4.5, "y": 2},
+                {"matrix": [2, 5], "x": 5.5, "y": 2},
+                {"matrix": [2, 6], "x": 6.5, "y": 2},
+                {"matrix": [2, 7], "x": 7.5, "y": 2},
+                {"matrix": [2, 8], "x": 8.5, "y": 2},
+                {"matrix": [2, 9], "x": 9.5, "y": 2},
+                {"matrix": [2, 10], "x": 10.5, "y": 2},
+                {"matrix": [2, 11], "x": 11.5, "y": 2},
+                {"matrix": [2, 12], "x": 12.5, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+                {"matrix": [2, 16], "x": 16, "y": 2},
+                {"matrix": [2, 17], "x": 17, "y": 2},
+                {"matrix": [2, 18], "x": 18, "y": 2},
+                {"matrix": [2, 19], "x": 19, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3},
+                {"matrix": [3, 2], "x": 2.75, "y": 3},
+                {"matrix": [3, 3], "x": 3.75, "y": 3},
+                {"matrix": [3, 4], "x": 4.75, "y": 3},
+                {"matrix": [3, 5], "x": 5.75, "y": 3},
+                {"matrix": [3, 6], "x": 6.75, "y": 3},
+                {"matrix": [3, 7], "x": 7.75, "y": 3},
+                {"matrix": [3, 8], "x": 8.75, "y": 3},
+                {"matrix": [3, 9], "x": 9.75, "y": 3},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3},
+                {"matrix": [3, 13], "x": 12.75, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+                {"matrix": [3, 16], "x": 16, "y": 3},
+                {"matrix": [3, 17], "x": 17, "y": 3},
+                {"matrix": [3, 18], "x": 18, "y": 3},
+                {"matrix": [3, 19], "x": 19, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4},
+                {"matrix": [4, 2], "x": 2.25, "y": 4},
+                {"matrix": [4, 3], "x": 3.25, "y": 4},
+                {"matrix": [4, 4], "x": 4.25, "y": 4},
+                {"matrix": [4, 5], "x": 5.25, "y": 4},
+                {"matrix": [4, 6], "x": 6.25, "y": 4},
+                {"matrix": [4, 7], "x": 7.25, "y": 4},
+                {"matrix": [4, 8], "x": 8.25, "y": 4},
+                {"matrix": [4, 9], "x": 9.25, "y": 4},
+                {"matrix": [4, 10], "x": 10.25, "y": 4},
+                {"matrix": [4, 11], "x": 11.25, "y": 4},
+                {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4},
+                {"matrix": [4, 16], "x": 16, "y": 4},
+                {"matrix": [4, 17], "x": 17, "y": 4},
+                {"matrix": [4, 18], "x": 18, "y": 4},
+                {"matrix": [4, 19], "x": 19, "y": 4},
+
+                {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5},
+                {"matrix": [5, 10], "x": 11, "y": 5},
+                {"matrix": [5, 11], "x": 12, "y": 5},
+                {"matrix": [5, 12], "x": 13, "y": 5},
+                {"matrix": [5, 13], "x": 14, "y": 5},
+                {"matrix": [5, 15], "x": 15, "y": 5},
+                {"matrix": [5, 16], "x": 16, "y": 5},
+                {"matrix": [5, 17], "x": 17, "y": 5},
+                {"matrix": [5, 18], "x": 18, "y": 5},
+                {"matrix": [5, 19], "x": 19, "y": 5}
+            ]
+        }
     }
 }

+ 0 - 53
keyboards/crimsonkeyboards/resume1800/resume1800.h

@@ -1,53 +0,0 @@
-/*
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#define _x_ KC_NO
-
-#include "quantum.h"
-
-#define LAYOUT_resume1800_ansi_all( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, 	 K1F, K1G, K1H, K1I, K1J, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, 	 K2F, K2G, K2H, K2I, K2J, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, 	 K3F, K3G, K3H, K3I, K3J, \
-  K40,      K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, 	 K4F, K4G, K4H, K4I, K4J, \
-  K50, K51, K52,                K56,           K59, K5A, K5B, K5C, K5D, 	 K5F, K5G, K5H, K5I, K5J \
-) { \
-{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J }, \
-{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, _x_, K1F, K1G, K1H, K1I, K1J }, \
-{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, _x_, K2F, K2G, K2H, K2I, K2J }, \
-{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, _x_, K3D, _x_, K3F, K3G, K3H, K3I, K3J }, \
-{ K40, _x_, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, _x_, K4F, K4G, K4H, K4I, K4J }, \
-{ K50, K51, K52, _x_, _x_, _x_, K56, _x_, _x_, K59, K5A, K5B, K5C, K5D, _x_, K5F, K5G, K5H, K5I, K5J } \
-}
-
-#define LAYOUT_resume1800_iso_all( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, 	 K1F, K1G, K1H, K1I, K1J, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D,		 K2F, K2G, K2H, K2I, K2J, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, 	   K3D,		 K3F, K3G, K3H, K3I, K3J, \
-  K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, 	 K4F, K4G, K4H, K4I, K4J, \
-  K50, K51, K52,                K56,           K59, K5A, K5B, K5C, K5D, 	 K5F, K5G, K5H, K5I, K5J \
-) { \
-{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J }, \
-{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, _x_, K1F, K1G, K1H, K1I, K1J }, \
-{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, _x_, K2F, K2G, K2H, K2I, K2J }, \
-{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, _x_, K3D,	_x_, K3F, K3G, K3H, K3I, K3J }, \
-{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, _x_, K4F, K4G, K4H, K4I, K4J }, \
-{ K50, K51, K52, _x_, _x_, _x_, K56, _x_, _x_, K59, K5A, K5B, K5C, K5D, _x_, K5F, K5G, K5H, K5I, K5J } \
-}

+ 68 - 313
keyboards/delikeeb/vaneelaex/info.json

@@ -18,320 +18,75 @@
     "layouts": {
         "LAYOUT_ss_6x12": {
             "layout": [
-                {
-                    "x": 0,
-                    "y": 0
-                },
-                {
-                    "label": "7",
-                    "x": 1,
-                    "y": 0
-                },
-                {
-                    "label": "8",
-                    "x": 2,
-                    "y": 0
-                },
-                {
-                    "label": "9",
-                    "x": 3,
-                    "y": 0
-                },
-                {
-                    "label": "TAB",
-                    "x": 4,
-                    "y": 0
-                },
-                {
-                    "label": "Q",
-                    "x": 5,
-                    "y": 0
-                },
-                {
-                    "label": "W",
-                    "x": 6,
-                    "y": 0
-                },
-                {
-                    "label": "E",
-                    "x": 7,
-                    "y": 0
-                },
-                {
-                    "label": "R",
-                    "x": 8,
-                    "y": 0
-                },
-                {
-                    "label": "T",
-                    "x": 9,
-                    "y": 0
-                },
-                {
-                    "label": "Y",
-                    "x": 10,
-                    "y": 0
-                },
-                {
-                    "label": "U",
-                    "x": 11,
-                    "y": 0
-                },
-                {
-                    "label": "I",
-                    "x": 12,
-                    "y": 0
-                },
-                {
-                    "label": "O",
-                    "x": 13,
-                    "y": 0
-                },
-                {
-                    "label": "P",
-                    "x": 14,
-                    "y": 0
-                },
-                {
-                    "label": "BS",
-                    "x": 15,
-                    "y": 0,
-                    "w": 1.5
-                },
-                {
-                    "x": 0,
-                    "y": 1
-                },
-                {
-                    "label": "4",
-                    "x": 1,
-                    "y": 1
-                },
-                {
-                    "label": "5",
-                    "x": 2,
-                    "y": 1
-                },
-                {
-                    "label": "6",
-                    "x": 3,
-                    "y": 1
-                },
-                {
-                    "label": "ESC",
-                    "x": 4,
-                    "y": 1,
-                    "w": 1.25
-                },
-                {
-                    "label": "A",
-                    "x": 5.25,
-                    "y": 1
-                },
-                {
-                    "label": "S",
-                    "x": 6.25,
-                    "y": 1
-                },
-                {
-                    "label": "D",
-                    "x": 7.25,
-                    "y": 1
-                },
-                {
-                    "label": "F",
-                    "x": 8.25,
-                    "y": 1
-                },
-                {
-                    "label": "G",
-                    "x": 9.25,
-                    "y": 1
-                },
-                {
-                    "label": "H",
-                    "x": 10.25,
-                    "y": 1
-                },
-                {
-                    "label": "J",
-                    "x": 11.25,
-                    "y": 1
-                },
-                {
-                    "label": "K",
-                    "x": 12.25,
-                    "y": 1
-                },
-                {
-                    "label": "L",
-                    "x": 13.25,
-                    "y": 1
-                },
-                {
-                    "label": ";",
-                    "x": 14.25,
-                    "y": 1
-                },
-                {
-                    "label": "ENTER",
-                    "x": 15.25,
-                    "y": 1,
-                    "w": 1.25
-                },
-                {
-                    "x": 0,
-                    "y": 2
-                },
-                {
-                    "label": "1",
-                    "x": 1,
-                    "y": 2
-                },
-                {
-                    "label": "2",
-                    "x": 2,
-                    "y": 2
-                },
-                {
-                    "label": "3",
-                    "x": 3,
-                    "y": 2
-                },
-                {
-                    "label": "SHIFT",
-                    "x": 4,
-                    "y": 2,
-                    "w": 1.5
-                },
-                {
-                    "label": "Z",
-                    "x": 5.5,
-                    "y": 2
-                },
-                {
-                    "label": "X",
-                    "x": 6.5,
-                    "y": 2
-                },
-                {
-                    "label": "C",
-                    "x": 7.5,
-                    "y": 2
-                },
-                {
-                    "label": "V",
-                    "x": 8.5,
-                    "y": 2
-                },
-                {
-                    "label": "B",
-                    "x": 9.5,
-                    "y": 2
-                },
-                {
-                    "label": "N",
-                    "x": 10.5,
-                    "y": 2
-                },
-                {
-                    "label": "M",
-                    "x": 11.5,
-                    "y": 2
-                },
-                {
-                    "label": ",",
-                    "x": 12.5,
-                    "y": 2
-                },
-                {
-                    "label": ".",
-                    "x": 13.5,
-                    "y": 2
-                },
-                {
-                    "label": "/",
-                    "x": 14.5,
-                    "y": 2
-                },
-                {
-                    "label": "SHIFT",
-                    "x": 15.5,
-                    "y": 2
-                },
-                {
-                    "x": 0,
-                    "y": 3
-                },
-                {
-                    "x": 1,
-                    "y": 3
-                },
-                {
-                    "x": 2,
-                    "y": 3
-                },
-                {
-                    "label": "0",
-                    "x": 3,
-                    "y": 3
-                },
-                {
-                    "label": "CTRL",
-                    "x": 4,
-                    "y": 3
-                },
-                {
-                    "label": "GUI",
-                    "x": 5,
-                    "y": 3
-                },
-                {
-                    "label": "ALT",
-                    "x": 6,
-                    "y": 3
-                },
-                {
-                    "x": 7,
-                    "y": 3
-                },
-                {
-                    "label": "LOWER",
-                    "x": 8,
-                    "y": 3,
-                    "w": 1.25
-                },
-                {
-                    "x": 9.25,
-                    "y": 3
-                },
-                {
-                    "x": 10.25,
-                    "y": 3
-                },
-                {
-                    "label": "RAISE",
-                    "x": 11.25,
-                    "y": 3,
-                    "w": 1.25
-                },
-                {
-                    "x": 12.5,
-                    "y": 3
-                },
-                {
-                    "x": 13.5,
-                    "y": 3
-                },
-                {
-                    "x": 14.5,
-                    "y": 3
-                },
-                {
-                    "x": 15.5,
-                    "y": 3
-                }
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [5, 1], "x": 1, "y": 0},
+                {"matrix": [5, 2], "x": 2, "y": 0},
+                {"matrix": [5, 3], "x": 3, "y": 0},
+                {"matrix": [0, 0], "x": 4, "y": 0},
+                {"matrix": [0, 1], "x": 5, "y": 0},
+                {"matrix": [0, 2], "x": 6, "y": 0},
+                {"matrix": [0, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [0, 5], "x": 9, "y": 0},
+                {"matrix": [0, 6], "x": 10, "y": 0},
+                {"matrix": [0, 7], "x": 11, "y": 0},
+                {"matrix": [0, 8], "x": 12, "y": 0},
+                {"matrix": [0, 9], "x": 13, "y": 0},
+                {"matrix": [0, 10], "x": 14, "y": 0},
+                {"matrix": [0, 11], "x": 15, "y": 0, "w": 1.5},
+
+                {"matrix": [4, 8], "x": 0, "y": 1},
+                {"matrix": [4, 9], "x": 1, "y": 1},
+                {"matrix": [4, 10], "x": 2, "y": 1},
+                {"matrix": [4, 11], "x": 3, "y": 1},
+                {"matrix": [1, 0], "x": 4, "y": 1, "w": 1.25},
+                {"matrix": [1, 1], "x": 5.25, "y": 1},
+                {"matrix": [1, 2], "x": 6.25, "y": 1},
+                {"matrix": [1, 3], "x": 7.25, "y": 1},
+                {"matrix": [1, 4], "x": 8.25, "y": 1},
+                {"matrix": [1, 5], "x": 9.25, "y": 1},
+                {"matrix": [1, 6], "x": 10.25, "y": 1},
+                {"matrix": [1, 7], "x": 11.25, "y": 1},
+                {"matrix": [1, 8], "x": 12.25, "y": 1},
+                {"matrix": [1, 9], "x": 13.25, "y": 1},
+                {"matrix": [1, 10], "x": 14.25, "y": 1},
+                {"matrix": [1, 11], "x": 15.25, "y": 1, "w": 1.25},
+
+                {"matrix": [4, 4], "x": 0, "y": 2},
+                {"matrix": [4, 5], "x": 1, "y": 2},
+                {"matrix": [4, 6], "x": 2, "y": 2},
+                {"matrix": [4, 7], "x": 3, "y": 2},
+                {"matrix": [2, 0], "x": 4, "y": 2, "w": 1.5},
+                {"matrix": [2, 1], "x": 5.5, "y": 2},
+                {"matrix": [2, 2], "x": 6.5, "y": 2},
+                {"matrix": [2, 3], "x": 7.5, "y": 2},
+                {"matrix": [2, 4], "x": 8.5, "y": 2},
+                {"matrix": [2, 5], "x": 9.5, "y": 2},
+                {"matrix": [2, 6], "x": 10.5, "y": 2},
+                {"matrix": [2, 7], "x": 11.5, "y": 2},
+                {"matrix": [2, 8], "x": 12.5, "y": 2},
+                {"matrix": [2, 9], "x": 13.5, "y": 2},
+                {"matrix": [2, 10], "x": 14.5, "y": 2},
+                {"matrix": [2, 11], "x": 15.5, "y": 2},
+
+                {"matrix": [4, 0], "x": 0, "y": 3},
+                {"matrix": [4, 1], "x": 1, "y": 3},
+                {"matrix": [4, 2], "x": 2, "y": 3},
+                {"matrix": [4, 3], "x": 3, "y": 3},
+                {"matrix": [3, 0], "x": 4, "y": 3},
+                {"matrix": [3, 1], "x": 5, "y": 3},
+                {"matrix": [3, 2], "x": 6, "y": 3},
+                {"matrix": [3, 3], "x": 7, "y": 3},
+                {"matrix": [3, 4], "x": 8, "y": 3, "w": 1.25},
+                {"matrix": [3, 5], "x": 9.25, "y": 3},
+                {"matrix": [3, 6], "x": 10.25, "y": 3},
+                {"matrix": [3, 7], "x": 11.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 8], "x": 12.5, "y": 3},
+                {"matrix": [3, 9], "x": 13.5, "y": 3},
+                {"matrix": [3, 10], "x": 14.5, "y": 3},
+                {"matrix": [3, 11], "x": 15.5, "y": 3}
             ]
         }
     }
+
 }

+ 0 - 42
keyboards/delikeeb/vaneelaex/vaneelaex.h

@@ -1,42 +0,0 @@
-/* Copyright 2020 noclew
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-/* This is a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_ss_6x12( \
-    k62, k63, k64, k65, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \
-    k58, k59, k60, k61, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, \
-    k54, k55, k56, k57, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, \
-    k50, k51, k52, k53, k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48 \
-) \
-{ \
-    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12 }, \
-    { k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24 }, \
-    { k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36 }, \
-    { k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
-    { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k61 }, \
-    { k62, k63, k64, k65, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
-}

Plik diff jest za duży
+ 0 - 1
keyboards/deltasplit75/v2/info.json


+ 0 - 55
keyboards/deltasplit75/v2/v2.h

@@ -1,55 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-//matrix is defined in a weird way here; the layout on both sides are asymmetrical, but the "matrix" is symmetrical but with empty gaps
-//the last column is defined as a separate row because the firmware currently doesnt support more than 8 columns (this layout has 9 columns per side) K45 and K110 are the Bs on both sides; K53 and K106 are extra keys for ISO
-#define LAYOUT_v2( \
-	K00,   K01,   K02,   K03,   K04,   K05,   K06,       K70,   K71,   K72,   K73,   K74,   K75,   K76,   K77,   K132, \
-	K10,   K11,   K12,   K13,   K14,   K15,   K16,       K80,   K81,   K82,   K83,   K84,   K85,   K86,   K87,   K133, \
-	K20,   K21,   K22,   K23,   K24,   K25,              K90,   K91,   K92,   K93,   K94,   K95,   K96,   K97,   K134, \
-	K30,   K31,   K32,   K33,   K34,   K35,              K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K135, \
-	K40,   K53,   K41,   K42,   K43,   K44,   K45,              K110,  K111,  K112,  K113,  K114,  K115,  K116,  K117,  K136, \
-	K50,   K51,   K52,          K54,   K55,              K120,  K121,  K122,  K123,                K126,  K127,  K137 \
-	) \
-	{ \
-		{ K00,   K01,   K02,   K03,   K04,   K05,   K06,   KC_NO}, \
-		{ K10,   K11,   K12,   K13,   K14,   K15,   K16,   KC_NO}, \
-		{ K20,   K21,   K22,   K23,   K24,   K25,   KC_NO, KC_NO}, \
-		{ K30,   K31,   K32,   K33,   K34,   K35,   KC_NO, KC_NO}, \
-		{ K40,   K41,   K42,   K43,   K44,   K45,   KC_NO, KC_NO}, \
-		{ K50,   K51,   K52,   K53,   K54,   K55,   KC_NO, KC_NO}, \
-		{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, \
-		{ K70  , K71,   K72,   K73,   K74,   K75,   K76,   K77}, \
-		{ K80,   K81,   K82,   K83,   K84,   K85,   K86,   K87}, \
-		{ K90,   K91,   K92,   K93,   K94,   K95,   K96,   K97}, \
-		{ K100,  K101,  K102,  K103,  K104,  K105,  K106, K107}, \
-		{ K110,  K111,  K112,  K113,  K114,  K115,  K116,  K117}, \
-		{ K120,  K121,  K122,  K123,  KC_NO, KC_NO, K126,  K127}, \
-		{ KC_NO, KC_NO, K132,  K133,  K134,  K135,  K136,  K137} \
-	}
-
-#define LAYOUT_protosplit( \
-	K00,   K01,   K02,   K03,   K04,   K05,   K06,       K70,   K71,   K72,   K73,   K74,   K75,   K76,   K77,   K132, \
-	K10,   K11,   K12,   K13,   K14,   K15,   K16,       K80,   K81,   K82,   K83,   K84,   K85,   K86,   K87,   K133, \
-	K20,   K21,   K22,   K23,   K24,   K25,              K90,   K91,   K92,   K93,   K94,   K95,   K96,   K97,   K134, \
-	K30,   K31,   K32,   K33,   K34,   K35,              K100,  K101,  K102,  K103,  K104,  K105,         K107,  K135, \
-	K40,   K41,   K42,   K43,   K44,   K45,              K110,  K111,  K112,  K113,  K114,  K115,  K116,  K117,  K136, \
-	K50,   K51,   K52,          K54,   K55,              K120,  K121,  K122,  K123,                K126,  K127,  K137 \
-	) \
-	{ \
-		{ K00,   K01,   K02,   K03,   K04,   K05,   K06,   KC_NO}, \
-		{ K10,   K11,   K12,   K13,   K14,   K15,   K16,   KC_NO}, \
-		{ K20,   K21,   K22,   K23,   K24,   K25,   KC_NO, KC_NO}, \
-		{ K30,   K31,   K32,   K33,   K34,   K35,   KC_NO, KC_NO}, \
-		{ K40,   K41,   K42,   K43,   K44,   K45,   KC_NO, KC_NO}, \
-		{ K50,   K51,   K52,   KC_NO, K54,   K55,   KC_NO, KC_NO}, \
-		{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, \
-		{ K70  , K71,   K72,   K73,   K74,   K75,   K76,   K77}, \
-		{ K80,   K81,   K82,   K83,   K84,   K85,   K86,   K87}, \
-		{ K90,   K91,   K92,   K93,   K94,   K95,   K96,   K97}, \
-		{ K100,  K101,  K102,  K103,  K104,  K105,  KC_NO, K107}, \
-		{ K110,  K111,  K112,  K113,  K114,  K115,  K116,  K117}, \
-		{ K120,  K121,  K122,  K123,  KC_NO, KC_NO, K126,  K127}, \
-		{ KC_NO, KC_NO, K132,  K133,  K134,  K135,  K136,  K137} \
-	}

+ 16 - 65
keyboards/dinofizz/fnrow/v1/info.json

@@ -18,71 +18,22 @@
   "layouts": {
     "LAYOUT_fn_row": {
       "layout": [
-        {
-          "label": "SW1",
-          "x": 0,
-          "y": 0
-        },
-        {
-          "label": "SW3",
-          "x": 2,
-          "y": 0
-        },
-        {
-          "label": "SW5",
-          "x": 3,
-          "y": 0
-        },
-        {
-          "label": "SW7",
-          "x": 4,
-          "y": 0
-        },
-        {
-          "label": "SW9",
-          "x": 5,
-          "y": 0
-        },
-        {
-          "label": "SW11",
-          "x": 6.5,
-          "y": 0
-        },
-        {
-          "label": "SW13",
-          "x": 7.5,
-          "y": 0
-        },
-        {
-          "label": "SW2",
-          "x": 8.5,
-          "y": 0
-        },
-        {
-          "label": "SW4",
-          "x": 9.5,
-          "y": 0
-        },
-        {
-          "label": "SW6",
-          "x": 11,
-          "y": 0
-        },
-        {
-          "label": "SW8",
-          "x": 12,
-          "y": 0
-        },
-        {
-          "label": "SW10",
-          "x": 13,
-          "y": 0
-        },
-        {
-          "label": "SW12",
-          "x": 14,
-          "y": 0
-        }
+        {"matrix": [0, 0], "x": 0, "y": 0},
+
+        {"matrix": [0, 1], "x": 2, "y": 0},
+        {"matrix": [0, 2], "x": 3, "y": 0},
+        {"matrix": [0, 3], "x": 4, "y": 0},
+        {"matrix": [0, 4], "x": 5, "y": 0},
+
+        {"matrix": [0, 5], "x": 6.5, "y": 0},
+        {"matrix": [0, 6], "x": 7.5, "y": 0},
+        {"matrix": [1, 0], "x": 8.5, "y": 0},
+        {"matrix": [1, 1], "x": 9.5, "y": 0},
+
+        {"matrix": [1, 2], "x": 11, "y": 0},
+        {"matrix": [1, 3], "x": 12, "y": 0},
+        {"matrix": [1, 4], "x": 13, "y": 0},
+        {"matrix": [1, 5], "x": 14, "y": 0}
       ]
     }
   }

+ 1 - 1
keyboards/dinofizz/fnrow/v1/v1.c

@@ -13,7 +13,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-#include "v1.h"
+#include "quantum.h"
 
 void keyboard_pre_init_kb(void) {
     // Immediately set the LED pin as an output and set it ON

+ 0 - 25
keyboards/dinofizz/fnrow/v1/v1.h

@@ -1,25 +0,0 @@
-/* Copyright 2021 Dino Fizzotti 
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_fn_row( \
-    K000,       K001, K002, K003, K004,    K005, K006, K007, K008,    K009, K010, K011, K012 \
-) { \
-    { K000,  K001,  K002,  K003,  K004,  K005,  K006, }, \
-    { K007,  K008,  K009,  K010,  K011,  K012,  KC_NO }, \
-}

+ 0 - 53
keyboards/drhigsby/bkf/bkf.h

@@ -1,53 +0,0 @@
-/* Copyright 2021 drhigsby
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-
-#define zzzz KC_NO
-
-#define LAYOUT_625uC( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k311, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111,        \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,         \
-    k300, k301,	k302,                k306,                k308, k309, k310           \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 },  \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 },   \
-    { k300, k301, k302, zzzz, zzzz, zzzz, k306, zzzz, k308, k309, k310, k311 }     \
-}
-
-#define LAYOUT_2x3uC( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k311, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111,        \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,         \
-    k300, k301, k302,          k304,       k306,          k308, k309, k310           \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111 },  \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211 },   \
-    { k300, k301, k302, zzzz, k304, zzzz, k306, zzzz, k308, k309, k310, k311 }     \
-}

+ 102 - 7
keyboards/drhigsby/bkf/info.json

@@ -21,13 +21,108 @@
   "processor": "atmega32u4",
   "bootloader": "caterina",
   "layouts": {
-       "LAYOUT_625uC": {
-            "layout": [{"label":"Tab", "x":0, "y":0, "w":1.5}, {"label":"Q", "x":1.5, "y":0}, {"label":"W", "x":2.5, "y":0}, {"label":"E", "x":3.5, "y":0}, {"label":"R", "x":4.5, "y":0}, {"label":"T", "x":5.5, "y":0}, {"label":"Y", "x":6.5, "y":0}, {"label":"U", "x":7.5, "y":0}, {"label":"I", "x":8.5, "y":0}, {"label":"O", "x":9.5, "y":0}, {"label":"P", "x":10.5, "y":0}, {"label":"{", "x":11.5, "y":0}, {"label":"}", "x":12.5, "y":0}, {"label":"Caps Lock", "x":0, "y":1, "w":1.75}, {"label":"A", "x":1.75, "y":1}, {"label":"S", "x":2.75, "y":1}, {"label":"D", "x":3.75, "y":1}, {"label":"F", "x":4.75, "y":1}, {"label":"G", "x":5.75, "y":1}, {"label":"H", "x":6.75, "y":1}, {"label":"J", "x":7.75, "y":1}, {"label":"K", "x":8.75, "y":1}, {"label":"L", "x":9.75, "y":1}, {"label":":", "x":10.75, "y":1}, {"label":"Control", "x":11.75, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":2.25}, {"label":"Z", "x":2.25, "y":2}, {"label":"X", "x":3.25, "y":2}, {"label":"C", "x":4.25, "y":2}, {"label":"V", "x":5.25, "y":2}, {"label":"B", "x":6.25, "y":2}, {"label":"N", "x":7.25, "y":2}, {"label":"M", "x":8.25, "y":2}, {"label":"<", "x":9.25, "y":2}, {"label":">", "x":10.25, "y":2}, {"label":"?", "x":11.25, "y":2}, {"label":"Shift", "x":12.25, "y":2, "w":1.25}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Win", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"label":"", "x":3.75, "y":3, "w":6.25}, {"label":"Alt", "x":10, "y":3, "w":1.25}, {"label":"Win", "x":11.25, "y":3}, {"label":"Menu", "x":12.25, "y":3, "w":1.25}]
-        },
+    "LAYOUT_625uC": {
+      "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+        {"matrix": [0, 1], "x": 1.5, "y": 0},
+        {"matrix": [0, 2], "x": 2.5, "y": 0},
+        {"matrix": [0, 3], "x": 3.5, "y": 0},
+        {"matrix": [0, 4], "x": 4.5, "y": 0},
+        {"matrix": [0, 5], "x": 5.5, "y": 0},
+        {"matrix": [0, 6], "x": 6.5, "y": 0},
+        {"matrix": [0, 7], "x": 7.5, "y": 0},
+        {"matrix": [0, 8], "x": 8.5, "y": 0},
+        {"matrix": [0, 9], "x": 9.5, "y": 0},
+        {"matrix": [0, 10], "x": 10.5, "y": 0},
+        {"matrix": [0, 11], "x": 11.5, "y": 0},
+        {"matrix": [3, 11], "x": 12.5, "y": 0},
 
-        "LAYOUT_2x3uC": {
-            "layout": [{"label":"Tab", "x":0, "y":0, "w":1.5}, {"label":"Q", "x":1.5, "y":0}, {"label":"W", "x":2.5, "y":0}, {"label":"E", "x":3.5, "y":0}, {"label":"R", "x":4.5, "y":0}, {"label":"T", "x":5.5, "y":0}, {"label":"Y", "x":6.5, "y":0}, {"label":"U", "x":7.5, "y":0}, {"label":"I", "x":8.5, "y":0}, {"label":"O", "x":9.5, "y":0}, {"label":"P", "x":10.5, "y":0}, {"label":"{", "x":11.5, "y":0}, {"label":"}", "x":12.5, "y":0}, {"label":"Caps Lock", "x":0, "y":1, "w":1.75}, {"label":"A", "x":1.75, "y":1}, {"label":"S", "x":2.75, "y":1}, {"label":"D", "x":3.75, "y":1}, {"label":"F", "x":4.75, "y":1}, {"label":"G", "x":5.75, "y":1}, {"label":"H", "x":6.75, "y":1}, {"label":"J", "x":7.75, "y":1}, {"label":"K", "x":8.75, "y":1}, {"label":"L", "x":9.75, "y":1}, {"label":":", "x":10.75, "y":1}, {"label":"Control", "x":11.75, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":2.25}, {"label":"Z", "x":2.25, "y":2}, {"label":"X", "x":3.25, "y":2}, {"label":"C", "x":4.25, "y":2}, {"label":"V", "x":5.25, "y":2}, {"label":"B", "x":6.25, "y":2}, {"label":"N", "x":7.25, "y":2}, {"label":"M", "x":8.25, "y":2}, {"label":"<", "x":9.25, "y":2}, {"label":">", "x":10.25, "y":2}, {"label":"?", "x":11.25, "y":2}, {"label":"Shift", "x":12.25, "y":2, "w":1.25}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Win", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"label":"", "x":3.75, "y":3, "w":3}, {"label":"", "x":6.75, "y":3, "w":3}, {"label":"Alt", "x":9.75, "y":3, "w":1.25}, {"label":"Win", "x":11, "y":3, "w":1.25}, {"label":"Menu", "x":12.25, "y":3, "w":1.25}]
-        }
-        
+        {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+        {"matrix": [1, 1], "x": 1.75, "y": 1},
+        {"matrix": [1, 2], "x": 2.75, "y": 1},
+        {"matrix": [1, 3], "x": 3.75, "y": 1},
+        {"matrix": [1, 4], "x": 4.75, "y": 1},
+        {"matrix": [1, 5], "x": 5.75, "y": 1},
+        {"matrix": [1, 6], "x": 6.75, "y": 1},
+        {"matrix": [1, 7], "x": 7.75, "y": 1},
+        {"matrix": [1, 8], "x": 8.75, "y": 1},
+        {"matrix": [1, 9], "x": 9.75, "y": 1},
+        {"matrix": [1, 10], "x": 10.75, "y": 1},
+        {"matrix": [1, 11], "x": 11.75, "y": 1, "w": 1.75},
+
+        {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25},
+        {"matrix": [2, 1], "x": 2.25, "y": 2},
+        {"matrix": [2, 2], "x": 3.25, "y": 2},
+        {"matrix": [2, 3], "x": 4.25, "y": 2},
+        {"matrix": [2, 4], "x": 5.25, "y": 2},
+        {"matrix": [2, 5], "x": 6.25, "y": 2},
+        {"matrix": [2, 6], "x": 7.25, "y": 2},
+        {"matrix": [2, 7], "x": 8.25, "y": 2},
+        {"matrix": [2, 8], "x": 9.25, "y": 2},
+        {"matrix": [2, 9], "x": 10.25, "y": 2},
+        {"matrix": [2, 10], "x": 11.25, "y": 2},
+        {"matrix": [2, 11], "x": 12.25, "y": 2, "w": 1.25},
+
+        {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+        {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25},
+        {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25},
+        {"matrix": [3, 6], "x": 3.75, "y": 3, "w": 6.25},
+        {"matrix": [3, 8], "x": 10, "y": 3, "w": 1.25},
+        {"matrix": [3, 9], "x": 11.25, "y": 3},
+        {"matrix": [3, 10], "x": 12.25, "y": 3, "w": 1.25}
+      ]
+    },
+    "LAYOUT_2x3uC": {
+      "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+        {"matrix": [0, 1], "x": 1.5, "y": 0},
+        {"matrix": [0, 2], "x": 2.5, "y": 0},
+        {"matrix": [0, 3], "x": 3.5, "y": 0},
+        {"matrix": [0, 4], "x": 4.5, "y": 0},
+        {"matrix": [0, 5], "x": 5.5, "y": 0},
+        {"matrix": [0, 6], "x": 6.5, "y": 0},
+        {"matrix": [0, 7], "x": 7.5, "y": 0},
+        {"matrix": [0, 8], "x": 8.5, "y": 0},
+        {"matrix": [0, 9], "x": 9.5, "y": 0},
+        {"matrix": [0, 10], "x": 10.5, "y": 0},
+        {"matrix": [0, 11], "x": 11.5, "y": 0},
+        {"matrix": [3, 11], "x": 12.5, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+        {"matrix": [1, 1], "x": 1.75, "y": 1},
+        {"matrix": [1, 2], "x": 2.75, "y": 1},
+        {"matrix": [1, 3], "x": 3.75, "y": 1},
+        {"matrix": [1, 4], "x": 4.75, "y": 1},
+        {"matrix": [1, 5], "x": 5.75, "y": 1},
+        {"matrix": [1, 6], "x": 6.75, "y": 1},
+        {"matrix": [1, 7], "x": 7.75, "y": 1},
+        {"matrix": [1, 8], "x": 8.75, "y": 1},
+        {"matrix": [1, 9], "x": 9.75, "y": 1},
+        {"matrix": [1, 10], "x": 10.75, "y": 1},
+        {"matrix": [1, 11], "x": 11.75, "y": 1, "w": 1.75},
+
+        {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25},
+        {"matrix": [2, 1], "x": 2.25, "y": 2},
+        {"matrix": [2, 2], "x": 3.25, "y": 2},
+        {"matrix": [2, 3], "x": 4.25, "y": 2},
+        {"matrix": [2, 4], "x": 5.25, "y": 2},
+        {"matrix": [2, 5], "x": 6.25, "y": 2},
+        {"matrix": [2, 6], "x": 7.25, "y": 2},
+        {"matrix": [2, 7], "x": 8.25, "y": 2},
+        {"matrix": [2, 8], "x": 9.25, "y": 2},
+        {"matrix": [2, 9], "x": 10.25, "y": 2},
+        {"matrix": [2, 10], "x": 11.25, "y": 2},
+        {"matrix": [2, 11], "x": 12.25, "y": 2, "w": 1.25},
+
+        {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+        {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25},
+        {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25},
+        {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 3},
+        {"matrix": [3, 6], "x": 6.75, "y": 3, "w": 3},
+        {"matrix": [3, 8], "x": 9.75, "y": 3, "w": 1.25},
+        {"matrix": [3, 9], "x": 11, "y": 3, "w": 1.25},
+        {"matrix": [3, 10], "x": 12.25, "y": 3, "w": 1.25}
+      ]
     }
+  }
 }

+ 228 - 19
keyboards/drhigsby/packrat/info.json

@@ -21,24 +21,233 @@
   "processor": "atmega32u4",
   "bootloader": "caterina",
   "layouts": {
-       "LAYOUT_3uc": {
-            "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3, "w":1.25}, {"label":"Alt", "x":1.75, "y":3, "w":1.25}, {"label":"Raise", "x":3, "y":3}, {"label":"", "x":4, "y":3, "w":3}, {"label":"Lower", "x":7, "y":3}, {"label":"Win", "x":8, "y":3, "w":1.25}, {"label":"Fn", "x":9.25, "y":3, "w":1.25}]
-        },
-
-       "LAYOUT_2x2uc": {
-            "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3, "w":1.25}, {"label":"Alt", "x":1.75, "y":3, "w":1.25}, {"label":"", "x":3, "y":3, "w":2}, {"label":"Any", "x":5, "y":3}, {"label":"", "x":6, "y":3, "w":2}, {"label":"Win", "x":8, "y":3, "w":1.25}, {"label":"Fn", "x":9.25, "y":3, "w":1.25}]
-        },
-    
-       "LAYOUT_7uc": {
-            "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3, "w":1.5}, {"label":"", "x":2, "y":3, "w":7}, {"label":"Alt", "x":9, "y":3, "w":1.5}]
-        },
-
-        "LAYOUT_2x3uc": {
-            "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3}, {"label":"Alt", "x":1.5, "y":3}, {"label":"", "x":2.5, "y":3, "w":3}, {"label":"", "x":5.5, "y":3, "w":3}, {"label":"Win", "x":8.5, "y":3}, {"label":"Fn", "x":9.5, "y":3}]
-        },
-
-        "LAYOUT_6uc": {
-            "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"KNOB!", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"Any", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":":", "x":10, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"Any", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":"<", "x":8, "y":2}, {"label":">", "x":9, "y":2}, {"label":"?", "x":10, "y":2}, {"label":"Ctrl", "x":0.5, "y":3}, {"label":"Alt", "x":1.5, "y":3}, {"label":"", "x":2.5, "y":3, "w":6}, {"label":"Win", "x":8.5, "y":3}, {"label":"Fn", "x":9.5, "y":3}]
-        }
+    "LAYOUT_3uc": {
+      "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+        {"matrix": [0, 5], "x": 5, "y": 0},
+        {"matrix": [0, 6], "x": 6, "y": 0},
+        {"matrix": [0, 7], "x": 7, "y": 0},
+        {"matrix": [0, 8], "x": 8, "y": 0},
+        {"matrix": [0, 9], "x": 9, "y": 0},
+        {"matrix": [0, 10], "x": 10, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1},
+        {"matrix": [1, 1], "x": 1, "y": 1},
+        {"matrix": [1, 2], "x": 2, "y": 1},
+        {"matrix": [1, 3], "x": 3, "y": 1},
+        {"matrix": [1, 4], "x": 4, "y": 1},
+        {"matrix": [1, 5], "x": 5, "y": 1},
+        {"matrix": [1, 6], "x": 6, "y": 1},
+        {"matrix": [1, 7], "x": 7, "y": 1},
+        {"matrix": [1, 8], "x": 8, "y": 1},
+        {"matrix": [1, 9], "x": 9, "y": 1},
+        {"matrix": [1, 10], "x": 10, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2},
+        {"matrix": [2, 1], "x": 1, "y": 2},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [2, 3], "x": 3, "y": 2},
+        {"matrix": [2, 4], "x": 4, "y": 2},
+        {"matrix": [2, 5], "x": 5, "y": 2},
+        {"matrix": [2, 6], "x": 6, "y": 2},
+        {"matrix": [2, 7], "x": 7, "y": 2},
+        {"matrix": [2, 8], "x": 8, "y": 2},
+        {"matrix": [2, 9], "x": 9, "y": 2},
+        {"matrix": [2, 10], "x": 10, "y": 2},
+
+        {"matrix": [3, 1], "x": 0.5, "y": 3, "w": 1.25},
+        {"matrix": [3, 2], "x": 1.75, "y": 3, "w": 1.25},
+        {"matrix": [3, 3], "x": 3, "y": 3},
+        {"matrix": [3, 5], "x": 4, "y": 3, "w": 3},
+        {"matrix": [3, 7], "x": 7, "y": 3},
+        {"matrix": [3, 8], "x": 8, "y": 3, "w": 1.25},
+        {"matrix": [3, 9], "x": 9.25, "y": 3, "w": 1.25}
+      ]
+    },
+    "LAYOUT_2x2uc": {
+      "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+        {"matrix": [0, 5], "x": 5, "y": 0},
+        {"matrix": [0, 6], "x": 6, "y": 0},
+        {"matrix": [0, 7], "x": 7, "y": 0},
+        {"matrix": [0, 8], "x": 8, "y": 0},
+        {"matrix": [0, 9], "x": 9, "y": 0},
+        {"matrix": [0, 10], "x": 10, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1},
+        {"matrix": [1, 1], "x": 1, "y": 1},
+        {"matrix": [1, 2], "x": 2, "y": 1},
+        {"matrix": [1, 3], "x": 3, "y": 1},
+        {"matrix": [1, 4], "x": 4, "y": 1},
+        {"matrix": [1, 5], "x": 5, "y": 1},
+        {"matrix": [1, 6], "x": 6, "y": 1},
+        {"matrix": [1, 7], "x": 7, "y": 1},
+        {"matrix": [1, 8], "x": 8, "y": 1},
+        {"matrix": [1, 9], "x": 9, "y": 1},
+        {"matrix": [1, 10], "x": 10, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2},
+        {"matrix": [2, 1], "x": 1, "y": 2},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [2, 3], "x": 3, "y": 2},
+        {"matrix": [2, 4], "x": 4, "y": 2},
+        {"matrix": [2, 5], "x": 5, "y": 2},
+        {"matrix": [2, 6], "x": 6, "y": 2},
+        {"matrix": [2, 7], "x": 7, "y": 2},
+        {"matrix": [2, 8], "x": 8, "y": 2},
+        {"matrix": [2, 9], "x": 9, "y": 2},
+        {"matrix": [2, 10], "x": 10, "y": 2},
+
+        {"matrix": [3, 1], "x": 0.5, "y": 3, "w": 1.25},
+        {"matrix": [3, 2], "x": 1.75, "y": 3, "w": 1.25},
+        {"matrix": [3, 3], "x": 3, "y": 3, "w": 2},
+        {"matrix": [3, 5], "x": 5, "y": 3},
+        {"matrix": [3, 7], "x": 6, "y": 3, "w": 2},
+        {"matrix": [3, 8], "x": 8, "y": 3, "w": 1.25},
+        {"matrix": [3, 9], "x": 9.25, "y": 3, "w": 1.25}
+      ]
+    },
+    "LAYOUT_7uc": {
+      "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+        {"matrix": [0, 5], "x": 5, "y": 0},
+        {"matrix": [0, 6], "x": 6, "y": 0},
+        {"matrix": [0, 7], "x": 7, "y": 0},
+        {"matrix": [0, 8], "x": 8, "y": 0},
+        {"matrix": [0, 9], "x": 9, "y": 0},
+        {"matrix": [0, 10], "x": 10, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1},
+        {"matrix": [1, 1], "x": 1, "y": 1},
+        {"matrix": [1, 2], "x": 2, "y": 1},
+        {"matrix": [1, 3], "x": 3, "y": 1},
+        {"matrix": [1, 4], "x": 4, "y": 1},
+        {"matrix": [1, 5], "x": 5, "y": 1},
+        {"matrix": [1, 6], "x": 6, "y": 1},
+        {"matrix": [1, 7], "x": 7, "y": 1},
+        {"matrix": [1, 8], "x": 8, "y": 1},
+        {"matrix": [1, 9], "x": 9, "y": 1},
+        {"matrix": [1, 10], "x": 10, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2},
+        {"matrix": [2, 1], "x": 1, "y": 2},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [2, 3], "x": 3, "y": 2},
+        {"matrix": [2, 4], "x": 4, "y": 2},
+        {"matrix": [2, 5], "x": 5, "y": 2},
+        {"matrix": [2, 6], "x": 6, "y": 2},
+        {"matrix": [2, 7], "x": 7, "y": 2},
+        {"matrix": [2, 8], "x": 8, "y": 2},
+        {"matrix": [2, 9], "x": 9, "y": 2},
+        {"matrix": [2, 10], "x": 10, "y": 2},
+
+        {"matrix": [3, 1], "x": 0.5, "y": 3, "w": 1.5},
+        {"matrix": [3, 5], "x": 2, "y": 3, "w": 7},
+        {"matrix": [3, 9], "x": 9, "y": 3, "w": 1.5}
+      ]
+    },
+    "LAYOUT_2x3uc": {
+      "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+        {"matrix": [0, 5], "x": 5, "y": 0},
+        {"matrix": [0, 6], "x": 6, "y": 0},
+        {"matrix": [0, 7], "x": 7, "y": 0},
+        {"matrix": [0, 8], "x": 8, "y": 0},
+        {"matrix": [0, 9], "x": 9, "y": 0},
+        {"matrix": [0, 10], "x": 10, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1},
+        {"matrix": [1, 1], "x": 1, "y": 1},
+        {"matrix": [1, 2], "x": 2, "y": 1},
+        {"matrix": [1, 3], "x": 3, "y": 1},
+        {"matrix": [1, 4], "x": 4, "y": 1},
+        {"matrix": [1, 5], "x": 5, "y": 1},
+        {"matrix": [1, 6], "x": 6, "y": 1},
+        {"matrix": [1, 7], "x": 7, "y": 1},
+        {"matrix": [1, 8], "x": 8, "y": 1},
+        {"matrix": [1, 9], "x": 9, "y": 1},
+        {"matrix": [1, 10], "x": 10, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2},
+        {"matrix": [2, 1], "x": 1, "y": 2},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [2, 3], "x": 3, "y": 2},
+        {"matrix": [2, 4], "x": 4, "y": 2},
+        {"matrix": [2, 5], "x": 5, "y": 2},
+        {"matrix": [2, 6], "x": 6, "y": 2},
+        {"matrix": [2, 7], "x": 7, "y": 2},
+        {"matrix": [2, 8], "x": 8, "y": 2},
+        {"matrix": [2, 9], "x": 9, "y": 2},
+        {"matrix": [2, 10], "x": 10, "y": 2},
+
+        {"matrix": [3, 1], "x": 0.5, "y": 3},
+        {"matrix": [3, 2], "x": 1.5, "y": 3},
+        {"matrix": [3, 3], "x": 2.5, "y": 3, "w": 3},
+        {"matrix": [3, 7], "x": 5.5, "y": 3, "w": 3},
+        {"matrix": [3, 8], "x": 8.5, "y": 3},
+        {"matrix": [3, 9], "x": 9.5, "y": 3}
+      ]
+    },
+    "LAYOUT_6uc": {
+      "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+        {"matrix": [0, 5], "x": 5, "y": 0},
+        {"matrix": [0, 6], "x": 6, "y": 0},
+        {"matrix": [0, 7], "x": 7, "y": 0},
+        {"matrix": [0, 8], "x": 8, "y": 0},
+        {"matrix": [0, 9], "x": 9, "y": 0},
+        {"matrix": [0, 10], "x": 10, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1},
+        {"matrix": [1, 1], "x": 1, "y": 1},
+        {"matrix": [1, 2], "x": 2, "y": 1},
+        {"matrix": [1, 3], "x": 3, "y": 1},
+        {"matrix": [1, 4], "x": 4, "y": 1},
+        {"matrix": [1, 5], "x": 5, "y": 1},
+        {"matrix": [1, 6], "x": 6, "y": 1},
+        {"matrix": [1, 7], "x": 7, "y": 1},
+        {"matrix": [1, 8], "x": 8, "y": 1},
+        {"matrix": [1, 9], "x": 9, "y": 1},
+        {"matrix": [1, 10], "x": 10, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2},
+        {"matrix": [2, 1], "x": 1, "y": 2},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [2, 3], "x": 3, "y": 2},
+        {"matrix": [2, 4], "x": 4, "y": 2},
+        {"matrix": [2, 5], "x": 5, "y": 2},
+        {"matrix": [2, 6], "x": 6, "y": 2},
+        {"matrix": [2, 7], "x": 7, "y": 2},
+        {"matrix": [2, 8], "x": 8, "y": 2},
+        {"matrix": [2, 9], "x": 9, "y": 2},
+        {"matrix": [2, 10], "x": 10, "y": 2},
+
+        {"matrix": [3, 1], "x": 0.5, "y": 3},
+        {"matrix": [3, 2], "x": 1.5, "y": 3},
+        {"matrix": [3, 5], "x": 2.5, "y": 3, "w": 6},
+        {"matrix": [3, 8], "x": 8.5, "y": 3},
+        {"matrix": [3, 9], "x": 9.5, "y": 3}
+      ]
     }
+  }
 }

+ 0 - 16
keyboards/drhigsby/packrat/packrat.c

@@ -1,16 +0,0 @@
-/* Copyright 2021 drhigsby
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "packrat.h"

+ 0 - 79
keyboards/drhigsby/packrat/packrat.h

@@ -1,79 +0,0 @@
-/* Copyright 2021 drhigsby
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_3uc( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110,  \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210,   \
-          k301, k302, k303,       k305,       k307, k308, k309           \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 },  \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 },   \
-    { KC_NO, k301, k302, k303, KC_NO, k305, KC_NO, k307, k308, k309 }        \
-}
-
-#define LAYOUT_2x2uc( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110,  \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210,   \
-          k301, k302, k303,       k305,       k307, k308, k309           \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 },  \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 },   \
-    { KC_NO, k301, k302, k303, KC_NO, k305, KC_NO, k307, k308, k309 }        \
-}
-
-#define LAYOUT_7uc( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110,  \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210,   \
-          k301,                   k305,                   k309           \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 },  \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 },   \
-    { KC_NO, k301, KC_NO, KC_NO, KC_NO, k305, KC_NO, KC_NO, KC_NO, k309 }    \
-}
-
-#define LAYOUT_2x3uc( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110,  \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210,   \
-          k301, k302, k303,                   k307, k308, k309           \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 },  \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 },   \
-    { KC_NO, k301, k302, k303, KC_NO, KC_NO, KC_NO, k307, k308, k309 }        \
-}
-
-#define LAYOUT_6uc( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110,  \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210,   \
-          k301, k302,             k305,             k308, k309           \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110 },  \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210 },   \
-    { KC_NO, k301, k302, KC_NO, KC_NO, k305, KC_NO, KC_NO, k308, k309 }        \
-}

+ 99 - 88
keyboards/ebastler/isometria_75/rev1/info.json

@@ -32,94 +32,105 @@
     "layouts": {
         "LAYOUT_iso": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PRINT SCREEN", "x":14, "y":0},
-                {"label":"PLAY/PAUSE", "x":15.25, "y":0},
-
-                {"label":"`", "x":0, "y":1.25},
-                {"label":"1", "x":1, "y":1.25},
-                {"label":"2", "x":2, "y":1.25},
-                {"label":"3", "x":3, "y":1.25},
-                {"label":"4", "x":4, "y":1.25},
-                {"label":"5", "x":5, "y":1.25},
-                {"label":"6", "x":6, "y":1.25},
-                {"label":"7", "x":7, "y":1.25},
-                {"label":"8", "x":8, "y":1.25},
-                {"label":"9", "x":9, "y":1.25},
-                {"label":"0", "x":10, "y":1.25},
-                {"label":"-", "x":11, "y":1.25},
-                {"label":"=", "x":12, "y":1.25},
-                {"label":"BACKSPACE", "x":13, "y":1.25, "w":2},
-                {"label":"HOME", "x":15.25, "y":1.25},
-
-                {"label":"TAB", "x":0, "y":2.25, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.25},
-                {"label":"W", "x":2.5, "y":2.25},
-                {"label":"E", "x":3.5, "y":2.25},
-                {"label":"R", "x":4.5, "y":2.25},
-                {"label":"T", "x":5.5, "y":2.25},
-                {"label":"Y", "x":6.5, "y":2.25},
-                {"label":"U", "x":7.5, "y":2.25},
-                {"label":"I", "x":8.5, "y":2.25},
-                {"label":"O", "x":9.5, "y":2.25},
-                {"label":"P", "x":10.5, "y":2.25},
-                {"label":"[", "x":11.5, "y":2.25},
-                {"label":"]", "x":12.5, "y":2.25},
-                {"label":"PAGE UP", "x":15.25, "y":2.25},
-
-                {"label":"CAPS LOCK", "x":0, "y":3.25, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.25},
-                {"label":"S", "x":2.75, "y":3.25},
-                {"label":"D", "x":3.75, "y":3.25},
-                {"label":"F", "x":4.75, "y":3.25},
-                {"label":"G", "x":5.75, "y":3.25},
-                {"label":"H", "x":6.75, "y":3.25},
-                {"label":"J", "x":7.75, "y":3.25},
-                {"label":"K", "x":8.75, "y":3.25},
-                {"label":"L", "x":9.75, "y":3.25},
-                {"label":";", "x":10.75, "y":3.25},
-                {"label":"'", "x":11.75, "y":3.25},
-                {"label":"ISO #", "x":12.75, "y":3.25},
-                {"label":"ENTER", "x":13.75, "y":2.25, "w":1.25, "h":2},
-                {"label":"PAGE DOWN", "x":15.25, "y":3.25},
-
-                {"label":"SHIFT", "x":0, "y":4.25, "w":1.25},
-                {"label":"ISO \\", "x":1.25, "y":4.25},
-                {"label":"Z", "x":2.25, "y":4.25},
-                {"label":"X", "x":3.25, "y":4.25},
-                {"label":"C", "x":4.25, "y":4.25},
-                {"label":"V", "x":5.25, "y":4.25},
-                {"label":"B", "x":6.25, "y":4.25},
-                {"label":"N", "x":7.25, "y":4.25},
-                {"label":"M", "x":8.25, "y":4.25},
-                {"label":",", "x":9.25, "y":4.25},
-                {"label":".", "x":10.25, "y":4.25},
-                {"label":"/", "x":11.25, "y":4.25},
-                {"label":"SHIFT", "x":12.25, "y":4.25, "w":1.5},
-                {"label":"UP", "x":14, "y":4.5},
-                {"label":"END", "x":15.25, "y":4.25},
-
-                {"label":"CTRL", "x":0, "y":5.25, "w":1.25},
-                {"label":"SUPER", "x":1.25, "y":5.25, "w":1.25},
-                {"label":"ALT", "x":2.5, "y":5.25, "w":1.25},
-                {"label":"SPACE", "x":3.75, "y":5.25, "w":6.25},
-                {"label":"ALT", "x":10, "y":5.25, "w":1.5},
-                {"label":"FUNC", "x":11.5, "y":5.25, "w":1.25},
-                {"label":"LEFT", "x":13, "y":5.5},
-                {"label":"DOWN", "x":14, "y":5.5},
-                {"label":"RIGHT", "x":15, "y":5.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 6], "x": 5.5, "y": 0},
+                {"matrix": [0, 7], "x": 6.5, "y": 0},
+                {"matrix": [0, 8], "x": 7.5, "y": 0},
+                {"matrix": [0, 9], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 9.75, "y": 0},
+                {"matrix": [0, 11], "x": 10.75, "y": 0},
+                {"matrix": [0, 12], "x": 11.75, "y": 0},
+                {"matrix": [0, 13], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 14], "x": 14, "y": 0},
+
+                {"matrix": [0, 15], "x": 15.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.25},
+                {"matrix": [1, 1], "x": 1, "y": 1.25},
+                {"matrix": [1, 2], "x": 2, "y": 1.25},
+                {"matrix": [1, 3], "x": 3, "y": 1.25},
+                {"matrix": [1, 4], "x": 4, "y": 1.25},
+                {"matrix": [1, 5], "x": 5, "y": 1.25},
+                {"matrix": [1, 6], "x": 6, "y": 1.25},
+                {"matrix": [1, 7], "x": 7, "y": 1.25},
+                {"matrix": [1, 8], "x": 8, "y": 1.25},
+                {"matrix": [1, 9], "x": 9, "y": 1.25},
+                {"matrix": [1, 10], "x": 10, "y": 1.25},
+                {"matrix": [1, 11], "x": 11, "y": 1.25},
+                {"matrix": [1, 12], "x": 12, "y": 1.25},
+                {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2},
+
+                {"matrix": [1, 15], "x": 15.25, "y": 1.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+                {"matrix": [2, 2], "x": 1.5, "y": 2.25},
+                {"matrix": [2, 3], "x": 2.5, "y": 2.25},
+                {"matrix": [2, 4], "x": 3.5, "y": 2.25},
+                {"matrix": [2, 5], "x": 4.5, "y": 2.25},
+                {"matrix": [2, 6], "x": 5.5, "y": 2.25},
+                {"matrix": [2, 7], "x": 6.5, "y": 2.25},
+                {"matrix": [2, 8], "x": 7.5, "y": 2.25},
+                {"matrix": [2, 9], "x": 8.5, "y": 2.25},
+                {"matrix": [2, 10], "x": 9.5, "y": 2.25},
+                {"matrix": [2, 11], "x": 10.5, "y": 2.25},
+                {"matrix": [2, 12], "x": 11.5, "y": 2.25},
+                {"matrix": [2, 13], "x": 12.5, "y": 2.25},
+
+                {"matrix": [2, 15], "x": 15.25, "y": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+                {"matrix": [3, 2], "x": 1.75, "y": 3.25},
+                {"matrix": [3, 3], "x": 2.75, "y": 3.25},
+                {"matrix": [3, 4], "x": 3.75, "y": 3.25},
+                {"matrix": [3, 5], "x": 4.75, "y": 3.25},
+                {"matrix": [3, 6], "x": 5.75, "y": 3.25},
+                {"matrix": [3, 7], "x": 6.75, "y": 3.25},
+                {"matrix": [3, 8], "x": 7.75, "y": 3.25},
+                {"matrix": [3, 9], "x": 8.75, "y": 3.25},
+                {"matrix": [3, 10], "x": 9.75, "y": 3.25},
+                {"matrix": [3, 11], "x": 10.75, "y": 3.25},
+                {"matrix": [3, 12], "x": 11.75, "y": 3.25},
+                {"matrix": [3, 13], "x": 12.75, "y": 3.25},
+                {"matrix": [3, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 15], "x": 15.25, "y": 3.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+                {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.5},
+
+                {"matrix": [4, 14], "x": 14, "y": 4.5},
+
+                {"matrix": [4, 15], "x": 15.25, "y": 4.25},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+                {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.5},
+                {"matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.25},
+
+                {"matrix": [5, 13], "x": 13, "y": 5.5},
+                {"matrix": [5, 14], "x": 14, "y": 5.5},
+                {"matrix": [5, 15], "x": 15, "y": 5.5}
             ]
         }
     }

+ 0 - 35
keyboards/ebastler/isometria_75/rev1/rev1.h

@@ -1,35 +0,0 @@
-/* Copyright 2020 Moritz Plattner
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_iso( \
-	K000, K001, K002, K003, K004,       K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,       K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \
-	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
-	K500, K501, K502,                   K506,                   K510, K511,       K513, K514, K515  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  KC_NO, K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 } , \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, K114,  K115 } , \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  KC_NO, K215 } , \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  K314,  K315 } , \
-	{ K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 } , \
-	{ K500,  K501,  K502,  KC_NO, KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  K511,  KC_NO, K513,  K514,  K515 }  \
-}

+ 61 - 52
keyboards/ergoslab/rev1/info.json

@@ -24,58 +24,67 @@
   "layouts": {
     "LAYOUT_ergoslab": {
       "layout": [
-        {"label":"Q", "x":0, "y":0.625},
-        {"label":"W", "x":1, "y":0.125},
-        {"label":"E", "x":2, "y":0},
-        {"label":"R", "x":3, "y":0.125},
-        {"label":"T", "x":4, "y":0.25},
-        {"label":"Y", "x":8, "y":0.25},
-        {"label":"U", "x":9, "y":0.125},
-        {"label":"I", "x":10, "y":0},
-        {"label":"O", "x":11, "y":0.125},
-        {"label":"P", "x":12, "y":0.625},
-        {"label":"A", "x":0, "y":1.625},
-        {"label":"S", "x":1, "y":1.125},
-        {"label":"D", "x":2, "y":1},
-        {"label":"F", "x":3, "y":1.125},
-        {"label":"G", "x":4, "y":1.25},
-        {"label":"H", "x":8, "y":1.25},
-        {"label":"J", "x":9, "y":1.125},
-        {"label":"K", "x":10, "y":1},
-        {"label":"L", "x":11, "y":1.125},
-        {"label":";", "x":12, "y":1.625},
-        {"label":"Z", "x":0, "y":2.625},
-        {"label":"X", "x":1, "y":2.125},
-        {"label":"C", "x":2, "y":2},
-        {"label":"V", "x":3, "y":2.125},
-        {"label":"B", "x":4, "y":2.25},
-        {"label":"N", "x":8, "y":2.25},
-        {"label":"M", "x":9, "y":2.125},
-        {"label":",", "x":10, "y":2},
-        {"label":".", "x":11, "y":2.125},
-        {"label":"/", "x":12, "y":2.625},
-        {"label":"'", "x":0, "y":3.625},
-        {"label":"Alt", "x":1, "y":3.125},
-        {"label":"Del", "x":2, "y":3},
-        {"label":"Enter", "x":3, "y":3.125},
-        {"label":"Shift", "x":4, "y":3.25},
-        {"label":"Ctrl", "x":5, "y":3.25},
-        {"label":"Numb", "x":7, "y":3.25},
-        {"label":"Space", "x":8, "y":3.25},
-        {"label":"Left", "x":9, "y":3.125},
-        {"label":"Down", "x":10, "y":3},
-        {"label":"Up", "x":11, "y":3.125},
-        {"label":"Right", "x":12, "y":3.625},
-        {"label":"[", "x":1, "y":4.25},
-        {"label":"(", "x":2, "y":4.25},
-        {"label":"Esc", "x":3, "y":4.25},
-        {"label":"Media", "x":4, "y":4.25},
-        {"label":"GUI", "x":5, "y":4.25},
-        {"label":"Tab", "x":7, "y":4.25},
-        {"label":"Mouse", "x":8, "y":4.25},
-        {"label":"Bspc", "x":9, "y":4.25},
-        {"label":")", "x":10, "y":4.25},
-        {"label":"]", "x":11, "y":4.25}
+        {"matrix": [0, 0], "x": 0, "y": 0.625},
+        {"matrix": [0, 1], "x": 1, "y": 0.125},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0.125},
+        {"matrix": [0, 4], "x": 4, "y": 0.25},
+
+        {"matrix": [5, 4], "x": 8, "y": 0.25},
+        {"matrix": [5, 3], "x": 9, "y": 0.125},
+        {"matrix": [5, 2], "x": 10, "y": 0},
+        {"matrix": [5, 1], "x": 11, "y": 0.125},
+        {"matrix": [5, 0], "x": 12, "y": 0.625},
+
+        {"matrix": [1, 0], "x": 0, "y": 1.625},
+        {"matrix": [1, 1], "x": 1, "y": 1.125},
+        {"matrix": [1, 2], "x": 2, "y": 1},
+        {"matrix": [1, 3], "x": 3, "y": 1.125},
+        {"matrix": [1, 4], "x": 4, "y": 1.25},
+
+        {"matrix": [6, 4], "x": 8, "y": 1.25},
+        {"matrix": [6, 3], "x": 9, "y": 1.125},
+        {"matrix": [6, 2], "x": 10, "y": 1},
+        {"matrix": [6, 1], "x": 11, "y": 1.125},
+        {"matrix": [6, 0], "x": 12, "y": 1.625},
+
+        {"matrix": [2, 0], "x": 0, "y": 2.625},
+        {"matrix": [2, 1], "x": 1, "y": 2.125},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [2, 3], "x": 3, "y": 2.125},
+        {"matrix": [2, 4], "x": 4, "y": 2.25},
+
+        {"matrix": [7, 4], "x": 8, "y": 2.25},
+        {"matrix": [7, 3], "x": 9, "y": 2.125},
+        {"matrix": [7, 2], "x": 10, "y": 2},
+        {"matrix": [7, 1], "x": 11, "y": 2.125},
+        {"matrix": [7, 0], "x": 12, "y": 2.625},
+
+        {"matrix": [3, 0], "x": 0, "y": 3.625},
+        {"matrix": [3, 1], "x": 1, "y": 3.125},
+        {"matrix": [3, 2], "x": 2, "y": 3},
+        {"matrix": [3, 3], "x": 3, "y": 3.125},
+        {"matrix": [3, 4], "x": 4, "y": 3.25},
+        {"matrix": [3, 5], "x": 5, "y": 3.25},
+
+        {"matrix": [8, 5], "x": 7, "y": 3.25},
+        {"matrix": [8, 4], "x": 8, "y": 3.25},
+        {"matrix": [8, 3], "x": 9, "y": 3.125},
+        {"matrix": [8, 2], "x": 10, "y": 3},
+        {"matrix": [8, 1], "x": 11, "y": 3.125},
+        {"matrix": [8, 0], "x": 12, "y": 3.625},
+
+        {"matrix": [4, 1], "x": 1, "y": 4.25},
+        {"matrix": [4, 2], "x": 2, "y": 4.25},
+        {"matrix": [4, 3], "x": 3, "y": 4.25},
+        {"matrix": [4, 4], "x": 4, "y": 4.25},
+        {"matrix": [4, 5], "x": 5, "y": 4.25},
+
+        {"matrix": [9, 5], "x": 7, "y": 4.25},
+        {"matrix": [9, 4], "x": 8, "y": 4.25},
+        {"matrix": [9, 3], "x": 9, "y": 4.25},
+        {"matrix": [9, 2], "x": 10, "y": 4.25},
+        {"matrix": [9, 1], "x": 11, "y": 4.25}
       ]
     }
   }

+ 1 - 1
keyboards/ergoslab/rev1/rev1.c

@@ -1,4 +1,4 @@
-#include "rev1.h"
+#include "quantum.h"
 
 #ifdef SWAP_HANDS_ENABLE
 __attribute__ ((weak))

+ 0 - 22
keyboards/ergoslab/rev1/rev1.h

@@ -1,22 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ergoslab( \
-	L00, L01, L02, L03, L04,           R04, R03, R02, R01, R00, \
-	L10, L11, L12, L13, L14,           R14, R13, R12, R11, R10, \
-	L20, L21, L22, L23, L24,           R24, R23, R22, R21, R20, \
-	L30, L31, L32, L33, L34, L35, R35, R34, R33, R32, R31, R30, \
-	     L41, L42, L43, L44, L45, R45, R44, R43, R42, R41       \
-) { \
-  { L00,   L01,   L02, L03, L04,   KC_NO }, \
-	{ L10,   L11,   L12, L13, L14,   KC_NO }, \
-	{ L20,   L21,   L22, L23, L24,   KC_NO }, \
-	{ L30,   L31,   L32, L33, L34,   L35   }, \
-	{ KC_NO, L41,   L42, L43, L44,   L45   }, \
-	{ R00,   R01,   R02, R03, R04,   KC_NO }, \
-	{ R10,   R11,   R12, R13, R14,   KC_NO }, \
-	{ R20,   R21,   R22, R23, R24,   KC_NO }, \
-	{ R30,   R31,   R32, R33, R34,   R35   }, \
-	{ KC_NO, R41,   R42, R43, R44,   R45   }  \
- }

+ 0 - 59
keyboards/eu_isolation/eu_isolation.h

@@ -1,59 +0,0 @@
-/* Copyright 2020 Austin "TuckTuckFloof" Ashmore
-* 
-* This program is free software: you can redistribute it and/or modify 
-* it under the terms of the GNU General Public License as published by 
-* the Free Software Foundation, either version 2 of the License, or 
-* (at your option) any later version. 
-* 
-* This program is distributed in the hope that it will be useful, 
-* but WITHOUT ANY WARRANTY; without even the implied warranty of 
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
-* GNU General Public License for more details. 
-* You should have received a copy of the GNU General Public License 
-* along with this program.  If not, see <http://www.gnu.org/licenses/>. 
-*/ 
-
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-#define LAYOUT_euiso_mit( \
-              k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-              k32, k33, k34, k35, k36,      k37, k39, k3a, k3b, k3c, k3d \
-) \
-{ \
-    { ___, ___, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \
-    { ___, ___, k32, k33, k34, k35, k36, k37, ___, k39, k3a, k3b, k3c, k3d } \
-}
-
-#define LAYOUT_euiso_ortho( \
-              k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-              k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d  \
-) \
-{ \
-    { ___, ___, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \
-    { ___, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d } \
-}
-
-#define LAYOUT_euiso_bigspace( \
-              k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-              k32, k33,                    k37,                 k3c, k3d \
-) \
-{ \
-    { ___, ___, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \
-    { ___, ___, k32, k33, ___, ___, ___, k37, ___, ___, ___, ___, k3c, k3d } \
-}

+ 148 - 150
keyboards/eu_isolation/info.json

@@ -18,173 +18,171 @@
     "layouts": {
         "LAYOUT_euiso_ortho": {
             "layout": [
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1},
-                {"x":2, "y":1},
-                {"x":3, "y":1},
-                {"x":4, "y":1},
-                {"x":5, "y":1},
-                {"x":6, "y":1},
-                {"x":7, "y":1},
-                {"x":8, "y":1},
-                {"x":9, "y":1},
-                {"x":10, "y":1},
-                {"x":11, "y":1},
-                {"x":12, "y":1},
-                {"x":13, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+                {"matrix": [1, 12], "x": 12, "y": 1},
+                {"matrix": [1, 13], "x": 13, "y": 1},
 
-                {"x":0, "y":2},
-                {"x":1, "y":2},
-                {"x":2, "y":2},
-                {"x":3, "y":2},
-                {"x":4, "y":2},
-                {"x":5, "y":2},
-                {"x":6, "y":2},
-                {"x":7, "y":2},
-                {"x":8, "y":2},
-                {"x":9, "y":2},
-                {"x":10, "y":2},
-                {"x":11, "y":2},
-                {"x":12, "y":2},
-                {"x":13, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+                {"matrix": [2, 6], "x": 6, "y": 2},
+                {"matrix": [2, 7], "x": 7, "y": 2},
+                {"matrix": [2, 8], "x": 8, "y": 2},
+                {"matrix": [2, 9], "x": 9, "y": 2},
+                {"matrix": [2, 10], "x": 10, "y": 2},
+                {"matrix": [2, 11], "x": 11, "y": 2},
+                {"matrix": [2, 12], "x": 12, "y": 2},
+                {"matrix": [2, 13], "x": 13, "y": 2},
 
-                {"x":2, "y":3},
-                {"x":3, "y":3},
-                {"x":4, "y":3},
-                {"x":5, "y":3},
-                {"x":6, "y":3},
-                {"x":7, "y":3},
-                {"x":8, "y":3},
-                {"x":9, "y":3},
-                {"x":10, "y":3},
-                {"x":11, "y":3},
-                {"x":12, "y":3},
-                {"x":13, "y":3}
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+                {"matrix": [3, 6], "x": 6, "y": 3},
+                {"matrix": [3, 7], "x": 7, "y": 3},
+                {"matrix": [3, 8], "x": 8, "y": 3},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3},
+                {"matrix": [3, 12], "x": 12, "y": 3},
+                {"matrix": [3, 13], "x": 13, "y": 3}
             ]
         },
-
         "LAYOUT_euiso_mit": {
             "layout": [
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1},
-                {"x":2, "y":1},
-                {"x":3, "y":1},
-                {"x":4, "y":1},
-                {"x":5, "y":1},
-                {"x":6, "y":1},
-                {"x":7, "y":1},
-                {"x":8, "y":1},
-                {"x":9, "y":1},
-                {"x":10, "y":1},
-                {"x":11, "y":1},
-                {"x":12, "y":1},
-                {"x":13, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+                {"matrix": [1, 12], "x": 12, "y": 1},
+                {"matrix": [1, 13], "x": 13, "y": 1},
 
-                {"x":0, "y":2},
-                {"x":1, "y":2},
-                {"x":2, "y":2},
-                {"x":3, "y":2},
-                {"x":4, "y":2},
-                {"x":5, "y":2},
-                {"x":6, "y":2},
-                {"x":7, "y":2},
-                {"x":8, "y":2},
-                {"x":9, "y":2},
-                {"x":10, "y":2},
-                {"x":11, "y":2},
-                {"x":12, "y":2},
-                {"x":13, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+                {"matrix": [2, 6], "x": 6, "y": 2},
+                {"matrix": [2, 7], "x": 7, "y": 2},
+                {"matrix": [2, 8], "x": 8, "y": 2},
+                {"matrix": [2, 9], "x": 9, "y": 2},
+                {"matrix": [2, 10], "x": 10, "y": 2},
+                {"matrix": [2, 11], "x": 11, "y": 2},
+                {"matrix": [2, 12], "x": 12, "y": 2},
+                {"matrix": [2, 13], "x": 13, "y": 2},
 
-                {"x":2, "y":3},
-                {"x":3, "y":3},
-                {"x":4, "y":3},
-                {"x":5, "y":3},
-                {"x":6, "y":3},
-                {"x":7, "y":3, "w":2},
-                {"x":9, "y":3},
-                {"x":10, "y":3},
-                {"x":11, "y":3},
-                {"x":12, "y":3},
-                {"x":13, "y":3}
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+                {"matrix": [3, 6], "x": 6, "y": 3},
+                {"matrix": [3, 7], "x": 7, "y": 3, "w": 2},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3},
+                {"matrix": [3, 12], "x": 12, "y": 3},
+                {"matrix": [3, 13], "x": 13, "y": 3}
             ]
         },
-
         "LAYOUT_euiso_bigspace": {
             "layout": [
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1},
-                {"x":2, "y":1},
-                {"x":3, "y":1},
-                {"x":4, "y":1},
-                {"x":5, "y":1},
-                {"x":6, "y":1},
-                {"x":7, "y":1},
-                {"x":8, "y":1},
-                {"x":9, "y":1},
-                {"x":10, "y":1},
-                {"x":11, "y":1},
-                {"x":12, "y":1},
-                {"x":13, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1},
+                {"matrix": [1, 8], "x": 8, "y": 1},
+                {"matrix": [1, 9], "x": 9, "y": 1},
+                {"matrix": [1, 10], "x": 10, "y": 1},
+                {"matrix": [1, 11], "x": 11, "y": 1},
+                {"matrix": [1, 12], "x": 12, "y": 1},
+                {"matrix": [1, 13], "x": 13, "y": 1},
 
-                {"x":0, "y":2},
-                {"x":1, "y":2},
-                {"x":2, "y":2},
-                {"x":3, "y":2},
-                {"x":4, "y":2},
-                {"x":5, "y":2},
-                {"x":6, "y":2},
-                {"x":7, "y":2},
-                {"x":8, "y":2},
-                {"x":9, "y":2},
-                {"x":10, "y":2},
-                {"x":11, "y":2},
-                {"x":12, "y":2},
-                {"x":13, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+                {"matrix": [2, 6], "x": 6, "y": 2},
+                {"matrix": [2, 7], "x": 7, "y": 2},
+                {"matrix": [2, 8], "x": 8, "y": 2},
+                {"matrix": [2, 9], "x": 9, "y": 2},
+                {"matrix": [2, 10], "x": 10, "y": 2},
+                {"matrix": [2, 11], "x": 11, "y": 2},
+                {"matrix": [2, 12], "x": 12, "y": 2},
+                {"matrix": [2, 13], "x": 13, "y": 2},
 
-                {"x":2, "y":3, "w":1.25},
-                {"x":3.25, "y":3, "w":1.25},
-                {"x":4.5, "y":3, "w":7},
-                {"x":11.5, "y":3, "w":1.25},
-                {"x":12.75, "y":3, "w":1.25}
+                {"matrix": [3, 2], "x": 2, "y": 3, "w": 1.25},
+                {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 7], "x": 4.5, "y": 3, "w": 7},
+                {"matrix": [3, 12], "x": 11.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 1.25}
             ]
         }
     }

+ 0 - 18
keyboards/evolv/evolv.c

@@ -1,18 +0,0 @@
-/*
- Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "evolv.h"

+ 0 - 54
keyboards/evolv/evolv.h

@@ -1,54 +0,0 @@
-/*
-Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define ___ KC_NO
-
-#include "quantum.h"
-
-#define LAYOUT_evolv_iso( \
-	K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,                           \
-	K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K3D,      K3F ,      \
-	K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D,      K2E, K1F, K0F , K2F, \
-	K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,           K3E,      K4F ,      \
-	K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C,      K4D, K4E,                 \
-	K50, K51, K52,                K56,                K5A, K5B,      K5C, K5D, K5E                  \
-) { \
-    {  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F}, \
-    {  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F}, \
-    {  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F}, \
-    {  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F}, \
-    {  K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F}, \
-    {  K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, ___} \
-}
-
-#define LAYOUT_evolv_ansi( \
-	K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,                           \
-	K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K3D,      K3F ,      \
-	K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D,      K2E, K1F, K0F , K2F, \
-	K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,           K3E,      K4F ,      \
-	K40,      K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C,      K4D, K4E,                 \
-	K50, K51, K52,                K56,                K5A, K5B,      K5C, K5D, K5E                  \
-){ \
-    {  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F}, \
-    {  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F}, \
-    {  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F}, \
-    {  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F}, \
-    {  K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F}, \
-    {  K50, K51, K52, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, ___} \
-}

+ 211 - 210
keyboards/evolv/info.json

@@ -26,220 +26,221 @@
     "layouts": {
         "LAYOUT_evolv_ansi": {
             "layout": [
-                {"x":0, "y":0},
-
-                {"x":1.25, "y":0},
-                {"x":2.25, "y":0},
-                {"x":3.25, "y":0},
-                {"x":4.25, "y":0},
-
-                {"x":5.5, "y":0},
-                {"x":6.5, "y":0},
-                {"x":7.5, "y":0},
-                {"x":8.5, "y":0},
-
-                {"x":9.75, "y":0},
-                {"x":10.75, "y":0},
-                {"x":11.75, "y":0},
-                {"x":12.75, "y":0},
-
-                {"x":14, "y":0},
-
-                {"x":0, "y":1.25},
-                {"x":1, "y":1.25},
-                {"x":2, "y":1.25},
-                {"x":3, "y":1.25},
-                {"x":4, "y":1.25},
-                {"x":5, "y":1.25},
-                {"x":6, "y":1.25},
-                {"x":7, "y":1.25},
-                {"x":8, "y":1.25},
-                {"x":9, "y":1.25},
-                {"x":10, "y":1.25},
-                {"x":11, "y":1.25},
-                {"x":12, "y":1.25},
-                {"x":13, "y":1.25},
-                {"x":14, "y":1.25},
-
-                {"x":15.25, "y":1.25},
-
-                {"x":17.75, "y":1.25},
-
-                {"x":0, "y":2.25, "w":1.5},
-                {"x":1.5, "y":2.25},
-                {"x":2.5, "y":2.25},
-                {"x":3.5, "y":2.25},
-                {"x":4.5, "y":2.25},
-                {"x":5.5, "y":2.25},
-                {"x":6.5, "y":2.25},
-                {"x":7.5, "y":2.25},
-                {"x":8.5, "y":2.25},
-                {"x":9.5, "y":2.25},
-                {"x":10.5, "y":2.25},
-                {"x":11.5, "y":2.25},
-                {"x":12.5, "y":2.25},
-                {"x":13.5, "y":2.25, "w":1.5},
-
-                {"x":15.25, "y":2.25},
-
-                {"x":16.75, "y":2.25},
-                {"x":17.75, "y":2.25},
-                {"x":18.75, "y":2.25},
-
-                {"x":0, "y":3.25, "w":1.75},
-                {"x":1.75, "y":3.25},
-                {"x":2.75, "y":3.25},
-                {"x":3.75, "y":3.25},
-                {"x":4.75, "y":3.25},
-                {"x":5.75, "y":3.25},
-                {"x":6.75, "y":3.25},
-                {"x":7.75, "y":3.25},
-                {"x":8.75, "y":3.25},
-                {"x":9.75, "y":3.25},
-                {"x":10.75, "y":3.25},
-                {"x":11.75, "y":3.25},
-                {"x":12.75, "y":3.25, "w":2.25},
-
-                {"x":15.25, "y":3.25},
-
-                {"x":17.75, "y":3.25},
-
-                {"x":0, "y":4.25, "w":2.25},
-                {"x":2.25, "y":4.25},
-                {"x":3.25, "y":4.25},
-                {"x":4.25, "y":4.25},
-                {"x":5.25, "y":4.25},
-                {"x":6.25, "y":4.25},
-                {"x":7.25, "y":4.25},
-                {"x":8.25, "y":4.25},
-                {"x":9.25, "y":4.25},
-                {"x":10.25, "y":4.25},
-                {"x":11.25, "y":4.25},
-                {"x":12.25, "y":4.25, "w":1.5},
-
-                {"x":14, "y":4.5},
-
-                {"x":15.25, "y":4.25},
-
-                {"x":0, "y":5.25, "w":1.5},
-                {"x":1.5, "y":5.25},
-                {"x":2.5, "y":5.25, "w":1.5},
-                {"x":4, "y":5.25, "w":6.25},
-                {"x":10.25, "y":5.25, "w":1.25},
-                {"x":11.5, "y":5.25, "w":1.25},
-
-                {"x":13, "y":5.5},
-                {"x":14, "y":5.5},
-                {"x":15, "y":5.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.25},
+                {"matrix": [1, 1], "x": 1, "y": 1.25},
+                {"matrix": [1, 2], "x": 2, "y": 1.25},
+                {"matrix": [1, 3], "x": 3, "y": 1.25},
+                {"matrix": [1, 4], "x": 4, "y": 1.25},
+                {"matrix": [1, 5], "x": 5, "y": 1.25},
+                {"matrix": [1, 6], "x": 6, "y": 1.25},
+                {"matrix": [1, 7], "x": 7, "y": 1.25},
+                {"matrix": [1, 8], "x": 8, "y": 1.25},
+                {"matrix": [1, 9], "x": 9, "y": 1.25},
+                {"matrix": [1, 10], "x": 10, "y": 1.25},
+                {"matrix": [1, 11], "x": 11, "y": 1.25},
+                {"matrix": [1, 12], "x": 12, "y": 1.25},
+                {"matrix": [1, 13], "x": 13, "y": 1.25},
+                {"matrix": [1, 14], "x": 14, "y": 1.25},
+
+                {"matrix": [3, 13], "x": 15.25, "y": 1.25},
+
+                {"matrix": [3, 15], "x": 17.75, "y": 1.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+                {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+
+                {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+
+                {"matrix": [1, 15], "x": 16.75, "y": 2.25},
+                {"matrix": [0, 15], "x": 17.75, "y": 2.25},
+                {"matrix": [2, 15], "x": 18.75, "y": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+                {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
+
+                {"matrix": [3, 14], "x": 15.25, "y": 3.25},
+
+                {"matrix": [4, 15], "x": 17.75, "y": 3.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.5},
+
+                {"matrix": [4, 13], "x": 14, "y": 4.5},
+
+                {"matrix": [4, 14], "x": 15.25, "y": 4.25},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+                {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+                {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 6.25},
+                {"matrix": [5, 10], "x": 10.25, "y": 5.25, "w": 1.25},
+                {"matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.25},
+
+                {"matrix": [5, 12], "x": 13, "y": 5.5},
+                {"matrix": [5, 13], "x": 14, "y": 5.5},
+                {"matrix": [5, 14], "x": 15, "y": 5.5}
             ]
         },
         "LAYOUT_evolv_iso": {
             "layout": [
-                {"x":0, "y":0},
-
-                {"x":1.25, "y":0},
-                {"x":2.25, "y":0},
-                {"x":3.25, "y":0},
-                {"x":4.25, "y":0},
-
-                {"x":5.5, "y":0},
-                {"x":6.5, "y":0},
-                {"x":7.5, "y":0},
-                {"x":8.5, "y":0},
-
-                {"x":9.75, "y":0},
-                {"x":10.75, "y":0},
-                {"x":11.75, "y":0},
-                {"x":12.75, "y":0},
-
-                {"x":14, "y":0},
-
-                {"x":0, "y":1.25},
-                {"x":1, "y":1.25},
-                {"x":2, "y":1.25},
-                {"x":3, "y":1.25},
-                {"x":4, "y":1.25},
-                {"x":5, "y":1.25},
-                {"x":6, "y":1.25},
-                {"x":7, "y":1.25},
-                {"x":8, "y":1.25},
-                {"x":9, "y":1.25},
-                {"x":10, "y":1.25},
-                {"x":11, "y":1.25},
-                {"x":12, "y":1.25},
-                {"x":13, "y":1.25},
-                {"x":14, "y":1.25},
-
-                {"x":15.25, "y":1.25},
-
-                {"x":17.75, "y":1.25},
-
-                {"x":0, "y":2.25, "w":1.5},
-                {"x":1.5, "y":2.25},
-                {"x":2.5, "y":2.25},
-                {"x":3.5, "y":2.25},
-                {"x":4.5, "y":2.25},
-                {"x":5.5, "y":2.25},
-                {"x":6.5, "y":2.25},
-                {"x":7.5, "y":2.25},
-                {"x":8.5, "y":2.25},
-                {"x":9.5, "y":2.25},
-                {"x":10.5, "y":2.25},
-                {"x":11.5, "y":2.25},
-                {"x":12.5, "y":2.25},
-                {"x":13.75, "y":2.25, "w":1.25, "h":2},
-
-                {"x":15.25, "y":2.25},
-
-                {"x":16.75, "y":2.25},
-                {"x":17.75, "y":2.25},
-                {"x":18.75, "y":2.25},
-
-                {"x":0, "y":3.25, "w":1.75},
-                {"x":1.75, "y":3.25},
-                {"x":2.75, "y":3.25},
-                {"x":3.75, "y":3.25},
-                {"x":4.75, "y":3.25},
-                {"x":5.75, "y":3.25},
-                {"x":6.75, "y":3.25},
-                {"x":7.75, "y":3.25},
-                {"x":8.75, "y":3.25},
-                {"x":9.75, "y":3.25},
-                {"x":10.75, "y":3.25},
-                {"x":11.75, "y":3.25},
-                {"x":12.75, "y":3.25},
-                {"x":15.25, "y":3.25},
-
-                {"x":17.75, "y":3.25},
-
-                {"x":0, "y":4.25, "w":1.25},
-                {"x":1.25, "y":4.25},
-                {"x":2.25, "y":4.25},
-                {"x":3.25, "y":4.25},
-                {"x":4.25, "y":4.25},
-                {"x":5.25, "y":4.25},
-                {"x":6.25, "y":4.25},
-                {"x":7.25, "y":4.25},
-                {"x":8.25, "y":4.25},
-                {"x":9.25, "y":4.25},
-                {"x":10.25, "y":4.25},
-                {"x":11.25, "y":4.25},
-                {"x":12.25, "y":4.25, "w":1.5},
-
-                {"x":14, "y":4.5},
-
-                {"x":15.25, "y":4.25},
-
-                {"x":0, "y":5.25, "w":1.5},
-                {"x":1.5, "y":5.25},
-                {"x":2.5, "y":5.25, "w":1.5},
-                {"x":4, "y":5.25, "w":6.25},
-                {"x":10.25, "y":5.25, "w":1.25},
-                {"x":11.5, "y":5.25, "w":1.25},
-
-                {"x":13, "y":5.5},
-                {"x":14, "y":5.5},
-                {"x":15, "y":5.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.25},
+                {"matrix": [1, 1], "x": 1, "y": 1.25},
+                {"matrix": [1, 2], "x": 2, "y": 1.25},
+                {"matrix": [1, 3], "x": 3, "y": 1.25},
+                {"matrix": [1, 4], "x": 4, "y": 1.25},
+                {"matrix": [1, 5], "x": 5, "y": 1.25},
+                {"matrix": [1, 6], "x": 6, "y": 1.25},
+                {"matrix": [1, 7], "x": 7, "y": 1.25},
+                {"matrix": [1, 8], "x": 8, "y": 1.25},
+                {"matrix": [1, 9], "x": 9, "y": 1.25},
+                {"matrix": [1, 10], "x": 10, "y": 1.25},
+                {"matrix": [1, 11], "x": 11, "y": 1.25},
+                {"matrix": [1, 12], "x": 12, "y": 1.25},
+                {"matrix": [1, 13], "x": 13, "y": 1.25},
+                {"matrix": [1, 14], "x": 14, "y": 1.25},
+
+                {"matrix": [3, 13], "x": 15.25, "y": 1.25},
+
+                {"matrix": [3, 15], "x": 17.75, "y": 1.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+                {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+                {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+
+                {"matrix": [1, 15], "x": 16.75, "y": 2.25},
+                {"matrix": [0, 15], "x": 17.75, "y": 2.25},
+                {"matrix": [2, 15], "x": 18.75, "y": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+                {"matrix": [3, 12], "x": 12.75, "y": 3.25},
+
+                {"matrix": [3, 14], "x": 15.25, "y": 3.25},
+
+                {"matrix": [4, 15], "x": 17.75, "y": 3.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.5},
+
+                {"matrix": [4, 13], "x": 14, "y": 4.5},
+
+                {"matrix": [4, 14], "x": 15.25, "y": 4.25},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+                {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+                {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 6.25},
+                {"matrix": [5, 10], "x": 10.25, "y": 5.25, "w": 1.25},
+                {"matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.25},
+
+                {"matrix": [5, 12], "x": 13, "y": 5.5},
+                {"matrix": [5, 13], "x": 14, "y": 5.5},
+                {"matrix": [5, 14], "x": 15, "y": 5.5}
             ]
         }
     }

+ 1 - 1
keyboards/exclusive/e85/hotswap/hotswap.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "hotswap.h"
+#include "quantum.h"
 
 void keyboard_pre_init_kb(void) {
     setPinOutput(C7);

+ 0 - 63
keyboards/exclusive/e85/hotswap/hotswap.h

@@ -1,63 +0,0 @@
-/* Copyright 2020 MechMerlin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-#define LAYOUT_ansi_standard( \
-    K00,  K01, K02, K03, K04,  K05, K06, K07, K08,  K68, K67, K65, K64,   K63,  K66, K62, K61,  \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K78, K70, K77, K75, K73,       K76, K72, K71,  \
-    K20,   K21, K22, K23, K24, K25, K26, K27, K28, K88, K87, K85, K84, K83,     K86, K82, K81,  \
-    K30,    K31, K32, K33, K34, K35, K36, K37, K38, K98, K97, K95, K93,                         \
-    K40,       K42, K43, K44, K45, K46, K47, K48, KA8, KA7, KA5, KA4,                K92,       \
-    K50,   K51, K52,                  K56,             K58,  K57,   K54, K53,   KA6, KA2, KA1   \
-) { \
-    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08   }, \
-    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18   }, \
-    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28   }, \
-    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38   }, \
-    { K40,   KC_NO, K42,   K43,   K44,   K45,   K46,   K47,   K48   }, \
-    { K50,   K51,   K52,   K53,   K54,   KC_NO, K56,   K57,   K58   }, \
-    { KC_NO, K61,   K62,   K63,   K64,   K65,   K66,   K67,   K68   }, \
-    { K70,   K71,   K72,   K73,   KC_NO, K75,   K76,   K77,   K78   }, \
-    { KC_NO, K81,   K82,   K83,   K84,   K85,   K86,   K87,   K88   }, \
-    { KC_NO, KC_NO, K92,   K93,   KC_NO, K95,   KC_NO, K97,   K98   }, \
-    { KC_NO, KA1,   KA2,   KC_NO, KA4,   KA5,   KA6,   KA7,   KA8   }, \
-}
-
-#define LAYOUT_ansi_tsangan( \
-    K00,  K01, K02, K03, K04,  K05, K06, K07, K08,  K68, K67, K65, K64,   K63,  K66, K62, K61,  \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K78, K70, K77, K75, K73,       K76, K72, K71,  \
-    K20,   K21, K22, K23, K24, K25, K26, K27, K28, K88, K87, K85, K84, K83,     K86, K82, K81,  \
-    K30,    K31, K32, K33, K34, K35, K36, K37, K38, K98, K97, K95, K93,                         \
-    K40,       K42, K43, K44, K45, K46, K47, K48, KA8, KA7, KA5, KA4,                K92,       \
-    K50,   K51, K52,                  K56,                 K57,   K54, K53,     KA6, KA2, KA1   \
-) { \
-    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08   }, \
-    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18   }, \
-    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28   }, \
-    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38   }, \
-    { K40,   KC_NO, K42,   K43,   K44,   K45,   K46,   K47,   K48   }, \
-    { K50,   K51,   K52,   K53,   K54,   KC_NO, K56,   K57,   KC_NO }, \
-    { KC_NO, K61,   K62,   K63,   K64,   K65,   K66,   K67,   K68   }, \
-    { K70,   K71,   K72,   K73,   KC_NO, K75,   K76,   K77,   K78   }, \
-    { KC_NO, K81,   K82,   K83,   K84,   K85,   K86,   K87,   K88   }, \
-    { KC_NO, KC_NO, K92,   K93,   KC_NO, K95,   KC_NO, K97,   K98   }, \
-    { KC_NO, KA1,   KA2,   KC_NO, KA4,   KA5,   KA6,   KA7,   KA8   }, \
-}

+ 203 - 176
keyboards/exclusive/e85/hotswap/info.json

@@ -26,186 +26,213 @@
     "layouts": {
         "LAYOUT_ansi_standard": {
             "layout": [
-                {"label":"K00 (E6,D0)", "x":0, "y":0},
-                {"label":"K01 (E6,D1)", "x":1.25, "y":0},
-                {"label":"K02 (E6,D2)", "x":2.25, "y":0},
-                {"label":"K03 (E6,D3)", "x":3.25, "y":0},
-                {"label":"K04 (E6,D5)", "x":4.25, "y":0},
-                {"label":"K05 (E6,D4)", "x":5.5, "y":0},
-                {"label":"K06 (E6,D6)", "x":6.5, "y":0},
-                {"label":"K07 (E6,D7)", "x":7.5, "y":0},
-                {"label":"K08 (E6,B4)", "x":8.5, "y":0},
-                {"label":"K68 (F7,B4)", "x":9.75, "y":0},
-                {"label":"K67 (F7,D7)", "x":10.75, "y":0},
-                {"label":"K65 (F7,D4)", "x":11.75, "y":0},
-                {"label":"K64 (F7,D5)", "x":12.75, "y":0},
-                {"label":"K63 (F7,D3)", "x":14, "y":0},
-                {"label":"K66 (F7,D6)", "x":15.25, "y":0},
-                {"label":"K62 (F7,D2)", "x":16.25, "y":0},
-                {"label":"K61 (F7,D1)", "x":17.25, "y":0},
-                {"label":"K10 (B0,D0)", "x":0, "y":1.5},
-                {"label":"K11 (B0,D1)", "x":1, "y":1.5},
-                {"label":"K12 (B0,D2)", "x":2, "y":1.5},
-                {"label":"K13 (B0,D3)", "x":3, "y":1.5},
-                {"label":"K14 (B0,D5)", "x":4, "y":1.5},
-                {"label":"K15 (B0,D4)", "x":5, "y":1.5},
-                {"label":"K16 (B0,D6)", "x":6, "y":1.5},
-                {"label":"K17 (B0,D7)", "x":7, "y":1.5},
-                {"label":"K18 (B0,B4)", "x":8, "y":1.5},
-                {"label":"K78 (F6,B4)", "x":9, "y":1.5},
-                {"label":"K70 (F6,D0)", "x":10, "y":1.5},
-                {"label":"K77 (F6,D7)", "x":11, "y":1.5},
-                {"label":"K75 (F6,D4)", "x":12, "y":1.5},
-                {"label":"K73 (F6,D3)", "x":13, "y":1.5, "w":2},
-                {"label":"K76 (F6,D6)", "x":15.25, "y":1.5},
-                {"label":"K72 (F6,D2)", "x":16.25, "y":1.5},
-                {"label":"K71 (F6,D1)", "x":17.25, "y":1.5},
-                {"label":"K20 (B1,D0)", "x":0, "y":2.5, "w":1.5},
-                {"label":"K21 (B1,D1)", "x":1.5, "y":2.5},
-                {"label":"K22 (B1,D2)", "x":2.5, "y":2.5},
-                {"label":"K23 (B1,D3)", "x":3.5, "y":2.5},
-                {"label":"K24 (B1,D5)", "x":4.5, "y":2.5},
-                {"label":"K25 (B1,D4)", "x":5.5, "y":2.5},
-                {"label":"K26 (B1,D6)", "x":6.5, "y":2.5},
-                {"label":"K27 (B1,D7)", "x":7.5, "y":2.5},
-                {"label":"K28 (B1,B4)", "x":8.5, "y":2.5},
-                {"label":"K88 (F5,B4)", "x":9.5, "y":2.5},
-                {"label":"K87 (F5,D7)", "x":10.5, "y":2.5},
-                {"label":"K85 (F5,D4)", "x":11.5, "y":2.5},
-                {"label":"K84 (F5,D5)", "x":12.5, "y":2.5},
-                {"label":"K83 (F5,D3)", "x":13.5, "y":2.5, "w":1.5},
-                {"label":"K86 (F5,D6)", "x":15.25, "y":2.5},
-                {"label":"K82 (F5,D2)", "x":16.25, "y":2.5},
-                {"label":"K81 (F5,D1)", "x":17.25, "y":2.5},
-                {"label":"K30 (B2,D0)", "x":0, "y":3.5, "w":1.75},
-                {"label":"K31 (B2,D1)", "x":1.75, "y":3.5},
-                {"label":"K32 (B2,D2)", "x":2.75, "y":3.5},
-                {"label":"K33 (B2,D3)", "x":3.75, "y":3.5},
-                {"label":"K34 (B2,D5)", "x":4.75, "y":3.5},
-                {"label":"K35 (B2,D4)", "x":5.75, "y":3.5},
-                {"label":"K36 (B2,D6)", "x":6.75, "y":3.5},
-                {"label":"K37 (B2,D7)", "x":7.75, "y":3.5},
-                {"label":"K38 (B2,B4)", "x":8.75, "y":3.5},
-                {"label":"K98 (F4,B4)", "x":9.75, "y":3.5},
-                {"label":"K97 (F4,D7)", "x":10.75, "y":3.5},
-                {"label":"K95 (F4,D4)", "x":11.75, "y":3.5},
-                {"label":"K93 (F4,D3)", "x":12.75, "y":3.5, "w":2.25},
-                {"label":"K40 (B3,D0)", "x":0, "y":4.5, "w":2.25},
-                {"label":"K42 (B3,D2)", "x":2.25, "y":4.5},
-                {"label":"K43 (B3,D3)", "x":3.25, "y":4.5},
-                {"label":"K44 (B3,D5)", "x":4.25, "y":4.5},
-                {"label":"K45 (B3,D4)", "x":5.25, "y":4.5},
-                {"label":"K46 (B3,D6)", "x":6.25, "y":4.5},
-                {"label":"K47 (B3,D7)", "x":7.25, "y":4.5},
-                {"label":"K48 (B3,B4)", "x":8.25, "y":4.5},
-                {"label":"KA8 (F1,B4)", "x":9.25, "y":4.5},
-                {"label":"KA7 (F1,D7)", "x":10.25, "y":4.5},
-                {"label":"KA5 (F1,D4)", "x":11.25, "y":4.5},
-                {"label":"KA4 (F1,D5)", "x":12.25, "y":4.5, "w":2.75},
-                {"label":"K92 (F4,D2)", "x":16.25, "y":4.5},
-                {"label":"K50 (B7,D0)", "x":0, "y":5.5, "w":1.25},
-                {"label":"K51 (B7,D1)", "x":1.25, "y":5.5, "w":1.25},
-                {"label":"K52 (B7,D2)", "x":2.5, "y":5.5, "w":1.25},
-                {"label":"K56 (B7,D6)", "x":3.75, "y":5.5, "w":6.25},
-                {"label":"K58 (B7,B4)", "x":10, "y":5.5, "w":1.25},
-                {"label":"K57 (B7,D7)", "x":11.25, "y":5.5, "w":1.25},
-                {"label":"K54 (B7,D5)", "x":12.5, "y":5.5, "w":1.25},
-                {"label":"K53 (B7,D3)", "x":13.75, "y":5.5, "w":1.25},
-                {"label":"KA6 (F1,D6)", "x":15.25, "y":5.5},
-                {"label":"KA2 (F1,D2)", "x":16.25, "y":5.5},
-                {"label":"KA1 (F1,D1)", "x":17.25, "y":5.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [6, 8], "x": 9.75, "y": 0},
+                {"matrix": [6, 7], "x": 10.75, "y": 0},
+                {"matrix": [6, 5], "x": 11.75, "y": 0},
+                {"matrix": [6, 4], "x": 12.75, "y": 0},
+
+                {"matrix": [6, 3], "x": 14, "y": 0},
+
+                {"matrix": [6, 6], "x": 15.25, "y": 0},
+                {"matrix": [6, 2], "x": 16.25, "y": 0},
+                {"matrix": [6, 1], "x": 17.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [7, 8], "x": 9, "y": 1.5},
+                {"matrix": [7, 0], "x": 10, "y": 1.5},
+                {"matrix": [7, 7], "x": 11, "y": 1.5},
+                {"matrix": [7, 5], "x": 12, "y": 1.5},
+                {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+
+                {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+                {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+                {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+                {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+                {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+                {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+                {"matrix": [8, 3], "x": 13.5, "y": 2.5, "w": 1.5},
+
+                {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+                {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+                {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+                {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+                {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+                {"matrix": [9, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+                {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+                {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+                {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+
+                {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+                {"matrix": [5, 8], "x": 10, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 7], "x": 11.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 4], "x": 12.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+
+                {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+                {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+                {"matrix": [10, 1], "x": 17.25, "y": 5.5}
             ]
         },
-
         "LAYOUT_ansi_tsangan": {
             "layout": [
-                {"label":"K00 (E6,D0)", "x":0, "y":0},
-                {"label":"K01 (E6,D1)", "x":1.25, "y":0},
-                {"label":"K02 (E6,D2)", "x":2.25, "y":0},
-                {"label":"K03 (E6,D3)", "x":3.25, "y":0},
-                {"label":"K04 (E6,D5)", "x":4.25, "y":0},
-                {"label":"K05 (E6,D4)", "x":5.5, "y":0},
-                {"label":"K06 (E6,D6)", "x":6.5, "y":0},
-                {"label":"K07 (E6,D7)", "x":7.5, "y":0},
-                {"label":"K08 (E6,B4)", "x":8.5, "y":0},
-                {"label":"K68 (F7,B4)", "x":9.75, "y":0},
-                {"label":"K67 (F7,D7)", "x":10.75, "y":0},
-                {"label":"K65 (F7,D4)", "x":11.75, "y":0},
-                {"label":"K64 (F7,D5)", "x":12.75, "y":0},
-                {"label":"K63 (F7,D3)", "x":14, "y":0},
-                {"label":"K66 (F7,D6)", "x":15.25, "y":0},
-                {"label":"K62 (F7,D2)", "x":16.25, "y":0},
-                {"label":"K61 (F7,D1)", "x":17.25, "y":0},
-                {"label":"K10 (B0,D0)", "x":0, "y":1.5},
-                {"label":"K11 (B0,D1)", "x":1, "y":1.5},
-                {"label":"K12 (B0,D2)", "x":2, "y":1.5},
-                {"label":"K13 (B0,D3)", "x":3, "y":1.5},
-                {"label":"K14 (B0,D5)", "x":4, "y":1.5},
-                {"label":"K15 (B0,D4)", "x":5, "y":1.5},
-                {"label":"K16 (B0,D6)", "x":6, "y":1.5},
-                {"label":"K17 (B0,D7)", "x":7, "y":1.5},
-                {"label":"K18 (B0,B4)", "x":8, "y":1.5},
-                {"label":"K78 (F6,B4)", "x":9, "y":1.5},
-                {"label":"K70 (F6,D0)", "x":10, "y":1.5},
-                {"label":"K77 (F6,D7)", "x":11, "y":1.5},
-                {"label":"K75 (F6,D4)", "x":12, "y":1.5},
-                {"label":"K73 (F6,D3)", "x":13, "y":1.5, "w":2},
-                {"label":"K76 (F6,D6)", "x":15.25, "y":1.5},
-                {"label":"K72 (F6,D2)", "x":16.25, "y":1.5},
-                {"label":"K71 (F6,D1)", "x":17.25, "y":1.5},
-                {"label":"K20 (B1,D0)", "x":0, "y":2.5, "w":1.5},
-                {"label":"K21 (B1,D1)", "x":1.5, "y":2.5},
-                {"label":"K22 (B1,D2)", "x":2.5, "y":2.5},
-                {"label":"K23 (B1,D3)", "x":3.5, "y":2.5},
-                {"label":"K24 (B1,D5)", "x":4.5, "y":2.5},
-                {"label":"K25 (B1,D4)", "x":5.5, "y":2.5},
-                {"label":"K26 (B1,D6)", "x":6.5, "y":2.5},
-                {"label":"K27 (B1,D7)", "x":7.5, "y":2.5},
-                {"label":"K28 (B1,B4)", "x":8.5, "y":2.5},
-                {"label":"K88 (F5,B4)", "x":9.5, "y":2.5},
-                {"label":"K87 (F5,D7)", "x":10.5, "y":2.5},
-                {"label":"K85 (F5,D4)", "x":11.5, "y":2.5},
-                {"label":"K84 (F5,D5)", "x":12.5, "y":2.5},
-                {"label":"K83 (F5,D3)", "x":13.5, "y":2.5, "w":1.5},
-                {"label":"K86 (F5,D6)", "x":15.25, "y":2.5},
-                {"label":"K82 (F5,D2)", "x":16.25, "y":2.5},
-                {"label":"K81 (F5,D1)", "x":17.25, "y":2.5},
-                {"label":"K30 (B2,D0)", "x":0, "y":3.5, "w":1.75},
-                {"label":"K31 (B2,D1)", "x":1.75, "y":3.5},
-                {"label":"K32 (B2,D2)", "x":2.75, "y":3.5},
-                {"label":"K33 (B2,D3)", "x":3.75, "y":3.5},
-                {"label":"K34 (B2,D5)", "x":4.75, "y":3.5},
-                {"label":"K35 (B2,D4)", "x":5.75, "y":3.5},
-                {"label":"K36 (B2,D6)", "x":6.75, "y":3.5},
-                {"label":"K37 (B2,D7)", "x":7.75, "y":3.5},
-                {"label":"K38 (B2,B4)", "x":8.75, "y":3.5},
-                {"label":"K98 (F4,B4)", "x":9.75, "y":3.5},
-                {"label":"K97 (F4,D7)", "x":10.75, "y":3.5},
-                {"label":"K95 (F4,D4)", "x":11.75, "y":3.5},
-                {"label":"K93 (F4,D3)", "x":12.75, "y":3.5, "w":2.25},
-                {"label":"K40 (B3,D0)", "x":0, "y":4.5, "w":2.25},
-                {"label":"K42 (B3,D2)", "x":2.25, "y":4.5},
-                {"label":"K43 (B3,D3)", "x":3.25, "y":4.5},
-                {"label":"K44 (B3,D5)", "x":4.25, "y":4.5},
-                {"label":"K45 (B3,D4)", "x":5.25, "y":4.5},
-                {"label":"K46 (B3,D6)", "x":6.25, "y":4.5},
-                {"label":"K47 (B3,D7)", "x":7.25, "y":4.5},
-                {"label":"K48 (B3,B4)", "x":8.25, "y":4.5},
-                {"label":"KA8 (F1,B4)", "x":9.25, "y":4.5},
-                {"label":"KA7 (F1,D7)", "x":10.25, "y":4.5},
-                {"label":"KA5 (F1,D4)", "x":11.25, "y":4.5},
-                {"label":"KA4 (F1,D5)", "x":12.25, "y":4.5, "w":2.75},
-                {"label":"K92 (F4,D2)", "x":16.25, "y":4.5},
-                {"label":"K50 (B7,D0)", "x":0, "y":5.5, "w":1.5},
-                {"label":"K51 (B7,D1)", "x":1.5, "y":5.5},
-                {"label":"K52 (B7,D2)", "x":2.5, "y":5.5, "w":1.5},
-                {"label":"K56 (B7,D6)", "x":4, "y":5.5, "w":7},
-                {"label":"K57 (B7,D7)", "x":11, "y":5.5, "w":1.5},
-                {"label":"K54 (B7,D5)", "x":12.5, "y":5.5},
-                {"label":"K53 (B7,D3)", "x":13.5, "y":5.5, "w":1.5},
-                {"label":"KA6 (F1,D6)", "x":15.25, "y":5.5},
-                {"label":"KA2 (F1,D2)", "x":16.25, "y":5.5},
-                {"label":"KA1 (F1,D1)", "x":17.25, "y":5.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [6, 8], "x": 9.75, "y": 0},
+                {"matrix": [6, 7], "x": 10.75, "y": 0},
+                {"matrix": [6, 5], "x": 11.75, "y": 0},
+                {"matrix": [6, 4], "x": 12.75, "y": 0},
+
+                {"matrix": [6, 3], "x": 14, "y": 0},
+
+                {"matrix": [6, 6], "x": 15.25, "y": 0},
+                {"matrix": [6, 2], "x": 16.25, "y": 0},
+                {"matrix": [6, 1], "x": 17.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [7, 8], "x": 9, "y": 1.5},
+                {"matrix": [7, 0], "x": 10, "y": 1.5},
+                {"matrix": [7, 7], "x": 11, "y": 1.5},
+                {"matrix": [7, 5], "x": 12, "y": 1.5},
+                {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+
+                {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+                {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+                {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+                {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+                {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+                {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+                {"matrix": [8, 3], "x": 13.5, "y": 2.5, "w": 1.5},
+
+                {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+                {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+                {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+                {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+                {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+                {"matrix": [9, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+                {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+                {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+                {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+
+                {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+                {"matrix": [5, 1], "x": 1.5, "y": 5.5},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+                {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+                {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+                {"matrix": [5, 4], "x": 12.5, "y": 5.5},
+                {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+
+                {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+                {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+                {"matrix": [10, 1], "x": 17.25, "y": 5.5}
             ]
         }
     }

+ 0 - 71
keyboards/eyeohdesigns/babyv/babyv.h

@@ -1,71 +0,0 @@
-/* Copyright 2020 Eye Oh! Designs
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_1u( \
-   k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-   k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-   k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-   k30,           k33, k34, k35, k36, k37, k38,           k3b  \
-   ) \
-   { \
-   { k00, k01,   k02,   k03, k04, k05, k06, k07, k08, k09,   k0a,   k0b }, \
-   { k10, k11,   k12,   k13, k14, k15, k16, k17, k18, k19,   k1a,   k1b }, \
-   { k20, k21,   k22,   k23, k24, k25, k26, k27, k28, k29,   k2a,   k2b }, \
-   { k30, KC_NO, KC_NO, k33, k34, k35, k36, k37, k38, KC_NO, KC_NO, k3b }  \
-   }
-   
-#define LAYOUT_2u( \
-   k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-   k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-   k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-   k30,           k33,    k35,      k36,   k38,           k3b  \
-   ) \
-   { \
-   { k00, k01,   k02,   k03, k04,   k05, k06, k07,   k08, k09,   k0a,   k0b }, \
-   { k10, k11,   k12,   k13, k14,   k15, k16, k17,   k18, k19,   k1a,   k1b }, \
-   { k20, k21,   k22,   k23, k24,   k25, k26, k27,   k28, k29,   k2a,   k2b }, \
-   { k30, KC_NO, KC_NO, k33, KC_NO, k35, k36, KC_NO, k38, KC_NO, KC_NO, k3b }  \
-   }
-   
-#define LAYOUT_1u_2u( \
-   k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-   k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-   k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-   k30,           k33, k34, k35,    k36,   k38,           k3b  \
-   ) \
-   { \
-   { k00, k01,   k02,   k03, k04, k05, k06, k07,   k08, k09,   k0a,   k0b }, \
-   { k10, k11,   k12,   k13, k14, k15, k16, k17,   k18, k19,   k1a,   k1b }, \
-   { k20, k21,   k22,   k23, k24, k25, k26, k27,   k28, k29,   k2a,   k2b }, \
-   { k30, KC_NO, KC_NO, k33, k34, k35, k36, KC_NO, k38, KC_NO, KC_NO, k3b  }  \
-   }
-#define LAYOUT_2u_1u( \
-   k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-   k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-   k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-   k30,           k33,    k35,   k36, k37, k38,           k3b  \
-   ) \
-   { \
-   { k00, k01,   k02,   k03, k04,   k05, k06, k07, k08, k09,   k0a,   k0b }, \
-   { k10, k11,   k12,   k13, k14,   k15, k16, k17, k18, k19,   k1a,   k1b }, \
-   { k20, k21,   k22,   k23, k24,   k25, k26, k27, k28, k29,   k2a,   k2b }, \
-   { k30, KC_NO, KC_NO, k33, KC_NO, k35, k36, k37, k38, KC_NO, KC_NO, k3b }  \
-   }
-   

+ 212 - 9
keyboards/eyeohdesigns/babyv/info.json

@@ -22,18 +22,221 @@
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
     "layouts": {
-       "LAYOUT_2u": {
-            "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"label":"Ctl", "x":0, "y":3}, {"label":"Alt", "x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":7, "y":3, "w":2}, {"label":"Fn", "x":9, "y":3}, {"label":"OS", "x":12, "y":3}]
+        "LAYOUT_2u": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+
+                {"matrix": [0, 6], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+
+                {"matrix": [1, 6], "x": 7, "y": 1},
+                {"matrix": [1, 7], "x": 8, "y": 1},
+                {"matrix": [1, 8], "x": 9, "y": 1},
+                {"matrix": [1, 9], "x": 10, "y": 1},
+                {"matrix": [1, 10], "x": 11, "y": 1},
+                {"matrix": [1, 11], "x": 12, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 5], "x": 4, "y": 3, "w": 2},
+
+                {"matrix": [3, 6], "x": 7, "y": 3, "w": 2},
+                {"matrix": [3, 8], "x": 9, "y": 3},
+                {"matrix": [3, 11], "x": 12, "y": 3}
+            ]
         },
-		"LAYOUT_1u": {
-            "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"label":"Ctl", "x":0, "y":3}, {"label":"Alt", "x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"label":"Fn", "x":9, "y":3}, {"label":"OS", "x":12, "y":3}]
+        "LAYOUT_1u": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+
+                {"matrix": [0, 6], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+
+                {"matrix": [1, 6], "x": 7, "y": 1},
+                {"matrix": [1, 7], "x": 8, "y": 1},
+                {"matrix": [1, 8], "x": 9, "y": 1},
+                {"matrix": [1, 9], "x": 10, "y": 1},
+                {"matrix": [1, 10], "x": 11, "y": 1},
+                {"matrix": [1, 11], "x": 12, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+
+                {"matrix": [3, 6], "x": 7, "y": 3},
+                {"matrix": [3, 7], "x": 8, "y": 3},
+                {"matrix": [3, 8], "x": 9, "y": 3},
+                {"matrix": [3, 11], "x": 12, "y": 3}
+            ]
         },
-		"LAYOUT_1u_2u": {
-            "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"x":0, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3, "w":2}, {"x":9, "y":3}, {"label":"OS", "x":12, "y":3}]
+        "LAYOUT_1u_2u": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+
+                {"matrix": [0, 6], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+
+                {"matrix": [1, 6], "x": 7, "y": 1},
+                {"matrix": [1, 7], "x": 8, "y": 1},
+                {"matrix": [1, 8], "x": 9, "y": 1},
+                {"matrix": [1, 9], "x": 10, "y": 1},
+                {"matrix": [1, 10], "x": 11, "y": 1},
+                {"matrix": [1, 11], "x": 12, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+
+                {"matrix": [3, 6], "x": 7, "y": 3, "w": 2},
+                {"matrix": [3, 8], "x": 9, "y": 3},
+                {"matrix": [3, 11], "x": 12, "y": 3}
+            ]
         },
-		"LAYOUT_2u_1u": {
-            "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":7, "y":0}, {"label":"U", "x":8, "y":0}, {"label":"I", "x":9, "y":0}, {"label":"O", "x":10, "y":0}, {"label":"P", "x":11, "y":0}, {"label":"Back Space", "x":12, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":7, "y":1}, {"label":"J", "x":8, "y":1}, {"label":"K", "x":9, "y":1}, {"label":"L", "x":10, "y":1}, {"label":";", "x":11, "y":1}, {"label":"Return", "x":12, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":",", "x":9, "y":2}, {"label":".", "x":10, "y":2}, {"label":"/", "x":11, "y":2}, {"label":"Shift", "x":12, "y":2}, {"x":0, "y":3}, {"x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"label":"OS", "x":12, "y":3}]
+        "LAYOUT_2u_1u": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+
+                {"matrix": [0, 6], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+
+                {"matrix": [1, 6], "x": 7, "y": 1},
+                {"matrix": [1, 7], "x": 8, "y": 1},
+                {"matrix": [1, 8], "x": 9, "y": 1},
+                {"matrix": [1, 9], "x": 10, "y": 1},
+                {"matrix": [1, 10], "x": 11, "y": 1},
+                {"matrix": [1, 11], "x": 12, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 5], "x": 4, "y": 3, "w": 2},
+
+                {"matrix": [3, 6], "x": 7, "y": 3},
+                {"matrix": [3, 7], "x": 8, "y": 3},
+                {"matrix": [3, 8], "x": 9, "y": 3},
+                {"matrix": [3, 11], "x": 12, "y": 3}
+            ]
         }
-		
     }
 }

+ 568 - 560
keyboards/eyeohdesigns/sprh/info.json

@@ -23,594 +23,602 @@
     "layouts": {
         "LAYOUT_ac5": {
             "layout": [
-                {"label":"Mute", "x":0.5, "y":0},
-                {"label":"Esc", "x":1.5, "y":0},
-                {"label":"1", "x":2.5, "y":0},
-                {"label":"2", "x":3.5, "y":0},
-                {"label":"3", "x":4.5, "y":0},
-                {"label":"4", "x":5.5, "y":0},
-                {"label":"5", "x":6.5, "y":0},
-                {"label":"6", "x":7.5, "y":0},
-                {"label":"7", "x":8.5, "y":0},
-                {"label":"8", "x":9.5, "y":0},
-                {"label":"9", "x":10.5, "y":0},
-                {"label":"0", "x":11.5, "y":0},
-                {"label":"_", "x":12.5, "y":0},
-                {"label":"+", "x":13.5, "y":0},
-                {"label":"Backspace", "x":14.5, "y":0, "w":2},
-
-                {"label":"Tab", "x":1, "y":1, "w":1.5},
-                {"label":"Q", "x":2.5, "y":1},
-                {"label":"W", "x":3.5, "y":1},
-                {"label":"E", "x":4.5, "y":1},
-                {"label":"R", "x":5.5, "y":1},
-                {"label":"T", "x":6.5, "y":1},
-                {"label":"Y", "x":7.5, "y":1},
-                {"label":"U", "x":8.5, "y":1},
-                {"label":"I", "x":9.5, "y":1},
-                {"label":"O", "x":10.5, "y":1},
-                {"label":"P", "x":11.5, "y":1},
-                {"label":"[", "x":12.5, "y":1},
-                {"label":"]", "x":13.5, "y":1},
-                {"label":"\\", "x":14.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
-                {"label":"A", "x":2.5, "y":2},
-                {"label":"S", "x":3.5, "y":2},
-                {"label":"D", "x":4.5, "y":2},
-                {"label":"F", "x":5.5, "y":2},
-                {"label":"G", "x":6.5, "y":2},
-                {"label":"H", "x":7.5, "y":2},
-                {"label":"J", "x":8.5, "y":2},
-                {"label":"K", "x":9.5, "y":2},
-                {"label":"L", "x":10.5, "y":2},
-                {"label":";", "x":11.5, "y":2},
-                {"label":"'", "x":12.5, "y":2},
-                {"label":"Enter", "x":13.5, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0.25, "y":3, "w":2.25},
-                {"label":"Z", "x":2.5, "y":3},
-                {"label":"X", "x":3.5, "y":3},
-                {"label":"C", "x":4.5, "y":3},
-                {"label":"V", "x":5.5, "y":3},
-                {"label":"B", "x":6.5, "y":3},
-                {"label":"N", "x":7.5, "y":3},
-                {"label":"M", "x":8.5, "y":3},
-                {"label":",", "x":9.5, "y":3},
-                {"label":".", "x":10.5, "y":3},
-                {"label":"/", "x":11.5, "y":3},
-                {"label":"Shift", "x":12.5, "y":3, "w":2.75},
-                {"label":"\u2191", "x":15.25, "y":3},
-
-                {"label":"Super", "x":0, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":3.37, "y":4, "w":1.25},
-                {"x":4.62, "y":4, "w":6.25},
-                {"label":"Alt", "x":10.87, "y":4, "w":1.25},
-                {"label":"Function", "x":12.12, "y":4, "w":1.25},
-                {"label":"\u2190", "x":14.25, "y":4},
-                {"label":"\u2193", "x":15.25, "y":4},
-                {"label":"\u2192", "x":16.25, "y":4}
+                {"matrix": [4, 3], "x": 0.5, "y": 0},
+                {"matrix": [0, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [0, 2], "x": 3.5, "y": 0},
+                {"matrix": [0, 3], "x": 4.5, "y": 0},
+                {"matrix": [0, 4], "x": 5.5, "y": 0},
+                {"matrix": [0, 5], "x": 6.5, "y": 0},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
+                {"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2},
+
+                {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 2.5, "y": 1},
+                {"matrix": [1, 2], "x": 3.5, "y": 1},
+                {"matrix": [1, 3], "x": 4.5, "y": 1},
+                {"matrix": [1, 4], "x": 5.5, "y": 1},
+                {"matrix": [1, 5], "x": 6.5, "y": 1},
+                {"matrix": [1, 6], "x": 7.5, "y": 1},
+                {"matrix": [1, 7], "x": 8.5, "y": 1},
+                {"matrix": [1, 8], "x": 9.5, "y": 1},
+                {"matrix": [1, 9], "x": 10.5, "y": 1},
+                {"matrix": [1, 10], "x": 11.5, "y": 1},
+                {"matrix": [1, 11], "x": 12.5, "y": 1},
+                {"matrix": [1, 12], "x": 13.5, "y": 1},
+                {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.75, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 2.5, "y": 2},
+                {"matrix": [2, 2], "x": 3.5, "y": 2},
+                {"matrix": [2, 3], "x": 4.5, "y": 2},
+                {"matrix": [2, 4], "x": 5.5, "y": 2},
+                {"matrix": [2, 5], "x": 6.5, "y": 2},
+                {"matrix": [2, 6], "x": 7.5, "y": 2},
+                {"matrix": [2, 7], "x": 8.5, "y": 2},
+                {"matrix": [2, 8], "x": 9.5, "y": 2},
+                {"matrix": [2, 9], "x": 10.5, "y": 2},
+                {"matrix": [2, 10], "x": 11.5, "y": 2},
+                {"matrix": [2, 11], "x": 12.5, "y": 2},
+                {"matrix": [2, 12], "x": 13.5, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 1], "x": 0.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 2.75},
+                {"matrix": [3, 13], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 3.37, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 4.62, "y": 4, "w": 6.25},
+                {"matrix": [4, 8], "x": 10.87, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 12.12, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 11], "x": 14.25, "y": 4},
+                {"matrix": [4, 12], "x": 15.25, "y": 4},
+                {"matrix": [4, 13], "x": 16.25, "y": 4}
             ]
         },
         "LAYOUT_acs": {
             "layout": [
-                {"label":"Mute", "x":0.5, "y":0},
-                {"label":"Esc", "x":1.5, "y":0},
-                {"label":"1", "x":2.5, "y":0},
-                {"label":"2", "x":3.5, "y":0},
-                {"label":"3", "x":4.5, "y":0},
-                {"label":"4", "x":5.5, "y":0},
-                {"label":"5", "x":6.5, "y":0},
-                {"label":"6", "x":7.5, "y":0},
-                {"label":"7", "x":8.5, "y":0},
-                {"label":"8", "x":9.5, "y":0},
-                {"label":"9", "x":10.5, "y":0},
-                {"label":"0", "x":11.5, "y":0},
-                {"label":"_", "x":12.5, "y":0},
-                {"label":"+", "x":13.5, "y":0},
-                {"label":"Backspace", "x":14.5, "y":0, "w":2},
-
-                {"label":"Tab", "x":1, "y":1, "w":1.5},
-                {"label":"Q", "x":2.5, "y":1},
-                {"label":"W", "x":3.5, "y":1},
-                {"label":"E", "x":4.5, "y":1},
-                {"label":"R", "x":5.5, "y":1},
-                {"label":"T", "x":6.5, "y":1},
-                {"label":"Y", "x":7.5, "y":1},
-                {"label":"U", "x":8.5, "y":1},
-                {"label":"I", "x":9.5, "y":1},
-                {"label":"O", "x":10.5, "y":1},
-                {"label":"P", "x":11.5, "y":1},
-                {"label":"[", "x":12.5, "y":1},
-                {"label":"]", "x":13.5, "y":1},
-                {"label":"\\", "x":14.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
-                {"label":"A", "x":2.5, "y":2},
-                {"label":"S", "x":3.5, "y":2},
-                {"label":"D", "x":4.5, "y":2},
-                {"label":"F", "x":5.5, "y":2},
-                {"label":"G", "x":6.5, "y":2},
-                {"label":"H", "x":7.5, "y":2},
-                {"label":"J", "x":8.5, "y":2},
-                {"label":"K", "x":9.5, "y":2},
-                {"label":"L", "x":10.5, "y":2},
-                {"label":";", "x":11.5, "y":2},
-                {"label":"'", "x":12.5, "y":2},
-                {"label":"Enter", "x":13.5, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0.25, "y":3, "w":2.25},
-                {"label":"Z", "x":2.5, "y":3},
-                {"label":"X", "x":3.5, "y":3},
-                {"label":"C", "x":4.5, "y":3},
-                {"label":"V", "x":5.5, "y":3},
-                {"label":"B", "x":6.5, "y":3},
-                {"label":"N", "x":7.5, "y":3},
-                {"label":"M", "x":8.5, "y":3},
-                {"label":",", "x":9.5, "y":3},
-                {"label":".", "x":10.5, "y":3},
-                {"label":"/", "x":11.5, "y":3},
-                {"label":"Shift", "x":12.5, "y":3, "w":2.75},
-                {"label":"\u2191", "x":15.25, "y":3},
-
-                {"label":"Super", "x":0, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":3.37, "y":4, "w":1.25},
-                {"x":4.62, "y":4, "w":2.75},
-                {"x":7.37, "y":4, "w":2.25},
-                {"x":9.62, "y":4, "w":1.25},
-                {"label":"Alt", "x":10.87, "y":4, "w":1.25},
-                {"label":"Function", "x":12.12, "y":4, "w":1.25},
-                {"label":"\u2190", "x":14.25, "y":4},
-                {"label":"\u2193", "x":15.25, "y":4},
-                {"label":"\u2192", "x":16.25, "y":4}
+                {"matrix": [4, 3], "x": 0.5, "y": 0},
+                {"matrix": [0, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [0, 2], "x": 3.5, "y": 0},
+                {"matrix": [0, 3], "x": 4.5, "y": 0},
+                {"matrix": [0, 4], "x": 5.5, "y": 0},
+                {"matrix": [0, 5], "x": 6.5, "y": 0},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
+                {"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2},
+
+                {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 2.5, "y": 1},
+                {"matrix": [1, 2], "x": 3.5, "y": 1},
+                {"matrix": [1, 3], "x": 4.5, "y": 1},
+                {"matrix": [1, 4], "x": 5.5, "y": 1},
+                {"matrix": [1, 5], "x": 6.5, "y": 1},
+                {"matrix": [1, 6], "x": 7.5, "y": 1},
+                {"matrix": [1, 7], "x": 8.5, "y": 1},
+                {"matrix": [1, 8], "x": 9.5, "y": 1},
+                {"matrix": [1, 9], "x": 10.5, "y": 1},
+                {"matrix": [1, 10], "x": 11.5, "y": 1},
+                {"matrix": [1, 11], "x": 12.5, "y": 1},
+                {"matrix": [1, 12], "x": 13.5, "y": 1},
+                {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.75, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 2.5, "y": 2},
+                {"matrix": [2, 2], "x": 3.5, "y": 2},
+                {"matrix": [2, 3], "x": 4.5, "y": 2},
+                {"matrix": [2, 4], "x": 5.5, "y": 2},
+                {"matrix": [2, 5], "x": 6.5, "y": 2},
+                {"matrix": [2, 6], "x": 7.5, "y": 2},
+                {"matrix": [2, 7], "x": 8.5, "y": 2},
+                {"matrix": [2, 8], "x": 9.5, "y": 2},
+                {"matrix": [2, 9], "x": 10.5, "y": 2},
+                {"matrix": [2, 10], "x": 11.5, "y": 2},
+                {"matrix": [2, 11], "x": 12.5, "y": 2},
+                {"matrix": [2, 12], "x": 13.5, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 1], "x": 0.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 2.75},
+                {"matrix": [3, 13], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 3.37, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.62, "y": 4, "w": 2.75},
+                {"matrix": [4, 5], "x": 7.37, "y": 4, "w": 2.25},
+                {"matrix": [4, 6], "x": 9.62, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 10.87, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 12.12, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 11], "x": 14.25, "y": 4},
+                {"matrix": [4, 12], "x": 15.25, "y": 4},
+                {"matrix": [4, 13], "x": 16.25, "y": 4}
             ]
         },
         "LAYOUT_ad5": {
             "layout": [
-                {"label":"Mute", "x":0.5, "y":0},
-                {"label":"Esc", "x":1.5, "y":0},
-                {"label":"1", "x":2.5, "y":0},
-                {"label":"2", "x":3.5, "y":0},
-                {"label":"3", "x":4.5, "y":0},
-                {"label":"4", "x":5.5, "y":0},
-                {"label":"5", "x":6.5, "y":0},
-                {"label":"6", "x":7.5, "y":0},
-                {"label":"7", "x":8.5, "y":0},
-                {"label":"8", "x":9.5, "y":0},
-                {"label":"9", "x":10.5, "y":0},
-                {"label":"0", "x":11.5, "y":0},
-                {"label":"_", "x":12.5, "y":0},
-                {"label":"+", "x":13.5, "y":0},
-                {"label":"Backspace", "x":14.5, "y":0, "w":2},
-
-                {"label":"Tab", "x":1, "y":1, "w":1.5},
-                {"label":"Q", "x":2.5, "y":1},
-                {"label":"W", "x":3.5, "y":1},
-                {"label":"E", "x":4.5, "y":1},
-                {"label":"R", "x":5.5, "y":1},
-                {"label":"T", "x":6.5, "y":1},
-                {"label":"Y", "x":7.5, "y":1},
-                {"label":"U", "x":8.5, "y":1},
-                {"label":"I", "x":9.5, "y":1},
-                {"label":"O", "x":10.5, "y":1},
-                {"label":"P", "x":11.5, "y":1},
-                {"label":"[", "x":12.5, "y":1},
-                {"label":"]", "x":13.5, "y":1},
-                {"label":"\\", "x":14.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
-                {"label":"A", "x":2.5, "y":2},
-                {"label":"S", "x":3.5, "y":2},
-                {"label":"D", "x":4.5, "y":2},
-                {"label":"F", "x":5.5, "y":2},
-                {"label":"G", "x":6.5, "y":2},
-                {"label":"H", "x":7.5, "y":2},
-                {"label":"J", "x":8.5, "y":2},
-                {"label":"K", "x":9.5, "y":2},
-                {"label":"L", "x":10.5, "y":2},
-                {"label":";", "x":11.5, "y":2},
-                {"label":"'", "x":12.5, "y":2},
-                {"label":"Enter", "x":13.5, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0.25, "y":3, "w":2.25},
-                {"label":"Z", "x":2.5, "y":3},
-                {"label":"X", "x":3.5, "y":3},
-                {"label":"C", "x":4.5, "y":3},
-                {"label":"V", "x":5.5, "y":3},
-                {"label":"B", "x":6.5, "y":3},
-                {"label":"N", "x":7.5, "y":3},
-                {"label":"M", "x":8.5, "y":3},
-                {"label":",", "x":9.5, "y":3},
-                {"label":".", "x":10.5, "y":3},
-                {"label":"/", "x":11.5, "y":3},
-                {"label":"Shift", "x":12.5, "y":3, "w":1.75},
-                {"label":"Fn", "x":14.25, "y":3},
-                {"label":"\u2191", "x":15.25, "y":3},
-
-                {"label":"Super", "x":0, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":3.37, "y":4, "w":1.25},
-                {"x":4.62, "y":4, "w":6.25},
-                {"label":"Alt", "x":10.87, "y":4, "w":1.25},
-                {"label":"Function", "x":12.12, "y":4, "w":1.25},
-                {"label":"\u2190", "x":14.25, "y":4},
-                {"label":"\u2193", "x":15.25, "y":4},
-                {"label":"\u2192", "x":16.25, "y":4}
+                {"matrix": [4, 3], "x": 0.5, "y": 0},
+                {"matrix": [0, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [0, 2], "x": 3.5, "y": 0},
+                {"matrix": [0, 3], "x": 4.5, "y": 0},
+                {"matrix": [0, 4], "x": 5.5, "y": 0},
+                {"matrix": [0, 5], "x": 6.5, "y": 0},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
+                {"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2},
+
+                {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 2.5, "y": 1},
+                {"matrix": [1, 2], "x": 3.5, "y": 1},
+                {"matrix": [1, 3], "x": 4.5, "y": 1},
+                {"matrix": [1, 4], "x": 5.5, "y": 1},
+                {"matrix": [1, 5], "x": 6.5, "y": 1},
+                {"matrix": [1, 6], "x": 7.5, "y": 1},
+                {"matrix": [1, 7], "x": 8.5, "y": 1},
+                {"matrix": [1, 8], "x": 9.5, "y": 1},
+                {"matrix": [1, 9], "x": 10.5, "y": 1},
+                {"matrix": [1, 10], "x": 11.5, "y": 1},
+                {"matrix": [1, 11], "x": 12.5, "y": 1},
+                {"matrix": [1, 12], "x": 13.5, "y": 1},
+                {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.75, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 2.5, "y": 2},
+                {"matrix": [2, 2], "x": 3.5, "y": 2},
+                {"matrix": [2, 3], "x": 4.5, "y": 2},
+                {"matrix": [2, 4], "x": 5.5, "y": 2},
+                {"matrix": [2, 5], "x": 6.5, "y": 2},
+                {"matrix": [2, 6], "x": 7.5, "y": 2},
+                {"matrix": [2, 7], "x": 8.5, "y": 2},
+                {"matrix": [2, 8], "x": 9.5, "y": 2},
+                {"matrix": [2, 9], "x": 10.5, "y": 2},
+                {"matrix": [2, 10], "x": 11.5, "y": 2},
+                {"matrix": [2, 11], "x": 12.5, "y": 2},
+                {"matrix": [2, 12], "x": 13.5, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 1], "x": 0.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.75},
+                {"matrix": [4, 10], "x": 14.25, "y": 3},
+                {"matrix": [3, 13], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 3.37, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 4.62, "y": 4, "w": 6.25},
+                {"matrix": [4, 8], "x": 10.87, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 12.12, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 11], "x": 14.25, "y": 4},
+                {"matrix": [4, 12], "x": 15.25, "y": 4},
+                {"matrix": [4, 13], "x": 16.25, "y": 4}
             ]
         },
         "LAYOUT_ads": {
             "layout": [
-                {"label":"Mute", "x":0.5, "y":0},
-                {"label":"Esc", "x":1.5, "y":0},
-                {"label":"1", "x":2.5, "y":0},
-                {"label":"2", "x":3.5, "y":0},
-                {"label":"3", "x":4.5, "y":0},
-                {"label":"4", "x":5.5, "y":0},
-                {"label":"5", "x":6.5, "y":0},
-                {"label":"6", "x":7.5, "y":0},
-                {"label":"7", "x":8.5, "y":0},
-                {"label":"8", "x":9.5, "y":0},
-                {"label":"9", "x":10.5, "y":0},
-                {"label":"0", "x":11.5, "y":0},
-                {"label":"_", "x":12.5, "y":0},
-                {"label":"+", "x":13.5, "y":0},
-                {"label":"Backspace", "x":14.5, "y":0, "w":2},
-
-                {"label":"Tab", "x":1, "y":1, "w":1.5},
-                {"label":"Q", "x":2.5, "y":1},
-                {"label":"W", "x":3.5, "y":1},
-                {"label":"E", "x":4.5, "y":1},
-                {"label":"R", "x":5.5, "y":1},
-                {"label":"T", "x":6.5, "y":1},
-                {"label":"Y", "x":7.5, "y":1},
-                {"label":"U", "x":8.5, "y":1},
-                {"label":"I", "x":9.5, "y":1},
-                {"label":"O", "x":10.5, "y":1},
-                {"label":"P", "x":11.5, "y":1},
-                {"label":"[", "x":12.5, "y":1},
-                {"label":"]", "x":13.5, "y":1},
-                {"label":"\\", "x":14.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
-                {"label":"A", "x":2.5, "y":2},
-                {"label":"S", "x":3.5, "y":2},
-                {"label":"D", "x":4.5, "y":2},
-                {"label":"F", "x":5.5, "y":2},
-                {"label":"G", "x":6.5, "y":2},
-                {"label":"H", "x":7.5, "y":2},
-                {"label":"J", "x":8.5, "y":2},
-                {"label":"K", "x":9.5, "y":2},
-                {"label":"L", "x":10.5, "y":2},
-                {"label":";", "x":11.5, "y":2},
-                {"label":"'", "x":12.5, "y":2},
-                {"label":"Enter", "x":13.5, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0.25, "y":3, "w":2.25},
-                {"label":"Z", "x":2.5, "y":3},
-                {"label":"X", "x":3.5, "y":3},
-                {"label":"C", "x":4.5, "y":3},
-                {"label":"V", "x":5.5, "y":3},
-                {"label":"B", "x":6.5, "y":3},
-                {"label":"N", "x":7.5, "y":3},
-                {"label":"M", "x":8.5, "y":3},
-                {"label":",", "x":9.5, "y":3},
-                {"label":".", "x":10.5, "y":3},
-                {"label":"/", "x":11.5, "y":3},
-                {"label":"Shift", "x":12.5, "y":3, "w":1.75},
-                {"label":"Fn", "x":14.25, "y":3},
-                {"label":"\u2191", "x":15.25, "y":3},
-
-                {"label":"Super", "x":0, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":3.37, "y":4, "w":1.25},
-                {"x":4.62, "y":4, "w":2.75},
-                {"x":7.37, "y":4, "w":2.25},
-                {"x":9.62, "y":4, "w":1.25},
-                {"label":"Alt", "x":10.87, "y":4, "w":1.25},
-                {"label":"Function", "x":12.12, "y":4, "w":1.25},
-                {"label":"\u2190", "x":14.25, "y":4},
-                {"label":"\u2193", "x":15.25, "y":4},
-                {"label":"\u2192", "x":16.25, "y":4}
+                {"matrix": [4, 3], "x": 0.5, "y": 0},
+                {"matrix": [0, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [0, 2], "x": 3.5, "y": 0},
+                {"matrix": [0, 3], "x": 4.5, "y": 0},
+                {"matrix": [0, 4], "x": 5.5, "y": 0},
+                {"matrix": [0, 5], "x": 6.5, "y": 0},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
+                {"matrix": [0, 13], "x": 14.5, "y": 0, "w": 2},
+
+                {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 2.5, "y": 1},
+                {"matrix": [1, 2], "x": 3.5, "y": 1},
+                {"matrix": [1, 3], "x": 4.5, "y": 1},
+                {"matrix": [1, 4], "x": 5.5, "y": 1},
+                {"matrix": [1, 5], "x": 6.5, "y": 1},
+                {"matrix": [1, 6], "x": 7.5, "y": 1},
+                {"matrix": [1, 7], "x": 8.5, "y": 1},
+                {"matrix": [1, 8], "x": 9.5, "y": 1},
+                {"matrix": [1, 9], "x": 10.5, "y": 1},
+                {"matrix": [1, 10], "x": 11.5, "y": 1},
+                {"matrix": [1, 11], "x": 12.5, "y": 1},
+                {"matrix": [1, 12], "x": 13.5, "y": 1},
+                {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.75, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 2.5, "y": 2},
+                {"matrix": [2, 2], "x": 3.5, "y": 2},
+                {"matrix": [2, 3], "x": 4.5, "y": 2},
+                {"matrix": [2, 4], "x": 5.5, "y": 2},
+                {"matrix": [2, 5], "x": 6.5, "y": 2},
+                {"matrix": [2, 6], "x": 7.5, "y": 2},
+                {"matrix": [2, 7], "x": 8.5, "y": 2},
+                {"matrix": [2, 8], "x": 9.5, "y": 2},
+                {"matrix": [2, 9], "x": 10.5, "y": 2},
+                {"matrix": [2, 10], "x": 11.5, "y": 2},
+                {"matrix": [2, 11], "x": 12.5, "y": 2},
+                {"matrix": [2, 12], "x": 13.5, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 1], "x": 0.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.75},
+                {"matrix": [4, 10], "x": 14.25, "y": 3},
+                {"matrix": [3, 13], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 3.37, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.62, "y": 4, "w": 2.75},
+                {"matrix": [4, 5], "x": 7.37, "y": 4, "w": 2.25},
+                {"matrix": [4, 6], "x": 9.62, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 10.87, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 12.12, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 11], "x": 14.25, "y": 4},
+                {"matrix": [4, 12], "x": 15.25, "y": 4},
+                {"matrix": [4, 13], "x": 16.25, "y": 4}
             ]
         },
         "LAYOUT_bc5": {
             "layout": [
-                {"label":"Mute", "x":0.5, "y":0},
-                {"label":"Esc", "x":1.5, "y":0},
-                {"label":"1", "x":2.5, "y":0},
-                {"label":"2", "x":3.5, "y":0},
-                {"label":"3", "x":4.5, "y":0},
-                {"label":"4", "x":5.5, "y":0},
-                {"label":"5", "x":6.5, "y":0},
-                {"label":"6", "x":7.5, "y":0},
-                {"label":"7", "x":8.5, "y":0},
-                {"label":"8", "x":9.5, "y":0},
-                {"label":"9", "x":10.5, "y":0},
-                {"label":"0", "x":11.5, "y":0},
-                {"label":"_", "x":12.5, "y":0},
-                {"label":"+", "x":13.5, "y":0},
-                {"label":"\u2190", "x":14.5, "y":0},
-                {"label":"Del", "x":15.5, "y":0},
-
-                {"label":"Tab", "x":1, "y":1, "w":1.5},
-                {"label":"Q", "x":2.5, "y":1},
-                {"label":"W", "x":3.5, "y":1},
-                {"label":"E", "x":4.5, "y":1},
-                {"label":"R", "x":5.5, "y":1},
-                {"label":"T", "x":6.5, "y":1},
-                {"label":"Y", "x":7.5, "y":1},
-                {"label":"U", "x":8.5, "y":1},
-                {"label":"I", "x":9.5, "y":1},
-                {"label":"O", "x":10.5, "y":1},
-                {"label":"P", "x":11.5, "y":1},
-                {"label":"[", "x":12.5, "y":1},
-                {"label":"]", "x":13.5, "y":1},
-                {"label":"\\", "x":14.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
-                {"label":"A", "x":2.5, "y":2},
-                {"label":"S", "x":3.5, "y":2},
-                {"label":"D", "x":4.5, "y":2},
-                {"label":"F", "x":5.5, "y":2},
-                {"label":"G", "x":6.5, "y":2},
-                {"label":"H", "x":7.5, "y":2},
-                {"label":"J", "x":8.5, "y":2},
-                {"label":"K", "x":9.5, "y":2},
-                {"label":"L", "x":10.5, "y":2},
-                {"label":";", "x":11.5, "y":2},
-                {"label":"'", "x":12.5, "y":2},
-                {"label":"Enter", "x":13.5, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0.25, "y":3, "w":2.25},
-                {"label":"Z", "x":2.5, "y":3},
-                {"label":"X", "x":3.5, "y":3},
-                {"label":"C", "x":4.5, "y":3},
-                {"label":"V", "x":5.5, "y":3},
-                {"label":"B", "x":6.5, "y":3},
-                {"label":"N", "x":7.5, "y":3},
-                {"label":"M", "x":8.5, "y":3},
-                {"label":",", "x":9.5, "y":3},
-                {"label":".", "x":10.5, "y":3},
-                {"label":"/", "x":11.5, "y":3},
-                {"label":"Shift", "x":12.5, "y":3, "w":2.75},
-                {"label":"\u2191", "x":15.25, "y":3},
-
-                {"label":"Super", "x":0, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":3.37, "y":4, "w":1.25},
-                {"x":4.62, "y":4, "w":6.25},
-                {"label":"Alt", "x":10.87, "y":4, "w":1.25},
-                {"label":"Function", "x":12.12, "y":4, "w":1.25},
-                {"label":"\u2190", "x":14.25, "y":4},
-                {"label":"\u2193", "x":15.25, "y":4},
-                {"label":"\u2192", "x":16.25, "y":4}
+                {"matrix": [4, 3], "x": 0.5, "y": 0},
+                {"matrix": [0, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [0, 2], "x": 3.5, "y": 0},
+                {"matrix": [0, 3], "x": 4.5, "y": 0},
+                {"matrix": [0, 4], "x": 5.5, "y": 0},
+                {"matrix": [0, 5], "x": 6.5, "y": 0},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
+                {"matrix": [0, 13], "x": 14.5, "y": 0},
+                {"matrix": [2, 13], "x": 15.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 2.5, "y": 1},
+                {"matrix": [1, 2], "x": 3.5, "y": 1},
+                {"matrix": [1, 3], "x": 4.5, "y": 1},
+                {"matrix": [1, 4], "x": 5.5, "y": 1},
+                {"matrix": [1, 5], "x": 6.5, "y": 1},
+                {"matrix": [1, 6], "x": 7.5, "y": 1},
+                {"matrix": [1, 7], "x": 8.5, "y": 1},
+                {"matrix": [1, 8], "x": 9.5, "y": 1},
+                {"matrix": [1, 9], "x": 10.5, "y": 1},
+                {"matrix": [1, 10], "x": 11.5, "y": 1},
+                {"matrix": [1, 11], "x": 12.5, "y": 1},
+                {"matrix": [1, 12], "x": 13.5, "y": 1},
+                {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.75, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 2.5, "y": 2},
+                {"matrix": [2, 2], "x": 3.5, "y": 2},
+                {"matrix": [2, 3], "x": 4.5, "y": 2},
+                {"matrix": [2, 4], "x": 5.5, "y": 2},
+                {"matrix": [2, 5], "x": 6.5, "y": 2},
+                {"matrix": [2, 6], "x": 7.5, "y": 2},
+                {"matrix": [2, 7], "x": 8.5, "y": 2},
+                {"matrix": [2, 8], "x": 9.5, "y": 2},
+                {"matrix": [2, 9], "x": 10.5, "y": 2},
+                {"matrix": [2, 10], "x": 11.5, "y": 2},
+                {"matrix": [2, 11], "x": 12.5, "y": 2},
+                {"matrix": [2, 12], "x": 13.5, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 1], "x": 0.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 2.75},
+                {"matrix": [3, 13], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 3.37, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 4.62, "y": 4, "w": 6.25},
+                {"matrix": [4, 8], "x": 10.87, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 12.12, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 11], "x": 14.25, "y": 4},
+                {"matrix": [4, 12], "x": 15.25, "y": 4},
+                {"matrix": [4, 13], "x": 16.25, "y": 4}
             ]
         },
         "LAYOUT_bcs": {
             "layout": [
-                {"label":"Mute", "x":0.5, "y":0},
-                {"label":"Esc", "x":1.5, "y":0},
-                {"label":"1", "x":2.5, "y":0},
-                {"label":"2", "x":3.5, "y":0},
-                {"label":"3", "x":4.5, "y":0},
-                {"label":"4", "x":5.5, "y":0},
-                {"label":"5", "x":6.5, "y":0},
-                {"label":"6", "x":7.5, "y":0},
-                {"label":"7", "x":8.5, "y":0},
-                {"label":"8", "x":9.5, "y":0},
-                {"label":"9", "x":10.5, "y":0},
-                {"label":"0", "x":11.5, "y":0},
-                {"label":"_", "x":12.5, "y":0},
-                {"label":"+", "x":13.5, "y":0},
-                {"label":"\u2190", "x":14.5, "y":0},
-                {"label":"Del", "x":15.5, "y":0},
-
-                {"label":"Tab", "x":1, "y":1, "w":1.5},
-                {"label":"Q", "x":2.5, "y":1},
-                {"label":"W", "x":3.5, "y":1},
-                {"label":"E", "x":4.5, "y":1},
-                {"label":"R", "x":5.5, "y":1},
-                {"label":"T", "x":6.5, "y":1},
-                {"label":"Y", "x":7.5, "y":1},
-                {"label":"U", "x":8.5, "y":1},
-                {"label":"I", "x":9.5, "y":1},
-                {"label":"O", "x":10.5, "y":1},
-                {"label":"P", "x":11.5, "y":1},
-                {"label":"[", "x":12.5, "y":1},
-                {"label":"]", "x":13.5, "y":1},
-                {"label":"\\", "x":14.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
-                {"label":"A", "x":2.5, "y":2},
-                {"label":"S", "x":3.5, "y":2},
-                {"label":"D", "x":4.5, "y":2},
-                {"label":"F", "x":5.5, "y":2},
-                {"label":"G", "x":6.5, "y":2},
-                {"label":"H", "x":7.5, "y":2},
-                {"label":"J", "x":8.5, "y":2},
-                {"label":"K", "x":9.5, "y":2},
-                {"label":"L", "x":10.5, "y":2},
-                {"label":";", "x":11.5, "y":2},
-                {"label":"'", "x":12.5, "y":2},
-                {"label":"Enter", "x":13.5, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0.25, "y":3, "w":2.25},
-                {"label":"Z", "x":2.5, "y":3},
-                {"label":"X", "x":3.5, "y":3},
-                {"label":"C", "x":4.5, "y":3},
-                {"label":"V", "x":5.5, "y":3},
-                {"label":"B", "x":6.5, "y":3},
-                {"label":"N", "x":7.5, "y":3},
-                {"label":"M", "x":8.5, "y":3},
-                {"label":",", "x":9.5, "y":3},
-                {"label":".", "x":10.5, "y":3},
-                {"label":"/", "x":11.5, "y":3},
-                {"label":"Shift", "x":12.5, "y":3, "w":2.75},
-                {"label":"\u2191", "x":15.25, "y":3},
-
-                {"label":"Super", "x":0, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":3.37, "y":4, "w":1.25},
-                {"x":4.62, "y":4, "w":2.75},
-                {"x":7.37, "y":4, "w":2.25},
-                {"x":9.62, "y":4, "w":1.25},
-                {"label":"Alt", "x":10.87, "y":4, "w":1.25},
-                {"label":"Function", "x":12.12, "y":4, "w":1.25},
-                {"label":"\u2190", "x":14.25, "y":4},
-                {"label":"\u2193", "x":15.25, "y":4},
-                {"label":"\u2192", "x":16.25, "y":4}
+                {"matrix": [4, 3], "x": 0.5, "y": 0},
+                {"matrix": [0, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [0, 2], "x": 3.5, "y": 0},
+                {"matrix": [0, 3], "x": 4.5, "y": 0},
+                {"matrix": [0, 4], "x": 5.5, "y": 0},
+                {"matrix": [0, 5], "x": 6.5, "y": 0},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
+                {"matrix": [0, 13], "x": 14.5, "y": 0},
+                {"matrix": [2, 13], "x": 15.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 2.5, "y": 1},
+                {"matrix": [1, 2], "x": 3.5, "y": 1},
+                {"matrix": [1, 3], "x": 4.5, "y": 1},
+                {"matrix": [1, 4], "x": 5.5, "y": 1},
+                {"matrix": [1, 5], "x": 6.5, "y": 1},
+                {"matrix": [1, 6], "x": 7.5, "y": 1},
+                {"matrix": [1, 7], "x": 8.5, "y": 1},
+                {"matrix": [1, 8], "x": 9.5, "y": 1},
+                {"matrix": [1, 9], "x": 10.5, "y": 1},
+                {"matrix": [1, 10], "x": 11.5, "y": 1},
+                {"matrix": [1, 11], "x": 12.5, "y": 1},
+                {"matrix": [1, 12], "x": 13.5, "y": 1},
+                {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.75, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 2.5, "y": 2},
+                {"matrix": [2, 2], "x": 3.5, "y": 2},
+                {"matrix": [2, 3], "x": 4.5, "y": 2},
+                {"matrix": [2, 4], "x": 5.5, "y": 2},
+                {"matrix": [2, 5], "x": 6.5, "y": 2},
+                {"matrix": [2, 6], "x": 7.5, "y": 2},
+                {"matrix": [2, 7], "x": 8.5, "y": 2},
+                {"matrix": [2, 8], "x": 9.5, "y": 2},
+                {"matrix": [2, 9], "x": 10.5, "y": 2},
+                {"matrix": [2, 10], "x": 11.5, "y": 2},
+                {"matrix": [2, 11], "x": 12.5, "y": 2},
+                {"matrix": [2, 12], "x": 13.5, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 1], "x": 0.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 2.75},
+                {"matrix": [3, 13], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 3.37, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.62, "y": 4, "w": 2.75},
+                {"matrix": [4, 5], "x": 7.37, "y": 4, "w": 2.25},
+                {"matrix": [4, 6], "x": 9.62, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 10.87, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 12.12, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 11], "x": 14.25, "y": 4},
+                {"matrix": [4, 12], "x": 15.25, "y": 4},
+                {"matrix": [4, 13], "x": 16.25, "y": 4}
             ]
         },
         "LAYOUT_bd5": {
             "layout": [
-                {"label":"Mute", "x":0.5, "y":0},
-                {"label":"Esc", "x":1.5, "y":0},
-                {"label":"1", "x":2.5, "y":0},
-                {"label":"2", "x":3.5, "y":0},
-                {"label":"3", "x":4.5, "y":0},
-                {"label":"4", "x":5.5, "y":0},
-                {"label":"5", "x":6.5, "y":0},
-                {"label":"6", "x":7.5, "y":0},
-                {"label":"7", "x":8.5, "y":0},
-                {"label":"8", "x":9.5, "y":0},
-                {"label":"9", "x":10.5, "y":0},
-                {"label":"0", "x":11.5, "y":0},
-                {"label":"_", "x":12.5, "y":0},
-                {"label":"+", "x":13.5, "y":0},
-                {"label":"\u2190", "x":14.5, "y":0},
-                {"label":"Del", "x":15.5, "y":0},
-
-                {"label":"Tab", "x":1, "y":1, "w":1.5},
-                {"label":"Q", "x":2.5, "y":1},
-                {"label":"W", "x":3.5, "y":1},
-                {"label":"E", "x":4.5, "y":1},
-                {"label":"R", "x":5.5, "y":1},
-                {"label":"T", "x":6.5, "y":1},
-                {"label":"Y", "x":7.5, "y":1},
-                {"label":"U", "x":8.5, "y":1},
-                {"label":"I", "x":9.5, "y":1},
-                {"label":"O", "x":10.5, "y":1},
-                {"label":"P", "x":11.5, "y":1},
-                {"label":"[", "x":12.5, "y":1},
-                {"label":"]", "x":13.5, "y":1},
-                {"label":"\\", "x":14.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
-                {"label":"A", "x":2.5, "y":2},
-                {"label":"S", "x":3.5, "y":2},
-                {"label":"D", "x":4.5, "y":2},
-                {"label":"F", "x":5.5, "y":2},
-                {"label":"G", "x":6.5, "y":2},
-                {"label":"H", "x":7.5, "y":2},
-                {"label":"J", "x":8.5, "y":2},
-                {"label":"K", "x":9.5, "y":2},
-                {"label":"L", "x":10.5, "y":2},
-                {"label":";", "x":11.5, "y":2},
-                {"label":"'", "x":12.5, "y":2},
-                {"label":"Enter", "x":13.5, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0.25, "y":3, "w":2.25},
-                {"label":"Z", "x":2.5, "y":3},
-                {"label":"X", "x":3.5, "y":3},
-                {"label":"C", "x":4.5, "y":3},
-                {"label":"V", "x":5.5, "y":3},
-                {"label":"B", "x":6.5, "y":3},
-                {"label":"N", "x":7.5, "y":3},
-                {"label":"M", "x":8.5, "y":3},
-                {"label":",", "x":9.5, "y":3},
-                {"label":".", "x":10.5, "y":3},
-                {"label":"/", "x":11.5, "y":3},
-                {"label":"Shift", "x":12.5, "y":3, "w":1.75},
-                {"label":"Fn", "x":14.25, "y":3},
-                {"label":"\u2191", "x":15.25, "y":3},
-
-                {"label":"Super", "x":0, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":3.37, "y":4, "w":1.25},
-                {"x":4.62, "y":4, "w":6.25},
-                {"label":"Alt", "x":10.87, "y":4, "w":1.25},
-                {"label":"Function", "x":12.12, "y":4, "w":1.25},
-                {"label":"\u2190", "x":14.25, "y":4},
-                {"label":"\u2193", "x":15.25, "y":4},
-                {"label":"\u2192", "x":16.25, "y":4}
+                {"matrix": [4, 3], "x": 0.5, "y": 0},
+                {"matrix": [0, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [0, 2], "x": 3.5, "y": 0},
+                {"matrix": [0, 3], "x": 4.5, "y": 0},
+                {"matrix": [0, 4], "x": 5.5, "y": 0},
+                {"matrix": [0, 5], "x": 6.5, "y": 0},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
+                {"matrix": [0, 13], "x": 14.5, "y": 0},
+                {"matrix": [2, 13], "x": 15.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 2.5, "y": 1},
+                {"matrix": [1, 2], "x": 3.5, "y": 1},
+                {"matrix": [1, 3], "x": 4.5, "y": 1},
+                {"matrix": [1, 4], "x": 5.5, "y": 1},
+                {"matrix": [1, 5], "x": 6.5, "y": 1},
+                {"matrix": [1, 6], "x": 7.5, "y": 1},
+                {"matrix": [1, 7], "x": 8.5, "y": 1},
+                {"matrix": [1, 8], "x": 9.5, "y": 1},
+                {"matrix": [1, 9], "x": 10.5, "y": 1},
+                {"matrix": [1, 10], "x": 11.5, "y": 1},
+                {"matrix": [1, 11], "x": 12.5, "y": 1},
+                {"matrix": [1, 12], "x": 13.5, "y": 1},
+                {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.75, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 2.5, "y": 2},
+                {"matrix": [2, 2], "x": 3.5, "y": 2},
+                {"matrix": [2, 3], "x": 4.5, "y": 2},
+                {"matrix": [2, 4], "x": 5.5, "y": 2},
+                {"matrix": [2, 5], "x": 6.5, "y": 2},
+                {"matrix": [2, 6], "x": 7.5, "y": 2},
+                {"matrix": [2, 7], "x": 8.5, "y": 2},
+                {"matrix": [2, 8], "x": 9.5, "y": 2},
+                {"matrix": [2, 9], "x": 10.5, "y": 2},
+                {"matrix": [2, 10], "x": 11.5, "y": 2},
+                {"matrix": [2, 11], "x": 12.5, "y": 2},
+                {"matrix": [2, 12], "x": 13.5, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 1], "x": 0.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.75},
+                {"matrix": [4, 10], "x": 14.25, "y": 3},
+                {"matrix": [3, 13], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 3.37, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 4.62, "y": 4, "w": 6.25},
+                {"matrix": [4, 8], "x": 10.87, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 12.12, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 11], "x": 14.25, "y": 4},
+                {"matrix": [4, 12], "x": 15.25, "y": 4},
+                {"matrix": [4, 13], "x": 16.25, "y": 4}
             ]
         },
         "LAYOUT_bds": {
             "layout": [
-                {"label":"Mute", "x":0.5, "y":0},
-                {"label":"Esc", "x":1.5, "y":0},
-                {"label":"1", "x":2.5, "y":0},
-                {"label":"2", "x":3.5, "y":0},
-                {"label":"3", "x":4.5, "y":0},
-                {"label":"4", "x":5.5, "y":0},
-                {"label":"5", "x":6.5, "y":0},
-                {"label":"6", "x":7.5, "y":0},
-                {"label":"7", "x":8.5, "y":0},
-                {"label":"8", "x":9.5, "y":0},
-                {"label":"9", "x":10.5, "y":0},
-                {"label":"0", "x":11.5, "y":0},
-                {"label":"_", "x":12.5, "y":0},
-                {"label":"+", "x":13.5, "y":0},
-                {"label":"\u2190", "x":14.5, "y":0},
-                {"label":"Del", "x":15.5, "y":0},
-
-                {"label":"Tab", "x":1, "y":1, "w":1.5},
-                {"label":"Q", "x":2.5, "y":1},
-                {"label":"W", "x":3.5, "y":1},
-                {"label":"E", "x":4.5, "y":1},
-                {"label":"R", "x":5.5, "y":1},
-                {"label":"T", "x":6.5, "y":1},
-                {"label":"Y", "x":7.5, "y":1},
-                {"label":"U", "x":8.5, "y":1},
-                {"label":"I", "x":9.5, "y":1},
-                {"label":"O", "x":10.5, "y":1},
-                {"label":"P", "x":11.5, "y":1},
-                {"label":"[", "x":12.5, "y":1},
-                {"label":"]", "x":13.5, "y":1},
-                {"label":"\\", "x":14.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
-                {"label":"A", "x":2.5, "y":2},
-                {"label":"S", "x":3.5, "y":2},
-                {"label":"D", "x":4.5, "y":2},
-                {"label":"F", "x":5.5, "y":2},
-                {"label":"G", "x":6.5, "y":2},
-                {"label":"H", "x":7.5, "y":2},
-                {"label":"J", "x":8.5, "y":2},
-                {"label":"K", "x":9.5, "y":2},
-                {"label":"L", "x":10.5, "y":2},
-                {"label":";", "x":11.5, "y":2},
-                {"label":"'", "x":12.5, "y":2},
-                {"label":"Enter", "x":13.5, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0.25, "y":3, "w":2.25},
-                {"label":"Z", "x":2.5, "y":3},
-                {"label":"X", "x":3.5, "y":3},
-                {"label":"C", "x":4.5, "y":3},
-                {"label":"V", "x":5.5, "y":3},
-                {"label":"B", "x":6.5, "y":3},
-                {"label":"N", "x":7.5, "y":3},
-                {"label":"M", "x":8.5, "y":3},
-                {"label":",", "x":9.5, "y":3},
-                {"label":".", "x":10.5, "y":3},
-                {"label":"/", "x":11.5, "y":3},
-                {"label":"Shift", "x":12.5, "y":3, "w":1.75},
-                {"label":"Fn", "x":14.25, "y":3},
-                {"label":"\u2191", "x":15.25, "y":3},
-
-                {"label":"Super", "x":0, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":3.37, "y":4, "w":1.25},
-                {"x":4.62, "y":4, "w":2.75},
-                {"x":7.37, "y":4, "w":2.25},
-                {"x":9.62, "y":4, "w":1.25},
-                {"label":"Alt", "x":10.87, "y":4, "w":1.25},
-                {"label":"Function", "x":12.12, "y":4, "w":1.25},
-                {"label":"\u2190", "x":14.25, "y":4},
-                {"label":"\u2193", "x":15.25, "y":4},
-                {"label":"\u2192", "x":16.25, "y":4}
+                {"matrix": [4, 3], "x": 0.5, "y": 0},
+                {"matrix": [0, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [0, 2], "x": 3.5, "y": 0},
+                {"matrix": [0, 3], "x": 4.5, "y": 0},
+                {"matrix": [0, 4], "x": 5.5, "y": 0},
+                {"matrix": [0, 5], "x": 6.5, "y": 0},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
+                {"matrix": [0, 13], "x": 14.5, "y": 0},
+                {"matrix": [2, 13], "x": 15.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 1, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 2.5, "y": 1},
+                {"matrix": [1, 2], "x": 3.5, "y": 1},
+                {"matrix": [1, 3], "x": 4.5, "y": 1},
+                {"matrix": [1, 4], "x": 5.5, "y": 1},
+                {"matrix": [1, 5], "x": 6.5, "y": 1},
+                {"matrix": [1, 6], "x": 7.5, "y": 1},
+                {"matrix": [1, 7], "x": 8.5, "y": 1},
+                {"matrix": [1, 8], "x": 9.5, "y": 1},
+                {"matrix": [1, 9], "x": 10.5, "y": 1},
+                {"matrix": [1, 10], "x": 11.5, "y": 1},
+                {"matrix": [1, 11], "x": 12.5, "y": 1},
+                {"matrix": [1, 12], "x": 13.5, "y": 1},
+                {"matrix": [1, 13], "x": 14.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.75, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 2.5, "y": 2},
+                {"matrix": [2, 2], "x": 3.5, "y": 2},
+                {"matrix": [2, 3], "x": 4.5, "y": 2},
+                {"matrix": [2, 4], "x": 5.5, "y": 2},
+                {"matrix": [2, 5], "x": 6.5, "y": 2},
+                {"matrix": [2, 6], "x": 7.5, "y": 2},
+                {"matrix": [2, 7], "x": 8.5, "y": 2},
+                {"matrix": [2, 8], "x": 9.5, "y": 2},
+                {"matrix": [2, 9], "x": 10.5, "y": 2},
+                {"matrix": [2, 10], "x": 11.5, "y": 2},
+                {"matrix": [2, 11], "x": 12.5, "y": 2},
+                {"matrix": [2, 12], "x": 13.5, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 1], "x": 0.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.5, "y": 3},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3, "w": 1.75},
+                {"matrix": [4, 10], "x": 14.25, "y": 3},
+                {"matrix": [3, 13], "x": 15.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 3.37, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.62, "y": 4, "w": 2.75},
+                {"matrix": [4, 5], "x": 7.37, "y": 4, "w": 2.25},
+                {"matrix": [4, 6], "x": 9.62, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 10.87, "y": 4, "w": 1.25},
+                {"matrix": [4, 9], "x": 12.12, "y": 4, "w": 1.25},
+
+                {"matrix": [4, 11], "x": 14.25, "y": 4},
+                {"matrix": [4, 12], "x": 15.25, "y": 4},
+                {"matrix": [4, 13], "x": 16.25, "y": 4}
             ]
         }
     }

+ 0 - 16
keyboards/eyeohdesigns/sprh/sprh.c

@@ -1,16 +0,0 @@
-/* Copyright 2021 Eye Oh Designs
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "sprh.h"

+ 0 - 139
keyboards/eyeohdesigns/sprh/sprh.h

@@ -1,139 +0,0 @@
-/* Copyright 2021 Eye Oh Designs
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_ac5( \
-        k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,\
-        k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,\
-        k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,\
-        k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,\
-        k40, k41, k42, k45, k48, k49, k4b, k4c, k4d\
-) \
-{ \
-    {k00,   k01, k02, k03, k04,   k05,   k06, k07,   k08, k09, k0a,   k0b, k0c, k0d},\
-    {k10,   k11, k12, k13, k14,   k15,   k16, k17,   k18, k19, k1a,   k1b, k1c, k1d},\
-    {k20,   k21, k22, k23, k24,   k25,   k26, k27,   k28, k29, k2a,   k2b, k2c, KC_NO},\
-    {KC_NO, k31, k32, k33, k34,   k35,   k36, k37,   k38, k39, k3a,   k3b, k3c, k3d},\
-    {k40,   k41, k42, k43, KC_NO, k45, KC_NO, KC_NO, k48, k49, KC_NO, k4b, k4c, k4d},\
-}
-#define LAYOUT_acs( \
-        k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,\
-        k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,\
-        k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,\
-        k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,\
-        k40, k41, k42, k44, k45, k46, k48, k49, k4b, k4c, k4d\
-) \
-{ \
-    {k00,   k01, k02, k03, k04,   k05,   k06, k07,   k08, k09, k0a,   k0b, k0c, k0d},\
-    {k10,   k11, k12, k13, k14,   k15,   k16, k17,   k18, k19, k1a,   k1b, k1c, k1d},\
-    {k20,   k21, k22, k23, k24,   k25,   k26, k27,   k28, k29, k2a,   k2b, k2c, KC_NO},\
-    {KC_NO, k31, k32, k33, k34,   k35,   k36, k37,   k38, k39, k3a,   k3b, k3c, k3d},\
-    {k40,   k41, k42, k43, k44,   k45,   k46, KC_NO, k48, k49, KC_NO, k4b, k4c, k4d},\
-}
-#define LAYOUT_ad5( \
-        k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,\
-        k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,\
-        k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,\
-        k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4a, k3d,\
-        k40, k41, k42, k45, k48, k49, k4b, k4c, k4d\
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a,   k0b, k0c, k0d},\
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a,   k1b, k1c, k1d},\
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a,   k2b, k2c, KC_NO},\
-    {KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a,   k3b, k3c, k3d},\
-    {k40,   k41, k42, k43, KC_NO, k45, KC_NO, KC_NO, k48, k49, k4a, k4b, k4c, k4d},\
-}
-#define LAYOUT_ads( \
-        k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,\
-        k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,\
-        k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,\
-        k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4a, k3d,\
-        k40, k41, k42, k44, k45, k46, k48, k49, k4b, k4c, k4d\
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a,   k0b, k0c, k0d},\
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a,   k1b, k1c, k1d},\
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a,   k2b, k2c, KC_NO},\
-    {KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a,   k3b, k3c, k3d},\
-    {k40, k41, k42, k43, k44, k45, k46, KC_NO, k48, k49, k4a, k4b, k4c, k4d},\
-}
-#define LAYOUT_bc5( \
-        k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d,\
-        k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,\
-        k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,\
-        k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,\
-        k40, k41, k42, k45, k48, k49, k4b, k4c, k4d\
-) \
-{ \
-    {k00,   k01, k02, k03, k04,   k05,   k06, k07,   k08, k09, k0a,   k0b, k0c, k0d},\
-    {k10,   k11, k12, k13, k14,   k15,   k16, k17,   k18, k19, k1a,   k1b, k1c, k1d},\
-    {k20,   k21, k22, k23, k24,   k25,   k26, k27,   k28, k29, k2a,   k2b, k2c, k2d},\
-    {KC_NO, k31, k32, k33, k34,   k35,   k36, k37,   k38, k39, k3a,   k3b, k3c, k3d},\
-    {k40,   k41, k42, k43, KC_NO, k45, KC_NO, KC_NO, k48, k49, KC_NO, k4b, k4c, k4d},\
-}
-#define LAYOUT_bcs( \
-        k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d,\
-        k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,\
-        k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,\
-        k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,\
-        k40, k41, k42, k44, k45, k46, k48, k49, k4b, k4c, k4d\
-) \
-{ \
-    {k00,   k01, k02, k03, k04, k05, k06, k07,   k08, k09, k0a,   k0b, k0c, k0d},\
-    {k10,   k11, k12, k13, k14, k15, k16, k17,   k18, k19, k1a,   k1b, k1c, k1d},\
-    {k20,   k21, k22, k23, k24, k25, k26, k27,   k28, k29, k2a,   k2b, k2c, k2d},\
-    {KC_NO, k31, k32, k33, k34, k35, k36, k37,   k38, k39, k3a,   k3b, k3c, k3d},\
-    {k40,   k41, k42, k43, k44, k45, k46, KC_NO, k48, k49, KC_NO, k4b, k4c, k4d},\
-}
-#define LAYOUT_bd5( \
-        k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d,\
-        k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,\
-        k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,\
-        k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4a, k3d,\
-        k40, k41, k42, k45, k48, k49, k4b, k4c, k4d\
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a,   k0b, k0c, k0d},\
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a,   k1b, k1c, k1d},\
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a,   k2b, k2c, k2d},\
-    {KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a,   k3b, k3c, k3d},\
-    {k40, k41, k42, k43, KC_NO, k45, KC_NO, KC_NO, k48, k49, k4a, k4b, k4c, k4d},\
-}
-#define LAYOUT_bds( \
-        k43, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d,\
-        k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,\
-        k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,\
-        k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4a, k3d,\
-        k40, k41, k42, k44, k45, k46, k48, k49, k4b, k4c, k4d\
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a,   k0b, k0c, k0d},\
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a,   k1b, k1c, k1d},\
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a,   k2b, k2c, k2d},\
-    {KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a,   k3b, k3c, k3d},\
-    {k40, k41, k42, k43, k44, k45, k46, KC_NO, k48, k49, k4a, k4b, k4c, k4d},\
-}

+ 640 - 11
keyboards/eyeohdesigns/theboulevard/info.json

@@ -25,35 +25,664 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT_ortho1": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5}, {"label":"A", "x":2.5, "y":2.5}, {"label":"S", "x":3.5, "y":2.5}, {"label":"D", "x":4.5, "y":2.5}, {"label":"F", "x":5.5, "y":2.5}, {"label":"G", "x":6.5, "y":2.5}, {"label":"H", "x":7.5, "y":2.5}, {"label":"J", "x":8.5, "y":2.5}, {"label":"K", "x":9.5, "y":2.5}, {"label":"L", "x":10.5, "y":2.5}, {"label":";", "x":11.5, "y":2.5}, {"label":"ENTER", "x":12.5, "y":2.5}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5}, {"label":"Z", "x":2.5, "y":3.5}, {"label":"X", "x":3.5, "y":3.5}, {"label":"C", "x":4.5, "y":3.5}, {"label":"V", "x":5.5, "y":3.5}, {"label":"B", "x":6.5, "y":3.5}, {"label":"N", "x":7.5, "y":3.5}, {"label":"M", "x":8.5, "y":3.5}, {"label":",", "x":9.5, "y":3.5}, {"label":".", "x":10.5, "y":3.5}, {"label":"/", "x":11.5, "y":3.5}, {"label":"SHIFT", "x":12.5, "y":3.5}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5}, {"x":2.5, "y":4.5}, {"x":3.5, "y":4.5}, {"x":4.5, "y":4.5}, {"x":5.5, "y":4.5}, {"x":6.5, "y":4.5, "w":2}, {"x":8.5, "y":4.5}, {"x":9.5, "y":4.5}, {"x":10.5, "y":4.5}, {"x":11.5, "y":4.5}, {"x":12.5, "y":4.5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.5, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.5, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.5, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.5, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.5, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.5, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.5, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.5, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.5, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.5, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.5, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.5, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.5, "y": 4.5},
+                {"matrix": [4, 7], "x": 6.5, "y": 4.5, "w": 2},
+                {"matrix": [4, 8], "x": 8.5, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.5, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.5, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4.5}
+            ]
         },
         "LAYOUT_ortho2": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5}, {"label":"A", "x":2.5, "y":2.5}, {"label":"S", "x":3.5, "y":2.5}, {"label":"D", "x":4.5, "y":2.5}, {"label":"F", "x":5.5, "y":2.5}, {"label":"G", "x":6.5, "y":2.5}, {"label":"H", "x":7.5, "y":2.5}, {"label":"J", "x":8.5, "y":2.5}, {"label":"K", "x":9.5, "y":2.5}, {"label":"L", "x":10.5, "y":2.5}, {"label":";", "x":11.5, "y":2.5}, {"label":"ENTER", "x":12.5, "y":2.5}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5}, {"label":"Z", "x":2.5, "y":3.5}, {"label":"X", "x":3.5, "y":3.5}, {"label":"C", "x":4.5, "y":3.5}, {"label":"V", "x":5.5, "y":3.5}, {"label":"B", "x":6.5, "y":3.5}, {"label":"N", "x":7.5, "y":3.5}, {"label":"M", "x":8.5, "y":3.5}, {"label":",", "x":9.5, "y":3.5}, {"label":".", "x":10.5, "y":3.5}, {"label":"/", "x":11.5, "y":3.5}, {"label":"SHIFT", "x":12.5, "y":3.5}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5}, {"x":2.5, "y":4.5}, {"x":3.5, "y":4.5}, {"x":4.5, "y":4.5}, {"x":5.5, "y":4.5, "w":2}, {"x":7.5, "y":4.5, "w":2}, {"x":9.5, "y":4.5}, {"x":10.5, "y":4.5}, {"x":11.5, "y":4.5}, {"x":12.5, "y":4.5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.5, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.5, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.5, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.5, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.5, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.5, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.5, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.5, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.5, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.5, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.5, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.5, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.5, "y": 4.5, "w": 2},
+                {"matrix": [4, 8], "x": 7.5, "y": 4.5, "w": 2},
+                {"matrix": [4, 9], "x": 9.5, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.5, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4.5}
+            ]
         },
         "LAYOUT_ortho3": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5}, {"label":"A", "x":2.5, "y":2.5}, {"label":"S", "x":3.5, "y":2.5}, {"label":"D", "x":4.5, "y":2.5}, {"label":"F", "x":5.5, "y":2.5}, {"label":"G", "x":6.5, "y":2.5}, {"label":"H", "x":7.5, "y":2.5}, {"label":"J", "x":8.5, "y":2.5}, {"label":"K", "x":9.5, "y":2.5}, {"label":"L", "x":10.5, "y":2.5}, {"label":";", "x":11.5, "y":2.5}, {"label":"ENTER", "x":12.5, "y":2.5}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5}, {"label":"Z", "x":2.5, "y":3.5}, {"label":"X", "x":3.5, "y":3.5}, {"label":"C", "x":4.5, "y":3.5}, {"label":"V", "x":5.5, "y":3.5}, {"label":"B", "x":6.5, "y":3.5}, {"label":"N", "x":7.5, "y":3.5}, {"label":"M", "x":8.5, "y":3.5}, {"label":",", "x":9.5, "y":3.5}, {"label":".", "x":10.5, "y":3.5}, {"label":"/", "x":11.5, "y":3.5}, {"label":"SHIFT", "x":12.5, "y":3.5}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5, "w":1.25}, {"x":2.75, "y":4.5}, {"x":3.75, "y":4.5, "w":1.25}, {"x":5, "y":4.5, "w":2.75}, {"x":7.75, "y":4.5, "w":2.25}, {"x":10, "y":4.5, "w":1.25}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.5, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.5, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.5, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.5, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.5, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.5, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.5, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.5, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.5, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.5, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.75, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.75, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 5], "x": 5, "y": 4.5, "w": 2.75},
+                {"matrix": [4, 8], "x": 7.75, "y": 4.5, "w": 2.25},
+                {"matrix": [4, 10], "x": 10, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.25}
+            ]
         },
         "LAYOUT_ortho4": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5}, {"label":"A", "x":2.5, "y":2.5}, {"label":"S", "x":3.5, "y":2.5}, {"label":"D", "x":4.5, "y":2.5}, {"label":"F", "x":5.5, "y":2.5}, {"label":"G", "x":6.5, "y":2.5}, {"label":"H", "x":7.5, "y":2.5}, {"label":"J", "x":8.5, "y":2.5}, {"label":"K", "x":9.5, "y":2.5}, {"label":"L", "x":10.5, "y":2.5}, {"label":";", "x":11.5, "y":2.5}, {"label":"ENTER", "x":12.5, "y":2.5}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5}, {"label":"Z", "x":2.5, "y":3.5}, {"label":"X", "x":3.5, "y":3.5}, {"label":"C", "x":4.5, "y":3.5}, {"label":"V", "x":5.5, "y":3.5}, {"label":"B", "x":6.5, "y":3.5}, {"label":"N", "x":7.5, "y":3.5}, {"label":"M", "x":8.5, "y":3.5}, {"label":",", "x":9.5, "y":3.5}, {"label":".", "x":10.5, "y":3.5}, {"label":"/", "x":11.5, "y":3.5}, {"label":"SHIFT", "x":12.5, "y":3.5}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5, "w":1.25}, {"x":2.75, "y":4.5}, {"x":3.75, "y":4.5, "w":6.25}, {"x":10, "y":4.5, "w":1.25}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.5, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.5, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.5, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.5, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.5, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.5, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.5, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.5, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.5, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.5, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.75, "y": 4.5},
+                {"matrix": [4, 6], "x": 3.75, "y": 4.5, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.25}
+            ]
         },
         "LAYOUT_ortho5": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5}, {"label":"A", "x":2.5, "y":2.5}, {"label":"S", "x":3.5, "y":2.5}, {"label":"D", "x":4.5, "y":2.5}, {"label":"F", "x":5.5, "y":2.5}, {"label":"G", "x":6.5, "y":2.5}, {"label":"H", "x":7.5, "y":2.5}, {"label":"J", "x":8.5, "y":2.5}, {"label":"K", "x":9.5, "y":2.5}, {"label":"L", "x":10.5, "y":2.5}, {"label":";", "x":11.5, "y":2.5}, {"label":"ENTER", "x":12.5, "y":2.5}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5}, {"label":"Z", "x":2.5, "y":3.5}, {"label":"X", "x":3.5, "y":3.5}, {"label":"C", "x":4.5, "y":3.5}, {"label":"V", "x":5.5, "y":3.5}, {"label":"B", "x":6.5, "y":3.5}, {"label":"N", "x":7.5, "y":3.5}, {"label":"M", "x":8.5, "y":3.5}, {"label":",", "x":9.5, "y":3.5}, {"label":".", "x":10.5, "y":3.5}, {"label":"/", "x":11.5, "y":3.5}, {"label":"SHIFT", "x":12.5, "y":3.5}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5}, {"x":2.5, "y":4.5, "w":1.5}, {"x":4, "y":4.5, "w":7}, {"x":11, "y":4.5, "w":1.5}, {"x":12.5, "y":4.5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.5, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.5, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.5, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.5, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.5, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.5, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.5, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.5, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.5, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.5, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4.5, "w": 1.5},
+                {"matrix": [4, 7], "x": 4, "y": 4.5, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4.5, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4.5}
+            ]
         },
         "LAYOUT_stagger1": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5, "w":1.25}, {"label":"A", "x":2.75, "y":2.5}, {"label":"S", "x":3.75, "y":2.5}, {"label":"D", "x":4.75, "y":2.5}, {"label":"F", "x":5.75, "y":2.5}, {"label":"G", "x":6.75, "y":2.5}, {"label":"H", "x":7.75, "y":2.5}, {"label":"J", "x":8.75, "y":2.5}, {"label":"K", "x":9.75, "y":2.5}, {"label":"L", "x":10.75, "y":2.5}, {"label":"Enter", "x":11.75, "y":2.5, "w":1.75}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5, "w":1.75}, {"label":"Z", "x":3.25, "y":3.5}, {"label":"X", "x":4.25, "y":3.5}, {"label":"C", "x":5.25, "y":3.5}, {"label":"V", "x":6.25, "y":3.5}, {"label":"B", "x":7.25, "y":3.5}, {"label":"N", "x":8.25, "y":3.5}, {"label":"M", "x":9.25, "y":3.5}, {"label":",", "x":10.25, "y":3.5}, {"label":".", "x":11.25, "y":3.5}, {"label":"Shift", "x":12.25, "y":3.5, "w":1.25}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5}, {"x":2.5, "y":4.5}, {"x":3.5, "y":4.5}, {"x":4.5, "y":4.5}, {"x":5.5, "y":4.5}, {"x":6.5, "y":4.5, "w":2}, {"x":8.5, "y":4.5}, {"x":9.5, "y":4.5}, {"x":10.5, "y":4.5}, {"x":11.5, "y":4.5}, {"x":12.5, "y":4.5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5, "w": 1.25},
+                {"matrix": [2, 2], "x": 2.75, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.75, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.75, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.75, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.75, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.75, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.75, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.75, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.75, "y": 2.5},
+                {"matrix": [2, 12], "x": 11.75, "y": 2.5, "w": 1.75},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 3], "x": 3.25, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.25, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.25, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.25, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.25, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.25, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.25, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.25, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.25, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.25, "y": 3.5, "w": 1.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.5, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.5, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.5, "y": 4.5},
+                {"matrix": [4, 7], "x": 6.5, "y": 4.5, "w": 2},
+                {"matrix": [4, 8], "x": 8.5, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.5, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.5, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4.5}
+            ]
         },
         "LAYOUT_stagger2": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5, "w":1.25}, {"label":"A", "x":2.75, "y":2.5}, {"label":"S", "x":3.75, "y":2.5}, {"label":"D", "x":4.75, "y":2.5}, {"label":"F", "x":5.75, "y":2.5}, {"label":"G", "x":6.75, "y":2.5}, {"label":"H", "x":7.75, "y":2.5}, {"label":"J", "x":8.75, "y":2.5}, {"label":"K", "x":9.75, "y":2.5}, {"label":"L", "x":10.75, "y":2.5}, {"label":"Enter", "x":11.75, "y":2.5, "w":1.75}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5, "w":1.75}, {"label":"Z", "x":3.25, "y":3.5}, {"label":"X", "x":4.25, "y":3.5}, {"label":"C", "x":5.25, "y":3.5}, {"label":"V", "x":6.25, "y":3.5}, {"label":"B", "x":7.25, "y":3.5}, {"label":"N", "x":8.25, "y":3.5}, {"label":"M", "x":9.25, "y":3.5}, {"label":",", "x":10.25, "y":3.5}, {"label":".", "x":11.25, "y":3.5}, {"label":"Shift", "x":12.25, "y":3.5, "w":1.25}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5}, {"x":2.5, "y":4.5}, {"x":3.5, "y":4.5}, {"x":4.5, "y":4.5}, {"x":5.5, "y":4.5, "w":2}, {"x":7.5, "y":4.5, "w":2}, {"x":9.5, "y":4.5}, {"x":10.5, "y":4.5}, {"x":11.5, "y":4.5}, {"x":12.5, "y":4.5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5, "w": 1.25},
+                {"matrix": [2, 2], "x": 2.75, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.75, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.75, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.75, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.75, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.75, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.75, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.75, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.75, "y": 2.5},
+                {"matrix": [2, 12], "x": 11.75, "y": 2.5, "w": 1.75},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 3], "x": 3.25, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.25, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.25, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.25, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.25, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.25, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.25, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.25, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.25, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.25, "y": 3.5, "w": 1.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.5, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.5, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.5, "y": 4.5, "w": 2},
+                {"matrix": [4, 8], "x": 7.5, "y": 4.5, "w": 2},
+                {"matrix": [4, 9], "x": 9.5, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.5, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4.5}
+            ]
         },
         "LAYOUT_stagger3": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5, "w":1.25}, {"label":"A", "x":2.75, "y":2.5}, {"label":"S", "x":3.75, "y":2.5}, {"label":"D", "x":4.75, "y":2.5}, {"label":"F", "x":5.75, "y":2.5}, {"label":"G", "x":6.75, "y":2.5}, {"label":"H", "x":7.75, "y":2.5}, {"label":"J", "x":8.75, "y":2.5}, {"label":"K", "x":9.75, "y":2.5}, {"label":"L", "x":10.75, "y":2.5}, {"label":"Enter", "x":11.75, "y":2.5, "w":1.75}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5, "w":1.75}, {"label":"Z", "x":3.25, "y":3.5}, {"label":"X", "x":4.25, "y":3.5}, {"label":"C", "x":5.25, "y":3.5}, {"label":"V", "x":6.25, "y":3.5}, {"label":"B", "x":7.25, "y":3.5}, {"label":"N", "x":8.25, "y":3.5}, {"label":"M", "x":9.25, "y":3.5}, {"label":",", "x":10.25, "y":3.5}, {"label":".", "x":11.25, "y":3.5}, {"label":"Shift", "x":12.25, "y":3.5, "w":1.25}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5, "w":1.25}, {"x":2.75, "y":4.5}, {"x":3.75, "y":4.5, "w":1.25}, {"x":5, "y":4.5, "w":2.75}, {"x":7.75, "y":4.5, "w":2.25}, {"x":10, "y":4.5, "w":1.25}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5, "w": 1.25},
+                {"matrix": [2, 2], "x": 2.75, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.75, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.75, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.75, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.75, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.75, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.75, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.75, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.75, "y": 2.5},
+                {"matrix": [2, 12], "x": 11.75, "y": 2.5, "w": 1.75},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 3], "x": 3.25, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.25, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.25, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.25, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.25, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.25, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.25, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.25, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.25, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.25, "y": 3.5, "w": 1.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.75, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.75, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 5], "x": 5, "y": 4.5, "w": 2.75},
+                {"matrix": [4, 8], "x": 7.75, "y": 4.5, "w": 2.25},
+                {"matrix": [4, 10], "x": 10, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.25}
+            ]
         },
         "LAYOUT_stagger4": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5, "w":1.25}, {"label":"A", "x":2.75, "y":2.5}, {"label":"S", "x":3.75, "y":2.5}, {"label":"D", "x":4.75, "y":2.5}, {"label":"F", "x":5.75, "y":2.5}, {"label":"G", "x":6.75, "y":2.5}, {"label":"H", "x":7.75, "y":2.5}, {"label":"J", "x":8.75, "y":2.5}, {"label":"K", "x":9.75, "y":2.5}, {"label":"L", "x":10.75, "y":2.5}, {"label":"Enter", "x":11.75, "y":2.5, "w":1.75}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5, "w":1.75}, {"label":"Z", "x":3.25, "y":3.5}, {"label":"X", "x":4.25, "y":3.5}, {"label":"C", "x":5.25, "y":3.5}, {"label":"V", "x":6.25, "y":3.5}, {"label":"B", "x":7.25, "y":3.5}, {"label":"N", "x":8.25, "y":3.5}, {"label":"M", "x":9.25, "y":3.5}, {"label":",", "x":10.25, "y":3.5}, {"label":".", "x":11.25, "y":3.5}, {"label":"Shift", "x":12.25, "y":3.5, "w":1.25}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5, "w":1.25}, {"x":2.75, "y":4.5}, {"x":3.75, "y":4.5, "w":6.25}, {"x":10, "y":4.5, "w":1.25}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5, "w": 1.25},
+                {"matrix": [2, 2], "x": 2.75, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.75, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.75, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.75, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.75, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.75, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.75, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.75, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.75, "y": 2.5},
+                {"matrix": [2, 12], "x": 11.75, "y": 2.5, "w": 1.75},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 3], "x": 3.25, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.25, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.25, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.25, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.25, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.25, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.25, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.25, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.25, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.25, "y": 3.5, "w": 1.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.75, "y": 4.5},
+                {"matrix": [4, 6], "x": 3.75, "y": 4.5, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.25}
+            ]
         },
         "LAYOUT_stagger5": {
-            "layout": [{"label":"Knob", "x":0, "y":0}, {"x":1.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":0, "y":1.5}, {"label":"ESC", "x":1.5, "y":1.5}, {"label":"Q", "x":2.5, "y":1.5}, {"label":"W", "x":3.5, "y":1.5}, {"label":"E", "x":4.5, "y":1.5}, {"label":"R", "x":5.5, "y":1.5}, {"label":"T", "x":6.5, "y":1.5}, {"label":"Y", "x":7.5, "y":1.5}, {"label":"U", "x":8.5, "y":1.5}, {"label":"I", "x":9.5, "y":1.5}, {"label":"O", "x":10.5, "y":1.5}, {"label":"P", "x":11.5, "y":1.5}, {"label":"BKSPC", "x":12.5, "y":1.5}, {"x":0, "y":2.5}, {"label":"TAB", "x":1.5, "y":2.5, "w":1.25}, {"label":"A", "x":2.75, "y":2.5}, {"label":"S", "x":3.75, "y":2.5}, {"label":"D", "x":4.75, "y":2.5}, {"label":"F", "x":5.75, "y":2.5}, {"label":"G", "x":6.75, "y":2.5}, {"label":"H", "x":7.75, "y":2.5}, {"label":"J", "x":8.75, "y":2.5}, {"label":"K", "x":9.75, "y":2.5}, {"label":"L", "x":10.75, "y":2.5}, {"label":"Enter", "x":11.75, "y":2.5, "w":1.75}, {"x":0, "y":3.5}, {"label":"SHIFT", "x":1.5, "y":3.5, "w":1.75}, {"label":"Z", "x":3.25, "y":3.5}, {"label":"X", "x":4.25, "y":3.5}, {"label":"C", "x":5.25, "y":3.5}, {"label":"V", "x":6.25, "y":3.5}, {"label":"B", "x":7.25, "y":3.5}, {"label":"N", "x":8.25, "y":3.5}, {"label":"M", "x":9.25, "y":3.5}, {"label":",", "x":10.25, "y":3.5}, {"label":".", "x":11.25, "y":3.5}, {"label":"Shift", "x":12.25, "y":3.5, "w":1.25}, {"x":0, "y":4.5}, {"x":1.5, "y":4.5}, {"x":2.5, "y":4.5, "w":1.5}, {"x":4, "y":4.5, "w":7}, {"x":11, "y":4.5, "w":1.5}, {"x":12.5, "y":4.5}]
-        }
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0},
+                {"matrix": [0, 12], "x": 12.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1.5},
+                {"matrix": [1, 2], "x": 2.5, "y": 1.5},
+                {"matrix": [1, 3], "x": 3.5, "y": 1.5},
+                {"matrix": [1, 4], "x": 4.5, "y": 1.5},
+                {"matrix": [1, 5], "x": 5.5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6.5, "y": 1.5},
+                {"matrix": [1, 7], "x": 7.5, "y": 1.5},
+                {"matrix": [1, 8], "x": 8.5, "y": 1.5},
+                {"matrix": [1, 9], "x": 9.5, "y": 1.5},
+                {"matrix": [1, 10], "x": 10.5, "y": 1.5},
+                {"matrix": [1, 11], "x": 11.5, "y": 1.5},
+                {"matrix": [1, 12], "x": 12.5, "y": 1.5},
 
+                {"matrix": [2, 0], "x": 0, "y": 2.5},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5, "w": 1.25},
+                {"matrix": [2, 2], "x": 2.75, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.75, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.75, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.75, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.75, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.75, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.75, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.75, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.75, "y": 2.5},
+                {"matrix": [2, 12], "x": 11.75, "y": 2.5, "w": 1.75},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 3], "x": 3.25, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.25, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.25, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.25, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.25, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.25, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.25, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.25, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.25, "y": 3.5},
+                {"matrix": [3, 12], "x": 12.25, "y": 3.5, "w": 1.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4.5, "w": 1.5},
+                {"matrix": [4, 7], "x": 4, "y": 4.5, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4.5, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4.5}
+            ]
+        }
     }
 }

+ 0 - 17
keyboards/eyeohdesigns/theboulevard/theboulevard.c

@@ -1,17 +0,0 @@
-/* Copyright 2021 eye oh designs
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "theboulevard.h" 

+ 0 - 169
keyboards/eyeohdesigns/theboulevard/theboulevard.h

@@ -1,169 +0,0 @@
-/* Copyright 2021 eye oh designs
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho1( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20, k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c, \
-    k30, k31,   k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c, \
-    k40, k41,   k42,   k43,   k44,   k45,      k47,       k48,   k49,   k4a, k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c },\
-    { k30, k31, k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   k43,   k44,   k45,   KC_NO, k47,   k48,   k49,   k4a, k4b, k4c }\
-}
-
-#define LAYOUT_ortho2( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20, k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c, \
-    k30, k31,   k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c, \
-    k40, k41,   k42,   k43,   k44,       k45,          k48,      k49,   k4a, k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c },\
-    { k30, k31, k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   k43,   k44,   k45,   KC_NO, KC_NO, k48,   k49,   k4a, k4b, k4c }\
-}
-
-#define LAYOUT_ortho3( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20, k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c, \
-    k30, k31,   k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c, \
-    k40, k41,   k42,   k43,          k45,          k48,                 k4a, k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c },\
-    { k30, k31, k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   k43,   KC_NO, k45,   KC_NO, KC_NO, k48,   KC_NO, k4a, k4b, k4c }\
-}
-
-#define LAYOUT_ortho4( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20, k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c, \
-    k30, k31,   k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c, \
-    k40, k41,   k42,                    k46,                            k4a, k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c },\
-    { k30, k31, k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   KC_NO, KC_NO, KC_NO, k46,   KC_NO, KC_NO, KC_NO, k4a, k4b, k4c }\
-}
-
-#define LAYOUT_ortho5( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20, k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, k2b, k2c, \
-    k30, k31,   k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c, \
-    k40, k41,   k42,                    k47,                                 k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a,   k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a,   k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a,   k2b, k2c },\
-    { k30, k31, k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a,   k3b, k3c }, \
-    { k40, k41, k42,   KC_NO, KC_NO, KC_NO, KC_NO, k47,   KC_NO, KC_NO, KC_NO, k4b, k4c }\
-}
-
-#define LAYOUT_stagger1( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20,   k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a,   k2c, \
-    k30,      k31,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b,  k3c, \
-    k40, k41,   k42,   k43,   k44,   k45,      k47,       k48,   k49,   k4a, k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, KC_NO, k2c },\
-    { k30, k31, KC_NO,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   k43,   k44,   k45,   KC_NO, k47,   k48,   k49,   k4a, k4b, k4c }\
-}
-
-#define LAYOUT_stagger2( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20,   k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a,   k2c, \
-    k30,      k31,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b,  k3c, \
-    k40, k41,   k42,   k43,   k44,       k45,          k48,      k49,   k4a, k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, KC_NO, k2c },\
-    { k30, k31, KC_NO,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   k43,   k44,   k45,   KC_NO, KC_NO, k48,   k49,   k4a, k4b, k4c }\
-}
-
-#define LAYOUT_stagger3( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20,   k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a,   k2c, \
-    k30,      k31,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b,  k3c, \
-    k40, k41,   k42,   k43,          k45,          k48,                 k4a, k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, KC_NO, k2c },\
-    { k30, k31, KC_NO,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   k43,   KC_NO, k45,   KC_NO, KC_NO, k48,   KC_NO, k4a, k4b, k4c }\
-}
-
-#define LAYOUT_stagger4( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20,   k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a,   k2c, \
-    k30,      k31,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b,  k3c, \
-    k40, k41,   k42,                    k46,                            k4a, k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, KC_NO, k2c },\
-    { k30, k31, KC_NO,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   KC_NO, KC_NO, KC_NO, k46,   KC_NO, KC_NO, KC_NO, k4a, k4b, k4c }\
-}
-
-#define LAYOUT_stagger5( \
-    k00, k01,                                                           k0a, k0b, k0c, \
-    k10, k11,   k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c, \
-    k20,   k21,   k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a,   k2c, \
-    k30,      k31,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b,  k3c, \
-    k40, k41,   k42,                    k47,                                 k4b, k4c  \
-) \
-{ \
-    { k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
-    { k10, k11, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1a, k1b, k1c },\
-    { k20, k21, k22,   k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2a, KC_NO, k2c },\
-    { k30, k31, KC_NO,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3a, k3b, k3c }, \
-    { k40, k41, k42,   KC_NO, KC_NO, KC_NO, KC_NO, k47,   KC_NO, KC_NO, KC_NO, k4b, k4c }\
-}

+ 53 - 45
keyboards/flehrad/numbrero/info.json

@@ -22,55 +22,63 @@
   "layouts": {
     "LAYOUT_numpad": {
       "layout": [
-        {"label":"K00", "x":0, "y":0},
-        {"label":"K01", "x":1, "y":0},
-        {"label":"K02", "x":2, "y":0},
-        {"label":"K03", "x":3, "y":0},
-        {"label":"K04", "x":4, "y":0},
-        {"label":"K10", "x":0, "y":1, "h":1.5},
-        {"label":"K11", "x":1, "y":1},
-        {"label":"K12", "x":2, "y":1},
-        {"label":"K13", "x":3, "y":1},
-        {"label":"K20", "x":0, "y":2.5},
-        {"label":"K21", "x":1, "y":2},
-        {"label":"K22", "x":2, "y":2},
-        {"label":"K23", "x":3, "y":2},
-        {"label":"K14", "x":4, "y":1, "h":2},
-        {"label":"K30", "x":0, "y":3.5, "h":1.5},
-        {"label":"K31", "x":1, "y":3},
-        {"label":"K32", "x":2, "y":3},
-        {"label":"K33", "x":3, "y":3},
-        {"label":"K41", "x":1, "y":4, "w":2},
-        {"label":"K43", "x":3, "y":4},
-        {"label":"K34", "x":4, "y":3, "h":2}
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1, "h": 1.5},
+        {"matrix": [1, 1], "x": 1, "y": 1},
+        {"matrix": [1, 2], "x": 2, "y": 1},
+        {"matrix": [1, 3], "x": 3, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2.5},
+        {"matrix": [2, 1], "x": 1, "y": 2},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [2, 3], "x": 3, "y": 2},
+        {"matrix": [1, 4], "x": 4, "y": 1, "h": 2},
+
+        {"matrix": [3, 0], "x": 0, "y": 3.5, "h": 1.5},
+        {"matrix": [3, 1], "x": 1, "y": 3},
+        {"matrix": [3, 2], "x": 2, "y": 3},
+        {"matrix": [3, 3], "x": 3, "y": 3},
+
+        {"matrix": [4, 1], "x": 1, "y": 4, "w": 2},
+        {"matrix": [4, 3], "x": 3, "y": 4},
+        {"matrix": [3, 4], "x": 4, "y": 3, "h": 2}
       ]
     },
     "LAYOUT_ortho": {
       "layout": [
-        {"label":"K00", "x":0, "y":0},
-        {"label":"K01", "x":1, "y":0},
-        {"label":"K02", "x":2, "y":0},
-        {"label":"K03", "x":3, "y":0},
-        {"label":"K04", "x":4, "y":0},
-        {"label":"K10", "x":0, "y":1, "h":1.5},
-        {"label":"K11", "x":1, "y":1},
-        {"label":"K12", "x":2, "y":1},
-        {"label":"K13", "x":3, "y":1},
-        {"label":"K14", "x":4, "y":1},
-        {"label":"K20", "x":0, "y":2.5},
-        {"label":"K21", "x":1, "y":2},
-        {"label":"K22", "x":2, "y":2},
-        {"label":"K23", "x":3, "y":2},
-        {"label":"K24", "x":4, "y":2},
-        {"label":"K30", "x":0, "y":3.5, "h":1.5},
-        {"label":"K31", "x":1, "y":3},
-        {"label":"K32", "x":2, "y":3},
-        {"label":"K33", "x":3, "y":3},
-        {"label":"K34", "x":4, "y":3},
-        {"label":"K41", "x":1, "y":4},
-        {"label":"K42", "x":2, "y":4},
-        {"label":"K43", "x":3, "y":4},
-        {"label":"K44", "x":4, "y":4}
+        {"matrix": [0, 0], "x": 0, "y": 0},
+        {"matrix": [0, 1], "x": 1, "y": 0},
+        {"matrix": [0, 2], "x": 2, "y": 0},
+        {"matrix": [0, 3], "x": 3, "y": 0},
+        {"matrix": [0, 4], "x": 4, "y": 0},
+
+        {"matrix": [1, 0], "x": 0, "y": 1, "h": 1.5},
+        {"matrix": [1, 1], "x": 1, "y": 1},
+        {"matrix": [1, 2], "x": 2, "y": 1},
+        {"matrix": [1, 3], "x": 3, "y": 1},
+        {"matrix": [1, 4], "x": 4, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2.5},
+        {"matrix": [2, 1], "x": 1, "y": 2},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [2, 3], "x": 3, "y": 2},
+        {"matrix": [2, 4], "x": 4, "y": 2},
+
+        {"matrix": [3, 0], "x": 0, "y": 3.5, "h": 1.5},
+        {"matrix": [3, 1], "x": 1, "y": 3},
+        {"matrix": [3, 2], "x": 2, "y": 3},
+        {"matrix": [3, 3], "x": 3, "y": 3},
+        {"matrix": [3, 4], "x": 4, "y": 3},
+
+        {"matrix": [4, 1], "x": 1, "y": 4},
+        {"matrix": [4, 2], "x": 2, "y": 4},
+        {"matrix": [4, 3], "x": 3, "y": 4},
+        {"matrix": [4, 4], "x": 4, "y": 4}
       ]
     }
   }

+ 0 - 30
keyboards/flehrad/numbrero/numbrero.h

@@ -1,30 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_numpad( \
-  K00, K01, K02, K03, K04, \
-  K10, K11, K12, K13,      \
-  K20, K21, K22, K23, K14, \
-  K30, K31, K32, K33,      \
-       K41,      K43, K34  \
-) { \
-  { K00,   K01,   K02,   K03,   K04   }, \
-  { K10,   K11,   K12,   K13,   K14   }, \
-  { K20,   K21,   K22,   K23,   KC_NO }, \
-  { K30,   K31,   K32,   K33,   K34   }, \
-  { KC_NO, K41,   KC_NO, K43,   KC_NO }  \
-}
-#define LAYOUT_ortho(\
-  K00, K01, K02, K03, K04, \
-  K10, K11, K12, K13, K14, \
-  K20, K21, K22, K23, K24, \
-  K30, K31, K32, K33, K34, \
-       K41, K42, K43, K44  \
-){ \
-  { K00,   K01,   K02,   K03,   K04 }, \
-  { K10,   K11,   K12,   K13,   K14 }, \
-  { K20,   K21,   K22,   K23,   K24 }, \
-  { K30,   K31,   K32,   K33,   K34 }, \
-  { KC_NO, K41,   K42,   K43,   K44 }  \
-}

+ 1 - 1
keyboards/gboards/butterstick/butterstick.c

@@ -13,7 +13,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-#include "butterstick.h"
+#include "quantum.h"
 
 void matrix_scan_kb(void) {
 #ifdef DEBUG_MATRIX

+ 0 - 11
keyboards/gboards/butterstick/butterstick.h

@@ -1,11 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_butter( 										\
-    k09, k08, k07, k06, k05, k04, k03, k02, k01, k00,		\
-	k19, k18, k17, k16, k15, k14, k13, k12, k11, k10		\
-) { 														\
-	{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09},	\
-	{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19},	\
-}

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików