Explorar el Código

Move ortho & numpad layouts to data driven (#20183)

Co-authored-by: Nick Brassel <nick@tzarc.org>
Ryan hace 3 años
padre
commit
4869b8061c
Se han modificado 100 ficheros con 3849 adiciones y 5033 borrados
  1. 0 97
      keyboards/0_sixty/0_sixty.h
  2. 295 295
      keyboards/0_sixty/info.json
  3. 39 2
      keyboards/1upkeyboards/super16/info.json
  4. 1 1
      keyboards/1upkeyboards/super16/super16.c
  5. 0 51
      keyboards/1upkeyboards/super16/super16.h
  6. 21 1
      keyboards/1upkeyboards/super16v2/info.json
  7. 1 1
      keyboards/1upkeyboards/super16v2/super16v2.c
  8. 0 39
      keyboards/1upkeyboards/super16v2/super16v2.h
  9. 39 2
      keyboards/1upkeyboards/sweet16/info.json
  10. 0 30
      keyboards/1upkeyboards/sweet16/sweet16.h
  11. 0 1
      keyboards/1upkeyboards/sweet16/v1/v1.c
  12. 0 30
      keyboards/1upkeyboards/sweet16/v1/v1.h
  13. 1 6
      keyboards/25keys/zinc/info.json
  14. 60 0
      keyboards/25keys/zinc/rev1/info.json
  15. 0 24
      keyboards/25keys/zinc/rev1/rev1.h
  16. 57 0
      keyboards/25keys/zinc/reva/info.json
  17. 0 24
      keyboards/25keys/zinc/reva/reva.h
  18. 0 53
      keyboards/40percentclub/5x5/5x5.h
  19. 150 150
      keyboards/40percentclub/5x5/info.json
  20. 0 15
      keyboards/40percentclub/gherkin/gherkin.h
  21. 34 1
      keyboards/40percentclub/gherkin/info.json
  22. 0 6
      keyboards/40percentclub/i75/info.json
  23. 87 1
      keyboards/40percentclub/i75/promicro/info.json
  24. 0 46
      keyboards/40percentclub/i75/promicro/promicro.h
  25. 87 1
      keyboards/40percentclub/i75/teensy2/info.json
  26. 0 46
      keyboards/40percentclub/i75/teensy2/teensy2.h
  27. 108 96
      keyboards/40percentclub/nori/info.json
  28. 0 56
      keyboards/40percentclub/nori/nori.h
  29. 0 22
      keyboards/40percentclub/polyandry/info.json
  30. 22 1
      keyboards/40percentclub/polyandry/promicro/info.json
  31. 0 27
      keyboards/40percentclub/polyandry/promicro/promicro.h
  32. 22 1
      keyboards/40percentclub/polyandry/teensy2/info.json
  33. 0 32
      keyboards/40percentclub/polyandry/teensy2/teensy2.h
  34. 34 1
      keyboards/40percentclub/tomato/info.json
  35. 0 15
      keyboards/40percentclub/tomato/tomato.h
  36. 0 59
      keyboards/7c8/framework/framework.h
  37. 177 177
      keyboards/7c8/framework/info.json
  38. 0 39
      keyboards/acheron/shark/alpha/alpha.h
  39. 51 48
      keyboards/acheron/shark/alpha/info.json
  40. 2 1
      keyboards/acheron/shark/beta/beta.c
  41. 0 31
      keyboards/acheron/shark/beta/beta.h
  42. 51 48
      keyboards/acheron/shark/beta/info.json
  43. 104 480
      keyboards/adkb96/info.json
  44. 0 31
      keyboards/adkb96/rev1/rev1.h
  45. 44 40
      keyboards/ai03/soyuz/info.json
  46. 0 69
      keyboards/ai03/soyuz/soyuz.h
  47. 0 109
      keyboards/amjkeyboard/amj40/amj40.h
  48. 171 171
      keyboards/amjkeyboard/amj40/info.json
  49. 0 58
      keyboards/amjkeyboard/amjpad/amjpad.h
  50. 59 2
      keyboards/amjkeyboard/amjpad/info.json
  51. 1 1
      keyboards/atomic/atomic.c
  52. 0 51
      keyboards/atomic/atomic.h
  53. 141 141
      keyboards/atomic/info.json
  54. 0 41
      keyboards/barracuda/barracuda.h
  55. 33 33
      keyboards/barracuda/info.json
  56. 0 93
      keyboards/boardwalk/boardwalk.h
  57. 398 398
      keyboards/boardwalk/info.json
  58. 1 1
      keyboards/bobpad/bobpad.c
  59. 0 27
      keyboards/bobpad/bobpad.h
  60. 7 6
      keyboards/bobpad/info.json
  61. 0 11
      keyboards/bpiphany/four_banger/four_banger.h
  62. 4 4
      keyboards/bpiphany/four_banger/info.json
  63. 0 48
      keyboards/cannonkeys/atlas/atlas.h
  64. 189 177
      keyboards/cannonkeys/atlas/info.json
  65. 0 33
      keyboards/cannonkeys/atlas_alps/atlas_alps.h
  66. 66 1
      keyboards/cannonkeys/atlas_alps/info.json
  67. 101 95
      keyboards/cannonkeys/ortho48/info.json
  68. 0 29
      keyboards/cannonkeys/ortho48/ortho48.h
  69. 127 119
      keyboards/cannonkeys/ortho60/info.json
  70. 0 33
      keyboards/cannonkeys/ortho60/ortho60.h
  71. 79 75
      keyboards/cannonkeys/ortho75/info.json
  72. 1 1
      keyboards/cannonkeys/ortho75/ortho75.c
  73. 0 18
      keyboards/cannonkeys/ortho75/ortho75.h
  74. 157 4
      keyboards/checkerboards/phoenix45_ortho/info.json
  75. 1 1
      keyboards/checkerboards/phoenix45_ortho/phoenix45_ortho.c
  76. 0 58
      keyboards/checkerboards/phoenix45_ortho/phoenix45_ortho.h
  77. 370 346
      keyboards/checkerboards/quark/info.json
  78. 1 1
      keyboards/checkerboards/quark/quark.c
  79. 0 115
      keyboards/checkerboards/quark/quark.h
  80. 156 3
      keyboards/checkerboards/quark_lp/info.json
  81. 1 1
      keyboards/checkerboards/quark_lp/quark_lp.c
  82. 0 58
      keyboards/checkerboards/quark_lp/quark_lp.h
  83. 0 32
      keyboards/ckeys/handwire_101/handwire_101.h
  84. 16 16
      keyboards/ckeys/handwire_101/info.json
  85. 23 1
      keyboards/ckeys/nakey/info.json
  86. 0 39
      keyboards/ckeys/nakey/nakey.h
  87. 21 1
      keyboards/ckeys/obelus/info.json
  88. 1 1
      keyboards/ckeys/obelus/obelus.c
  89. 0 19
      keyboards/ckeys/obelus/obelus.h
  90. 17 17
      keyboards/clawsome/numeros/info.json
  91. 0 32
      keyboards/clawsome/numeros/numeros.h
  92. 0 43
      keyboards/coseyfannitutti/discipad/discipad.h
  93. 23 1
      keyboards/coseyfannitutti/discipad/info.json
  94. 23 1
      keyboards/coseyfannitutti/mulletpad/info.json
  95. 0 42
      keyboards/coseyfannitutti/mulletpad/mulletpad.h
  96. 0 16
      keyboards/crawlpad/crawlpad.h
  97. 19 16
      keyboards/crawlpad/info.json
  98. 2 1
      keyboards/crbn/crbn.c
  99. 0 54
      keyboards/crbn/crbn.h
  100. 153 141
      keyboards/crbn/info.json

+ 0 - 97
keyboards/0_sixty/0_sixty.h

@@ -1,97 +0,0 @@
-/* Copyright 2020 Vinam Arora <vinam@posteo.de>
- *
- * 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 arguements
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT_ortho_5x12( \
-    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, k42, k43, k44, k45, k46, k47, k48, k49, k4a, 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, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b }  \
-}
-
-#define LAYOUT_1x2uL( \
-    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, k42, k43,    k45,   k46, k47, k48, k49, k4a, 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, k42, k43, k45, k45, k46, k47, k48, k49, k4a, k4b }  \
-}
-
-#define LAYOUT_1x2uC( \
-    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, k42, k43, k44,    k46,   k47, k48, k49, k4a, 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, k42, k43, k44, k46, k46, k47, k48, k49, k4a, k4b }  \
-}
-
-#define LAYOUT_1x2uR( \
-    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, k42, k43, k44, k45,   k46,    k48, k49, k4a, 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, k42, k43, k44, k45, k46, k46, k48, k49, k4a, k4b }  \
-}
-
-#define LAYOUT_2x2uC( \
-    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, k42, k43,     k45,    k46,    k48, k49, k4a, 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, k42, k43, k45, k45, k46, k46, k48, k49, k4a, k4b }  \
-}

+ 295 - 295
keyboards/0_sixty/info.json

@@ -23,337 +23,337 @@
     "layouts": {
 	"LAYOUT_1x2uC": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4, "y": 4},
-                {"x": 5, "y": 4, "w": 2},
-                {"x": 7, "y": 4},
-                {"x": 8, "y": 4},
-                {"x": 9, "y": 4},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4}
+                {"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": [4, 4], "x": 4, "y": 4},
+                {"matrix": [4, 6], "x": 5, "y": 4, "w": 2},
+                {"matrix": [4, 7], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4}
             ]
 	},
 	"LAYOUT_2x2uC": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4, "y": 4, "w": 2},
-                {"x": 6, "y": 4, "w": 2},
-                {"x": 8, "y": 4},
-                {"x": 9, "y": 4},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4}
+                {"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": [4, 5], "x": 4, "y": 4, "w": 2},
+                {"matrix": [4, 6], "x": 6, "y": 4, "w": 2},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4}
             ]
         },
         "LAYOUT_ortho_5x12": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4, "y": 4},
-                {"x": 5, "y": 4},
-                {"x": 6, "y": 4},
-                {"x": 7, "y": 4},
-                {"x": 8, "y": 4},
-                {"x": 9, "y": 4},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4}
+                {"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": [4, 4], "x": 4, "y": 4},
+                {"matrix": [4, 5], "x": 5, "y": 4},
+                {"matrix": [4, 6], "x": 6, "y": 4},
+                {"matrix": [4, 7], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4}
             ]
         },
 	"LAYOUT_1x2uR": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4, "y": 4},
-                {"x": 5, "y": 4},
-                {"x": 6, "y": 4, "w": 2},
-                {"x": 8, "y": 4},
-                {"x": 9, "y": 4},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4}
+                {"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": [4, 4], "x": 4, "y": 4},
+                {"matrix": [4, 5], "x": 5, "y": 4},
+                {"matrix": [4, 6], "x": 6, "y": 4, "w": 2},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4}
             ]
         },
         "LAYOUT_1x2uL": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"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},
+                {"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},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4, "y": 4, "w": 2},
-                {"x": 6, "y": 4},
-                {"x": 7, "y": 4},
-                {"x": 8, "y": 4},
-                {"x": 9, "y": 4},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4}
+                {"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": [4, 5], "x": 4, "y": 4, "w": 2},
+                {"matrix": [4, 6], "x": 6, "y": 4},
+                {"matrix": [4, 7], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4}
             ]
         }
     }

+ 39 - 2
keyboards/1upkeyboards/super16/info.json

@@ -18,10 +18,47 @@
   "community_layouts": ["ortho_4x4", "numpad_4x4"],
   "layouts": {
     "LAYOUT_ortho_4x4": {
-      "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
+      "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}
+      ]
     },
     "LAYOUT_numpad_4x4": {
-      "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0, "h":2}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "h":2}, {"x":0, "y":3, "w":2}, {"x":2, "y":3}]
+      "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, "h": 2},
+
+        {"matrix": [1, 0], "x": 0, "y": 1},
+        {"matrix": [1, 1], "x": 1, "y": 1},
+        {"matrix": [1, 2], "x": 2, "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, 1], "x": 0, "y": 3, "w": 2},
+        {"matrix": [3, 2], "x": 2, "y": 3}
+      ]
     }
   }
 }

+ 1 - 1
keyboards/1upkeyboards/super16/super16.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 "super16.h"
+#include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
 led_config_t g_led_config = { {

+ 0 - 51
keyboards/1upkeyboards/super16/super16.h

@@ -1,51 +0,0 @@
-/* Copyright 2019 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"
-
-/* 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_ortho_4x4( \
-  K00, K01, K02, K03, \
-  K10, K11, K12, K13, \
-  K20, K21, K22, K23, \
-  K30, K31, K32, K33  \
-) { \
-  { K00, K01, K02, K03 }, \
-  { K10, K11, K12, K13 }, \
-  { K20, K21, K22, K23 }, \
-  { K30, K31, K32, K33 }  \
-}
-
-#define LAYOUT_numpad_4x4( \
-  K00, K01, K02, K03, \
-  K10, K11, K12,      \
-  K20, K21, K22, K23, \
-     K31,   K32      \
-) { \
-    { K00,   K01, K02, K03 }, \
-    { K10,   K11, K12, KC_NO }, \
-    { K20,   K21, K22, K23 }, \
-    { KC_NO, K31, K32, KC_NO }  \
-}

+ 21 - 1
keyboards/1upkeyboards/super16v2/info.json

@@ -23,7 +23,27 @@
     "bootloader": "atmel-dfu",
     "layouts": {
       "LAYOUT_ortho_4x4": {
-        "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
+        "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}
+        ]
       }
     }
   }

+ 1 - 1
keyboards/1upkeyboards/super16v2/super16v2.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "super16v2.h"
+#include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
 led_config_t g_led_config = { {

+ 0 - 39
keyboards/1upkeyboards/super16v2/super16v2.h

@@ -1,39 +0,0 @@
-/* Copyright 2022 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"
-
-/* 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_ortho_4x4( \
-    k00, k01, k02, k03,  \
-      k10, k11, k12, k13,    \
-       k20, k21, k22, k23, \
-       k30, k31, k32, k33 \
-) { \
-    { k00, k01, k02, k03  }, \
-    { k10, k11, k12, k13 },  \
-    { k20, k21, k22, k23 },  \
-    { k30, k31, k32, k33 }  \
-}

+ 39 - 2
keyboards/1upkeyboards/sweet16/info.json

@@ -8,11 +8,48 @@
   },
   "layouts": {
       "LAYOUT_ortho_4x4": {
-          "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
+          "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}
+          ]
       },
 
       "LAYOUT_numpad_4x4": {
-        "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0, "h":2}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "h":2}, {"x":0, "y":3, "w":2}, {"x":2, "y":3}]
+        "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, "h": 2},
+
+          {"matrix": [1, 0], "x": 0, "y": 1},
+          {"matrix": [1, 1], "x": 1, "y": 1},
+          {"matrix": [1, 2], "x": 2, "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, 1], "x": 0, "y": 3, "w": 2},
+          {"matrix": [3, 2], "x": 2, "y": 3}
+        ]
     }
   }
 }

+ 0 - 30
keyboards/1upkeyboards/sweet16/sweet16.h

@@ -1,30 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// Any changes to the layout names and/or definitions must also be made to info.json
-
-#define LAYOUT_ortho_4x4( \
-    K00, K01, K02, K03, \
-    K10, K11, K12, K13, \
-    K20, K21, K22, K23, \
-    K30, K31, K32, K33  \
-) { \
-    { K00,   K01,   K02,   K03 }, \
-    { K10,   K11,   K12,   K13 }, \
-    { K20,   K21,   K22,   K23 }, \
-    { K30,   K31,   K32,   K33 }  \
-}
-
-#define LAYOUT_numpad_4x4( \
-    K00, K01, K02, K03, \
-    K10, K11, K12,      \
-    K20, K21, K22, K23, \
-       K31,   K32      \
-) { \
-    { K00,   K01,   K02,   K03 }, \
-    { K10,   K11,   K12,   KC_NO }, \
-    { K20,   K21,   K22,   K23 }, \
-    { KC_NO, K31,   K32,   KC_NO }  \
-}
-

+ 0 - 1
keyboards/1upkeyboards/sweet16/v1/v1.c

@@ -1 +0,0 @@
-#include "v1.h"

+ 0 - 30
keyboards/1upkeyboards/sweet16/v1/v1.h

@@ -1,30 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// Any changes to the layout names and/or definitions must also be made to info.json
-
-#define LAYOUT_ortho_4x4( \
-    K00, K01, K02, K03, \
-    K10, K11, K12, K13, \
-    K20, K21, K22, K23, \
-    K30, K31, K32, K33  \
-) { \
-    { K00,   K01,   K02,   K03 }, \
-    { K10,   K11,   K12,   K13 }, \
-    { K20,   K21,   K22,   K23 }, \
-    { K30,   K31,   K32,   K33 }  \
-}
-
-#define LAYOUT_numpad_4x4( \
-    K00, K01, K02, K03, \
-    K10, K11, K12,      \
-    K20, K21, K22, K23, \
-       K31,   K32      \
-) { \
-    { K00,   K01,   K02,   K03 }, \
-    { K10,   K11,   K12,   KC_NO }, \
-    { K20,   K21,   K22,   K23 }, \
-    { KC_NO, K31,   K32,   KC_NO }  \
-}
-

+ 1 - 6
keyboards/25keys/zinc/info.json

@@ -8,10 +8,5 @@
     "device_version": "0.0.1"
    },
   "processor": "atmega32u4",
-  "bootloader": "caterina",
-   "layouts": {
-    "LAYOUT": {
-      "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "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":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "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":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "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}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}]
-    }
-  }
+  "bootloader": "caterina"
 }

+ 60 - 0
keyboards/25keys/zinc/rev1/info.json

@@ -7,5 +7,65 @@
   "diode_direction": "COL2ROW",
   "split": {
     "soft_serial_pin": "D2"
+  },
+  "layout_aliases": {
+    "LAYOUT": "LAYOUT_ortho_4x12"
+  },
+  "layouts": {
+    "LAYOUT_ortho_4x12": {
+      "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": [4, 0], "x": 9, "y": 0},
+        {"matrix": [4, 1], "x": 10, "y": 0},
+        {"matrix": [4, 2], "x": 11, "y": 0},
+        {"matrix": [4, 3], "x": 12, "y": 0},
+        {"matrix": [4, 4], "x": 13, "y": 0},
+        {"matrix": [4, 5], "x": 14, "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": [5, 0], "x": 9, "y": 1},
+        {"matrix": [5, 1], "x": 10, "y": 1},
+        {"matrix": [5, 2], "x": 11, "y": 1},
+        {"matrix": [5, 3], "x": 12, "y": 1},
+        {"matrix": [5, 4], "x": 13, "y": 1},
+        {"matrix": [5, 5], "x": 14, "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": [6, 0], "x": 9, "y": 2},
+        {"matrix": [6, 1], "x": 10, "y": 2},
+        {"matrix": [6, 2], "x": 11, "y": 2},
+        {"matrix": [6, 3], "x": 12, "y": 2},
+        {"matrix": [6, 4], "x": 13, "y": 2},
+        {"matrix": [6, 5], "x": 14, "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": [7, 0], "x": 9, "y": 3},
+        {"matrix": [7, 1], "x": 10, "y": 3},
+        {"matrix": [7, 2], "x": 11, "y": 3},
+        {"matrix": [7, 3], "x": 12, "y": 3},
+        {"matrix": [7, 4], "x": 13, "y": 3},
+        {"matrix": [7, 5], "x": 14, "y": 3}
+      ]
+    }
   }
 }

+ 0 - 24
keyboards/25keys/zinc/rev1/rev1.h

@@ -1,24 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// Standard Keymap
-// (TRRS jack on both halves are to the left side)
-#define LAYOUT( \
-  L00, L01, L02, L03, L04, L05,           R00, R01, R02, R03, R04, R05, \
-  L10, L11, L12, L13, L14, L15,           R10, R11, R12, R13, R14, R15, \
-  L20, L21, L22, L23, L24, L25,           R20, R21, R22, R23, R24, R25, \
-  L30, L31, L32, L33, L34, L35,           R30, R31, R32, R33, R34, R35  \
-  ) \
-  { \
-    { L00, L01, L02, L03, L04, L05}, \
-    { L10, L11, L12, L13, L14, L15}, \
-    { L20, L21, L22, L23, L24, L25}, \
-    { L30, L31, L32, L33, L34, L35}, \
-    { R00, R01, R02, R03, R04, R05 }, \
-    { R10, R11, R12, R13, R14, R15 }, \
-    { R20, R21, R22, R23, R24, R25 }, \
-    { R30, R31, R32, R33, R34, R35 }, \
-  }
-
-#define LAYOUT_ortho_4x12 LAYOUT

+ 57 - 0
keyboards/25keys/zinc/reva/info.json

@@ -7,5 +7,62 @@
   "diode_direction": "COL2ROW",
   "split": {
     "soft_serial_pin": "D2"
+  },
+  "layouts": {
+    "LAYOUT_ortho_4x12": {
+      "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": [4, 0], "x": 9, "y": 0},
+        {"matrix": [4, 1], "x": 10, "y": 0},
+        {"matrix": [4, 2], "x": 11, "y": 0},
+        {"matrix": [4, 3], "x": 12, "y": 0},
+        {"matrix": [4, 4], "x": 13, "y": 0},
+        {"matrix": [4, 5], "x": 14, "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": [5, 0], "x": 9, "y": 1},
+        {"matrix": [5, 1], "x": 10, "y": 1},
+        {"matrix": [5, 2], "x": 11, "y": 1},
+        {"matrix": [5, 3], "x": 12, "y": 1},
+        {"matrix": [5, 4], "x": 13, "y": 1},
+        {"matrix": [5, 5], "x": 14, "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": [6, 0], "x": 9, "y": 2},
+        {"matrix": [6, 1], "x": 10, "y": 2},
+        {"matrix": [6, 2], "x": 11, "y": 2},
+        {"matrix": [6, 3], "x": 12, "y": 2},
+        {"matrix": [6, 4], "x": 13, "y": 2},
+        {"matrix": [6, 5], "x": 14, "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": [7, 0], "x": 9, "y": 3},
+        {"matrix": [7, 1], "x": 10, "y": 3},
+        {"matrix": [7, 2], "x": 11, "y": 3},
+        {"matrix": [7, 3], "x": 12, "y": 3},
+        {"matrix": [7, 4], "x": 13, "y": 3},
+        {"matrix": [7, 5], "x": 14, "y": 3}
+      ]
+    }
   }
 }

+ 0 - 24
keyboards/25keys/zinc/reva/reva.h

@@ -1,24 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// Standard Keymap
-// (TRRS jack on both halves are to the left side)
-#define LAYOUT( \
-  L00, L01, L02, L03, L04, L05,           R00, R01, R02, R03, R04, R05, \
-  L10, L11, L12, L13, L14, L15,           R10, R11, R12, R13, R14, R15, \
-  L20, L21, L22, L23, L24, L25,           R20, R21, R22, R23, R24, R25, \
-  L30, L31, L32, L33, L34, L35,           R30, R31, R32, R33, R34, R35  \
-  ) \
-  { \
-    { L00, L01, L02, L03, L04, L05}, \
-    { L10, L11, L12, L13, L14, L15}, \
-    { L20, L21, L22, L23, L24, L25}, \
-    { L30, L31, L32, L33, L34, L35}, \
-    { R00, R01, R02, R03, R04, R05 }, \
-    { R10, R11, R12, R13, R14, R15 }, \
-    { R20, R21, R22, R23, R24, R25 }, \
-    { R30, R31, R32, R33, R34, R35 }, \
-  }
-
-#define LAYOUT_ortho_4x12 LAYOUT

+ 0 - 53
keyboards/40percentclub/5x5/5x5.h

@@ -1,53 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-#define ___ KC_NO
-
-// This a shortcut to help you visually see your layout.
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-
-#define LAYOUT_ortho_5x5( \
-    K00, K01, K02, K03, K04, \
-    K10, K11, K12, K13, K14, \
-    K20, K21, K22, K23, K24, \
-    K30, K31, K32, K33, K34, \
-    K40, K41, K42, K43, K44 \
-) \
-{ \
-    { K00, K01, K02, K03, K04, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
-    { K10, K11, K12, K13, K14, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
-    { K20, K21, K22, K23, K24, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
-    { K30, K31, K32, K33, K34, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___}, \
-    { K40, K41, K42, K43, K44, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___} \
-}
-
-#define LAYOUT_ortho_5x10( \
-    K00, 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, K49 \
-) \
-{ \
-    { K00, 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, K49, ___, ___, ___, ___, ___} \
-}
-
-#define LAYOUT_ortho_5x15( \
-    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, K2d, K2e, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, \
-    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, 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, K2c, K2d, K2e}, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e}, \
-    { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b, K4c, K4d, K4e} \
-}

+ 150 - 150
keyboards/40percentclub/5x5/info.json

@@ -19,176 +19,176 @@
     "layouts": {
         "LAYOUT_ortho_5x5": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "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},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1},
-                {"x":2, "y":1},
-                {"x":3, "y":1},
-                {"x":4, "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},
 
-                {"x":0, "y":2},
-                {"x":1, "y":2},
-                {"x":2, "y":2},
-                {"x":3, "y":2},
-                {"x":4, "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},
 
-                {"x":0, "y":3},
-                {"x":1, "y":3},
-                {"x":2, "y":3},
-                {"x":3, "y":3},
-                {"x":4, "y":3},
+                {"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},
 
-                {"x":0, "y":4},
-                {"x":1, "y":4},
-                {"x":2, "y":4},
-                {"x":3, "y":4},
-                {"x":4, "y":4}
+                {"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": [4, 4], "x": 4, "y": 4}
             ]
         },
         "LAYOUT_ortho_5x10": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x":0, "y":3},
-                {"x":1, "y":3},
-                {"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},
+                {"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},
 
-                {"x":0, "y":4},
-                {"x":1, "y":4},
-                {"x":2, "y":4},
-                {"x":3, "y":4},
-                {"x":4, "y":4},
-                {"x":5, "y":4},
-                {"x":6, "y":4},
-                {"x":7, "y":4},
-                {"x":8, "y":4},
-                {"x":9, "y":4}
+                {"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": [4, 4], "x": 4, "y": 4},
+                {"matrix": [4, 5], "x": 5, "y": 4},
+                {"matrix": [4, 6], "x": 6, "y": 4},
+                {"matrix": [4, 7], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4}
             ]
         },
         "LAYOUT_ortho_5x15": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"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},
-                {"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": [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},
 
-                {"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},
-                {"x":14, "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},
+                {"matrix": [1, 14], "x": 14, "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},
-                {"x":14, "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},
+                {"matrix": [2, 14], "x": 14, "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},
-                {"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},
-                {"x":14, "y":3},
+                {"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": [3, 12], "x": 12, "y": 3},
+                {"matrix": [3, 13], "x": 13, "y": 3},
+                {"matrix": [3, 14], "x": 14, "y": 3},
 
-                {"x":0, "y":4},
-                {"x":1, "y":4},
-                {"x":2, "y":4},
-                {"x":3, "y":4},
-                {"x":4, "y":4},
-                {"x":5, "y":4},
-                {"x":6, "y":4},
-                {"x":7, "y":4},
-                {"x":8, "y":4},
-                {"x":9, "y":4},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4}
+                {"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": [4, 4], "x": 4, "y": 4},
+                {"matrix": [4, 5], "x": 5, "y": 4},
+                {"matrix": [4, 6], "x": 6, "y": 4},
+                {"matrix": [4, 7], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 12], "x": 12, "y": 4},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4}
             ]
         }
     }

+ 0 - 15
keyboards/40percentclub/gherkin/gherkin.h

@@ -1,15 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_3x10( \
-	 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   \
-) { \
-	{ 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 }  \
-}

+ 34 - 1
keyboards/40percentclub/gherkin/info.json

@@ -21,7 +21,40 @@
   "community_layouts": ["ortho_3x10"],
   "layouts": {
     "LAYOUT_ortho_3x10": {
-      "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"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":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":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}]
+      "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": [1, 0], "x": 6, "y": 0},
+        {"matrix": [1, 1], "x": 7, "y": 0},
+        {"matrix": [1, 2], "x": 8, "y": 0},
+        {"matrix": [1, 3], "x": 9, "y": 0},
+
+        {"matrix": [1, 4], "x": 0, "y": 1},
+        {"matrix": [1, 5], "x": 1, "y": 1},
+        {"matrix": [2, 0], "x": 2, "y": 1},
+        {"matrix": [2, 1], "x": 3, "y": 1},
+        {"matrix": [2, 2], "x": 4, "y": 1},
+        {"matrix": [2, 3], "x": 5, "y": 1},
+        {"matrix": [2, 4], "x": 6, "y": 1},
+        {"matrix": [2, 5], "x": 7, "y": 1},
+        {"matrix": [3, 0], "x": 8, "y": 1},
+        {"matrix": [3, 1], "x": 9, "y": 1},
+
+        {"matrix": [3, 2], "x": 0, "y": 2},
+        {"matrix": [3, 3], "x": 1, "y": 2},
+        {"matrix": [3, 4], "x": 2, "y": 2},
+        {"matrix": [3, 5], "x": 3, "y": 2},
+        {"matrix": [4, 0], "x": 4, "y": 2},
+        {"matrix": [4, 1], "x": 5, "y": 2},
+        {"matrix": [4, 2], "x": 6, "y": 2},
+        {"matrix": [4, 3], "x": 7, "y": 2},
+        {"matrix": [4, 4], "x": 8, "y": 2},
+        {"matrix": [4, 5], "x": 9, "y": 2}
+      ]
     }
   }
 }

+ 0 - 6
keyboards/40percentclub/i75/info.json

@@ -7,11 +7,5 @@
     "vid": "0x4025",
     "pid": "0x0A0C",
     "device_version": "1.7.5"
-  },
-  "community_layouts": ["ortho_5x15"],
-  "layouts": {
-      "LAYOUT_ortho_5x15": {
-          "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"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}, {"x":14, "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}, {"x":14, "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}, {"x":14, "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}, {"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}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
-      }
   }
 }

+ 87 - 1
keyboards/40percentclub/i75/promicro/info.json

@@ -5,5 +5,91 @@
     },
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
-    "bootloader": "caterina"
+    "bootloader": "caterina",
+    "community_layouts": ["ortho_5x15"],
+    "layouts": {
+        "LAYOUT_ortho_5x15": {
+            "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": [1, 0], "x": 9, "y": 0},
+                {"matrix": [1, 1], "x": 10, "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},
+
+                {"matrix": [1, 6], "x": 0, "y": 1},
+                {"matrix": [1, 7], "x": 1, "y": 1},
+                {"matrix": [1, 8], "x": 2, "y": 1},
+                {"matrix": [2, 0], "x": 3, "y": 1},
+                {"matrix": [2, 1], "x": 4, "y": 1},
+                {"matrix": [2, 2], "x": 5, "y": 1},
+                {"matrix": [2, 3], "x": 6, "y": 1},
+                {"matrix": [2, 4], "x": 7, "y": 1},
+                {"matrix": [2, 5], "x": 8, "y": 1},
+                {"matrix": [2, 6], "x": 9, "y": 1},
+                {"matrix": [2, 7], "x": 10, "y": 1},
+                {"matrix": [2, 8], "x": 11, "y": 1},
+                {"matrix": [3, 0], "x": 12, "y": 1},
+                {"matrix": [3, 1], "x": 13, "y": 1},
+                {"matrix": [3, 2], "x": 14, "y": 1},
+
+                {"matrix": [3, 3], "x": 0, "y": 2},
+                {"matrix": [3, 4], "x": 1, "y": 2},
+                {"matrix": [3, 5], "x": 2, "y": 2},
+                {"matrix": [3, 6], "x": 3, "y": 2},
+                {"matrix": [3, 7], "x": 4, "y": 2},
+                {"matrix": [3, 8], "x": 5, "y": 2},
+                {"matrix": [4, 0], "x": 6, "y": 2},
+                {"matrix": [4, 1], "x": 7, "y": 2},
+                {"matrix": [4, 2], "x": 8, "y": 2},
+                {"matrix": [4, 3], "x": 9, "y": 2},
+                {"matrix": [4, 4], "x": 10, "y": 2},
+                {"matrix": [4, 5], "x": 11, "y": 2},
+                {"matrix": [4, 6], "x": 12, "y": 2},
+                {"matrix": [4, 7], "x": 13, "y": 2},
+                {"matrix": [4, 8], "x": 14, "y": 2},
+
+                {"matrix": [5, 0], "x": 0, "y": 3},
+                {"matrix": [5, 1], "x": 1, "y": 3},
+                {"matrix": [5, 2], "x": 2, "y": 3},
+                {"matrix": [5, 3], "x": 3, "y": 3},
+                {"matrix": [5, 4], "x": 4, "y": 3},
+                {"matrix": [5, 5], "x": 5, "y": 3},
+                {"matrix": [5, 6], "x": 6, "y": 3},
+                {"matrix": [5, 7], "x": 7, "y": 3},
+                {"matrix": [5, 8], "x": 8, "y": 3},
+                {"matrix": [6, 0], "x": 9, "y": 3},
+                {"matrix": [6, 1], "x": 10, "y": 3},
+                {"matrix": [6, 2], "x": 11, "y": 3},
+                {"matrix": [6, 3], "x": 12, "y": 3},
+                {"matrix": [6, 4], "x": 13, "y": 3},
+                {"matrix": [6, 5], "x": 14, "y": 3},
+
+                {"matrix": [6, 6], "x": 0, "y": 4},
+                {"matrix": [6, 7], "x": 1, "y": 4},
+                {"matrix": [6, 8], "x": 2, "y": 4},
+                {"matrix": [7, 0], "x": 3, "y": 4},
+                {"matrix": [7, 1], "x": 4, "y": 4},
+                {"matrix": [7, 2], "x": 5, "y": 4},
+                {"matrix": [7, 3], "x": 6, "y": 4},
+                {"matrix": [7, 4], "x": 7, "y": 4},
+                {"matrix": [7, 5], "x": 8, "y": 4},
+                {"matrix": [7, 6], "x": 9, "y": 4},
+                {"matrix": [7, 7], "x": 10, "y": 4},
+                {"matrix": [7, 8], "x": 11, "y": 4},
+                {"matrix": [8, 0], "x": 12, "y": 4},
+                {"matrix": [8, 1], "x": 13, "y": 4},
+                {"matrix": [8, 2], "x": 14, "y": 4}
+            ]
+        }
+    }
 }

+ 0 - 46
keyboards/40percentclub/i75/promicro/promicro.h

@@ -1,46 +0,0 @@
-/* Copyright 2018
- *
- * 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_ortho_5x15( \
-    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, K41, K42, K43, K44, K45, K46, K47, K48, \
-    K50, K51, K52, K53, K54, K55, K56, K57, K58, K60, K61, K62, K63, K64, K65, \
-    K66, K67, K68, K70, K71, K72, K73, K74, K75, K76, K77, K78, K80, K81, K82  \
-) \
-{ \
-  { 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, K41, K42, K43, K44, K45, K46, K47, K48 }, \
-  { K50, K51, K52, K53, K54, K55, K56, K57, K58 }, \
-  { K60, K61, K62, K63, K64, K65, K66, K67, K68 }, \
-  { K70, K71, K72, K73, K74, K75, K76, K77, K78 }, \
-  { K80, K81, K82 } \
-}

+ 87 - 1
keyboards/40percentclub/i75/teensy2/info.json

@@ -5,5 +5,91 @@
     },
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
-    "bootloader": "halfkay"
+    "bootloader": "halfkay",
+    "community_layouts": ["ortho_5x15"],
+    "layouts": {
+        "LAYOUT_ortho_5x15": {
+            "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": [1, 0], "x": 9, "y": 0},
+                {"matrix": [1, 1], "x": 10, "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},
+
+                {"matrix": [1, 6], "x": 0, "y": 1},
+                {"matrix": [1, 7], "x": 1, "y": 1},
+                {"matrix": [1, 8], "x": 2, "y": 1},
+                {"matrix": [2, 0], "x": 3, "y": 1},
+                {"matrix": [2, 1], "x": 4, "y": 1},
+                {"matrix": [2, 2], "x": 5, "y": 1},
+                {"matrix": [2, 3], "x": 6, "y": 1},
+                {"matrix": [2, 4], "x": 7, "y": 1},
+                {"matrix": [2, 5], "x": 8, "y": 1},
+                {"matrix": [2, 6], "x": 9, "y": 1},
+                {"matrix": [2, 7], "x": 10, "y": 1},
+                {"matrix": [2, 8], "x": 11, "y": 1},
+                {"matrix": [3, 0], "x": 12, "y": 1},
+                {"matrix": [3, 1], "x": 13, "y": 1},
+                {"matrix": [3, 2], "x": 14, "y": 1},
+
+                {"matrix": [3, 3], "x": 0, "y": 2},
+                {"matrix": [3, 4], "x": 1, "y": 2},
+                {"matrix": [3, 5], "x": 2, "y": 2},
+                {"matrix": [3, 6], "x": 3, "y": 2},
+                {"matrix": [3, 7], "x": 4, "y": 2},
+                {"matrix": [3, 8], "x": 5, "y": 2},
+                {"matrix": [4, 0], "x": 6, "y": 2},
+                {"matrix": [4, 1], "x": 7, "y": 2},
+                {"matrix": [4, 2], "x": 8, "y": 2},
+                {"matrix": [4, 3], "x": 9, "y": 2},
+                {"matrix": [4, 4], "x": 10, "y": 2},
+                {"matrix": [4, 5], "x": 11, "y": 2},
+                {"matrix": [4, 6], "x": 12, "y": 2},
+                {"matrix": [4, 7], "x": 13, "y": 2},
+                {"matrix": [4, 8], "x": 14, "y": 2},
+
+                {"matrix": [5, 0], "x": 0, "y": 3},
+                {"matrix": [5, 1], "x": 1, "y": 3},
+                {"matrix": [5, 2], "x": 2, "y": 3},
+                {"matrix": [5, 3], "x": 3, "y": 3},
+                {"matrix": [5, 4], "x": 4, "y": 3},
+                {"matrix": [5, 5], "x": 5, "y": 3},
+                {"matrix": [5, 6], "x": 6, "y": 3},
+                {"matrix": [5, 7], "x": 7, "y": 3},
+                {"matrix": [5, 8], "x": 8, "y": 3},
+                {"matrix": [6, 0], "x": 9, "y": 3},
+                {"matrix": [6, 1], "x": 10, "y": 3},
+                {"matrix": [6, 2], "x": 11, "y": 3},
+                {"matrix": [6, 3], "x": 12, "y": 3},
+                {"matrix": [6, 4], "x": 13, "y": 3},
+                {"matrix": [6, 5], "x": 14, "y": 3},
+
+                {"matrix": [6, 6], "x": 0, "y": 4},
+                {"matrix": [6, 7], "x": 1, "y": 4},
+                {"matrix": [6, 8], "x": 2, "y": 4},
+                {"matrix": [7, 0], "x": 3, "y": 4},
+                {"matrix": [7, 1], "x": 4, "y": 4},
+                {"matrix": [7, 2], "x": 5, "y": 4},
+                {"matrix": [7, 3], "x": 6, "y": 4},
+                {"matrix": [7, 4], "x": 7, "y": 4},
+                {"matrix": [7, 5], "x": 8, "y": 4},
+                {"matrix": [7, 6], "x": 9, "y": 4},
+                {"matrix": [7, 7], "x": 10, "y": 4},
+                {"matrix": [7, 8], "x": 11, "y": 4},
+                {"matrix": [8, 0], "x": 12, "y": 4},
+                {"matrix": [8, 1], "x": 13, "y": 4},
+                {"matrix": [8, 2], "x": 14, "y": 4}
+            ]
+        }
+    }
 }

+ 0 - 46
keyboards/40percentclub/i75/teensy2/teensy2.h

@@ -1,46 +0,0 @@
-/* Copyright 2018
- *
- * 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_ortho_5x15( \
-    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, K41, K42, K43, K44, K45, K46, K47, K48, \
-    K50, K51, K52, K53, K54, K55, K56, K57, K58, K60, K61, K62, K63, K64, K65, \
-    K66, K67, K68, K70, K71, K72, K73, K74, K75, K76, K77, K78, K80, K81, K82  \
-) \
-{ \
-  { 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, K41, K42, K43, K44, K45, K46, K47, K48 }, \
-  { K50, K51, K52, K53, K54, K55, K56, K57, K58 }, \
-  { K60, K61, K62, K63, K64, K65, K66, K67, K68 }, \
-  { K70, K71, K72, K73, K74, K75, K76, K77, K78 }, \
-  { K80, K81, K82 } \
-}

+ 108 - 96
keyboards/40percentclub/nori/info.json

@@ -22,108 +22,120 @@
     "layouts": {
       "LAYOUT_ortho_4x4": {
           "layout": [
-            { "x": 0, "y": 0 },
-            { "x": 1, "y": 0 },
-            { "x": 2, "y": 0 },
-            { "x": 3, "y": 0 },
-            { "x": 0, "y": 1 },
-            { "x": 1, "y": 1 },
-            { "x": 2, "y": 1 },
-            { "x": 3, "y": 1 },
-            { "x": 0, "y": 2 },
-            { "x": 1, "y": 2 },
-            { "x": 2, "y": 2 },
-            { "x": 3, "y": 2 },
-            { "x": 0, "y": 3 },
-            { "x": 1, "y": 3 },
-            { "x": 2, "y": 3 },
-            { "x": 3, "y": 3 } ]
+            {"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}
+          ]
       },
       "LAYOUT_ortho_4x8": {
           "layout": [
-            { "x": 0, "y": 0 },
-            { "x": 1, "y": 0 },
-            { "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": 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": 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": 0, "y": 3 },
-            { "x": 1, "y": 3 },
-            { "x": 2, "y": 3 },
-            { "x": 3, "y": 3 },
-            { "x": 4, "y": 3 },
-            { "x": 5, "y": 3 },
-            { "x": 6, "y": 3 },
-            { "x": 7, "y": 3 } ]
+            {"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": [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": [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": [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}
+          ]
       },
         "LAYOUT_ortho_4x12": {
             "layout": [
-              { "x": 0, "y": 0 },
-              { "x": 1, "y": 0 },
-              { "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": 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": 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": 0, "y": 3 },
-              { "x": 1, "y": 3 },
-              { "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 } ]
+              {"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}
+            ]
         }
     }
 }

+ 0 - 56
keyboards/40percentclub/nori/nori.h

@@ -1,56 +0,0 @@
-/* Copyright 2018
- *
- * 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_ortho_4x4( \
-    K00, K01, K02, K03, \
-    K10, K11, K12, K13, \
-    K20, K21, K22, K23, \
-    K30, K31, K32, K33 \
-) \
-{ \
-    { K00, K01, K02, K03, ___, ___, ___, ___, ___, ___, ___, ___ }, \
-    { K10, K11, K12, K13, ___, ___, ___, ___, ___, ___, ___, ___ }, \
-    { K20, K21, K22, K23, ___, ___, ___, ___, ___, ___, ___, ___ }, \
-    { K30, K31, K32, K33, ___, ___, ___, ___, ___, ___, ___, ___ } \
-}
-#define LAYOUT_ortho_4x8( \
-    K00, K01, K02, K03, K04, K05, K06, K07, \
-    K10, K11, K12, K13, K14, K15, K16, K17, \
-    K20, K21, K22, K23, K24, K25, K26, K27, \
-    K30, K31, K32, K33, K34, K35, K36, K37\
-) \
-{ \
-    { K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___ }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___ }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___ }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, ___, ___, ___, ___ } \
-}
-#define LAYOUT_ortho_4x12( \
-    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  \
-) \
-{ \
-    { 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 } \
-}

+ 0 - 22
keyboards/40percentclub/polyandry/info.json

@@ -7,27 +7,5 @@
         "vid": "0x4025",
         "pid": "0x6060",
         "device_version": "0.0.1"
-    },
-    "layouts": {
-        "LAYOUT_ortho_4x3": {
-            "layout": [
-                {"label": "k000", "x": 0, "y": 0},
-                {"label": "k001", "x": 1, "y": 0},
-                {"label": "k002", "x": 2, "y": 0},
-
-                {"label": "k003", "x": 0, "y": 1},
-                {"label": "k004", "x": 1, "y": 1},
-                {"label": "k005", "x": 2, "y": 1},
-
-                {"label": "k006", "x": 0, "y": 2},
-                {"label": "k007", "x": 1, "y": 2},
-                {"label": "k008", "x": 2, "y": 2},
-
-                {"label": "k009", "x": 0, "y": 3},
-                {"label": "k010", "x": 1, "y": 3},
-                {"label": "k011", "x": 2, "y": 3}
-
-            ]
-        }
     }
 }

+ 22 - 1
keyboards/40percentclub/polyandry/promicro/info.json

@@ -5,5 +5,26 @@
     },
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
-    "bootloader": "caterina"
+    "bootloader": "caterina",
+    "layouts": {
+        "LAYOUT_ortho_4x3": {
+            "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},
+
+                {"matrix": [0, 6], "x": 0, "y": 2},
+                {"matrix": [0, 7], "x": 1, "y": 2},
+                {"matrix": [0, 8], "x": 2, "y": 2},
+
+                {"matrix": [0, 9], "x": 0, "y": 3},
+                {"matrix": [0, 10], "x": 1, "y": 3},
+                {"matrix": [0, 11], "x": 2, "y": 3}
+            ]
+        }
+    }
 }

+ 0 - 27
keyboards/40percentclub/polyandry/promicro/promicro.h

@@ -1,27 +0,0 @@
-/* Copyright 2021
- *
- * 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_ortho_4x3( \
-	K000, K001, K002, \
- 	K003, K004, K005, \
-	K006, K007, K008, \
-	K009, K010, K011  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011 }  \
-}

+ 22 - 1
keyboards/40percentclub/polyandry/teensy2/info.json

@@ -5,5 +5,26 @@
     },
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
-    "bootloader": "halfkay"
+    "bootloader": "halfkay",
+    "layouts": {
+        "LAYOUT_ortho_4x3": {
+            "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},
+
+                {"matrix": [0, 6], "x": 0, "y": 2},
+                {"matrix": [0, 7], "x": 1, "y": 2},
+                {"matrix": [0, 8], "x": 2, "y": 2},
+
+                {"matrix": [0, 9], "x": 0, "y": 3},
+                {"matrix": [0, 10], "x": 1, "y": 3},
+                {"matrix": [0, 11], "x": 2, "y": 3}
+            ]
+        }
+    }
 }

+ 0 - 32
keyboards/40percentclub/polyandry/teensy2/teensy2.h

@@ -1,32 +0,0 @@
-/* Copyright 2021
- *
- * 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
-
-//NOTE TO FUTURE FROM RYJELSUM (original contributor):
-//This has been unchanged from the promicro.h file. 
-//I DO NOT HAVE A TEENSY 2.0 TO TEST WITH.
-//I believe this should still work - but it's not a sure thing.
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_4x3( \
-	K000, K001, K002, \
- 	K003, K004, K005, \
-	K006, K007, K008, \
-	K009, K010, K011  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011 }  \
-}

+ 34 - 1
keyboards/40percentclub/tomato/info.json

@@ -18,7 +18,40 @@
   "community_layouts": ["ortho_3x10"],
   "layouts": {
     "LAYOUT_ortho_3x10": {
-      "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"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":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":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}]
+      "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": [1, 0], "x": 6, "y": 0},
+        {"matrix": [1, 1], "x": 7, "y": 0},
+        {"matrix": [1, 2], "x": 8, "y": 0},
+        {"matrix": [1, 3], "x": 9, "y": 0},
+
+        {"matrix": [1, 4], "x": 0, "y": 1},
+        {"matrix": [1, 5], "x": 1, "y": 1},
+        {"matrix": [2, 0], "x": 2, "y": 1},
+        {"matrix": [2, 1], "x": 3, "y": 1},
+        {"matrix": [2, 2], "x": 4, "y": 1},
+        {"matrix": [2, 3], "x": 5, "y": 1},
+        {"matrix": [2, 4], "x": 6, "y": 1},
+        {"matrix": [2, 5], "x": 7, "y": 1},
+        {"matrix": [3, 0], "x": 8, "y": 1},
+        {"matrix": [3, 1], "x": 9, "y": 1},
+
+        {"matrix": [3, 2], "x": 0, "y": 2},
+        {"matrix": [3, 3], "x": 1, "y": 2},
+        {"matrix": [3, 4], "x": 2, "y": 2},
+        {"matrix": [3, 5], "x": 3, "y": 2},
+        {"matrix": [4, 0], "x": 4, "y": 2},
+        {"matrix": [4, 1], "x": 5, "y": 2},
+        {"matrix": [4, 2], "x": 6, "y": 2},
+        {"matrix": [4, 3], "x": 7, "y": 2},
+        {"matrix": [4, 4], "x": 8, "y": 2},
+        {"matrix": [4, 5], "x": 9, "y": 2}
+      ]
     }
   }
 }

+ 0 - 15
keyboards/40percentclub/tomato/tomato.h

@@ -1,15 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_3x10( \
-	 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   \
-) { \
-	{ 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 }  \
-}

+ 0 - 59
keyboards/7c8/framework/framework.h

@@ -17,65 +17,6 @@
 #pragma once
 #include "quantum.h"
 
-#define ___ KC_NO
-
-#define LAYOUT_ortho_5x12( \
-        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, K42, K43, K44, K45, K46, K47, K48, K49, K4a, 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, K42, K43, K44, K45 }, \
-          { K46, K47, K48, K49, K4a, K4b }  \
-        }
-
-#define LAYOUT_ortho_5x12_1x2uC( \
-        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, K42, K43, K44,    K45,   K47, K48, K49, K4a, 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, K42, K43, K44, K45 }, \
-          { ___, K47, K48, K49, K4a, K4b }  \
-        }
-
-#define LAYOUT_preonic_2x2u( \
-        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, K42, K43,    K45,     K46,    K48, K49, K4a, 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, K42, K43, ___, K45 }, \
-          { K46, ___, K48, K49, K4a, K4b }  \
-        }
-
 #define framework_via( \
         K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
         K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \

+ 177 - 177
keyboards/7c8/framework/info.json

@@ -23,203 +23,203 @@
     "layouts": {
         "LAYOUT_ortho_5x12": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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},
+                {"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": [1, 0], "x": 6, "y": 0},
+                {"matrix": [1, 1], "x": 7, "y": 0},
+                {"matrix": [1, 2], "x": 8, "y": 0},
+                {"matrix": [1, 3], "x": 9, "y": 0},
+                {"matrix": [1, 4], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "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},
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [2, 1], "x": 1, "y": 1},
+                {"matrix": [2, 2], "x": 2, "y": 1},
+                {"matrix": [2, 3], "x": 3, "y": 1},
+                {"matrix": [2, 4], "x": 4, "y": 1},
+                {"matrix": [2, 5], "x": 5, "y": 1},
+                {"matrix": [3, 0], "x": 6, "y": 1},
+                {"matrix": [3, 1], "x": 7, "y": 1},
+                {"matrix": [3, 2], "x": 8, "y": 1},
+                {"matrix": [3, 3], "x": 9, "y": 1},
+                {"matrix": [3, 4], "x": 10, "y": 1},
+                {"matrix": [3, 5], "x": 11, "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},
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [4, 1], "x": 1, "y": 2},
+                {"matrix": [4, 2], "x": 2, "y": 2},
+                {"matrix": [4, 3], "x": 3, "y": 2},
+                {"matrix": [4, 4], "x": 4, "y": 2},
+                {"matrix": [4, 5], "x": 5, "y": 2},
+                {"matrix": [5, 0], "x": 6, "y": 2},
+                {"matrix": [5, 1], "x": 7, "y": 2},
+                {"matrix": [5, 2], "x": 8, "y": 2},
+                {"matrix": [5, 3], "x": 9, "y": 2},
+                {"matrix": [5, 4], "x": 10, "y": 2},
+                {"matrix": [5, 5], "x": 11, "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},
-                {"x": 6, "y": 3},
-                {"x": 7, "y": 3},
-                {"x": 8, "y": 3},
-                {"x": 9, "y": 3},
-                {"x": 10, "y": 3},
-                {"x": 11, "y": 3},
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [6, 1], "x": 1, "y": 3},
+                {"matrix": [6, 2], "x": 2, "y": 3},
+                {"matrix": [6, 3], "x": 3, "y": 3},
+                {"matrix": [6, 4], "x": 4, "y": 3},
+                {"matrix": [6, 5], "x": 5, "y": 3},
+                {"matrix": [7, 0], "x": 6, "y": 3},
+                {"matrix": [7, 1], "x": 7, "y": 3},
+                {"matrix": [7, 2], "x": 8, "y": 3},
+                {"matrix": [7, 3], "x": 9, "y": 3},
+                {"matrix": [7, 4], "x": 10, "y": 3},
+                {"matrix": [7, 5], "x": 11, "y": 3},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4, "y": 4},
-                {"x": 5, "y": 4},
-                {"x": 6, "y": 4},
-                {"x": 7, "y": 4},
-                {"x": 8, "y": 4},
-                {"x": 9, "y": 4},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4}
+                {"matrix": [8, 0], "x": 0, "y": 4},
+                {"matrix": [8, 1], "x": 1, "y": 4},
+                {"matrix": [8, 2], "x": 2, "y": 4},
+                {"matrix": [8, 3], "x": 3, "y": 4},
+                {"matrix": [8, 4], "x": 4, "y": 4},
+                {"matrix": [8, 5], "x": 5, "y": 4},
+                {"matrix": [9, 0], "x": 6, "y": 4},
+                {"matrix": [9, 1], "x": 7, "y": 4},
+                {"matrix": [9, 2], "x": 8, "y": 4},
+                {"matrix": [9, 3], "x": 9, "y": 4},
+                {"matrix": [9, 4], "x": 10, "y": 4},
+                {"matrix": [9, 5], "x": 11, "y": 4}
             ]
         },
         "LAYOUT_ortho_5x12_1x2uC": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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},
+                {"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": [1, 0], "x": 6, "y": 0},
+                {"matrix": [1, 1], "x": 7, "y": 0},
+                {"matrix": [1, 2], "x": 8, "y": 0},
+                {"matrix": [1, 3], "x": 9, "y": 0},
+                {"matrix": [1, 4], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "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},
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [2, 1], "x": 1, "y": 1},
+                {"matrix": [2, 2], "x": 2, "y": 1},
+                {"matrix": [2, 3], "x": 3, "y": 1},
+                {"matrix": [2, 4], "x": 4, "y": 1},
+                {"matrix": [2, 5], "x": 5, "y": 1},
+                {"matrix": [3, 0], "x": 6, "y": 1},
+                {"matrix": [3, 1], "x": 7, "y": 1},
+                {"matrix": [3, 2], "x": 8, "y": 1},
+                {"matrix": [3, 3], "x": 9, "y": 1},
+                {"matrix": [3, 4], "x": 10, "y": 1},
+                {"matrix": [3, 5], "x": 11, "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},
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [4, 1], "x": 1, "y": 2},
+                {"matrix": [4, 2], "x": 2, "y": 2},
+                {"matrix": [4, 3], "x": 3, "y": 2},
+                {"matrix": [4, 4], "x": 4, "y": 2},
+                {"matrix": [4, 5], "x": 5, "y": 2},
+                {"matrix": [5, 0], "x": 6, "y": 2},
+                {"matrix": [5, 1], "x": 7, "y": 2},
+                {"matrix": [5, 2], "x": 8, "y": 2},
+                {"matrix": [5, 3], "x": 9, "y": 2},
+                {"matrix": [5, 4], "x": 10, "y": 2},
+                {"matrix": [5, 5], "x": 11, "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},
-                {"x": 6, "y": 3},
-                {"x": 7, "y": 3},
-                {"x": 8, "y": 3},
-                {"x": 9, "y": 3},
-                {"x": 10, "y": 3},
-                {"x": 11, "y": 3},
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [6, 1], "x": 1, "y": 3},
+                {"matrix": [6, 2], "x": 2, "y": 3},
+                {"matrix": [6, 3], "x": 3, "y": 3},
+                {"matrix": [6, 4], "x": 4, "y": 3},
+                {"matrix": [6, 5], "x": 5, "y": 3},
+                {"matrix": [7, 0], "x": 6, "y": 3},
+                {"matrix": [7, 1], "x": 7, "y": 3},
+                {"matrix": [7, 2], "x": 8, "y": 3},
+                {"matrix": [7, 3], "x": 9, "y": 3},
+                {"matrix": [7, 4], "x": 10, "y": 3},
+                {"matrix": [7, 5], "x": 11, "y": 3},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4, "y": 4},
-                {"x": 5, "y": 4, "w": 2},
-                {"x": 7, "y": 4},
-                {"x": 8, "y": 4},
-                {"x": 9, "y": 4},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4}
+                {"matrix": [8, 0], "x": 0, "y": 4},
+                {"matrix": [8, 1], "x": 1, "y": 4},
+                {"matrix": [8, 2], "x": 2, "y": 4},
+                {"matrix": [8, 3], "x": 3, "y": 4},
+                {"matrix": [8, 4], "x": 4, "y": 4},
+                {"matrix": [8, 5], "x": 5, "y": 4, "w": 2},
+                {"matrix": [9, 1], "x": 7, "y": 4},
+                {"matrix": [9, 2], "x": 8, "y": 4},
+                {"matrix": [9, 3], "x": 9, "y": 4},
+                {"matrix": [9, 4], "x": 10, "y": 4},
+                {"matrix": [9, 5], "x": 11, "y": 4}
             ]
         },
         "LAYOUT_preonic_2x2u": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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},
+                {"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": [1, 0], "x": 6, "y": 0},
+                {"matrix": [1, 1], "x": 7, "y": 0},
+                {"matrix": [1, 2], "x": 8, "y": 0},
+                {"matrix": [1, 3], "x": 9, "y": 0},
+                {"matrix": [1, 4], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "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},
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [2, 1], "x": 1, "y": 1},
+                {"matrix": [2, 2], "x": 2, "y": 1},
+                {"matrix": [2, 3], "x": 3, "y": 1},
+                {"matrix": [2, 4], "x": 4, "y": 1},
+                {"matrix": [2, 5], "x": 5, "y": 1},
+                {"matrix": [3, 0], "x": 6, "y": 1},
+                {"matrix": [3, 1], "x": 7, "y": 1},
+                {"matrix": [3, 2], "x": 8, "y": 1},
+                {"matrix": [3, 3], "x": 9, "y": 1},
+                {"matrix": [3, 4], "x": 10, "y": 1},
+                {"matrix": [3, 5], "x": 11, "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},
+                {"matrix": [4, 0], "x": 0, "y": 2},
+                {"matrix": [4, 1], "x": 1, "y": 2},
+                {"matrix": [4, 2], "x": 2, "y": 2},
+                {"matrix": [4, 3], "x": 3, "y": 2},
+                {"matrix": [4, 4], "x": 4, "y": 2},
+                {"matrix": [4, 5], "x": 5, "y": 2},
+                {"matrix": [5, 0], "x": 6, "y": 2},
+                {"matrix": [5, 1], "x": 7, "y": 2},
+                {"matrix": [5, 2], "x": 8, "y": 2},
+                {"matrix": [5, 3], "x": 9, "y": 2},
+                {"matrix": [5, 4], "x": 10, "y": 2},
+                {"matrix": [5, 5], "x": 11, "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},
-                {"x": 6, "y": 3},
-                {"x": 7, "y": 3},
-                {"x": 8, "y": 3},
-                {"x": 9, "y": 3},
-                {"x": 10, "y": 3},
-                {"x": 11, "y": 3},
+                {"matrix": [6, 0], "x": 0, "y": 3},
+                {"matrix": [6, 1], "x": 1, "y": 3},
+                {"matrix": [6, 2], "x": 2, "y": 3},
+                {"matrix": [6, 3], "x": 3, "y": 3},
+                {"matrix": [6, 4], "x": 4, "y": 3},
+                {"matrix": [6, 5], "x": 5, "y": 3},
+                {"matrix": [7, 0], "x": 6, "y": 3},
+                {"matrix": [7, 1], "x": 7, "y": 3},
+                {"matrix": [7, 2], "x": 8, "y": 3},
+                {"matrix": [7, 3], "x": 9, "y": 3},
+                {"matrix": [7, 4], "x": 10, "y": 3},
+                {"matrix": [7, 5], "x": 11, "y": 3},
 
-                {"x": 0, "y": 4},
-                {"x": 1, "y": 4},
-                {"x": 2, "y": 4},
-                {"x": 3, "y": 4},
-                {"x": 4, "y": 4, "w": 2},
-                {"x": 6, "y": 4, "w": 2},
-                {"x": 8, "y": 4},
-                {"x": 9, "y": 4},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4}
+                {"matrix": [8, 0], "x": 0, "y": 4},
+                {"matrix": [8, 1], "x": 1, "y": 4},
+                {"matrix": [8, 2], "x": 2, "y": 4},
+                {"matrix": [8, 3], "x": 3, "y": 4},
+                {"matrix": [8, 5], "x": 4, "y": 4, "w": 2},
+                {"matrix": [9, 0], "x": 6, "y": 4, "w": 2},
+                {"matrix": [9, 2], "x": 8, "y": 4},
+                {"matrix": [9, 3], "x": 9, "y": 4},
+                {"matrix": [9, 4], "x": 10, "y": 4},
+                {"matrix": [9, 5], "x": 11, "y": 4}
             ]
         }
     }

+ 0 - 39
keyboards/acheron/shark/alpha/alpha.h

@@ -1,39 +0,0 @@
-/* Copyright 2019 Álvaro "Gondolindrim" Volpato
- *
- * 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_ortho_4x12( \
-    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  \
-) \
-{ \
-    { 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 }  \
-}

+ 51 - 48
keyboards/acheron/shark/alpha/info.json

@@ -26,54 +26,57 @@
   "layouts": {
     "LAYOUT_ortho_4x12": {
       "layout": [
-        { "x": 0, "y": 0 },
-        { "x": 1, "y": 0 },
-        { "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": 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": 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": 0, "y": 3 },
-        { "x": 1, "y": 3 },
-        { "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 }
+        {"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}
       ]
     }
   }

+ 2 - 1
keyboards/acheron/shark/beta/beta.c

@@ -14,7 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "beta.h"
+#include "quantum.h"
+
 void board_init(void) {
 	setPinInput(B6);
 	setPinInput(B7);

+ 0 - 31
keyboards/acheron/shark/beta/beta.h

@@ -1,31 +0,0 @@
-/* Copyright 2020 Gondolindrim
- *
- * 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_ortho_4x12( \
-    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  \
-)\
-{\
-    { 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 }  \
-}

+ 51 - 48
keyboards/acheron/shark/beta/info.json

@@ -25,54 +25,57 @@
     "layouts": {
         "LAYOUT_ortho_4x12": {
             "layout": [
-                { "x": 0, "y": 0 },
-                { "x": 1, "y": 0 },
-                { "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": 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": 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": 0, "y": 3 },
-                { "x": 1, "y": 3 },
-                { "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 }
+                {"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}
             ]
         }
     }

+ 104 - 480
keyboards/adkb96/info.json

@@ -18,489 +18,113 @@
 	},
 	"processor": "atmega32u4",
 	"bootloader": "caterina",
+	"layout_aliases": {
+		"LAYOUT": "LAYOUT_ortho_6x16"
+	},
 	"layouts": {
 		"LAYOUT_ortho_6x16": {
 			"layout": [
-				{
-					"label": "L00",
-					"x": 0,
-					"y": 0
-				},
-				{
-					"label": "L01",
-					"x": 1,
-					"y": 0
-				},
-				{
-					"label": "L02",
-					"x": 2,
-					"y": 0
-				},
-				{
-					"label": "L03",
-					"x": 3,
-					"y": 0
-				},
-				{
-					"label": "L04",
-					"x": 4,
-					"y": 0
-				},
-				{
-					"label": "L05",
-					"x": 5,
-					"y": 0
-				},
-				{
-					"label": "L06",
-					"x": 6,
-					"y": 0
-				},
-				{
-					"label": "L07",
-					"x": 7,
-					"y": 0
-				},
-				{
-					"label": "R00",
-					"x": 8,
-					"y": 0
-				},
-				{
-					"label": "R01",
-					"x": 9,
-					"y": 0
-				},
-				{
-					"label": "R02",
-					"x": 10,
-					"y": 0
-				},
-				{
-					"label": "R03",
-					"x": 11,
-					"y": 0
-				},
-				{
-					"label": "R04",
-					"x": 12,
-					"y": 0
-				},
-				{
-					"label": "R05",
-					"x": 13,
-					"y": 0
-				},
-				{
-					"label": "R06",
-					"x": 14,
-					"y": 0
-				},
-				{
-					"label": "R07",
-					"x": 15,
-					"y": 0
-				},
-				{
-					"label": "L10",
-					"x": 0,
-					"y": 1
-				},
-				{
-					"label": "L11",
-					"x": 1,
-					"y": 1
-				},
-				{
-					"label": "L12",
-					"x": 2,
-					"y": 1
-				},
-				{
-					"label": "L13",
-					"x": 3,
-					"y": 1
-				},
-				{
-					"label": "L14",
-					"x": 4,
-					"y": 1
-				},
-				{
-					"label": "L15",
-					"x": 5,
-					"y": 1
-				},
-				{
-					"label": "L16",
-					"x": 6,
-					"y": 1
-				},
-				{
-					"label": "L17",
-					"x": 7,
-					"y": 1
-				},
-				{
-					"label": "R10",
-					"x": 8,
-					"y": 1
-				},
-				{
-					"label": "R11",
-					"x": 9,
-					"y": 1
-				},
-				{
-					"label": "R12",
-					"x": 10,
-					"y": 1
-				},
-				{
-					"label": "R13",
-					"x": 11,
-					"y": 1
-				},
-				{
-					"label": "R14",
-					"x": 12,
-					"y": 1
-				},
-				{
-					"label": "R15",
-					"x": 13,
-					"y": 1
-				},
-				{
-					"label": "R16",
-					"x": 14,
-					"y": 1
-				},
-				{
-					"label": "R17",
-					"x": 15,
-					"y": 1
-				},
-				{
-					"label": "L20",
-					"x": 0,
-					"y": 2
-				},
-				{
-					"label": "L21",
-					"x": 1,
-					"y": 2
-				},
-				{
-					"label": "L22",
-					"x": 2,
-					"y": 2
-				},
-				{
-					"label": "L23",
-					"x": 3,
-					"y": 2
-				},
-				{
-					"label": "L24",
-					"x": 4,
-					"y": 2
-				},
-				{
-					"label": "L25",
-					"x": 5,
-					"y": 2
-				},
-				{
-					"label": "L26",
-					"x": 6,
-					"y": 2
-				},
-				{
-					"label": "L27",
-					"x": 7,
-					"y": 2
-				},
-				{
-					"label": "R20",
-					"x": 8,
-					"y": 2
-				},
-				{
-					"label": "R21",
-					"x": 9,
-					"y": 2
-				},
-				{
-					"label": "R22",
-					"x": 10,
-					"y": 2
-				},
-				{
-					"label": "R23",
-					"x": 11,
-					"y": 2
-				},
-				{
-					"label": "R24",
-					"x": 12,
-					"y": 2
-				},
-				{
-					"label": "R25",
-					"x": 13,
-					"y": 2
-				},
-				{
-					"label": "R26",
-					"x": 14,
-					"y": 2
-				},
-				{
-					"label": "R27",
-					"x": 15,
-					"y": 2
-				},
-				{
-					"label": "L30",
-					"x": 0,
-					"y": 3
-				},
-				{
-					"label": "L31",
-					"x": 1,
-					"y": 3
-				},
-				{
-					"label": "L32",
-					"x": 2,
-					"y": 3
-				},
-				{
-					"label": "L33",
-					"x": 3,
-					"y": 3
-				},
-				{
-					"label": "L34",
-					"x": 4,
-					"y": 3
-				},
-				{
-					"label": "L35",
-					"x": 5,
-					"y": 3
-				},
-				{
-					"label": "L36",
-					"x": 6,
-					"y": 3
-				},
-				{
-					"label": "L37",
-					"x": 7,
-					"y": 3
-				},
-				{
-					"label": "R30",
-					"x": 8,
-					"y": 3
-				},
-				{
-					"label": "R31",
-					"x": 9,
-					"y": 3
-				},
-				{
-					"label": "R32",
-					"x": 10,
-					"y": 3
-				},
-				{
-					"label": "R33",
-					"x": 11,
-					"y": 3
-				},
-				{
-					"label": "R34",
-					"x": 12,
-					"y": 3
-				},
-				{
-					"label": "R35",
-					"x": 13,
-					"y": 3
-				},
-				{
-					"label": "R36",
-					"x": 14,
-					"y": 3
-				},
-				{
-					"label": "R37",
-					"x": 15,
-					"y": 3
-				},
-				{
-					"label": "L40",
-					"x": 0,
-					"y": 4
-				},
-				{
-					"label": "L41",
-					"x": 1,
-					"y": 4
-				},
-				{
-					"label": "L42",
-					"x": 2,
-					"y": 4
-				},
-				{
-					"label": "L43",
-					"x": 3,
-					"y": 4
-				},
-				{
-					"label": "L44",
-					"x": 4,
-					"y": 4
-				},
-				{
-					"label": "L45",
-					"x": 5,
-					"y": 4
-				},
-				{
-					"label": "L46",
-					"x": 6,
-					"y": 4
-				},
-				{
-					"label": "L47",
-					"x": 7,
-					"y": 4
-				},
-				{
-					"label": "R40",
-					"x": 8,
-					"y": 4
-				},
-				{
-					"label": "R41",
-					"x": 9,
-					"y": 4
-				},
-				{
-					"label": "R42",
-					"x": 10,
-					"y": 4
-				},
-				{
-					"label": "R43",
-					"x": 11,
-					"y": 4
-				},
-				{
-					"label": "R44",
-					"x": 12,
-					"y": 4
-				},
-				{
-					"label": "R45",
-					"x": 13,
-					"y": 4
-				},
-				{
-					"label": "R46",
-					"x": 14,
-					"y": 4
-				},
-				{
-					"label": "R47",
-					"x": 15,
-					"y": 4
-				},
-				{
-					"label": "L50",
-					"x": 0,
-					"y": 5
-				},
-				{
-					"label": "L51",
-					"x": 1,
-					"y": 5
-				},
-				{
-					"label": "L52",
-					"x": 2,
-					"y": 5
-				},
-				{
-					"label": "L53",
-					"x": 3,
-					"y": 5
-				},
-				{
-					"label": "L54",
-					"x": 4,
-					"y": 5
-				},
-				{
-					"label": "L55",
-					"x": 5,
-					"y": 5
-				},
-				{
-					"label": "L56",
-					"x": 6,
-					"y": 5
-				},
-				{
-					"label": "L57",
-					"x": 7,
-					"y": 5
-				},
-				{
-					"label": "R50",
-					"x": 8,
-					"y": 5
-				},
-				{
-					"label": "R51",
-					"x": 9,
-					"y": 5
-				},
-				{
-					"label": "R52",
-					"x": 10,
-					"y": 5
-				},
-				{
-					"label": "R53",
-					"x": 11,
-					"y": 5
-				},
-				{
-					"label": "R54",
-					"x": 12,
-					"y": 5
-				},
-				{
-					"label": "R55",
-					"x": 13,
-					"y": 5
-				},
-				{
-					"label": "R56",
-					"x": 14,
-					"y": 5
-				},
-				{
-					"label": "R57",
-					"x": 15,
-					"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": [6, 0], "x": 8, "y": 0},
+				{"matrix": [6, 1], "x": 9, "y": 0},
+				{"matrix": [6, 2], "x": 10, "y": 0},
+				{"matrix": [6, 3], "x": 11, "y": 0},
+				{"matrix": [6, 4], "x": 12, "y": 0},
+				{"matrix": [6, 5], "x": 13, "y": 0},
+				{"matrix": [6, 6], "x": 14, "y": 0},
+				{"matrix": [6, 7], "x": 15, "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": [7, 0], "x": 8, "y": 1},
+				{"matrix": [7, 1], "x": 9, "y": 1},
+				{"matrix": [7, 2], "x": 10, "y": 1},
+				{"matrix": [7, 3], "x": 11, "y": 1},
+				{"matrix": [7, 4], "x": 12, "y": 1},
+				{"matrix": [7, 5], "x": 13, "y": 1},
+				{"matrix": [7, 6], "x": 14, "y": 1},
+				{"matrix": [7, 7], "x": 15, "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": [8, 0], "x": 8, "y": 2},
+				{"matrix": [8, 1], "x": 9, "y": 2},
+				{"matrix": [8, 2], "x": 10, "y": 2},
+				{"matrix": [8, 3], "x": 11, "y": 2},
+				{"matrix": [8, 4], "x": 12, "y": 2},
+				{"matrix": [8, 5], "x": 13, "y": 2},
+				{"matrix": [8, 6], "x": 14, "y": 2},
+				{"matrix": [8, 7], "x": 15, "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": [9, 0], "x": 8, "y": 3},
+				{"matrix": [9, 1], "x": 9, "y": 3},
+				{"matrix": [9, 2], "x": 10, "y": 3},
+				{"matrix": [9, 3], "x": 11, "y": 3},
+				{"matrix": [9, 4], "x": 12, "y": 3},
+				{"matrix": [9, 5], "x": 13, "y": 3},
+				{"matrix": [9, 6], "x": 14, "y": 3},
+				{"matrix": [9, 7], "x": 15, "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": [4, 4], "x": 4, "y": 4},
+				{"matrix": [4, 5], "x": 5, "y": 4},
+				{"matrix": [4, 6], "x": 6, "y": 4},
+				{"matrix": [4, 7], "x": 7, "y": 4},
+				{"matrix": [10, 0], "x": 8, "y": 4},
+				{"matrix": [10, 1], "x": 9, "y": 4},
+				{"matrix": [10, 2], "x": 10, "y": 4},
+				{"matrix": [10, 3], "x": 11, "y": 4},
+				{"matrix": [10, 4], "x": 12, "y": 4},
+				{"matrix": [10, 5], "x": 13, "y": 4},
+				{"matrix": [10, 6], "x": 14, "y": 4},
+				{"matrix": [10, 7], "x": 15, "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},
+				{"matrix": [5, 4], "x": 4, "y": 5},
+				{"matrix": [5, 5], "x": 5, "y": 5},
+				{"matrix": [5, 6], "x": 6, "y": 5},
+				{"matrix": [5, 7], "x": 7, "y": 5},
+				{"matrix": [11, 0], "x": 8, "y": 5},
+				{"matrix": [11, 1], "x": 9, "y": 5},
+				{"matrix": [11, 2], "x": 10, "y": 5},
+				{"matrix": [11, 3], "x": 11, "y": 5},
+				{"matrix": [11, 4], "x": 12, "y": 5},
+				{"matrix": [11, 5], "x": 13, "y": 5},
+				{"matrix": [11, 6], "x": 14, "y": 5},
+				{"matrix": [11, 7], "x": 15, "y": 5}
 			]
 		}
 	}

+ 0 - 31
keyboards/adkb96/rev1/rev1.h

@@ -1,31 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// Keymap with right side flipped
-// (TRRS jack on both halves are to the right)
-#define LAYOUT_ortho_6x16( \
-	L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R06, R07, \
-	L10, L11, L12, L13, L14, L15, L16, L17, R10, R11, R12, R13, R14, R15, R16, R17, \
-	L20, L21, L22, L23, L24, L25, L26, L27, R20, R21, R22, R23, R24, R25, R26, R27, \
-	L30, L31, L32, L33, L34, L35, L36, L37, R30, R31, R32, R33, R34, R35, R36, R37, \
-	L40, L41, L42, L43, L44, L45, L46, L47, R40, R41, R42, R43, R44, R45, R46, R47, \
-	L50, L51, L52, L53, L54, L55, L56, L57, R50, R51, R52, R53, R54, R55, R56, R57 \
-	) \
-	{ \
-		{ L00, L01, L02, L03, L04, L05, L06, L07 }, \
-		{ L10, L11, L12, L13, L14, L15, L16, L17 }, \
-		{ L20, L21, L22, L23, L24, L25, L26, L27 }, \
-		{ L30, L31, L32, L33, L34, L35, L36, L37 }, \
-		{ L40, L41, L42, L43, L44, L45, L46, L47 }, \
-		{ L50, L51, L52, L53, L54, L55, L56, L57 }, \
-		{ R00, R01, R02, R03, R04, R05, R06, R07 }, \
-		{ R10, R11, R12, R13, R14, R15, R16, R17 }, \
-		{ R20, R21, R22, R23, R24, R25, R26, R27 }, \
-		{ R30, R31, R32, R33, R34, R35, R36, R37 }, \
-		{ R40, R41, R42, R43, R44, R45, R46, R47 }, \
-		{ R50, R51, R52, R53, R54, R55, R56, R57 } \
-	}
-
-#define LAYOUT LAYOUT_ortho_6x16
-

+ 44 - 40
keyboards/ai03/soyuz/info.json

@@ -19,51 +19,55 @@
     "layouts": {
         "LAYOUT_ortho_5x4": {
             "layout": [
-				{"x":0, "y":0},
-				{"x":1, "y":0},
-				{"x":2, "y":0},
-				{"x":3, "y":0},
-				{"x":0, "y":1},
-				{"x":1, "y":1},
-				{"x":2, "y":1},
-				{"x":3, "y":1},
-				{"x":0, "y":2},
-				{"x":1, "y":2},
-				{"x":2, "y":2},
-				{"x":3, "y":2},
-				{"x":0, "y":3},
-				{"x":1, "y":3},
-				{"x":2, "y":3},
-				{"x":3, "y":3},
-				{"x":0, "y":4},
-				{"x":1, "y":4},
-				{"x":2, "y":4},
-				{"x":3, "y":4}
-			]
-		},
-		"LAYOUT_numpad_5x4": {
+                {"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}
+            ]
+        },
+        "LAYOUT_numpad_5x4": {
             "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": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1},
-                {"x":2, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
 
-                {"x":0, "y":2},
-                {"x":1, "y":2},
-                {"x":2, "y":2},
-                {"x":3, "y":1, "h":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": 1, "h": 2},
 
-                {"x":0, "y":3},
-                {"x":1, "y":3},
-                {"x":2, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
 
-                {"x":0, "y":4, "w":2},
-                {"x":2, "y":4},
-                {"x":3, "y":3, "h":2}
+                {"matrix": [4, 1], "x": 0, "y": 4, "w": 2},
+                {"matrix": [4, 2], "x": 2, "y": 4},
+                {"matrix": [4, 3], "x": 3, "y": 3, "h": 2}
             ]
         }
     }

+ 0 - 69
keyboards/ai03/soyuz/soyuz.h

@@ -1,69 +0,0 @@
-/* Copyright 2019 Ryota Goto
- *
- * 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_ortho_5x4( \
-	K00, K01, K02, K03, \
-	K10, K11, K12, K13, \
-	K20, K21, K22, K23, \
-	K30, K31, K32, K33, \
-	K40, K41, K42, K43  \
-) { \
-	{ K00, K01, K02, K03 }, \
-	{ K10, K11, K12, K13 }, \
-	{ K20, K21, K22, K23 }, \
-	{ K30, K31, K32, K33 }, \
-	{ K40, K41, K42, K43 }  \
-}
-
-/*
- * ┌───┬───┬───┬───┐
- * │00 │01 │02 │03 │
- * ├───┼───┼───┼───┤
- * │10 │11 │12 │   │
- * ├───┼───┼───┤23 │
- * │20 │21 │22 │   │
- * ├───┼───┼───┼───┤
- * │30 │31 │32 │   │
- * ├───┴───┼───┤43 │
- * │41     │42 │   │
- * └───────┴───┴───┘
- */
-
-#define LAYOUT_numpad_5x4( \
-	k00, k01, k02, k03, \
-	k10, k11, k12,      \
-	k20, k21, k22, k23, \
-	k30, k31, k32,      \
-	     k41, k42, k43  \
-) { \
-	{ k00,   k01, k02, k03   }, \
-	{ k10,   k11, k12, KC_NO }, \
-	{ k20,   k21, k22, k23   }, \
-	{ k30,   k31, k32, KC_NO }, \
-	{ KC_NO, k41, k42, k43   }  \
-}

+ 0 - 109
keyboards/amjkeyboard/amj40/amj40.h

@@ -1,109 +0,0 @@
-/* Copyright 2017 Fabian Topfstedt
- * Copyright 2021 James Young (@noroadsleft)
- *
- * 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
-
-/* AMJ40 ver2.0 staggered layouts
- * ,-----------------------------------------------.
- * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
- * |-----------------------------------------------|
- * |10  |11 |12 |13 |14 |15 |16 |17 |18 |19 |1b    |
- * |-----------------------------------------------|
- * |20    |22 |23 |24 |25 |26 |27 |28 |29 |2a  |2b |
- * |-----------------------------------------------|
- * |30  |31 |32  |   34   |35        |39  |3a |3b  | Layout 1 Bottom Row
- * `-----------------------------------------------'
- * ,-----------------------------------------------.
- * |30  |31 |32 |           35           |3a  |3b  | Layout 2
- * `-----------------------------------------------'
- * ,-----------------------------------------------.
- * |30   |31 |32   |   34   |    35    |39 |3a |3b | Layout 3
- * `-----------------------------------------------'
- * ,-----------------------------------------------.
- * |30  |31 |32  |           35           |3a |3b  | Layout 4
- * `-----------------------------------------------'
- */
-
-// a.k.a. Layout 1 or Layout 3 (matrix is the same for both)
-#define LAYOUT( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,      k1b, \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32,      k34, k35,                k39, k3a, k3b  \
-) { \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b}, \
-    {k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b}, \
-    {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \
-}
-
-// a.k.a. Layout 2 or Layout 4 (matrix is the same for both)
-#define LAYOUT_625u_space( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,      k1b, \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32,             k35,                   k3a, k3b  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b }, \
-    { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
-    { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, XXX, k3a, k3b } \
-}
-
-/* AMJ40 ver2.0 ortholinear layouts
- * ,-----------------------------------------------.
- * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
- * |-----------------------------------------------|
- * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b |
- * |-----------------------------------------------|
- * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |
- * |-----------------------------------------------|
- * |30 |31 |32 |33 |34 |    35    |38  |39 |3a |3b | 2.75u Spacebar
- * `-----------------------------------------------'
- * ,-----------------------------------------------.
- * |30 |31 |32 |          35           |39 |3a |3b | 6u Spacebar
- * `-----------------------------------------------'
- */
-
-// equivalent to LAYOUT_all
-#define LAYOUT_ortho_275u_space( \
-    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,      k38,  k39, k3a, 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, k32, k33, k34, k35, XXX, XXX, k38, k39, k3a, k3b }  \
-}
-
-#define LAYOUT_ortho_600u_space( \
-    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,             k35,              k39, k3a, 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, k32, XXX, XXX, k35, XXX, XXX, XXX, k39, k3a, k3b }  \
-}

+ 171 - 171
keyboards/amjkeyboard/amj40/info.json

@@ -26,201 +26,201 @@
     "layouts": {
         "LAYOUT": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"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},
+                {"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},
 
-                {"x":0, "y":1, "w":1.25},
-                {"x":1.25, "y":1},
-                {"x":2.25, "y":1},
-                {"x":3.25, "y":1},
-                {"x":4.25, "y":1},
-                {"x":5.25, "y":1},
-                {"x":6.25, "y":1},
-                {"x":7.25, "y":1},
-                {"x":8.25, "y":1},
-                {"x":9.25, "y":1},
-                {"x":10.25, "y":1, "w":1.75},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25},
+                {"matrix": [1, 1], "x": 1.25, "y": 1},
+                {"matrix": [1, 2], "x": 2.25, "y": 1},
+                {"matrix": [1, 3], "x": 3.25, "y": 1},
+                {"matrix": [1, 4], "x": 4.25, "y": 1},
+                {"matrix": [1, 5], "x": 5.25, "y": 1},
+                {"matrix": [1, 6], "x": 6.25, "y": 1},
+                {"matrix": [1, 7], "x": 7.25, "y": 1},
+                {"matrix": [1, 8], "x": 8.25, "y": 1},
+                {"matrix": [1, 9], "x": 9.25, "y": 1},
+                {"matrix": [1, 11], "x": 10.25, "y": 1, "w": 1.75},
 
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2, "w":1.25},
-                {"x":11, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 1.75, "y": 2},
+                {"matrix": [2, 3], "x": 2.75, "y": 2},
+                {"matrix": [2, 4], "x": 3.75, "y": 2},
+                {"matrix": [2, 5], "x": 4.75, "y": 2},
+                {"matrix": [2, 6], "x": 5.75, "y": 2},
+                {"matrix": [2, 7], "x": 6.75, "y": 2},
+                {"matrix": [2, 8], "x": 7.75, "y": 2},
+                {"matrix": [2, 9], "x": 8.75, "y": 2},
+                {"matrix": [2, 10], "x": 9.75, "y": 2, "w": 1.25},
+                {"matrix": [2, 11], "x": 11, "y": 2},
 
-                {"x":0, "y":3, "w":1.25},
-                {"x":1.25, "y":3},
-                {"x":2.25, "y":3, "w":1.25},
-                {"x":3.5, "y":3, "w":2.25},
-                {"x":5.75, "y":3, "w":2.75},
-                {"x":8.5, "y":3, "w":1.25},
-                {"x":9.75, "y":3},
-                {"x":10.75, "y":3, "w":1.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, "w": 1.25},
+                {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25},
+                {"matrix": [3, 5], "x": 5.75, "y": 3, "w": 2.75},
+                {"matrix": [3, 9], "x": 8.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 9.75, "y": 3},
+                {"matrix": [3, 11], "x": 10.75, "y": 3, "w": 1.25}
             ]
         },
         "LAYOUT_625u_space": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"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},
+                {"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},
 
-                {"x":0, "y":1, "w":1.25},
-                {"x":1.25, "y":1},
-                {"x":2.25, "y":1},
-                {"x":3.25, "y":1},
-                {"x":4.25, "y":1},
-                {"x":5.25, "y":1},
-                {"x":6.25, "y":1},
-                {"x":7.25, "y":1},
-                {"x":8.25, "y":1},
-                {"x":9.25, "y":1},
-                {"x":10.25, "y":1, "w":1.75},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25},
+                {"matrix": [1, 1], "x": 1.25, "y": 1},
+                {"matrix": [1, 2], "x": 2.25, "y": 1},
+                {"matrix": [1, 3], "x": 3.25, "y": 1},
+                {"matrix": [1, 4], "x": 4.25, "y": 1},
+                {"matrix": [1, 5], "x": 5.25, "y": 1},
+                {"matrix": [1, 6], "x": 6.25, "y": 1},
+                {"matrix": [1, 7], "x": 7.25, "y": 1},
+                {"matrix": [1, 8], "x": 8.25, "y": 1},
+                {"matrix": [1, 9], "x": 9.25, "y": 1},
+                {"matrix": [1, 11], "x": 10.25, "y": 1, "w": 1.75},
 
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2, "w":1.25},
-                {"x":11, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 1.75, "y": 2},
+                {"matrix": [2, 3], "x": 2.75, "y": 2},
+                {"matrix": [2, 4], "x": 3.75, "y": 2},
+                {"matrix": [2, 5], "x": 4.75, "y": 2},
+                {"matrix": [2, 6], "x": 5.75, "y": 2},
+                {"matrix": [2, 7], "x": 6.75, "y": 2},
+                {"matrix": [2, 8], "x": 7.75, "y": 2},
+                {"matrix": [2, 9], "x": 8.75, "y": 2},
+                {"matrix": [2, 10], "x": 9.75, "y": 2, "w": 1.25},
+                {"matrix": [2, 11], "x": 11, "y": 2},
 
-                {"x":0, "y":3, "w":1.25},
-                {"x":1.25, "y":3},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3, "w":6.25},
-                {"x":9.5, "y":3, "w":1.25},
-                {"x":10.75, "y":3, "w":1.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, 5], "x": 3.25, "y": 3, "w": 6.25},
+                {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 11], "x": 10.75, "y": 3, "w": 1.25}
             ]
         },
         "LAYOUT_ortho_600u_space": {
             "layout": [
-                {"label":"K00 (F4,F1)", "x":0, "y":0},
-                {"label":"K01 (F4,F0)", "x":1, "y":0},
-                {"label":"K02 (F4,E6)", "x":2, "y":0},
-                {"label":"K03 (F4,C7)", "x":3, "y":0},
-                {"label":"K04 (F4,C6)", "x":4, "y":0},
-                {"label":"K05 (F4,B0)", "x":5, "y":0},
-                {"label":"K06 (F4,D4)", "x":6, "y":0},
-                {"label":"K07 (F4,B1)", "x":7, "y":0},
-                {"label":"K08 (F4,B7)", "x":8, "y":0},
-                {"label":"K09 (F4,B5)", "x":9, "y":0},
-                {"label":"K0A (F4,B4)", "x":10, "y":0},
-                {"label":"K0B (F4,D7)", "x":11, "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": [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},
 
-                {"label":"K10 (F5,F1)", "x":0, "y":1},
-                {"label":"K11 (F5,F0)", "x":1, "y":1},
-                {"label":"K12 (F5,E6)", "x":2, "y":1},
-                {"label":"K13 (F5,C7)", "x":3, "y":1},
-                {"label":"K14 (F5,C6)", "x":4, "y":1},
-                {"label":"K15 (F5,B0)", "x":5, "y":1},
-                {"label":"K16 (F5,D4)", "x":6, "y":1},
-                {"label":"K17 (F5,B1)", "x":7, "y":1},
-                {"label":"K18 (F5,B7)", "x":8, "y":1},
-                {"label":"K19 (F5,B5)", "x":9, "y":1},
-                {"label":"K1A (F5,B4)", "x":10, "y":1},
-                {"label":"K1B (F5,D7)", "x":11, "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},
 
-                {"label":"K20 (F6,F1)", "x":0, "y":2},
-                {"label":"K21 (F6,F0)", "x":1, "y":2},
-                {"label":"K22 (F6,E6)", "x":2, "y":2},
-                {"label":"K23 (F6,C7)", "x":3, "y":2},
-                {"label":"K24 (F6,C6)", "x":4, "y":2},
-                {"label":"K25 (F6,B0)", "x":5, "y":2},
-                {"label":"K26 (F6,D4)", "x":6, "y":2},
-                {"label":"K27 (F6,B1)", "x":7, "y":2},
-                {"label":"K28 (F6,B7)", "x":8, "y":2},
-                {"label":"K29 (F6,B5)", "x":9, "y":2},
-                {"label":"K2A (F6,B4)", "x":10, "y":2},
-                {"label":"K2B (F6,D7)", "x":11, "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},
 
-                {"label":"K30 (F7,F1)", "x":0, "y":3},
-                {"label":"K31 (F7,F0)", "x":1, "y":3},
-                {"label":"K32 (F7,E6)", "x":2, "y":3},
-                {"label":"K35 (F7,B0)", "x":3, "y":3, "w":6},
-                {"label":"K39 (F7,B5)", "x":9, "y":3},
-                {"label":"K3A (F7,B4)", "x":10, "y":3},
-                {"label":"K3B (F7,D7)", "x":11, "y":3}
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 5], "x": 3, "y": 3, "w": 6},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3}
             ]
         },
         "LAYOUT_ortho_275u_space": {
             "layout": [
-                {"label":"K00 (F4,F1)", "x":0, "y":0},
-                {"label":"K01 (F4,F0)", "x":1, "y":0},
-                {"label":"K02 (F4,E6)", "x":2, "y":0},
-                {"label":"K03 (F4,C7)", "x":3, "y":0},
-                {"label":"K04 (F4,C6)", "x":4, "y":0},
-                {"label":"K05 (F4,B0)", "x":5, "y":0},
-                {"label":"K06 (F4,D4)", "x":6, "y":0},
-                {"label":"K07 (F4,B1)", "x":7, "y":0},
-                {"label":"K08 (F4,B7)", "x":8, "y":0},
-                {"label":"K09 (F4,B5)", "x":9, "y":0},
-                {"label":"K0A (F4,B4)", "x":10, "y":0},
-                {"label":"K0B (F4,D7)", "x":11, "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": [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},
 
-                {"label":"K10 (F5,F1)", "x":0, "y":1},
-                {"label":"K11 (F5,F0)", "x":1, "y":1},
-                {"label":"K12 (F5,E6)", "x":2, "y":1},
-                {"label":"K13 (F5,C7)", "x":3, "y":1},
-                {"label":"K14 (F5,C6)", "x":4, "y":1},
-                {"label":"K15 (F5,B0)", "x":5, "y":1},
-                {"label":"K16 (F5,D4)", "x":6, "y":1},
-                {"label":"K17 (F5,B1)", "x":7, "y":1},
-                {"label":"K18 (F5,B7)", "x":8, "y":1},
-                {"label":"K19 (F5,B5)", "x":9, "y":1},
-                {"label":"K1A (F5,B4)", "x":10, "y":1},
-                {"label":"K1B (F5,D7)", "x":11, "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},
 
-                {"label":"K20 (F6,F1)", "x":0, "y":2},
-                {"label":"K21 (F6,F0)", "x":1, "y":2},
-                {"label":"K22 (F6,E6)", "x":2, "y":2},
-                {"label":"K23 (F6,C7)", "x":3, "y":2},
-                {"label":"K24 (F6,C6)", "x":4, "y":2},
-                {"label":"K25 (F6,B0)", "x":5, "y":2},
-                {"label":"K26 (F6,D4)", "x":6, "y":2},
-                {"label":"K27 (F6,B1)", "x":7, "y":2},
-                {"label":"K28 (F6,B7)", "x":8, "y":2},
-                {"label":"K29 (F6,B5)", "x":9, "y":2},
-                {"label":"K2A (F6,B4)", "x":10, "y":2},
-                {"label":"K2B (F6,D7)", "x":11, "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},
 
-                {"label":"K30 (F7,F1)", "x":0, "y":3},
-                {"label":"K31 (F7,F0)", "x":1, "y":3},
-                {"label":"K32 (F7,E6)", "x":2, "y":3},
-                {"label":"K33 (F7,C7)", "x":3, "y":3},
-                {"label":"K34 (F7,C6)", "x":4, "y":3},
-                {"label":"K35 (F7,B0)", "x":5, "y":3, "w":2.75},
-                {"label":"K38 (F7,B7)", "x":7.75, "y":3, "w":1.25},
-                {"label":"K39 (F7,B5)", "x":9, "y":3},
-                {"label":"K3A (F7,B4)", "x":10, "y":3},
-                {"label":"K3B (F7,D7)", "x":11, "y":3}
+                {"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, "w": 2.75},
+                {"matrix": [3, 8], "x": 7.75, "y": 3, "w": 1.25},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3}
             ]
         }
     }

+ 0 - 58
keyboards/amjkeyboard/amjpad/amjpad.h

@@ -1,58 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// readability
-#define XXX KC_NO
-
-/* AMJPAD matrix layout
-   * ,-------------------.
-   * | 00 | 01 | 02 | 03 |
-   * |----|----|----|----|
-   * | 10 | 11 | 12 | 13 |
-   * |----|----|----|----|
-   * | 20 | 21 | 22 |    |
-   * |----|----|----| 23 |
-   * | 30 | 31 | 32 |    |
-   * |----|----|----|----|
-   * | 40 | 41 | 42 |    |
-   * |----|----|----| 43 |
-   * |   50    | 52 |    |
-   * `-------------------'
- */
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT_numpad_6x4( \
-    k00, k01, k02, k03, \
-    k10, k11, k12, k13, \
-    k20, k21, k22, \
-    k30, k31, k32, k23, \
-    k40, k41, k42, \
-       k50,   k52, k43  \
-) { \
-    { k00, k01, k02, k03 }, \
-    { k10, k11, k12, k13 }, \
-    { k20, k21, k22, k23 }, \
-    { k30, k31, k32, XXX }, \
-    { k40, k41, k42, k43 }, \
-    { k50, XXX, k52, XXX } \
-}
-
-#define LAYOUT_ortho_6x4( \
-    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 } \
-}
-
-void matrix_init_user(void);
-void matrix_scan_user(void);

+ 59 - 2
keyboards/amjkeyboard/amjpad/info.json

@@ -26,10 +26,67 @@
   "community_layouts": ["numpad_6x4", "ortho_6x4"],
   "layouts": {
     "LAYOUT_numpad_6x4": {
-      "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":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k23", "x":3, "y":2, "h":2}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k50", "x":0, "y":5, "w":2}, {"label":"k52", "x":2, "y":5}, {"label":"k43", "x":3, "y":4, "h":2}]
+      "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": [3, 0], "x": 0, "y": 3},
+        {"matrix": [3, 1], "x": 1, "y": 3},
+        {"matrix": [3, 2], "x": 2, "y": 3},
+        {"matrix": [2, 3], "x": 3, "y": 2, "h": 2},
+
+        {"matrix": [4, 0], "x": 0, "y": 4},
+        {"matrix": [4, 1], "x": 1, "y": 4},
+        {"matrix": [4, 2], "x": 2, "y": 4},
+
+        {"matrix": [5, 0], "x": 0, "y": 5, "w": 2},
+        {"matrix": [5, 2], "x": 2, "y": 5},
+        {"matrix": [4, 3], "x": 3, "y": 4, "h": 2}
+      ]
     },
     "LAYOUT_ortho_6x4": {
-      "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":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k23", "x":3, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k33", "x":3, "y":3}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k43", "x":3, "y":4}, {"label":"k50", "x":0, "y":5}, {"label":"k51", "x":1, "y":5}, {"label":"k52", "x":2, "y":5}, {"label":"k53", "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}
+      ]
     }
   }
 }

+ 1 - 1
keyboards/atomic/atomic.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "atomic.h"
+#include "quantum.h"
 
 void matrix_init_kb(void) {
     // put your keyboard start-up code here

+ 0 - 51
keyboards/atomic/atomic.h

@@ -1,51 +0,0 @@
-/* Copyright 2015 Jack Humbert
- *
- * 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 following is an example using the Planck MIT layout
-// The first section contains all of the arguements
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT_semi_standard( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,   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, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A,    K3C,   K3D, K3E, \
-     K40,  K41,  K43,           K46,                  K4A, K4B, K4C, K4D, K4E  \
-) { \
-    { K00, K01, K02,   K03, K04,   K05,   K06, K07,   K08,   K09,   K0A, K0B,   K0C,   KC_NO, 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,   KC_NO, K2D,   K2E }, \
-    { K30, K31, K32,   K33, K34,   K35,   K36, K37,   K38,   K39,   K3A, KC_NO, K3C,   K3D,   K3E }, \
-    { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B,   K4C,   K4D,   K4E }  \
-}
-
-#define LAYOUT_ortho_5x15( \
-    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, K2D, K2E,\
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E,\
-    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, 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, K2C, K2D, K2E }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
-    { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }  \
-}

+ 141 - 141
keyboards/atomic/info.json

@@ -24,159 +24,159 @@
     "layouts": {
         "LAYOUT_semi_standard": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"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, "w":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": [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, 14], "x": 13, "y": 0, "w": 2},
 
-                {"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},
-                {"x":14, "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},
+                {"matrix": [1, 14], "x": 14, "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, "w":2},
-                {"x":14, "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, 13], "x": 12, "y": 2, "w": 2},
+                {"matrix": [2, 14], "x": 14, "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},
-                {"x":6, "y":3},
-                {"x":7, "y":3},
-                {"x":8, "y":3},
-                {"x":9, "y":3},
-                {"x":10, "y":3},
-                {"x":11, "y":3, "w":2},
-                {"x":13, "y":3},
-                {"x":14, "y":3},
+                {"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, 12], "x": 11, "y": 3, "w": 2},
+                {"matrix": [3, 13], "x": 13, "y": 3},
+                {"matrix": [3, 14], "x": 14, "y": 3},
 
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4}
+                {"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},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 12], "x": 12, "y": 4},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4}
             ]
         },
         "LAYOUT_ortho_5x15": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"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},
-                {"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": [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},
 
-                {"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},
-                {"x":14, "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},
+                {"matrix": [1, 14], "x": 14, "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},
-                {"x":14, "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},
+                {"matrix": [2, 14], "x": 14, "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},
-                {"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},
-                {"x":14, "y":3},
+                {"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": [3, 12], "x": 12, "y": 3},
+                {"matrix": [3, 13], "x": 13, "y": 3},
+                {"matrix": [3, 14], "x": 14, "y": 3},
 
-                {"x":0, "y":4},
-                {"x":1, "y":4},
-                {"x":2, "y":4},
-                {"x":3, "y":4},
-                {"x":4, "y":4},
-                {"x":5, "y":4},
-                {"x":6, "y":4},
-                {"x":7, "y":4},
-                {"x":8, "y":4},
-                {"x":9, "y":4},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4}
+                {"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": [4, 4], "x": 4, "y": 4},
+                {"matrix": [4, 5], "x": 5, "y": 4},
+                {"matrix": [4, 6], "x": 6, "y": 4},
+                {"matrix": [4, 7], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 12], "x": 12, "y": 4},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4}
             ]
         }
     }

+ 0 - 41
keyboards/barracuda/barracuda.h

@@ -1,41 +0,0 @@
-/* Copyright 2021 knaruo
- *
- * 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_ortho_3x11( \
-    L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
-    L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \
-    L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24  \
-) { \
-    { L00, L01, L02, L03, L04, L05 }, \
-    { L10, L11, L12, L13, L14, L15 }, \
-    { L20, L21, L22, L23, L24, L25 }, \
-    { KC_NO, R00, R01, R02, R03, R04 }, \
-    { KC_NO, R10, R11, R12, R13, R14 }, \
-    { KC_NO, R20, R21, R22, R23, R24 } \
-}

+ 33 - 33
keyboards/barracuda/info.json

@@ -18,41 +18,41 @@
     "layouts": {
         "LAYOUT_ortho_3x11": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
-                {"x": 4, "y": 0},
-                {"x": 5, "y": 0},
-                {"x": 9, "y": 0},
-                {"x": 10, "y": 0},
-                {"x": 11, "y": 0},
-                {"x": 12, "y": 0},
-                {"x": 13, "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": [3, 1], "x": 9, "y": 0},
+                {"matrix": [3, 2], "x": 10, "y": 0},
+                {"matrix": [3, 3], "x": 11, "y": 0},
+                {"matrix": [3, 4], "x": 12, "y": 0},
+                {"matrix": [3, 5], "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": 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": [4, 1], "x": 9, "y": 1},
+                {"matrix": [4, 2], "x": 10, "y": 1},
+                {"matrix": [4, 3], "x": 11, "y": 1},
+                {"matrix": [4, 4], "x": 12, "y": 1},
+                {"matrix": [4, 5], "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": 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": [5, 1], "x": 9, "y": 2},
+                {"matrix": [5, 2], "x": 10, "y": 2},
+                {"matrix": [5, 3], "x": 11, "y": 2},
+                {"matrix": [5, 4], "x": 12, "y": 2},
+                {"matrix": [5, 5], "x": 13, "y": 2}
             ]
         }
     }

+ 0 - 93
keyboards/boardwalk/boardwalk.h

@@ -1,93 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_5x14( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, \
-  k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413 \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013 }, \
-  { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113 }, \
-  { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213 }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313 }, \
-  { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413 } \
-}
-
-#define LAYOUT_ortho_2x2u( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, \
-  k40, k41, k42, k43, k44,   k45,     k47,     k49, k410, k411, k412, k413  \
-) \
-{ \
-  { k00,   k01, k02, k03, k04, k05, k06,   k07, k08,   k09, k010, k011, k012, k013   }, \
-  { k10,   k11, k12, k13, k14, k15, k16,   k17, k18,   k19, k110, k111, k112, k113   }, \
-  { k20,   k21, k22, k23, k24, k25, k26,   k27, k28,   k29, k210, k211, k212, k213   }, \
-  { k30,   k31, k32, k33, k34, k35, k36,   k37, k38,   k39, k310, k311, k312, k313   }, \
-  { k40,   k41, k42, k43, k44, k45, KC_NO, k47, KC_NO, k49, k410, k411, k412, k413   } \
-}
-
-#define LAYOUT_ortho_hhkb( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, \
-       k41, k42, k43, k44,   k45,     k47,     k49, k410, k411, k412       \
-) \
-{ \
-  { k00,   k01, k02, k03, k04, k05, k06,   k07, k08,   k09, k010, k011, k012, k013   }, \
-  { k10,   k11, k12, k13, k14, k15, k16,   k17, k18,   k19, k110, k111, k112, k113   }, \
-  { k20,   k21, k22, k23, k24, k25, k26,   k27, k28,   k29, k210, k211, k212, k213   }, \
-  { k30,   k31, k32, k33, k34, k35, k36,   k37, k38,   k39, k310, k311, k312, k313   }, \
-  { KC_NO, k41, k42, k43, k44, k45, KC_NO, k47, KC_NO, k49, k410, k411, k412, KC_NO } \
-}
-
-#define LAYOUT_ortho_7u( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, \
-       k41, k42,                       k46,               k411, k412        \
-) \
-{ \
-  { k00,   k01, k02, k03,   k04,   k05,   k06, k07,   k08,   k09,   k010,  k011, k012, k013   }, \
-  { k10,   k11, k12, k13,   k14,   k15,   k16, k17,   k18,   k19,   k110,  k111, k112, k113   }, \
-  { k20,   k21, k22, k23,   k24,   k25,   k26, k27,   k28,   k29,   k210,  k211, k212, k213   }, \
-  { k30,   k31, k32, k33,   k34,   k35,   k36, k37,   k38,   k39,   k310,  k311, k312, k313   }, \
-  { KC_NO, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, KC_NO, k411, k412, KC_NO } \
-}
-
-#define LAYOUT_2u_arrow( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, \
-  k40, k41, k42, k43,    k44,      k46,   k48, k49, k410, k411, k412, k413 \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05,   k06, k07,   k08, k09, k010, k011, k012, k013 }, \
-  { k10, k11, k12, k13, k14, k15,   k16, k17,   k18, k19, k110, k111, k112, k113 }, \
-  { k20, k21, k22, k23, k24, k25,   k26, k27,   k28, k29, k210, k211, k212, k213 }, \
-  { k30, k31, k32, k33, k34, k35,   k36, k37,   k38, k39, k310, k311, k312, k313 }, \
-  { k40, k41, k42, k43, k44, KC_NO, k46, KC_NO, k48, k49, k410, k411, k412, k413 } \
-}
-
-#define LAYOUT_625u_arrow( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, k013, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, \
-  k40, k41, k42,              k45,             k49, k410, k411, k412, k413 \
-) \
-{ \
-  { k00, k01, k02, k03,   k04,   k05,   k06,   k07,   k08,   k09, k010, k011, k012, k013 }, \
-  { k10, k11, k12, k13,   k14,   k15,   k16,   k17,   k18,   k19, k110, k111, k112, k113 }, \
-  { k20, k21, k22, k23,   k24,   k25,   k26,   k27,   k28,   k29, k210, k211, k212, k213 }, \
-  { k30, k31, k32, k33,   k34,   k35,   k36,   k37,   k38,   k39, k310, k311, k312, k313 }, \
-  { k40, k41, k42, KC_NO, KC_NO, k45,   KC_NO, KC_NO, KC_NO, k49, k410, k411, k412, k413 } \
-}

+ 398 - 398
keyboards/boardwalk/info.json

@@ -19,448 +19,448 @@
     "layouts": {
         "LAYOUT_ortho_5x14": {
             "layout": [
-                {"x": 0, "y": 0, "w": 1.5},
-                {"x": 1.5, "y": 0},
-                {"x": 2.5, "y": 0},
-                {"x": 3.5, "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, "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, "w": 1.5},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"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": [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},
 
-                {"x": 0, "y": 2, "w": 1.5},
-                {"x": 1.5, "y": 2},
-                {"x": 2.5, "y": 2},
-                {"x": 3.5, "y": 2},
-                {"x": 4.5, "y": 2},
-                {"x": 5.5, "y": 2},
-                {"x": 6.5, "y": 2},
-                {"x": 7.5, "y": 2},
-                {"x": 8.5, "y": 2},
-                {"x": 9.5, "y": 2},
-                {"x": 10.5, "y": 2},
-                {"x": 11.5, "y": 2},
-                {"x": 12.5, "y": 2},
-                {"x": 13.5, "y": 2, "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": 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},
 
-                {"x": 0, "y": 3, "w": 1.5},
-                {"x": 1.5, "y": 3},
-                {"x": 2.5, "y": 3},
-                {"x": 3.5, "y": 3},
-                {"x": 4.5, "y": 3},
-                {"x": 5.5, "y": 3},
-                {"x": 6.5, "y": 3},
-                {"x": 7.5, "y": 3},
-                {"x": 8.5, "y": 3},
-                {"x": 9.5, "y": 3},
-                {"x": 10.5, "y": 3},
-                {"x": 11.5, "y": 3},
-                {"x": 12.5, "y": 3},
-                {"x": 13.5, "y": 3, "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": 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},
+                {"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.5},
 
-                {"x": 0, "y": 4, "w": 1.5},
-                {"x": 1.5, "y": 4},
-                {"x": 2.5, "y": 4},
-                {"x": 3.5, "y": 4},
-                {"x": 4.5, "y": 4},
-                {"x": 5.5, "y": 4},
-                {"x": 6.5, "y": 4},
-                {"x": 7.5, "y": 4},
-                {"x": 8.5, "y": 4},
-                {"x": 9.5, "y": 4},
-                {"x": 10.5, "y": 4},
-                {"x": 11.5, "y": 4},
-                {"x": 12.5, "y": 4},
-                {"x": 13.5, "y": 4, "w": 1.5}
+                {"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},
+                {"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, 7], "x": 7.5, "y": 4},
+                {"matrix": [4, 8], "x": 8.5, "y": 4},
+                {"matrix": [4, 9], "x": 9.5, "y": 4},
+                {"matrix": [4, 10], "x": 10.5, "y": 4},
+                {"matrix": [4, 11], "x": 11.5, "y": 4},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_ortho_hhkb": {
             "layout": [
-                {"x": 0, "y": 0, "w": 1.5},
-                {"x": 1.5, "y": 0},
-                {"x": 2.5, "y": 0},
-                {"x": 3.5, "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, "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, "w": 1.5},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"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": [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},
 
-                {"x": 0, "y": 2, "w": 1.5},
-                {"x": 1.5, "y": 2},
-                {"x": 2.5, "y": 2},
-                {"x": 3.5, "y": 2},
-                {"x": 4.5, "y": 2},
-                {"x": 5.5, "y": 2},
-                {"x": 6.5, "y": 2},
-                {"x": 7.5, "y": 2},
-                {"x": 8.5, "y": 2},
-                {"x": 9.5, "y": 2},
-                {"x": 10.5, "y": 2},
-                {"x": 11.5, "y": 2},
-                {"x": 12.5, "y": 2},
-                {"x": 13.5, "y": 2, "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": 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},
 
-                {"x": 0, "y": 3, "w": 1.5},
-                {"x": 1.5, "y": 3},
-                {"x": 2.5, "y": 3},
-                {"x": 3.5, "y": 3},
-                {"x": 4.5, "y": 3},
-                {"x": 5.5, "y": 3},
-                {"x": 6.5, "y": 3},
-                {"x": 7.5, "y": 3},
-                {"x": 8.5, "y": 3},
-                {"x": 9.5, "y": 3},
-                {"x": 10.5, "y": 3},
-                {"x": 11.5, "y": 3},
-                {"x": 12.5, "y": 3},
-                {"x": 13.5, "y": 3, "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": 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},
+                {"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.5},
 
-                {"x": 1.5, "y": 4},
-                {"x": 2.5, "y": 4},
-                {"x": 3.5, "y": 4},
-                {"x": 4.5, "y": 4},
-                {"x": 5.5, "y": 4, "w": 2},
-                {"x": 7.5, "y": 4, "w": 2},
-                {"x": 9.5, "y": 4},
-                {"x": 10.5, "y": 4},
-                {"x": 11.5, "y": 4},
-                {"x": 12.5, "y": 4}
+                {"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, "w": 2},
+                {"matrix": [4, 7], "x": 7.5, "y": 4, "w": 2},
+                {"matrix": [4, 9], "x": 9.5, "y": 4},
+                {"matrix": [4, 10], "x": 10.5, "y": 4},
+                {"matrix": [4, 11], "x": 11.5, "y": 4},
+                {"matrix": [4, 12], "x": 12.5, "y": 4}
             ]
         },
         "LAYOUT_ortho_7u": {
             "layout": [
-                {"x": 0, "y": 0, "w": 1.5},
-                {"x": 1.5, "y": 0},
-                {"x": 2.5, "y": 0},
-                {"x": 3.5, "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, "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, "w": 1.5},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"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": [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},
 
-                {"x": 0, "y": 2, "w": 1.5},
-                {"x": 1.5, "y": 2},
-                {"x": 2.5, "y": 2},
-                {"x": 3.5, "y": 2},
-                {"x": 4.5, "y": 2},
-                {"x": 5.5, "y": 2},
-                {"x": 6.5, "y": 2},
-                {"x": 7.5, "y": 2},
-                {"x": 8.5, "y": 2},
-                {"x": 9.5, "y": 2},
-                {"x": 10.5, "y": 2},
-                {"x": 11.5, "y": 2},
-                {"x": 12.5, "y": 2},
-                {"x": 13.5, "y": 2, "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": 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},
 
-                {"x": 0, "y": 3, "w": 1.5},
-                {"x": 1.5, "y": 3},
-                {"x": 2.5, "y": 3},
-                {"x": 3.5, "y": 3},
-                {"x": 4.5, "y": 3},
-                {"x": 5.5, "y": 3},
-                {"x": 6.5, "y": 3},
-                {"x": 7.5, "y": 3},
-                {"x": 8.5, "y": 3},
-                {"x": 9.5, "y": 3},
-                {"x": 10.5, "y": 3},
-                {"x": 11.5, "y": 3},
-                {"x": 12.5, "y": 3},
-                {"x": 13.5, "y": 3, "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": 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},
+                {"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.5},
 
-                {"x": 1.5, "y": 4},
-                {"x": 2.5, "y": 4, "w": 1.5},
-                {"x": 4, "y": 4, "w": 7},
-                {"x": 11, "y": 4, "w": 1.5},
-                {"x": 12.5, "y": 4}
+                {"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": 12.5, "y": 4}
             ]
         },
         "LAYOUT_2u_arrow": {
             "layout": [
-                {"x": 0, "y": 0, "w": 1.5},
-                {"x": 1.5, "y": 0},
-                {"x": 2.5, "y": 0},
-                {"x": 3.5, "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, "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, "w": 1.5},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"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": [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},
 
-                {"x": 0, "y": 2, "w": 1.5},
-                {"x": 1.5, "y": 2},
-                {"x": 2.5, "y": 2},
-                {"x": 3.5, "y": 2},
-                {"x": 4.5, "y": 2},
-                {"x": 5.5, "y": 2},
-                {"x": 6.5, "y": 2},
-                {"x": 7.5, "y": 2},
-                {"x": 8.5, "y": 2},
-                {"x": 9.5, "y": 2},
-                {"x": 10.5, "y": 2},
-                {"x": 11.5, "y": 2},
-                {"x": 12.5, "y": 2, "w": 1.5},
-                {"x": 14, "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, "w": 1.5},
+                {"matrix": [2, 13], "x": 14, "y": 2},
 
-                {"x": 0, "y": 3, "w": 1.5},
-                {"x": 1.5, "y": 3},
-                {"x": 2.5, "y": 3},
-                {"x": 3.5, "y": 3},
-                {"x": 4.5, "y": 3},
-                {"x": 5.5, "y": 3},
-                {"x": 6.5, "y": 3},
-                {"x": 7.5, "y": 3},
-                {"x": 8.5, "y": 3},
-                {"x": 9.5, "y": 3},
-                {"x": 10.5, "y": 3},
-                {"x": 11.5, "y": 3, "w": 1.5},
-                {"x": 13, "y": 3},
-                {"x": 14, "y": 3},
+                {"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": 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, "w": 1.5},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"matrix": [3, 13], "x": 14, "y": 3},
 
-                {"x": 0, "y": 4, "w": 1.25},
-                {"x": 1.25, "y": 4, "w": 1.25},
-                {"x": 2.5, "y": 4},
-                {"x": 3.5, "y": 4},
-                {"x": 4.5, "y": 4, "w": 2},
-                {"x": 6.5, "y": 4, "w": 2},
-                {"x": 8.5, "y": 4},
-                {"x": 9.5, "y": 4, "w": 1.25},
-                {"x": 10.75, "y": 4, "w": 1.25},
-                {"x": 12, "y": 4},
-                {"x": 13, "y": 4},
-                {"x": 14, "y": 4}
+                {"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},
+                {"matrix": [4, 3], "x": 3.5, "y": 4},
+                {"matrix": [4, 4], "x": 4.5, "y": 4, "w": 2},
+                {"matrix": [4, 6], "x": 6.5, "y": 4, "w": 2},
+                {"matrix": [4, 8], "x": 8.5, "y": 4},
+                {"matrix": [4, 9], "x": 9.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 10.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         },
         "LAYOUT_625u_arrow": {
             "layout": [
-                {"x": 0, "y": 0, "w": 1.5},
-                {"x": 1.5, "y": 0},
-                {"x": 2.5, "y": 0},
-                {"x": 3.5, "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, "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, "w": 1.5},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"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": [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},
 
-                {"x": 0, "y": 2, "w": 1.5},
-                {"x": 1.5, "y": 2},
-                {"x": 2.5, "y": 2},
-                {"x": 3.5, "y": 2},
-                {"x": 4.5, "y": 2},
-                {"x": 5.5, "y": 2},
-                {"x": 6.5, "y": 2},
-                {"x": 7.5, "y": 2},
-                {"x": 8.5, "y": 2},
-                {"x": 9.5, "y": 2},
-                {"x": 10.5, "y": 2},
-                {"x": 11.5, "y": 2},
-                {"x": 12.5, "y": 2, "w": 1.5},
-                {"x": 14, "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, "w": 1.5},
+                {"matrix": [2, 13], "x": 14, "y": 2},
 
-                {"x": 0, "y": 3, "w": 1.5},
-                {"x": 1.5, "y": 3},
-                {"x": 2.5, "y": 3},
-                {"x": 3.5, "y": 3},
-                {"x": 4.5, "y": 3},
-                {"x": 5.5, "y": 3},
-                {"x": 6.5, "y": 3},
-                {"x": 7.5, "y": 3},
-                {"x": 8.5, "y": 3},
-                {"x": 9.5, "y": 3},
-                {"x": 10.5, "y": 3},
-                {"x": 11.5, "y": 3, "w": 1.5},
-                {"x": 13, "y": 3},
-                {"x": 14, "y": 3},
+                {"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": 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, "w": 1.5},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"matrix": [3, 13], "x": 14, "y": 3},
 
-                {"x": 0, "y": 4, "w": 1.25},
-                {"x": 1.25, "y": 4, "w": 1.25},
-                {"x": 2.5, "y": 4},
-                {"x": 3.5, "y": 4, "w": 6.25},
-                {"x": 9.75, "y": 4},
-                {"x": 10.75, "y": 4, "w": 1.25},
-                {"x": 12, "y": 4},
-                {"x": 13, "y": 4},
-                {"x": 14, "y": 4}
+                {"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},
+                {"matrix": [4, 5], "x": 3.5, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 9.75, "y": 4},
+                {"matrix": [4, 10], "x": 10.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         },
         "LAYOUT_ortho_2x2u": {
             "layout": [
-                {"x": 0, "y": 0, "w": 1.5},
-                {"x": 1.5, "y": 0},
-                {"x": 2.5, "y": 0},
-                {"x": 3.5, "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, "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, "w": 1.5},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"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": [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},
 
-                {"x": 0, "y": 2, "w": 1.5},
-                {"x": 1.5, "y": 2},
-                {"x": 2.5, "y": 2},
-                {"x": 3.5, "y": 2},
-                {"x": 4.5, "y": 2},
-                {"x": 5.5, "y": 2},
-                {"x": 6.5, "y": 2},
-                {"x": 7.5, "y": 2},
-                {"x": 8.5, "y": 2},
-                {"x": 9.5, "y": 2},
-                {"x": 10.5, "y": 2},
-                {"x": 11.5, "y": 2},
-                {"x": 12.5, "y": 2},
-                {"x": 13.5, "y": 2, "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": 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},
 
-                {"x": 0, "y": 3, "w": 1.5},
-                {"x": 1.5, "y": 3},
-                {"x": 2.5, "y": 3},
-                {"x": 3.5, "y": 3},
-                {"x": 4.5, "y": 3},
-                {"x": 5.5, "y": 3},
-                {"x": 6.5, "y": 3},
-                {"x": 7.5, "y": 3},
-                {"x": 8.5, "y": 3},
-                {"x": 9.5, "y": 3},
-                {"x": 10.5, "y": 3},
-                {"x": 11.5, "y": 3},
-                {"x": 12.5, "y": 3},
-                {"x": 13.5, "y": 3, "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": 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},
+                {"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.5},
 
-                {"x": 0, "y": 4, "w": 1.5},
-                {"x": 1.5, "y": 4},
-                {"x": 2.5, "y": 4},
-                {"x": 3.5, "y": 4},
-                {"x": 4.5, "y": 4},
-                {"x": 5.5, "y": 4, "w": 2},
-                {"x": 7.5, "y": 4, "w": 2},
-                {"x": 9.5, "y": 4},
-                {"x": 10.5, "y": 4},
-                {"x": 11.5, "y": 4},
-                {"x": 12.5, "y": 4},
-                {"x": 13.5, "y": 4, "w": 1.5}
+                {"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},
+                {"matrix": [4, 3], "x": 3.5, "y": 4},
+                {"matrix": [4, 4], "x": 4.5, "y": 4},
+                {"matrix": [4, 5], "x": 5.5, "y": 4, "w": 2},
+                {"matrix": [4, 7], "x": 7.5, "y": 4, "w": 2},
+                {"matrix": [4, 9], "x": 9.5, "y": 4},
+                {"matrix": [4, 10], "x": 10.5, "y": 4},
+                {"matrix": [4, 11], "x": 11.5, "y": 4},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 1 - 1
keyboards/bobpad/bobpad.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "bobpad.h"
+#include "quantum.h"
 
 bool led_update_kb(led_t led_state) {
     if (!led_update_user(led_state)) { return false; }

+ 0 - 27
keyboards/bobpad/bobpad.h

@@ -1,27 +0,0 @@
-/* Copyright 2021 Ananya Kirti
- *
- * 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_ortho_2x3( \
-    K00, K01, K02,   \
-    K10, K11, K12    \
-) { \
-    { K00,   K01,   K02   }, \
-    { K10,   K11,   K12   }, \
-}

+ 7 - 6
keyboards/bobpad/info.json

@@ -31,12 +31,13 @@
     "layouts": {
         "LAYOUT_ortho_2x3": {
             "layout": [
-                {"label":"K00 (B0,B2)", "x":0, "y":0},
-                {"label":"K01 (B0,B3)", "x":1, "y":0},
-                {"label":"K02 (B0,B4)", "x":2, "y":0},
-                {"label":"K10 (B1,B2)", "x":0, "y":1},
-                {"label":"K11 (B1,B3)", "x":1, "y":1},
-                {"label":"K12 (B1,B4)", "x":2, "y":1}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1}
             ]
         }
     }

+ 0 - 11
keyboards/bpiphany/four_banger/four_banger.h

@@ -1,11 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_2x2( \
-    k00, k01, \
-    k10, k11 \
-) { \
-    { k00, k01 }, \
-    { k10, k11 } \
-}

+ 4 - 4
keyboards/bpiphany/four_banger/info.json

@@ -18,11 +18,11 @@
     "layouts": {
         "LAYOUT_ortho_2x2": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1}
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1}
             ]
         }
     }

+ 0 - 48
keyboards/cannonkeys/atlas/atlas.h

@@ -1,48 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_5x12_1x2uC( \
-    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, k42, k43, k44,   k45   , k47, k48, k49, k4a, 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, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b }, \
-}
-
-#define LAYOUT_ortho_5x12( \
-    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, k42, k43, k44, k45, k46, k47, k48, k49, k4a, 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, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b }, \
-}
-
-#define LAYOUT_ortho_5x12_2x2uC( \
-    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, k42, k43,    k45,     k47,    k48, k49, k4a, 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, k42, k43, KC_NO, k45, KC_NO, k47, k48, k49, k4a, k4b }, \
-}

+ 189 - 177
keyboards/cannonkeys/atlas/info.json

@@ -21,191 +21,203 @@
     "layouts": {
       "LAYOUT_ortho_5x12": {
         "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":"Backspace", "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":"Delete", "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":"Enter", "x":11, "y":3},
-          {"label":"Fn", "x":0, "y":4},
-          {"label":"Ctrl", "x":1, "y":4},
-          {"label":"Alt", "x":2, "y":4},
-          {"label":"Meta", "x":3, "y":4},
-          {"label":"Lower", "x":4, "y":4},
-          {"label":"Space", "x":5, "y":4},
-          {"label":"Space", "x":6, "y":4},
-          {"label":"Raise", "x":7, "y":4},
-          {"label":"Left", "x":8, "y":4},
-          {"label":"Down", "x":9, "y":4},
-          {"label":"Up", "x":10, "y":4},
-          {"label":"Right", "x":11, "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": [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},
+          {"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},
+          {"matrix": [4, 5], "x": 5, "y": 4},
+          {"matrix": [4, 6], "x": 6, "y": 4},
+          {"matrix": [4, 7], "x": 7, "y": 4},
+          {"matrix": [4, 8], "x": 8, "y": 4},
+          {"matrix": [4, 9], "x": 9, "y": 4},
+          {"matrix": [4, 10], "x": 10, "y": 4},
+          {"matrix": [4, 11], "x": 11, "y": 4}
         ]
       },
       "LAYOUT_ortho_5x12_1x2uC": {
         "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":"Backspace", "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":"Delete", "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":"Enter", "x":11, "y":3},
-          {"label":"Fn", "x":0, "y":4},
-          {"label":"Ctrl", "x":1, "y":4},
-          {"label":"Alt", "x":2, "y":4},
-          {"label":"Meta", "x":3, "y":4},
-          {"label":"Lower", "x":4, "y":4},
-          {"label":"Space", "x":5, "y":4, "w":2},
-          {"label":"Raise", "x":7, "y":4},
-          {"label":"Left", "x":8, "y":4},
-          {"label":"Down", "x":9, "y":4},
-          {"label":"Up", "x":10, "y":4},
-          {"label":"Right", "x":11, "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": [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},
+          {"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},
+          {"matrix": [4, 5], "x": 5, "y": 4, "w": 2},
+          {"matrix": [4, 7], "x": 7, "y": 4},
+          {"matrix": [4, 8], "x": 8, "y": 4},
+          {"matrix": [4, 9], "x": 9, "y": 4},
+          {"matrix": [4, 10], "x": 10, "y": 4},
+          {"matrix": [4, 11], "x": 11, "y": 4}
         ]
       },
       "LAYOUT_ortho_5x12_2x2uC": {
         "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":"Backspace", "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":"Delete", "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":"Enter", "x":11, "y":3},
-          {"label":"Fn", "x":0, "y":4},
-          {"label":"Ctrl", "x":1, "y":4},
-          {"label":"Alt", "x":2, "y":4},
-          {"label":"Meta", "x":3, "y":4},
-          {"label":"Space1", "x":4, "y":4, "w":2},
-          {"label":"Space2", "x":6, "y":4, "w":2},
-          {"label":"Left", "x":8, "y":4},
-          {"label":"Down", "x":9, "y":4},
-          {"label":"Up", "x":10, "y":4},
-          {"label":"Right", "x":11, "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": [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},
+          {"matrix": [4, 1], "x": 1, "y": 4},
+          {"matrix": [4, 2], "x": 2, "y": 4},
+          {"matrix": [4, 3], "x": 3, "y": 4},
+          {"matrix": [4, 5], "x": 4, "y": 4, "w": 2},
+          {"matrix": [4, 7], "x": 6, "y": 4, "w": 2},
+          {"matrix": [4, 8], "x": 8, "y": 4},
+          {"matrix": [4, 9], "x": 9, "y": 4},
+          {"matrix": [4, 10], "x": 10, "y": 4},
+          {"matrix": [4, 11], "x": 11, "y": 4}
         ]
       }
     }

+ 0 - 33
keyboards/cannonkeys/atlas_alps/atlas_alps.h

@@ -1,33 +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_ortho_5x12( \
-    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, k42, k43, k44, k45, k46, k47, k48, k49, k4A, 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,  k42,  k43,  k44,  k45,  k46,  k47,  k48,  k49,  k4A, k4B } \
-  }

+ 66 - 1
keyboards/cannonkeys/atlas_alps/info.json

@@ -18,7 +18,72 @@
     "community_layouts": ["ortho_5x12"],
     "layouts": {
         "LAYOUT_ortho_5x12": {
-            "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "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":"Caps Lock", "x":0, "y":4}, {"label":"Ctrl", "x":1, "y":4}, {"label":"Alt", "x":2, "y":4}, {"label":"Super", "x":3, "y":4}, {"label":"&dArr;", "x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"label":"&uArr;", "x":7, "y":4}, {"label":"&larr;", "x":8, "y":4}, {"label":"&darr;", "x":9, "y":4}, {"label":"&uarr;", "x":10, "y":4}, {"label":"&rarr;", "x":11, "y":4}]
+            "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},
+                {"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},
+                {"matrix": [4, 5], "x": 5, "y": 4},
+                {"matrix": [4, 6], "x": 6, "y": 4},
+                {"matrix": [4, 7], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4},
+                {"matrix": [4, 9], "x": 9, "y": 4},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4}
+            ]
         }
     }
 }

+ 101 - 95
keyboards/cannonkeys/ortho48/info.json

@@ -27,105 +27,111 @@
   "layouts": {
     "LAYOUT_ortho_4x12": {
       "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":"Delete", "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":"Enter", "x":11, "y":2},
-        {"label":"Fn", "x":0, "y":3},
-        {"label":"Ctrl", "x":1, "y":3},
-        {"label":"Alt", "x":2, "y":3},
-        {"label":"Meta", "x":3, "y":3},
-        {"label":"Lower", "x":4, "y":3},
-        {"label":"Space", "x":5, "y":3},
-        {"label":"Space", "x":6, "y":3},
-        {"label":"Raise", "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}
+        {"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}
       ]
     },
     "LAYOUT_1x2uC": {
       "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":"Delete", "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":"Enter", "x":11, "y":2},
-        {"label":"Fn", "x":0, "y":3},
-        {"label":"Ctrl", "x":1, "y":3},
-        {"label":"Alt", "x":2, "y":3},
-        {"label":"Meta", "x":3, "y":3},
-        {"label":"Lower", "x":4, "y":3},
-        {"label":"Space", "x":5, "y":3, "w":2},
-        {"label":"Raise", "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}
+        {"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, "w": 2},
+        {"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}
       ]
     }
   }

+ 0 - 29
keyboards/cannonkeys/ortho48/ortho48.h

@@ -1,29 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_1x2uC( \
-    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   , k37, k38, k39, k3a, 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, k32, k33, k34, k35, KC_NO, k37, k38, k39, k3a, k3b } \
-}
-
-#define LAYOUT_ortho_4x12( \
-    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 \
-) \
-{ \
-    { 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 } \
-}

+ 127 - 119
keyboards/cannonkeys/ortho60/info.json

@@ -27,129 +27,137 @@
   "layouts": {
     "LAYOUT_ortho_5x12": {
       "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":"Backspace", "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":"Delete", "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":"Enter", "x":11, "y":3},
-        {"label":"Fn", "x":0, "y":4},
-        {"label":"Ctrl", "x":1, "y":4},
-        {"label":"Alt", "x":2, "y":4},
-        {"label":"Meta", "x":3, "y":4},
-        {"label":"Lower", "x":4, "y":4},
-        {"label":"Space", "x":5, "y":4},
-        {"label":"Space", "x":6, "y":4},
-        {"label":"Raise", "x":7, "y":4},
-        {"label":"Left", "x":8, "y":4},
-        {"label":"Down", "x":9, "y":4},
-        {"label":"Up", "x":10, "y":4},
-        {"label":"Right", "x":11, "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": [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},
+        {"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},
+        {"matrix": [4, 5], "x": 5, "y": 4},
+        {"matrix": [4, 6], "x": 6, "y": 4},
+        {"matrix": [4, 7], "x": 7, "y": 4},
+        {"matrix": [4, 8], "x": 8, "y": 4},
+        {"matrix": [4, 9], "x": 9, "y": 4},
+        {"matrix": [4, 10], "x": 10, "y": 4},
+        {"matrix": [4, 11], "x": 11, "y": 4}
       ]
     },
     "LAYOUT_1x2uC": {
       "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":"Backspace", "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":"Delete", "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":"Enter", "x":11, "y":3},
-        {"label":"Fn", "x":0, "y":4},
-        {"label":"Ctrl", "x":1, "y":4},
-        {"label":"Alt", "x":2, "y":4},
-        {"label":"Meta", "x":3, "y":4},
-        {"label":"Lower", "x":4, "y":4},
-        {"label":"Space", "x":5, "y":4, "w":2},
-        {"label":"Raise", "x":7, "y":4},
-        {"label":"Left", "x":8, "y":4},
-        {"label":"Down", "x":9, "y":4},
-        {"label":"Up", "x":10, "y":4},
-        {"label":"Right", "x":11, "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": [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},
+        {"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},
+        {"matrix": [4, 5], "x": 5, "y": 4, "w": 2},
+        {"matrix": [4, 7], "x": 7, "y": 4},
+        {"matrix": [4, 8], "x": 8, "y": 4},
+        {"matrix": [4, 9], "x": 9, "y": 4},
+        {"matrix": [4, 10], "x": 10, "y": 4},
+        {"matrix": [4, 11], "x": 11, "y": 4}
       ]
     }
   }

+ 0 - 33
keyboards/cannonkeys/ortho60/ortho60.h

@@ -1,33 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_1x2uC( \
-    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, k42, k43, k44,   k45   , k47, k48, k49, k4a, 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, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b }, \
-}
-
-#define LAYOUT_ortho_5x12( \
-    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, k42, k43, k44, k45, k46, k47, k48, k49, k4a, 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, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b }, \
-}

+ 79 - 75
keyboards/cannonkeys/ortho75/info.json

@@ -32,81 +32,85 @@
   "layouts": {
     "LAYOUT_ortho_5x15": {
       "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":"Backspace", "x":11, "y":0},
-        {"label":"0", "x":12, "y":0},
-        {"label":"0", "x":13, "y":0},
-        {"label":"0", "x":14, "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":"Delete", "x":11, "y":1},
-        {"label":"0", "x":12, "y":1},
-        {"label":"0", "x":13, "y":1},
-        {"label":"0", "x":14, "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":"0", "x":12, "y":2},
-        {"label":"0", "x":13, "y":2},
-        {"label":"0", "x":14, "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":"Enter", "x":11, "y":3},
-        {"label":"0", "x":12, "y":3},
-        {"label":"0", "x":13, "y":3},
-        {"label":"0", "x":14, "y":3},
-        {"label":"Fn", "x":0, "y":4},
-        {"label":"Ctrl", "x":1, "y":4},
-        {"label":"Alt", "x":2, "y":4},
-        {"label":"Meta", "x":3, "y":4},
-        {"label":"Lower", "x":4, "y":4},
-        {"label":"Space", "x":5, "y":4},
-        {"label":"Space", "x":6, "y":4},
-        {"label":"Raise", "x":7, "y":4},
-        {"label":"Left", "x":8, "y":4},
-        {"label":"Down", "x":9, "y":4},
-        {"label":"Up", "x":10, "y":4},
-        {"label":"Right", "x":11, "y":4},
-        {"label":"0", "x":12, "y":4},
-        {"label":"0", "x":13, "y":4},
-        {"label":"0", "x":14, "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": [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},
+          {"matrix": [1, 14], "x": 14, "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": [2, 12], "x": 12, "y": 2},
+          {"matrix": [2, 13], "x": 13, "y": 2},
+          {"matrix": [2, 14], "x": 14, "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": [3, 12], "x": 12, "y": 3},
+          {"matrix": [3, 13], "x": 13, "y": 3},
+          {"matrix": [3, 14], "x": 14, "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": [4, 4], "x": 4, "y": 4},
+          {"matrix": [4, 5], "x": 5, "y": 4},
+          {"matrix": [4, 6], "x": 6, "y": 4},
+          {"matrix": [4, 7], "x": 7, "y": 4},
+          {"matrix": [4, 8], "x": 8, "y": 4},
+          {"matrix": [4, 9], "x": 9, "y": 4},
+          {"matrix": [4, 10], "x": 10, "y": 4},
+          {"matrix": [4, 11], "x": 11, "y": 4},
+          {"matrix": [4, 12], "x": 12, "y": 4},
+          {"matrix": [4, 13], "x": 13, "y": 4},
+          {"matrix": [4, 14], "x": 14, "y": 4}
       ]
     }
   }

+ 1 - 1
keyboards/cannonkeys/ortho75/ortho75.c

@@ -1,5 +1,5 @@
 
-#include "ortho75.h"
+#include "quantum.h"
 
 #define MEDIA_KEY_DELAY 10
 

+ 0 - 18
keyboards/cannonkeys/ortho75/ortho75.h

@@ -1,18 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_5x15( \
-    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, k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, 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, k2c, k2d, k2e }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e }, \
-}

+ 157 - 4
keyboards/checkerboards/phoenix45_ortho/info.json

@@ -22,13 +22,166 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT_ortho_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}, {"x":11, "y":0}, {"label":"Back Space", "x":12, "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}, {"x":11, "y":1}, {"label":"'", "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":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"x":11, "y":2}, {"label":"Return", "x":12, "y":2}, {"label":"Hyper", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3}, {"label":"Meta", "x":2.25, "y":3, "w":1.5}, {"x":3.75, "y":3, "w":2.25}, {"label":"Fn", "x":6, "y":3}, {"x":7, "y":3, "w":2.25}, {"label":"Meta", "x":9.25, "y":3, "w":1.5}, {"label":"Super", "x":10.75, "y":3}, {"label":"Hyper", "x":11.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": [0, 12], "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": 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": [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": [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, "w": 1.5},
+                {"matrix": [3, 4], "x": 3.75, "y": 3, "w": 2.25},
+                {"matrix": [3, 6], "x": 6, "y": 3},
+                {"matrix": [3, 8], "x": 7, "y": 3, "w": 2.25},
+                {"matrix": [3, 9], "x": 9.25, "y": 3, "w": 1.5},
+                {"matrix": [3, 11], "x": 10.75, "y": 3},
+                {"matrix": [3, 12], "x": 11.75, "y": 3, "w": 1.25}
+            ]
         },
         "LAYOUT_ortho_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}, {"x":11, "y":0}, {"label":"Back Space", "x":12, "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}, {"x":11, "y":1}, {"label":"'", "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":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"x":11, "y":2}, {"label":"Return", "x":12, "y":2}, {"label":"Hyper", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3}, {"label":"Meta", "x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3, "w":3}, {"x":6.5, "y":3, "w":3}, {"label":"Meta", "x":9.5, "y":3, "w":1.25}, {"label":"Super", "x":10.75, "y":3}, {"label":"Hyper", "x":11.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": [0, 12], "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": 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": [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": [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, "w": 1.25},
+                {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 3},
+                {"matrix": [3, 8], "x": 6.5, "y": 3, "w": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 11], "x": 10.75, "y": 3},
+                {"matrix": [3, 12], "x": 11.75, "y": 3, "w": 1.25}
+            ]
         },
-"LAYOUT_ortho_6u": {
-            "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}, {"x":11, "y":0}, {"label":"Back Space", "x":12, "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}, {"x":11, "y":1}, {"label":"'", "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":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"x":11, "y":2}, {"label":"Return", "x":12, "y":2}, {"label":"Hyper", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3}, {"label":"Meta", "x":2.25, "y":3, "w":1.25}, {"label":"", "x":3.5, "y":3, "w":6}, {"label":"Meta", "x":9.5, "y":3, "w":1.25}, {"label":"Super", "x":10.75, "y":3}, {"label":"Hyper", "x":11.75, "y":3, "w":1.25}]
+        "LAYOUT_ortho_6u": {
+            "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": [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": [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": [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, "w": 1.25},
+                {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6},
+                {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 11], "x": 10.75, "y": 3},
+                {"matrix": [3, 12], "x": 11.75, "y": 3, "w": 1.25}
+            ]
         }
     }
 }

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

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

+ 0 - 58
keyboards/checkerboards/phoenix45_ortho/phoenix45_ortho.h

@@ -1,58 +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_ortho_2x225u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, 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,      k34,      k36,      k38, k39,      k3B, k3C  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, 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, XXX, k34, XXX, k36, XXX, k38, k39, XXX, k3B, k3C }  \
-}
-
-#define LAYOUT_ortho_2x3u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, 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,      k34,                k38, k39,      k3B, k3C  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, 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, XXX, k34, XXX, XXX, XXX, k38, k39, XXX, k3B, k3C }  \
-}
-
-#define LAYOUT_ortho_6u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, kOC, \
-    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,                k36,           k39,      k3B, k3C  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, kOC }, \
-    { 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, XXX, XXX, XXX, k36, XXX, XXX, k39, XXX, k3B, k3C }  \
-}

+ 370 - 346
keyboards/checkerboards/quark/info.json

@@ -24,376 +24,400 @@
     "layouts": {
         "LAYOUT_ortho_5x12_2x225u": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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": 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": 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": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"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": 0, "y": 4, "w": 1.25},
-                {"x": 1.25, "y": 4, "w": 1.25},
-                {"x": 2.5, "y": 4, "w": 1.25},
-                {"x": 3.75, "y": 4, "w": 2.25},
-                {"x": 6, "y": 4, "w": 2.25},
-                {"x": 8.25, "y": 4, "w": 1.25},
-                {"x": 9.5, "y": 4, "w": 1.25},
-                {"x": 10.75, "y": 4, "w": 1.25}
+                {"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, 7], "x": 6, "y": 4, "w": 2.25},
+                {"matrix": [4, 8], "x": 8.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 9.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_ortho_5x12_2x3u": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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": 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": 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": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"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": 0, "y": 4, "w": 1.5},
-                {"x": 1.5, "y": 4, "w": 1.5},
-                {"x": 3, "y": 4, "w": 3},
-                {"x": 6, "y": 4, "w": 3},
-                {"x": 9, "y": 4, "w": 1.5},
-                {"x": 10.5, "y": 4, "w": 1.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": [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.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 4], "x": 3, "y": 4, "w": 3},
+                {"matrix": [4, 7], "x": 6, "y": 4, "w": 3},
+                {"matrix": [4, 10], "x": 9, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_ortho_5x12_7u": {
             "layout": [
-              {"x":0, "y":0},
-              {"x":1, "y":0},
-              {"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":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":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":0, "y":3},
-              {"x":1, "y":3},
-              {"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":0, "y":4, "w":1.25},
-              {"x":1.25, "y":4, "w":1.25},
-              {"x":2.5, "y":4, "w":7},
-              {"x":9.5, "y":4, "w":1.25},
-              {"x":10.75, "y":4, "w":1.25}
+              {"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, 4], "x": 2.5, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 9.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_ortho_4x12": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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": 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": 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": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"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}
+                {"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}
             ]
         },
         "LAYOUT_planck_mit": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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": 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": 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": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"x": 2, "y": 3},
-                {"x": 3, "y": 3},
-                {"x": 4, "y": 3},
-                {"x": 5, "y": 3, "w": 2},
-                {"x": 7, "y": 3},
-                {"x": 8, "y": 3},
-                {"x": 9, "y": 3},
-                {"x": 10, "y": 3},
-                {"x": 11, "y": 3}
+                {"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, "w": 2},
+                {"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}
             ]
         },
         "LAYOUT_ortho_4x12_2x225u": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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": 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": 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": 0, "y": 3, "w": 1.25},
-                {"x": 1.25, "y": 3, "w": 1.25},
-                {"x": 2.5, "y": 3, "w": 1.25},
-                {"x": 3.75, "y": 3, "w": 2.25},
-                {"x": 6, "y": 3, "w": 2.25},
-                {"x": 8.25, "y": 3, "w": 1.25},
-                {"x": 9.5, "y": 3, "w": 1.25},
-                {"x": 10.75, "y": 3, "w": 1.25}
+                {"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, 7], "x": 6, "y": 3, "w": 2.25},
+                {"matrix": [3, 8], "x": 8.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 11], "x": 10.75, "y": 3, "w": 1.25}
             ]
         },
         "LAYOUT_ortho_4x12_2x3u": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"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": 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": 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": 0, "y": 3},
-                {"x": 1, "y": 3},
-                {"x": 2, "y": 3},
-                {"x": 3, "y": 3, "w": 3},
-                {"x": 6, "y": 3, "w": 3},
-                {"x": 9, "y": 3},
-                {"x": 10, "y": 3},
-                {"x": 11, "y": 3}
+                {"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, 4], "x": 3, "y": 3, "w": 3},
+                {"matrix": [3, 7], "x": 6, "y": 3, "w": 3},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3}
             ]
         }
     }

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

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

+ 0 - 115
keyboards/checkerboards/quark/quark.h

@@ -1,115 +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 XXX KC_NO
-
-#define LAYOUT_ortho_5x12_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,           k47, k48,      k4A, 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, XXX, k47, k48, XXX, k4A, k4B } \
-}
-
-#define LAYOUT_ortho_5x12_2x3u( \
-    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,           k44,           k47,           k4A, 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, XXX, k44, XXX, XXX, k47, XXX, XXX, k4A, k4B } \
-}
-
-#define LAYOUT_ortho_5x12_7u( \
-    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,           k44,                          k4A, 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, XXX, k44, XXX, XXX, XXX, XXX, XXX, k4A, k4B } \
-}
-
-#define LAYOUT_ortho_4x12( \
-    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 \
-) { \
-    { 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 }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
-}
-
-#define LAYOUT_planck_mit( \
-    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 \
-) { \
-    { 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, XXX, k36, k37, k38, k39, k3A }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
-}
-
-#define LAYOUT_ortho_4x12_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,           k37, k38,      k3A, 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, XXX, k37, k38, XXX, k3A, k3B }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
-}
-
-#define LAYOUT_ortho_4x12_2x3u( \
-    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,      k34,           k37,      k39, k3A, 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, k32, XXX, k34, XXX, XXX, k37, XXX, k39, k3A, k3B }, \
-    { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
-}

+ 156 - 3
keyboards/checkerboards/quark_lp/info.json

@@ -17,13 +17,166 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT_ortho_4x12": {
-            "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}, {"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":"&uArr;", "x":7, "y":3}, {"label":"&larr;", "x":8, "y":3}, {"label":"&darr;", "x":9, "y":3}, {"label":"&uarr;", "x":10, "y":3}, {"label":"&rarr;", "x":11, "y":3}]
+            "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}
+            ]
         },
         "LAYOUT_ortho_4x12_1x2uC": {
-            "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}, {"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, "w":2}, {"label":"&uArr;", "x":7, "y":3}, {"label":"&larr;", "x":8, "y":3}, {"label":"&darr;", "x":9, "y":3}, {"label":"&uarr;", "x":10, "y":3}, {"label":"&rarr;", "x":11, "y":3}]
+            "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, "w": 2},
+                {"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}
+            ]
         },
         "LAYOUT_ortho_4x12_2x2u": {
-            "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}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"x":4, "y":3, "w":2}, {"x":6, "y":3, "w":2}, {"label":"&larr;", "x":8, "y":3}, {"label":"&darr;", "x":9, "y":3}, {"label":"&uarr;", "x":10, "y":3}, {"label":"&rarr;", "x":11, "y":3}]
+            "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, "w": 2},
+                {"matrix": [3, 6], "x": 6, "y": 3, "w": 2},
+                {"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}
+            ]
         }
     }
 }

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

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "quark_lp.h"
+#include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
 led_config_t g_led_config = { {

+ 0 - 58
keyboards/checkerboards/quark_lp/quark_lp.h

@@ -1,58 +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_ortho_4x12( \
-    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  \
-) { \
-    { 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 }  \
-}
-
-#define LAYOUT_ortho_4x12_1x2uC( \
-    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,      k37, k38, k39, k3A, 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, k32, k33, k34, k35, XXX, k37, k38, k39, k3A, k3B }  \
-}
-
-#define LAYOUT_ortho_4x12_2x2u( \
-    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,      k36,      k38, k39, k3A, 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, k32, k33, k34, XXX, k36, XXX, k38, k39, k3A, k3B }  \
-}

+ 0 - 32
keyboards/ckeys/handwire_101/handwire_101.h

@@ -1,32 +0,0 @@
-/* Copyright 2019 Branden Byers
- *
- * 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_ortho_4x4( \
-    k00, k01, k02, k03, \
-    k10, k11, k12, k13, \
-    k20, k21, k22, k23, \
-    k30, k31, k32, k33 \
-) \
-{ \
-    { k00, k01, k02, k03 }, \
-    { k10, k11, k12, k13 }, \
-    { k20, k21, k22, k23 }, \
-    { k30, k31, k32, k33 } \
-}

+ 16 - 16
keyboards/ckeys/handwire_101/info.json

@@ -21,25 +21,25 @@
     "layouts": {
         "LAYOUT_ortho_4x4": {
             "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": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1},
-                {"x":2, "y":1},
-                {"x":3, "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},
 
-                {"x":0, "y":2},
-                {"x":1, "y":2},
-                {"x":2, "y":2},
-                {"x":3, "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},
 
-                {"x":0, "y":3},
-                {"x":1, "y":3},
-                {"x":2, "y":3},
-                {"x":3, "y":3}
+                {"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}
             ]
         }
     }

+ 23 - 1
keyboards/ckeys/nakey/info.json

@@ -18,7 +18,29 @@
   "community_layouts": ["numpad_5x4"],
   "layouts": {
     "LAYOUT_numpad_5x4": {
-      "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":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "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, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}]
+      "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": [2, 0], "x": 0, "y": 2},
+        {"matrix": [2, 1], "x": 1, "y": 2},
+        {"matrix": [2, 2], "x": 2, "y": 2},
+        {"matrix": [1, 3], "x": 3, "y": 1, "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, "w": 2},
+        {"matrix": [4, 2], "x": 2, "y": 4},
+        {"matrix": [3, 3], "x": 3, "y": 3, "h": 2}
+      ]
     }
   }
 }

+ 0 - 39
keyboards/ckeys/nakey/nakey.h

@@ -1,39 +0,0 @@
-/* Copyright 2018 James Underwood
- *
- * 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_numpad_5x4( \
-    k00, k01, k02, k03, \
-    k10, k11, k12, \
-    k20, k21, k22, k13, \
-    k30, k31, k32, \
-    k40,      k41, k33 \
-) { \
-    { k00, k01, k02, k03 }, \
-    { k10, k11, k12, k13 }, \
-    { k20, k21, k22, XXX }, \
-    { k30, k31, k32, k33 }, \
-    { k40, XXX, k41, XXX } \
-}

+ 21 - 1
keyboards/ckeys/obelus/info.json

@@ -21,7 +21,27 @@
   "community_layouts": ["ortho_4x4"],
   "layouts": {
     "LAYOUT_ortho_4x4": {
-      "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
+      "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}
+      ]
     }
   }
 }

+ 1 - 1
keyboards/ckeys/obelus/obelus.c

@@ -1,4 +1,4 @@
-#include "obelus.h"
+#include "quantum.h"
 
 void matrix_init_kb(void) {
 	// put your keyboard start-up code here

+ 0 - 19
keyboards/ckeys/obelus/obelus.h

@@ -1,19 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// 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 arguements
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT_ortho_4x4( \
-    k00, k01, k02, k03, \
-    k10, k11, k12, k13, \
-    k20, k21, k22, k23, \
-    k30, k31, k32, k33 \
-) { \
-    { k00, k01, k02, k03 }, \
-    { k10, k11, k12, k13 }, \
-    { k20, k21, k22, k23 }, \
-    { k30, k31, k32, k33 } \
-}

+ 17 - 17
keyboards/clawsome/numeros/info.json

@@ -19,27 +19,27 @@
     "layouts": {
         "LAYOUT_numpad_5x4": {
             "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": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1},
-                {"x":2, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
 
-                {"x":0, "y":2},
-                {"x":1, "y":2},
-                {"x":2, "y":2},
-                {"x":3, "y":1, "h":2},
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [1, 3], "x": 3, "y": 1, "h": 2},
 
-                {"x":0, "y":3},
-                {"x":1, "y":3},
-                {"x":2, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
 
-                {"x":0, "y":4, "w":2},
-                {"x":2, "y":4},
-                {"x":3, "y":3, "h":2}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 2},
+                {"matrix": [4, 2], "x": 2, "y": 4},
+                {"matrix": [3, 3], "x": 3, "y": 3, "h": 2}
             ]
         }
     }

+ 0 - 32
keyboards/clawsome/numeros/numeros.h

@@ -1,32 +0,0 @@
-/* Copyright 2020 AAClawson (AlisGraveNil)
- *
- * 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_numpad_5x4( \
-    K00, K01, K02, K03,   \
-    K10, K11, K12,        \
-    K20, K21, K22, K13,   \
-    K30, K31, K32,        \
-    K40,      K42, K33    \
-) { \
-    { K00,   K01,   K02,   K03   }, \
-    { K10,   K11,   K12,   K13   }, \
-    { K20,   K21,   K22,   KC_NO }, \
-    { K30,   K31,   K32,   K33   }, \
-    { K40,   KC_NO, K42,   KC_NO }, \
-}

+ 0 - 43
keyboards/coseyfannitutti/discipad/discipad.h

@@ -1,43 +0,0 @@
-/* Copyright 2019 coseyfannitutti
- *
- * 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 _x_ 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_numpad_5x4( \
-  K00, K01, K02, K03, \
-  K10, K11, K12,      \
-  K20, K21, K22, K23, \
-  K30, K31, K32,      \
-  K40,      K42, K43  \
-) { \
-{ K00, K01, K02, K03, }, \
-{ K10, K11, K12, _x_, }, \
-{ K20, K21, K22, K23, }, \
-{ K30, K31, K32, _x_, }, \
-{ K40, _x_, K42, K43, }, \
-}
-

+ 23 - 1
keyboards/coseyfannitutti/discipad/info.json

@@ -17,7 +17,29 @@
     "bootloader": "usbasploader",
     "layouts": {
         "LAYOUT_numpad_5x4": {
-            "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":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "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, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}]
+            "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": [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": 1, "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, "w": 2},
+                {"matrix": [4, 2], "x": 2, "y": 4},
+                {"matrix": [4, 3], "x": 3, "y": 3, "h": 2}
+            ]
         }
     }
 }

+ 23 - 1
keyboards/coseyfannitutti/mulletpad/info.json

@@ -18,7 +18,29 @@
     "community_layouts": ["numpad_5x4"],
     "layouts": {
         "LAYOUT_numpad_5x4": {
-            "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":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":1, "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, "w":2}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":3, "h":2}]
+            "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": [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": 1, "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, "w": 2},
+                {"matrix": [4, 2], "x": 2, "y": 4},
+                {"matrix": [4, 3], "x": 3, "y": 3, "h": 2}
+            ]
         }
     }
 }

+ 0 - 42
keyboards/coseyfannitutti/mulletpad/mulletpad.h

@@ -1,42 +0,0 @@
-/* Copyright 2019 COSEYFANNITUTTI
- *
- * 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 _x_ 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_numpad_5x4( \
-  K00, K01, K02, K03, \
-  K10, K11, K12,      \
-  K20, K21, K22, K23, \
-  K30, K31, K32,      \
-  K40,      K42, K43  \
-) { \
-{ K00, K01, K02, K03, }, \
-{ K10, K11, K12, _x_, }, \
-{ K20, K21, K22, K23, }, \
-{ K30, K31, K32, _x_, }, \
-{ K40, _x_, K42, K43, }, \
-}

+ 0 - 16
keyboards/crawlpad/crawlpad.h

@@ -1,16 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_ortho_4x4( \
-	K00, K01, K02, K03, \
-	K10, K11, K12, K13, \
-	K20, K21, K22, K23, \
-	K30, K31, K32, K33  \
-) { \
-	{ K00,   K01,   K02,   K03 }, \
-	{ K10,   K11,   K12,   K13 }, \
-	{ K20,   K21,   K22,   K23 }, \
-	{ K30,   K31,   K32,   K33 }  \
-}
-

+ 19 - 16
keyboards/crawlpad/info.json

@@ -19,22 +19,25 @@
   "layouts": {
     "LAYOUT_ortho_4x4": {
       "layout": [
-        {"label":"7", "x":0, "y":0},
-        {"label":"8", "x":1, "y":0},
-        {"label":"9", "x":2, "y":0},
-        {"label":"+", "x":3, "y":0},
-        {"label":"4", "x":0, "y":1},
-        {"label":"5", "x":1, "y":1},
-        {"label":"6", "x":2, "y":1},
-        {"label":"-", "x":3, "y":1},
-        {"label":"1", "x":0, "y":2},
-        {"label":"2", "x":1, "y":2},
-        {"label":"3", "x":2, "y":2},
-        {"label":"*", "x":3, "y":2},
-        {"label":"Fn", "x":0, "y":3},
-        {"label":"0", "x":1, "y":3},
-        {"label":".", "x":2, "y":3},
-        {"label":"Enter", "x":3, "y":3}
+        {"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}
       ]
     }
   }

+ 2 - 1
keyboards/crbn/crbn.c

@@ -13,7 +13,8 @@
  * 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 "crbn.h"
+#include "quantum.h"
+
 /* Encoder setting. only one encoder despite 4 possible spots */
 bool encoder_update_kb(uint8_t index, bool clockwise) {
     if (!encoder_update_user(index, clockwise)) return false;

+ 0 - 54
keyboards/crbn/crbn.h

@@ -1,54 +0,0 @@
-/* Copyright 2020 Harry Herring
-	*
-	* 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_ortho_4x12( \
-		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, K303, K304, K305, K306, K307, K308, K309, K310, K311  \
-) { \
-		{ 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,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311 }  \
-}
-
-#define LAYOUT_planck_mit( \
-		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, K303, K304,    K305,    K307, K308, K309, K310, K311  \
-) { \
-		{ 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,  K303,  K304,  K305, KC_NO,  K307,  K308,  K309,  K310,  K311 }  \
-}
-
-#define LAYOUT_2x2u( \
-		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, K303,    K304,       K307,    K308, K309, K310, K311  \
-) { \
-		{ 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,  K303,  K304, KC_NO, KC_NO,  K307,  K308,  K309,  K310,  K311 }  \
-}

+ 153 - 141
keyboards/crbn/info.json

@@ -28,153 +28,165 @@
   "layouts": {
     "LAYOUT_ortho_4x12": {
       "layout": [
-        { "x": 0, "y": 0 },
-        { "x": 1, "y": 0 },
-        { "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": 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": 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": 0, "y": 3 },
-        { "x": 1, "y": 3 },
-        { "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 } ]
+        {"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}
+      ]
     },
     "LAYOUT_planck_mit": {
       "layout": [
-        { "x": 0, "y": 0 },
-        { "x": 1, "y": 0 },
-        { "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": 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": 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": 0, "y": 3 },
-        { "x": 1, "y": 3 },
-        { "x": 2, "y": 3 },
-        { "x": 3, "y": 3 },
-        { "x": 4, "y": 3 },
-        { "w": 2, "x": 5, "y": 3 },
-        { "x": 7, "y": 3 },
-        { "x": 8, "y": 3 },
-        { "x": 9, "y": 3 },
-        { "x": 10, "y": 3 },
-        { "x": 11, "y": 3 } ]
+        {"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, "w": 2},
+        {"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}
+      ]
     },
     "LAYOUT_2x2u": {
       "layout": [
-        { "x": 0, "y": 0 },
-        { "x": 1, "y": 0 },
-        { "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": 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": 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": 0, "y": 3 },
-        { "x": 1, "y": 3 },
-        { "x": 2, "y": 3 },
-        { "x": 3, "y": 3 },
-        { "w": 2, "x": 4, "y": 3 },
-        { "w": 2, "x": 6, "y": 3 },
-        { "x": 8, "y": 3 },
-        { "x": 9, "y": 3 },
-        { "x": 10, "y": 3 },
-        { "x": 11, "y": 3 } ]
+        {"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, "w": 2},
+        {"matrix": [3, 7], "x": 6, "y": 3, "w": 2},
+        {"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}
+      ]
     }
   }
 }

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio