Browse Source

Migrate some more layouts to data driven (#19889)

Ryan 3 years ago
parent
commit
ea77246865
78 changed files with 2102 additions and 3035 deletions
  1. 1 1
      keyboards/aidansmithdotdev/fine40/fine40.c
  2. 0 3
      keyboards/aidansmithdotdev/fine40/fine40.h
  3. 0 15
      keyboards/atset/at1/at1.c
  4. 0 22
      keyboards/atset/at1/at1.h
  5. 3 1
      keyboards/atset/at1/info.json
  6. 0 15
      keyboards/atset/at12/at12.c
  7. 0 29
      keyboards/atset/at12/at12.h
  8. 14 1
      keyboards/atset/at12/info.json
  9. 0 15
      keyboards/atset/at16/at16.c
  10. 0 29
      keyboards/atset/at16/at16.h
  11. 18 1
      keyboards/atset/at16/info.json
  12. 0 15
      keyboards/atset/at3/at3.c
  13. 0 22
      keyboards/atset/at3/at3.h
  14. 5 1
      keyboards/atset/at3/info.json
  15. 0 15
      keyboards/atset/at6/at6.c
  16. 0 24
      keyboards/atset/at6/at6.h
  17. 8 1
      keyboards/atset/at6/info.json
  18. 0 15
      keyboards/atset/at9/at9.c
  19. 0 26
      keyboards/atset/at9/at9.h
  20. 11 1
      keyboards/atset/at9/info.json
  21. 0 16
      keyboards/binepad/bn003/bn003.c
  22. 0 23
      keyboards/binepad/bn003/bn003.h
  23. 3 15
      keyboards/binepad/bn003/info.json
  24. 0 16
      keyboards/binepad/bn009/bn009.c
  25. 0 28
      keyboards/binepad/bn009/bn009.h
  26. 11 1
      keyboards/binepad/bn009/info.json
  27. 0 1
      keyboards/cannonkeys/db60/db60.c
  28. 0 23
      keyboards/cannonkeys/db60/db60.h
  29. 0 63
      keyboards/cannonkeys/db60/hotswap/hotswap.h
  30. 196 123
      keyboards/cannonkeys/db60/hotswap/info.json
  31. 270 197
      keyboards/cannonkeys/db60/j02/info.json
  32. 0 77
      keyboards/cannonkeys/db60/j02/j02.h
  33. 270 197
      keyboards/cannonkeys/db60/rev2/info.json
  34. 0 77
      keyboards/cannonkeys/db60/rev2/rev2.h
  35. 1 1
      keyboards/handwired/battleship_gamepad/battleship_gamepad.c
  36. 0 31
      keyboards/handwired/battleship_gamepad/battleship_gamepad.h
  37. 44 204
      keyboards/handwired/battleship_gamepad/info.json
  38. 68 68
      keyboards/handwired/myskeeb/info.json
  39. 0 1
      keyboards/handwired/myskeeb/myskeeb.c
  40. 0 24
      keyboards/handwired/myskeeb/myskeeb.h
  41. 0 0
      keyboards/handwired/prime_exl_plus/info.json
  42. 1 1
      keyboards/handwired/prime_exl_plus/prime_exl_plus.c
  43. 0 36
      keyboards/handwired/prime_exl_plus/prime_exl_plus.h
  44. 0 17
      keyboards/jolofsor/denial75/denial75.c
  45. 0 33
      keyboards/jolofsor/denial75/denial75.h
  46. 85 84
      keyboards/jolofsor/denial75/info.json
  47. 0 17
      keyboards/mt/ncr80/hotswap/hotswap.c
  48. 0 44
      keyboards/mt/ncr80/hotswap/hotswap.h
  49. 93 81
      keyboards/mt/ncr80/hotswap/info.json
  50. 306 268
      keyboards/mt/ncr80/solder/info.json
  51. 0 17
      keyboards/mt/ncr80/solder/solder.c
  52. 0 84
      keyboards/mt/ncr80/solder/solder.h
  53. 135 135
      keyboards/mwstudio/mw65_black/info.json
  54. 0 16
      keyboards/mwstudio/mw65_black/mw65_black.c
  55. 0 61
      keyboards/mwstudio/mw65_black/mw65_black.h
  56. 0 16
      keyboards/rainkeebs/delilah/delilah.c
  57. 0 28
      keyboards/rainkeebs/delilah/delilah.h
  58. 48 1
      keyboards/rainkeebs/delilah/info.json
  59. 48 48
      keyboards/splitish/info.json
  60. 0 1
      keyboards/splitish/splitish.c
  61. 0 14
      keyboards/splitish/splitish.h
  62. 47 1
      keyboards/tanuki/info.json
  63. 0 4
      keyboards/tanuki/tanuki.c
  64. 0 22
      keyboards/tanuki/tanuki.h
  65. 410 370
      keyboards/toad/info.json
  66. 0 1
      keyboards/toad/toad.c
  67. 0 91
      keyboards/toad/toad.h
  68. 1 1
      keyboards/westm/westm68/rev1/rev1.c
  69. 0 17
      keyboards/westm/westm68/rev1/rev1.h
  70. 0 17
      keyboards/westm/westm68/rev2/rev2.c
  71. 0 17
      keyboards/westm/westm68/rev2/rev2.h
  72. 1 1
      keyboards/westm/westm9/rev1/rev1.c
  73. 0 17
      keyboards/westm/westm9/rev1/rev1.h
  74. 1 1
      keyboards/westm/westm9/rev2/rev2.c
  75. 0 17
      keyboards/westm/westm9/rev2/rev2.h
  76. 2 0
      keyboards/work_louder/micro/micro.h
  77. 1 1
      keyboards/xelus/kangaroo/rev1/rev1.c
  78. 0 17
      keyboards/xelus/kangaroo/rev1/rev1.h

+ 1 - 1
keyboards/aidansmithdotdev/fine40/fine40.c

@@ -1,6 +1,6 @@
 // Copyright 2022 Aidan Smith (@Aidan-OS)
 // SPDX-License-Identifier: GPL-2.0-or-later
-#include "fine40.h"
+#include "quantum.h"
 
 enum keyboard_layers {
 	_MAIN,

+ 0 - 3
keyboards/aidansmithdotdev/fine40/fine40.h

@@ -1,3 +0,0 @@
-// Copyright 2022 Aidan Smith (@Aidan-OS)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include "quantum.h"

+ 0 - 15
keyboards/atset/at1/at1.c

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

+ 0 - 22
keyboards/atset/at1/at1.h

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

+ 3 - 1
keyboards/atset/at1/info.json

@@ -11,7 +11,9 @@
   "bootloader": "atmel-dfu",
   "layouts": {
     "LAYOUT": {
-      "layout": [{"label":"k00", "x":0, "y":0}]
+      "layout": [
+        {"x":0, "y":0, "matrix": [0, 0]}
+      ]
     }
   }
 }

+ 0 - 15
keyboards/atset/at12/at12.c

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

+ 0 - 29
keyboards/atset/at12/at12.h

@@ -1,29 +0,0 @@
-/* 
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "quantum.h"
-
-#define LAYOUT( \
-      k00, k01, k02, \
-      k10, k11, k12, \
-      k20, k21, k22, \
-      k30, k31, k32  \
-) \
-{ \
-    { k00, k01, k02 }, \
-    { k10, k11, k12 }, \
-    { k20, k21, k22 }, \
-    { k30, k31, k32 }  \
-} 
-

+ 14 - 1
keyboards/atset/at12/info.json

@@ -11,7 +11,20 @@
   "bootloader": "atmel-dfu",
   "layouts": {
     "LAYOUT": {
-      "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "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}]
+      "layout": [
+        {"x":0, "y":0, "matrix": [0, 0]},
+        {"x":1, "y":0, "matrix": [0, 1]},
+        {"x":2, "y":0, "matrix": [0, 2]},
+        {"x":0, "y":1, "matrix": [1, 0]},
+        {"x":1, "y":1, "matrix": [1, 1]},
+        {"x":2, "y":1, "matrix": [1, 2]},
+        {"x":0, "y":2, "matrix": [2, 0]},
+        {"x":1, "y":2, "matrix": [2, 1]},
+        {"x":2, "y":2, "matrix": [2, 2]},
+        {"x":0, "y":3, "matrix": [3, 0]},
+        {"x":1, "y":3, "matrix": [3, 1]},
+        {"x":2, "y":3, "matrix": [3, 2]}
+      ]
     }
   }
 }

+ 0 - 15
keyboards/atset/at16/at16.c

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

+ 0 - 29
keyboards/atset/at16/at16.h

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

+ 18 - 1
keyboards/atset/at16/info.json

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

+ 0 - 15
keyboards/atset/at3/at3.c

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

+ 0 - 22
keyboards/atset/at3/at3.h

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

+ 5 - 1
keyboards/atset/at3/info.json

@@ -11,7 +11,11 @@
   "bootloader": "atmel-dfu",
   "layouts": {
     "LAYOUT": {
-      "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}]
+      "layout": [
+        {"x":0, "y":0, "matrix": [0, 0]},
+        {"x":1, "y":0, "matrix": [0, 1]},
+        {"x":2, "y":0, "matrix": [0, 2]}
+      ]
     }
   }
 }

+ 0 - 15
keyboards/atset/at6/at6.c

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

+ 0 - 24
keyboards/atset/at6/at6.h

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

+ 8 - 1
keyboards/atset/at6/info.json

@@ -11,7 +11,14 @@
   "bootloader": "atmel-dfu",
   "layouts": {
     "LAYOUT": {
-      "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}]
+      "layout": [
+        {"x":0, "y":0, "matrix": [0, 0]},
+        {"x":1, "y":0, "matrix": [0, 1]},
+        {"x":2, "y":0, "matrix": [0, 2]},
+        {"x":0, "y":1, "matrix": [1, 0]},
+        {"x":1, "y":1, "matrix": [1, 1]},
+        {"x":2, "y":1, "matrix": [1, 2]}
+      ]
     }
   }
 }

+ 0 - 15
keyboards/atset/at9/at9.c

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

+ 0 - 26
keyboards/atset/at9/at9.h

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

+ 11 - 1
keyboards/atset/at9/info.json

@@ -11,7 +11,17 @@
   "bootloader": "atmel-dfu",
   "layouts": {
     "LAYOUT": {
-      "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}]
+      "layout": [
+        {"x":0, "y":0, "matrix": [0, 0]},
+        {"x":1, "y":0, "matrix": [0, 1]},
+        {"x":2, "y":0, "matrix": [0, 2]},
+        {"x":0, "y":1, "matrix": [1, 0]},
+        {"x":1, "y":1, "matrix": [1, 1]},
+        {"x":2, "y":1, "matrix": [1, 2]},
+        {"x":0, "y":2, "matrix": [2, 0]},
+        {"x":1, "y":2, "matrix": [2, 1]},
+        {"x":2, "y":2, "matrix": [2, 2]}
+      ]
     }
   }
 }

+ 0 - 16
keyboards/binepad/bn003/bn003.c

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

+ 0 - 23
keyboards/binepad/bn003/bn003.h

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

+ 3 - 15
keyboards/binepad/bn003/info.json

@@ -13,21 +13,9 @@
   "layouts": {
     "LAYOUT": {
       "layout": [
-        {
-          "label": "K0",
-          "x": 0,
-          "y": 0
-        },
-        {
-          "label": "K1",
-          "x": 1,
-          "y": 0
-        },
-        {
-          "label": "K2",
-          "x": 2,
-          "y": 0
-        }
+        {"x": 0, "y": 0, "matrix": [0, 0]},
+        {"x": 1, "y": 0, "matrix": [0, 1]},
+        {"x": 2, "y": 0, "matrix": [0, 2]}
       ]
     }
   }

+ 0 - 16
keyboards/binepad/bn009/bn009.c

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

+ 0 - 28
keyboards/binepad/bn009/bn009.h

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

+ 11 - 1
keyboards/binepad/bn009/info.json

@@ -12,7 +12,17 @@
   "bootloader": "atmel-dfu",
   "layouts": {
     "LAYOUT": {
-      "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}]
+      "layout": [
+        {"x":0, "y":0, "matrix": [0, 0]},
+        {"x":1, "y":0, "matrix": [0, 1]},
+        {"x":2, "y":0, "matrix": [0, 2]},
+        {"x":0, "y":1, "matrix": [1, 0]},
+        {"x":1, "y":1, "matrix": [1, 1]},
+        {"x":2, "y":1, "matrix": [1, 2]},
+        {"x":0, "y":2, "matrix": [2, 0]},
+        {"x":1, "y":2, "matrix": [2, 1]},
+        {"x":2, "y":2, "matrix": [2, 2]}
+      ]
     }
   }
 }

+ 0 - 1
keyboards/cannonkeys/db60/db60.c

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

+ 0 - 23
keyboards/cannonkeys/db60/db60.h

@@ -1,23 +0,0 @@
- /* Copyright 2021 Andrew Kannan
-  *
-  * 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/>.
-  */
-
-#if defined(KEYBOARD_cannonkeys_db60_j02)
-    #include "j02.h"
-#elif defined(KEYBOARD_cannonkeys_db60_hotswap)
-    #include "hotswap.h"
-#else
-    #include "rev2.h"
-#endif

+ 0 - 63
keyboards/cannonkeys/db60/hotswap/hotswap.h

@@ -1,63 +0,0 @@
- /* Copyright 2021 Andrew Kannan
-  *
-  * 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 KNO KC_NO
-
-#define LAYOUT_60_ansi( \
-  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,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
-  K40, K41,  K42,              K46,                 K4A, K4B, K4C,      K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  KNO,  K0E}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  KNO,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  KNO  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    KNO,    K46,    KNO,    KNO,    KNO,  K4A,  K4B,  K4C,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-  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,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E,\
-  K40, K41,  K42,              K46,                      K4B, K4C,      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,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  KNO,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    KNO,    K46,    KNO,    KNO,    KNO,  KNO,  K4B,  K4C,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_all( \
-  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,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E,\
-  K40, K41,  K42,              K46,                 K4A, K4B, K4C,      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,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  K2C,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    KNO,    K46,    KNO,    KNO,    KNO,  K4A,  K4B,  K4C,  KNO,  K4E  }  \
-}

+ 196 - 123
keyboards/cannonkeys/db60/hotswap/info.json

@@ -7,141 +7,214 @@
     "layouts": {
         "LAYOUT_60_ansi": {
             "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":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "w":2, "matrix": [0, 14]},
 
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-                {"label":"|", "x":13.5, "y":1, "w":1.5},
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "w":2.25, "matrix": [2, 14]},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
+                {"x":0, "y":3, "w":2.25, "matrix": [3, 0]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":2.75, "matrix": [3, 12]},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Win", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"Win", "x":11.25, "y":4, "w":1.25},
-                {"label":"Menu", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 6]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "w":1.25, "matrix": [4, 12]},
+                {"x":13.75, "y":4, "w":1.25, "matrix": [4, 14]}
             ]
         },
         "LAYOUT_60_tsangan_hhkb": {
             "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":"+", "x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14, "y":0},
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "matrix": [0, 13]},
+                {"x":14, "y":0, "matrix": [0, 14]},
 
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-                {"label":"|", "x":13.5, "y":1, "w":1.5},
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "w":2.25, "matrix": [2, 14]},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
+                {"x":0, "y":3, "w":2.25, "matrix": [3, 0]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":1.75, "matrix": [3, 12]},
+                {"x":14, "y":3, "matrix": [3, 14]},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"Win", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Win", "x":12.5, "y":4},
-                {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"x":0, "y":4, "w":1.5, "matrix": [4, 0]},
+                {"x":1.5, "y":4, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.5, "matrix": [4, 2]},
+                {"x":4, "y":4, "w":7, "matrix": [4, 6]},
+                {"x":11, "y":4, "w":1.5, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "matrix": [4, 12]},
+                {"x":13.5, "y":4, "w":1.5, "matrix": [4, 14]}
+            ]
+        },
+        "LAYOUT_all": {
+            "layout": [
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "matrix": [0, 13]},
+                {"x":14, "y":0, "matrix": [0, 14]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "matrix": [2, 12]},
+                {"x":13.75, "y":2, "w":1.25, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":1.25, "matrix": [3, 0]},
+                {"x":1.25, "y":3, "matrix": [3, 1]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":1.75, "matrix": [3, 12]},
+                {"x":14, "y":3, "matrix": [3, 14]},
+
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 6]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "w":1.25, "matrix": [4, 12]},
+                {"x":13.75, "y":4, "w":1.25, "matrix": [4, 14]}
             ]
         }
     }

+ 270 - 197
keyboards/cannonkeys/db60/j02/info.json

@@ -7,211 +7,284 @@
     "layouts": {
         "LAYOUT_60_ansi": {
             "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":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
-
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-                {"label":"|", "x":13.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Win", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"Win", "x":11.25, "y":4, "w":1.25},
-                {"label":"Menu", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "w":2, "matrix": [0, 13]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "w":2.25, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":2.25, "matrix": [3, 0]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":2.75, "matrix": [3, 12]},
+
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 5]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "w":1.25, "matrix": [4, 12]},
+                {"x":13.75, "y":4, "w":1.25, "matrix": [4, 14]}
             ]
         },
         "LAYOUT_60_tsangan_hhkb": {
             "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":"+", "x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14, "y":0},
-
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-                {"label":"|", "x":13.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"Win", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Win", "x":12.5, "y":4},
-                {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "matrix": [0, 13]},
+                {"x":14, "y":0, "matrix": [0, 14]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "w":2.25, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":2.25, "matrix": [3, 0]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":1.75, "matrix": [3, 12]},
+                {"x":14, "y":3, "matrix": [3, 14]},
+
+                {"x":0, "y":4, "w":1.5, "matrix": [4, 0]},
+                {"x":1.5, "y":4, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.5, "matrix": [4, 2]},
+                {"x":4, "y":4, "w":7, "matrix": [4, 5]},
+                {"x":11, "y":4, "w":1.5, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "matrix": [4, 12]},
+                {"x":13.5, "y":4, "w":1.5, "matrix": [4, 14]}
             ]
         },
         "LAYOUT_60_iso": {
             "layout": [
-                {"label":"\u00ac", "x":0, "y":0},
-                {"label":"!", "x":1, "y":0},
-                {"label":"\"", "x":2, "y":0},
-                {"label":"\u00a3", "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":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
-
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"@", "x":11.75, "y":2},
-                {"label":"~", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Win", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"label":"AltGr", "x":10, "y":4, "w":1.25},
-                {"label":"Win", "x":11.25, "y":4, "w":1.25},
-                {"label":"Menu", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "w":2, "matrix": [0, 13]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "matrix": [2, 12]},
+                {"x":13.75, "y":1, "w":1.25, "h":2, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":1.25, "matrix": [3, 0]},
+                {"x":1.25, "y":3, "matrix": [3, 1]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":2.75, "matrix": [3, 12]},
+
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 5]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "w":1.25, "matrix": [4, 12]},
+                {"x":13.75, "y":4, "w":1.25, "matrix": [4, 14]}
+            ]
+        },
+        "LAYOUT_all": {
+            "layout": [
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "matrix": [0, 13]},
+                {"x":14, "y":0, "matrix": [0, 14]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "matrix": [2, 12]},
+                {"x":13.75, "y":2, "w":1.25, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":1.25, "matrix": [3, 0]},
+                {"x":1.25, "y":3, "matrix": [3, 1]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":1.75, "matrix": [3, 12]},
+                {"x":14, "y":3, "matrix": [3, 14]},
+
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 5]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "w":1.25, "matrix": [4, 12]},
+                {"x":13.75, "y":4, "w":1.25, "matrix": [4, 14]}
             ]
         }
     }

+ 0 - 77
keyboards/cannonkeys/db60/j02/j02.h

@@ -1,77 +0,0 @@
- /* Copyright 2021 Andrew Kannan
-  *
-  * 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 KNO KC_NO
-
-#define LAYOUT_60_ansi( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
-  K40, K41,  K42,              K45,                 K4A, K4B, K4C,      K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  KNO}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  KNO,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  KNO  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    KNO,  K4A,  K4B,  K4C,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-  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,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E,\
-  K40, K41,  K42,              K45,                      K4B, K4C,      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,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  KNO,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    KNO,  KNO,  K4B,  K4C,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_60_iso( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,       \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
-  K40, K41,  K42,              K45,                 K4A, K4B, K4C,      K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  KNO}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  KNO   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  K2C,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  KNO  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    KNO,  K4A,  K4B,  K4C,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_all( \
-  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,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E,\
-  K40, K41,  K42,              K45,                 K4A, K4B, K4C,      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,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  K2C,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    KNO,  K4A,  K4B,  K4C,  KNO,  K4E  }  \
-}

+ 270 - 197
keyboards/cannonkeys/db60/rev2/info.json

@@ -7,211 +7,284 @@
     "layouts": {
         "LAYOUT_60_ansi": {
             "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":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
-
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-                {"label":"|", "x":13.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Win", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"Win", "x":11.25, "y":4, "w":1.25},
-                {"label":"Menu", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "w":2, "matrix": [0, 13]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "w":2.25, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":2.25, "matrix": [3, 0]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":2.75, "matrix": [3, 12]},
+
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 6]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "w":1.25, "matrix": [4, 12]},
+                {"x":13.75, "y":4, "w":1.25, "matrix": [4, 14]}
             ]
         },
         "LAYOUT_60_tsangan_hhkb": {
             "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":"+", "x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14, "y":0},
-
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-                {"label":"|", "x":13.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"Win", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Win", "x":12.5, "y":4},
-                {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "matrix": [0, 13]},
+                {"x":14, "y":0, "matrix": [0, 14]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "w":2.25, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":2.25, "matrix": [3, 0]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":1.75, "matrix": [3, 12]},
+                {"x":14, "y":3, "matrix": [3, 14]},
+
+                {"x":0, "y":4, "w":1.5, "matrix": [4, 0]},
+                {"x":1.5, "y":4, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.5, "matrix": [4, 2]},
+                {"x":4, "y":4, "w":7, "matrix": [4, 6]},
+                {"x":11, "y":4, "w":1.5, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "matrix": [4, 12]},
+                {"x":13.5, "y":4, "w":1.5, "matrix": [4, 14]}
             ]
         },
         "LAYOUT_60_iso": {
             "layout": [
-                {"label":"\u00ac", "x":0, "y":0},
-                {"label":"!", "x":1, "y":0},
-                {"label":"\"", "x":2, "y":0},
-                {"label":"\u00a3", "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":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
-
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"@", "x":11.75, "y":2},
-                {"label":"~", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Win", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"label":"AltGr", "x":10, "y":4, "w":1.25},
-                {"label":"Win", "x":11.25, "y":4, "w":1.25},
-                {"label":"Menu", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "w":2, "matrix": [0, 13]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "matrix": [2, 12]},
+                {"x":13.75, "y":1, "w":1.25, "h":2, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":1.25, "matrix": [3, 0]},
+                {"x":1.25, "y":3, "matrix": [3, 1]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":2.75, "matrix": [3, 12]},
+
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 6]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "w":1.25, "matrix": [4, 12]},
+                {"x":13.75, "y":4, "w":1.25, "matrix": [4, 14]}
+            ]
+        },
+        "LAYOUT_all": {
+            "layout": [
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "matrix": [0, 13]},
+                {"x":14, "y":0, "matrix": [0, 14]},
+
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 14]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "matrix": [2, 12]},
+                {"x":13.75, "y":2, "w":1.25, "matrix": [2, 14]},
+
+                {"x":0, "y":3, "w":1.25, "matrix": [3, 0]},
+                {"x":1.25, "y":3, "matrix": [3, 1]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "matrix": [3, 3]},
+                {"x":4.25, "y":3, "matrix": [3, 4]},
+                {"x":5.25, "y":3, "matrix": [3, 5]},
+                {"x":6.25, "y":3, "matrix": [3, 6]},
+                {"x":7.25, "y":3, "matrix": [3, 7]},
+                {"x":8.25, "y":3, "matrix": [3, 8]},
+                {"x":9.25, "y":3, "matrix": [3, 9]},
+                {"x":10.25, "y":3, "matrix": [3, 10]},
+                {"x":11.25, "y":3, "matrix": [3, 11]},
+                {"x":12.25, "y":3, "w":1.75, "matrix": [3, 12]},
+                {"x":14, "y":3, "matrix": [3, 14]},
+
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 6]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 11]},
+                {"x":12.5, "y":4, "w":1.25, "matrix": [4, 12]},
+                {"x":13.75, "y":4, "w":1.25, "matrix": [4, 14]}
             ]
         }
     }

+ 0 - 77
keyboards/cannonkeys/db60/rev2/rev2.h

@@ -1,77 +0,0 @@
- /* Copyright 2021 Andrew Kannan
-  *
-  * 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 KNO KC_NO
-
-#define LAYOUT_60_ansi( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
-  K40, K41,  K42,              K46,                 K4A, K4B, K4C,      K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  KNO}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  KNO,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  KNO  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    KNO,    K46,    KNO,    KNO,    KNO,  K4A,  K4B,  K4C,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-  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,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E,\
-  K40, K41,  K42,              K46,                      K4B, K4C,      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,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  KNO,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    KNO,    K46,    KNO,    KNO,    KNO,  KNO,  K4B,  K4C,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_60_iso( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,       \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
-  K40, K41,  K42,              K46,                 K4A, K4B, K4C,      K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  KNO}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  KNO   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  K2C,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  KNO  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    KNO,    K46,    KNO,    KNO,    KNO,  K4A,  K4B,  K4C,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_all( \
-  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,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E,\
-  K40, K41,  K42,              K46,                 K4A, K4B, K4C,      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,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  K2C,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    KNO,    K46,    KNO,    KNO,    KNO,  K4A,  K4B,  K4C,  KNO,  K4E  }  \
-}

+ 1 - 1
keyboards/handwired/battleship_gamepad/battleship_gamepad.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "battleship_gamepad.h"
+#include "quantum.h"
 
 /* joystick config */
 joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = {

+ 0 - 31
keyboards/handwired/battleship_gamepad/battleship_gamepad.h

@@ -1,31 +0,0 @@
-/* Copyright 2021 Andrew Braini
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#define LAYOUT( \
-	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, \
-	K40, K41, K42, K43, K44, K45, K46, K47  \
-) { \
-	{ 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 }, \
-	{ K40,   K41,   K42,   K43,   K44,   K45,   K46,   K47 }  \
-}

+ 44 - 204
keyboards/handwired/battleship_gamepad/info.json

@@ -13,210 +13,50 @@
     "layouts": {
         "LAYOUT": {
             "layout": [
-                {
-                    "label": "F1",
-                    "x": 0,
-                    "y": 0
-                },
-                {
-                    "label": "F2",
-                    "x": 1,
-                    "y": 0
-                },
-                {
-                    "label": "Esc",
-                    "x": 2.25,
-                    "y": 0,
-                    "w": 1.25
-                },
-                {
-                    "label": "!",
-                    "x": 3.5,
-                    "y": 0
-                },
-                {
-                    "label": "@",
-                    "x": 4.5,
-                    "y": 0
-                },
-                {
-                    "label": "#",
-                    "x": 5.5,
-                    "y": 0
-                },
-                {
-                    "label": "$",
-                    "x": 6.5,
-                    "y": 0
-                },
-                {
-                    "label": "%",
-                    "x": 7.5,
-                    "y": 0
-                },
-                {
-                    "label": "F3",
-                    "x": 0,
-                    "y": 1
-                },
-                {
-                    "label": "F4",
-                    "x": 1,
-                    "y": 1
-                },
-                {
-                    "label": "Tab",
-                    "x": 2.25,
-                    "y": 1,
-                    "w": 1.25
-                },
-                {
-                    "label": "Q",
-                    "x": 3.5,
-                    "y": 1
-                },
-                {
-                    "label": "W",
-                    "x": 4.5,
-                    "y": 1
-                },
-                {
-                    "label": "E",
-                    "x": 5.5,
-                    "y": 1
-                },
-                {
-                    "label": "R",
-                    "x": 6.5,
-                    "y": 1
-                },
-                {
-                    "label": "T",
-                    "x": 7.5,
-                    "y": 1
-                },
-                {
-                    "label": "F5",
-                    "x": 0,
-                    "y": 2
-                },
-                {
-                    "label": "F6",
-                    "x": 1,
-                    "y": 2
-                },
-                {
-                    "label": "Caps<br>Lock",
-                    "x": 2.25,
-                    "y": 2,
-                    "w": 1.25
-                },
-                {
-                    "label": "A",
-                    "x": 3.5,
-                    "y": 2
-                },
-                {
-                    "label": "S",
-                    "x": 4.5,
-                    "y": 2
-                },
-                {
-                    "label": "D",
-                    "x": 5.5,
-                    "y": 2
-                },
-                {
-                    "label": "F",
-                    "x": 6.5,
-                    "y": 2
-                },
-                {
-                    "label": "G",
-                    "x": 7.5,
-                    "y": 2
-                },
-                {
-                    "label": "F7",
-                    "x": 0,
-                    "y": 3
-                },
-                {
-                    "label": "F8",
-                    "x": 1,
-                    "y": 3
-                },
-                {
-                    "label": "Shift",
-                    "x": 2.25,
-                    "y": 3,
-                    "w": 1.25
-                },
-                {
-                    "label": "Z",
-                    "x": 3.5,
-                    "y": 3
-                },
-                {
-                    "label": "X",
-                    "x": 4.5,
-                    "y": 3
-                },
-                {
-                    "label": "C",
-                    "x": 5.5,
-                    "y": 3
-                },
-                {
-                    "label": "V",
-                    "x": 6.5,
-                    "y": 3
-                },
-                {
-                    "label": "B",
-                    "x": 7.5,
-                    "y": 3
-                },
-                {
-                    "label": "F9",
-                    "x": 0,
-                    "y": 4
-                },
-                {
-                    "label": "F10",
-                    "x": 1,
-                    "y": 4
-                },
-                {
-                    "label": "",
-                    "x": 2.25,
-                    "y": 4,
-                    "w": 1.25
-                },
-                {
-                    "label": "Ctrl",
-                    "x": 3.5,
-                    "y": 4
-                },
-                {
-                    "label": "Alt",
-                    "x": 4.5,
-                    "y": 4
-                },
-                {
-                    "label": "\u21e9",
-                    "x": 5.5,
-                    "y": 4
-                },
-                {
-                    "label": "\u21e7",
-                    "x": 6.5,
-                    "y": 4
-                },
-                {
-                    "x": 7.5,
-                    "y": 4
-                }
+                {"x": 0, "y": 0, "matrix": [0, 0]},
+                {"x": 1, "y": 0, "matrix": [0, 1]},
+                {"x": 2.25, "y": 0, "w": 1.25, "matrix": [0, 2]},
+                {"x": 3.5, "y": 0, "matrix": [0, 3]},
+                {"x": 4.5, "y": 0, "matrix": [0, 4]},
+                {"x": 5.5, "y": 0, "matrix": [0, 5]},
+                {"x": 6.5, "y": 0, "matrix": [0, 6]},
+                {"x": 7.5, "y": 0, "matrix": [0, 7]},
+
+                {"x": 0, "y": 1, "matrix": [1, 0]},
+                {"x": 1, "y": 1, "matrix": [1, 1]},
+                {"x": 2.25, "y": 1, "w": 1.25, "matrix": [1, 2]},
+                {"x": 3.5, "y": 1, "matrix": [1, 3]},
+                {"x": 4.5, "y": 1, "matrix": [1, 4]},
+                {"x": 5.5, "y": 1, "matrix": [1, 5]},
+                {"x": 6.5, "y": 1, "matrix": [1, 6]},
+                {"x": 7.5, "y": 1, "matrix": [1, 7]},
+
+                {"x": 0, "y": 2, "matrix": [2, 0]},
+                {"x": 1, "y": 2, "matrix": [2, 1]},
+                {"x": 2.25, "y": 2, "w": 1.25, "matrix": [2, 2]},
+                {"x": 3.5, "y": 2, "matrix": [2, 3]},
+                {"x": 4.5, "y": 2, "matrix": [2, 4]},
+                {"x": 5.5, "y": 2, "matrix": [2, 5]},
+                {"x": 6.5, "y": 2, "matrix": [2, 6]},
+                {"x": 7.5, "y": 2, "matrix": [2, 7]},
+
+                {"x": 0, "y": 3, "matrix": [3, 0]},
+                {"x": 1, "y": 3, "matrix": [3, 1]},
+                {"x": 2.25, "y": 3, "w": 1.25, "matrix": [3, 2]},
+                {"x": 3.5, "y": 3, "matrix": [3, 3]},
+                {"x": 4.5, "y": 3, "matrix": [3, 4]},
+                {"x": 5.5, "y": 3, "matrix": [3, 5]},
+                {"x": 6.5, "y": 3, "matrix": [3, 6]},
+                {"x": 7.5, "y": 3, "matrix": [3, 7]},
+
+                {"x": 0, "y": 4, "matrix": [4, 0]},
+                {"x": 1, "y": 4, "matrix": [4, 1]},
+                {"x": 2.25, "y": 4, "w": 1.25, "matrix": [4, 2]},
+                {"x": 3.5, "y": 4, "matrix": [4, 3]},
+                {"x": 4.5, "y": 4, "matrix": [4, 4]},
+                {"x": 5.5, "y": 4, "matrix": [4, 5]},
+                {"x": 6.5, "y": 4, "matrix": [4, 6]},
+                {"x": 7.5, "y": 4, "matrix": [4, 7]}
             ]
         }
     }

+ 68 - 68
keyboards/handwired/myskeeb/info.json

@@ -17,85 +17,85 @@
     "layouts": {
         "LAYOUT": {
             "layout": [
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":0.75},
-                {"x":2.5, "y":0.25},
-                {"x":3.5, "y":0},
-                {"x":4.5, "y":0.25},
-                {"x":5.5, "y":0.75},
-                {"x":6.5, "y":1},
+                {"x":0, "y":1, "w":1.5, "matrix": [0, 0]},
+                {"x":1.5, "y":0.75, "matrix": [0, 1]},
+                {"x":2.5, "y":0.25, "matrix": [0, 2]},
+                {"x":3.5, "y":0, "matrix": [0, 3]},
+                {"x":4.5, "y":0.25, "matrix": [0, 4]},
+                {"x":5.5, "y":0.75, "matrix": [0, 5]},
+                {"x":6.5, "y":1, "matrix": [0, 6]},
 
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":0.75},
-                {"x":11.5, "y":0.25},
-                {"x":12.5, "y":0},
-                {"x":13.5, "y":0.25},
-                {"x":14.5, "y":0.75},
-                {"x":15.5, "y":1, "w":1.5},
+                {"x":9.5, "y":1, "matrix": [5, 0]},
+                {"x":10.5, "y":0.75, "matrix": [5, 1]},
+                {"x":11.5, "y":0.25, "matrix": [5, 2]},
+                {"x":12.5, "y":0, "matrix": [5, 3]},
+                {"x":13.5, "y":0.25, "matrix": [5, 4]},
+                {"x":14.5, "y":0.75, "matrix": [5, 5]},
+                {"x":15.5, "y":1, "w":1.5, "matrix": [5, 6]},
 
-                {"x":0, "y":2, "w":1.5},
-                {"x":1.5, "y":1.75},
-                {"x":2.5, "y":1.25},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1.25},
-                {"x":5.5, "y":1.75},
-                {"x":6.5, "y":2, "h":1.5},
+                {"x":0, "y":2, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1.75, "matrix": [1, 1]},
+                {"x":2.5, "y":1.25, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1.25, "matrix": [1, 4]},
+                {"x":5.5, "y":1.75, "matrix": [1, 5]},
+                {"x":6.5, "y":2, "h":1.5, "matrix": [1, 6]},
 
-                {"x":9.5, "y":2, "h":1.5},
-                {"x":10.5, "y":1.75},
-                {"x":11.5, "y":1.25},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1.25},
-                {"x":14.5, "y":1.75},
-                {"x":15.5, "y":2, "w":1.5},
+                {"x":9.5, "y":2, "h":1.5, "matrix": [6, 0]},
+                {"x":10.5, "y":1.75, "matrix": [6, 1]},
+                {"x":11.5, "y":1.25, "matrix": [6, 2]},
+                {"x":12.5, "y":1, "matrix": [6, 3]},
+                {"x":13.5, "y":1.25, "matrix": [6, 4]},
+                {"x":14.5, "y":1.75, "matrix": [6, 5]},
+                {"x":15.5, "y":2, "w":1.5, "matrix": [6, 6]},
 
-                {"x":0, "y":3, "w":1.5},
-                {"x":1.5, "y":2.75},
-                {"x":2.5, "y":2.25},
-                {"x":3.5, "y":2},
-                {"x":4.5, "y":2.25},
-                {"x":5.5, "y":2.75},
+                {"x":0, "y":3, "w":1.5, "matrix": [2, 0]},
+                {"x":1.5, "y":2.75, "matrix": [2, 1]},
+                {"x":2.5, "y":2.25, "matrix": [2, 2]},
+                {"x":3.5, "y":2, "matrix": [2, 3]},
+                {"x":4.5, "y":2.25, "matrix": [2, 4]},
+                {"x":5.5, "y":2.75, "matrix": [2, 5]},
 
-                {"x":10.5, "y":2.75},
-                {"x":11.5, "y":2.25},
-                {"x":12.5, "y":2},
-                {"x":13.5, "y":2.25},
-                {"x":14.5, "y":2.75},
-                {"x":15.5, "y":3, "w":1.5},
+                {"x":10.5, "y":2.75, "matrix": [7, 1]},
+                {"x":11.5, "y":2.25, "matrix": [7, 2]},
+                {"x":12.5, "y":2, "matrix": [7, 3]},
+                {"x":13.5, "y":2.25, "matrix": [7, 4]},
+                {"x":14.5, "y":2.75, "matrix": [7, 5]},
+                {"x":15.5, "y":3, "w":1.5, "matrix": [7, 6]},
 
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":3.75},
-                {"x":2.5, "y":3.25},
-                {"x":3.5, "y":3},
-                {"x":4.5, "y":3.25},
-                {"x":5.5, "y":3.75},
-                {"x":6.5, "y":3.5, "h":1.5},
+                {"x":0, "y":4, "w":1.5, "matrix": [3, 0]},
+                {"x":1.5, "y":3.75, "matrix": [3, 1]},
+                {"x":2.5, "y":3.25, "matrix": [3, 2]},
+                {"x":3.5, "y":3, "matrix": [3, 3]},
+                {"x":4.5, "y":3.25, "matrix": [3, 4]},
+                {"x":5.5, "y":3.75, "matrix": [3, 5]},
+                {"x":6.5, "y":3.5, "h":1.5, "matrix": [3, 6]},
 
-                {"x":9.5, "y":3.5, "h":1.5},
-                {"x":10.5, "y":3.75},
-                {"x":11.5, "y":3.25},
-                {"x":12.5, "y":3},
-                {"x":13.5, "y":3.25},
-                {"x":14.5, "y":3.75},
-                {"x":15.5, "y":4, "w":1.5},
+                {"x":9.5, "y":3.5, "h":1.5, "matrix": [8, 0]},
+                {"x":10.5, "y":3.75, "matrix": [8, 1]},
+                {"x":11.5, "y":3.25, "matrix": [8, 2]},
+                {"x":12.5, "y":3, "matrix": [8, 3]},
+                {"x":13.5, "y":3.25, "matrix": [8, 4]},
+                {"x":14.5, "y":3.75, "matrix": [8, 5]},
+                {"x":15.5, "y":4, "w":1.5, "matrix": [8, 6]},
 
-                {"x":0.25, "y":5},
-                {"x":1.5, "y":4.75},
-                {"x":2.5, "y":4.25},
-                {"x":3.5, "y":4},
+                {"x":0.25, "y":5, "matrix": [4, 0]},
+                {"x":1.5, "y":4.75, "matrix": [4, 1]},
+                {"x":2.5, "y":4.25, "matrix": [4, 2]},
+                {"x":3.5, "y":4, "matrix": [4, 3]},
 
-                {"x":5, "y":6},
-                {"x":6, "y":5.5, "h":2},
-                {"x":7, "y":5.5, "h":2},
+                {"x":5, "y":6, "matrix": [4, 4]},
+                {"x":6, "y":5.5, "h":2, "matrix": [4, 5]},
+                {"x":7, "y":5.5, "h":2, "matrix": [4, 6]},
 
-                {"x":9, "y":5.5, "h":2},
-                {"x":10, "y":5.5, "h":2},
-                {"x":11, "y":6},
+                {"x":9, "y":5.5, "h":2, "matrix": [9, 0]},
+                {"x":10, "y":5.5, "h":2, "matrix": [9, 1]},
+                {"x":11, "y":6, "matrix": [9, 2]},
 
-                {"x":12.5, "y":4},
-                {"x":13.5, "y":4.25},
-                {"x":14.5, "y":4.75},
-                {"x":15.75, "y":5}
+                {"x":12.5, "y":4, "matrix": [9, 3]},
+                {"x":13.5, "y":4.25, "matrix": [9, 4]},
+                {"x":14.5, "y":4.75, "matrix": [9, 5]},
+                {"x":15.75, "y":5, "matrix": [9, 6]}
             ]
         }
     }

+ 0 - 1
keyboards/handwired/myskeeb/myskeeb.c

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

+ 0 - 24
keyboards/handwired/myskeeb/myskeeb.h

@@ -1,24 +0,0 @@
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT( \
-    L00, L01, L02, L03, L04, L05, L06,   R00, R01, R02, R03, R04, R05, R06, \
-    L10, L11, L12, L13, L14, L15, L16,   R10, R11, R12, R13, R14, R15, R16, \
-    L20, L21, L22, L23, L24, L25,             R21, R22, R23, R24, R25, R26, \
-    L30, L31, L32, L33, L34, L35, L36,   R30, R31, R32, R33, R34, R35, R36, \
-    L40, L41, L42, L43, L44, L45, L46,   R40, R41, R42, R43, R44, R45, R46  \
-    ) \
-    { \
-        { L00, L01, L02, L03, L04, L05, L06 }, \
-        { L10, L11, L12, L13, L14, L15, L16 }, \
-        { L20, L21, L22, L23, L24, L25, XXX }, \
-        { L30, L31, L32, L33, L34, L35, L36 }, \
-        { L40, L41, L42, L43, L44, L45, L46 }, \
-        { R00, R01, R02, R03, R04, R05, R06 }, \
-        { R10, R11, R12, R13, R14, R15, R16 }, \
-        { XXX, R21, R22, R23, R24, R25, R26 }, \
-        { R30, R31, R32, R33, R34, R35, R36 }, \
-        { R40, R41, R42, R43, R44, R45, R46 }  \
-    }
-

File diff suppressed because it is too large
+ 0 - 0
keyboards/handwired/prime_exl_plus/info.json


+ 1 - 1
keyboards/handwired/prime_exl_plus/prime_exl_plus.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 "prime_exl_plus.h"
+#include "quantum.h"
 
 void matrix_init_kb(void) {
   // set CapsLock LED to output and low

+ 0 - 36
keyboards/handwired/prime_exl_plus/prime_exl_plus.h

@@ -1,36 +0,0 @@
-/* Copyright 2020 Holten Campbell
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#define LAYOUT( \
-    K040, K050, K041, K051, K042, K052,   K043, K053, K044, K054, K045, K055,     K046, K056, K047, K057, K048, K058, \
-    K030, K060, K031, K061, K032, K062,   K033, K063, K034, K064, K035, K065,     K036, K066, K037, K067, K038, K068, K039, \
-    K020, K070, K021, K071, K022, K072,   K023, K073, K024, K074, K025, K075,     K026, K076, K027, K077, K028,       K029, \
-    K010, K080, K011, K081, K012, K082,   K013, K083, K014, K084, K015, K085,     K016, K086, K017, K087, K018, K088, K019, \
-    K000, K090, K001, K091, K002, K092,   K003, K093,       K004,       K095,     K006,       K097,             K098, K009 \
-) { \
-    { K000,  K001,  K002,  K003,  K004,  KC_NO, K006,  KC_NO, KC_NO, K009 }, \
-    { K010,  K011,  K012,  K013,  K014,  K015,  K016,  K017,  K018,  K019 }, \
-    { K020,  K021,  K022,  K023,  K024,  K025,  K026,  K027,  K028,  K029 }, \
-    { K030,  K031,  K032,  K033,  K034,  K035,  K036,  K037,  K038,  K039 }, \
-    { K040,  K041,  K042,  K043,  K044,  K045,  K046,  K047,  K048,  KC_NO }, \
-    { K050,  K051,  K052,  K053,  K054,  K055,  K056,  K057,  K058,  KC_NO }, \
-    { K060,  K061,  K062,  K063,  K064,  K065,  K066,  K067,  K068,  KC_NO }, \
-    { K070,  K071,  K072,  K073,  K074,  K075,  K076,  K077,  KC_NO, KC_NO }, \
-    { K080,  K081,  K082,  K083,  K084,  K085,  K086,  K087,  K088,  KC_NO }, \
-    { K090,  K091,  K092,  K093,  KC_NO, K095,  KC_NO, K097,  K098,  KC_NO }  \
-}

+ 0 - 17
keyboards/jolofsor/denial75/denial75.c

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

+ 0 - 33
keyboards/jolofsor/denial75/denial75.h

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

+ 85 - 84
keyboards/jolofsor/denial75/info.json

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

+ 0 - 17
keyboards/mt/ncr80/hotswap/hotswap.c

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

+ 0 - 44
keyboards/mt/ncr80/hotswap/hotswap.h

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

+ 93 - 81
keyboards/mt/ncr80/hotswap/info.json

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

+ 306 - 268
keyboards/mt/ncr80/solder/info.json

@@ -19,280 +19,318 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                { "label": "K00 (E6,D0)", "x": 0, "y": 0 },
-                { "label": "K02 (E6,D2)", "x": 2, "y": 0 },
-                { "label": "K03 (E6,D3)", "x": 3, "y": 0 },
-                { "label": "K04 (E6,D5)", "x": 4, "y": 0 },
-                { "label": "K05 (E6,D4)", "x": 5, "y": 0 },
-                { "label": "K06 (E6,D6)", "x": 6.5, "y": 0 },
-                { "label": "K07 (E6,D7)", "x": 7.5, "y": 0 },
-                { "label": "K08 (E6,B4)", "x": 8.5, "y": 0 },
-                { "label": "K68 (F7,B4)", "x": 9.5, "y": 0 },
-                { "label": "K67 (F7,D7)", "x": 11, "y": 0 },
-                { "label": "K65 (F7,D4)", "x": 12, "y": 0 },
-                { "label": "K64 (F7,D5)", "x": 13, "y": 0 },
-                { "label": "K63 (F7,D3)", "x": 14, "y": 0 },
-                { "label": "K66 (F7,D6)", "x": 15.25, "y": 0 },
-                { "label": "K62 (F7,D2)", "x": 16.25, "y": 0 },
-                { "label": "K61 (F7,D1)", "x": 17.25, "y": 0 },
-                { "label": "K10 (B0,D0)", "x": 0, "y": 1.5 },
-                { "label": "K11 (B0,D1)", "x": 1, "y": 1.5 },
-                { "label": "K12 (B0,D2)", "x": 2, "y": 1.5 },
-                { "label": "K13 (B0,D3)", "x": 3, "y": 1.5 },
-                { "label": "K14 (B0,D5)", "x": 4, "y": 1.5 },
-                { "label": "K15 (B0,D4)", "x": 5, "y": 1.5 },
-                { "label": "K16 (B0,D6)", "x": 6, "y": 1.5 },
-                { "label": "K17 (B0,D7)", "x": 7, "y": 1.5 },
-                { "label": "K18 (B0,B4)", "x": 8, "y": 1.5 },
-                { "label": "K78 (F6,B4)", "x": 9, "y": 1.5 },
-                { "label": "K70 (F6,D0)", "x": 10, "y": 1.5 },
-                { "label": "K77 (F6,D7)", "x": 11, "y": 1.5 },
-                { "label": "K75 (F6,D4)", "x": 12, "y": 1.5 },
-                { "label": "K74 (F6,D5)", "x": 13, "y": 1.5 },
-                { "label": "K73 (F6,D3)", "x": 14, "y": 1.5 },
-                { "label": "K76 (F6,D6)", "x": 15.25, "y": 1.5 },
-                { "label": "K72 (F6,D2)", "x": 16.25, "y": 1.5 },
-                { "label": "K71 (F6,D1)", "x": 17.25, "y": 1.5 },
-                { "label": "K20 (B1,D0)", "x": 0, "y": 2.5, "w": 1.5 },
-                { "label": "K21 (B1,D1)", "x": 1.5, "y": 2.5 },
-                { "label": "K22 (B1,D2)", "x": 2.5, "y": 2.5 },
-                { "label": "K23 (B1,D3)", "x": 3.5, "y": 2.5 },
-                { "label": "K24 (B1,D5)", "x": 4.5, "y": 2.5 },
-                { "label": "K25 (B1,D4)", "x": 5.5, "y": 2.5 },
-                { "label": "K26 (B1,D6)", "x": 6.5, "y": 2.5 },
-                { "label": "K27 (B1,D7)", "x": 7.5, "y": 2.5 },
-                { "label": "K28 (B1,B4)", "x": 8.5, "y": 2.5 },
-                { "label": "K88 (F5,B4)", "x": 9.5, "y": 2.5 },
-                { "label": "K87 (F5,D7)", "x": 10.5, "y": 2.5 },
-                { "label": "K85 (F5,D4)", "x": 11.5, "y": 2.5 },
-                { "label": "K84 (F5,D5)", "x": 12.5, "y": 2.5 },
-                { "label": "K83 (F5,D3)", "x": 13.5, "y": 2.5, "w": 1.5 },
-                { "label": "K86 (F5,D6)", "x": 15.25, "y": 2.5 },
-                { "label": "K82 (F5,D2)", "x": 16.25, "y": 2.5 },
-                { "label": "K81 (F5,D1)", "x": 17.25, "y": 2.5 },
-                { "label": "K30 (B2,D0)", "x": 0, "y": 3.5, "w": 1.75 },
-                { "label": "K31 (B2,D1)", "x": 1.75, "y": 3.5 },
-                { "label": "K32 (B2,D2)", "x": 2.75, "y": 3.5 },
-                { "label": "K33 (B2,D3)", "x": 3.75, "y": 3.5 },
-                { "label": "K34 (B2,D5)", "x": 4.75, "y": 3.5 },
-                { "label": "K35 (B2,D4)", "x": 5.75, "y": 3.5 },
-                { "label": "K36 (B2,D6)", "x": 6.75, "y": 3.5 },
-                { "label": "K37 (B2,D7)", "x": 7.75, "y": 3.5 },
-                { "label": "K38 (B2,B4)", "x": 8.75, "y": 3.5 },
-                { "label": "K98 (F4,B4)", "x": 9.75, "y": 3.5 },
-                { "label": "K97 (F4,D7)", "x": 10.75, "y": 3.5 },
-                { "label": "K95 (F4,D4)", "x": 11.75, "y": 3.5 },
-                { "label": "K93 (F4,D3)", "x": 12.75, "y": 3.5, "w": 2.25 },
-                { "label": "K40 (B3,D0)", "x": 0, "y": 4.5, "w": 1.25 },
-                { "label": "K41 (B3,D1)", "x": 1.25, "y": 4.5 },
-                { "label": "K42 (B3,D2)", "x": 2.25, "y": 4.5 },
-                { "label": "K43 (B3,D3)", "x": 3.25, "y": 4.5 },
-                { "label": "K44 (B3,D5)", "x": 4.25, "y": 4.5 },
-                { "label": "K45 (B3,D4)", "x": 5.25, "y": 4.5 },
-                { "label": "K46 (B3,D6)", "x": 6.25, "y": 4.5 },
-                { "label": "K47 (B3,D7)", "x": 7.25, "y": 4.5 },
-                { "label": "K48 (B3,B4)", "x": 8.25, "y": 4.5 },
-                { "label": "KA8 (F1,B4)", "x": 9.25, "y": 4.5 },
-                { "label": "KA7 (F1,D7)", "x": 10.25, "y": 4.5 },
-                { "label": "KA5 (F1,D4)", "x": 11.25, "y": 4.5 },
-                { "label": "KA4 (F1,D5)", "x": 12.25, "y": 4.5, "w": 1.75 },
-                { "label": "KA3 (F1,D3)", "x": 14, "y": 4.5 },
-                { "label": "K92 (F4,D2)", "x": 16.25, "y": 4.5 },
-                { "label": "K50 (B7,D0)", "x": 0, "y": 5.5, "w": 1.25 },
-                { "label": "K51 (B7,D1)", "x": 1.25, "y": 5.5, "w": 1.25 },
-                { "label": "K52 (B7,D2)", "x": 2.5, "y": 5.5, "w": 1.25 },
-                { "label": "K56 (B7,D6)", "x": 3.75, "y": 5.5, "w": 6.25 },
-                { "label": "K58 (B7,B4)", "x": 10, "y": 5.5, "w": 1.25 },
-                { "label": "K57 (B7,D7)", "x": 11.25, "y": 5.5, "w": 1.25 },
-                { "label": "K54 (B7,D5)", "x": 12.5, "y": 5.5, "w": 1.25 },
-                { "label": "K53 (B7,D3)", "x": 13.75, "y": 5.5, "w": 1.25 },
-                { "label": "KA6 (F1,D6)", "x": 15.25, "y": 5.5 },
-                { "label": "KA2 (F1,D2)", "x": 16.25, "y": 5.5 },
-                { "label": "KA1 (F1,D1)", "x": 17.25, "y": 5.5 }
+                { "x": 0, "y": 0, "matrix": [0, 0] },
+
+                { "x": 2, "y": 0, "matrix": [0, 2] },
+                { "x": 3, "y": 0, "matrix": [0, 3] },
+                { "x": 4, "y": 0, "matrix": [0, 4] },
+                { "x": 5, "y": 0, "matrix": [0, 5] },
+
+                { "x": 6.5, "y": 0, "matrix": [0, 6] },
+                { "x": 7.5, "y": 0, "matrix": [0, 7] },
+                { "x": 8.5, "y": 0, "matrix": [0, 8] },
+                { "x": 9.5, "y": 0, "matrix": [6, 8] },
+
+                { "x": 11, "y": 0, "matrix": [6, 7] },
+                { "x": 12, "y": 0, "matrix": [6, 5] },
+                { "x": 13, "y": 0, "matrix": [6, 4] },
+                { "x": 14, "y": 0, "matrix": [6, 3] },
+
+                { "x": 15.25, "y": 0, "matrix": [6, 6] },
+                { "x": 16.25, "y": 0, "matrix": [6, 2] },
+                { "x": 17.25, "y": 0, "matrix": [6, 1] },
+
+                { "x": 0, "y": 1.5, "matrix": [1, 0] },
+                { "x": 1, "y": 1.5, "matrix": [1, 1] },
+                { "x": 2, "y": 1.5, "matrix": [1, 2] },
+                { "x": 3, "y": 1.5, "matrix": [1, 3] },
+                { "x": 4, "y": 1.5, "matrix": [1, 4] },
+                { "x": 5, "y": 1.5, "matrix": [1, 5] },
+                { "x": 6, "y": 1.5, "matrix": [1, 6] },
+                { "x": 7, "y": 1.5, "matrix": [1, 7] },
+                { "x": 8, "y": 1.5, "matrix": [1, 8] },
+                { "x": 9, "y": 1.5, "matrix": [7, 8] },
+                { "x": 10, "y": 1.5, "matrix": [7, 0] },
+                { "x": 11, "y": 1.5, "matrix": [7, 7] },
+                { "x": 12, "y": 1.5, "matrix": [7, 5] },
+                { "x": 13, "y": 1.5, "matrix": [7, 4] },
+                { "x": 14, "y": 1.5, "matrix": [7, 3] },
+
+                { "x": 15.25, "y": 1.5, "matrix": [7, 6] },
+                { "x": 16.25, "y": 1.5, "matrix": [7, 2] },
+                { "x": 17.25, "y": 1.5, "matrix": [7, 1] },
+
+                { "x": 0, "y": 2.5, "w": 1.5, "matrix": [2, 0] },
+                { "x": 1.5, "y": 2.5, "matrix": [2, 1] },
+                { "x": 2.5, "y": 2.5, "matrix": [2, 2] },
+                { "x": 3.5, "y": 2.5, "matrix": [2, 3] },
+                { "x": 4.5, "y": 2.5, "matrix": [2, 4] },
+                { "x": 5.5, "y": 2.5, "matrix": [2, 5] },
+                { "x": 6.5, "y": 2.5, "matrix": [2, 6] },
+                { "x": 7.5, "y": 2.5, "matrix": [2, 7] },
+                { "x": 8.5, "y": 2.5, "matrix": [2, 8] },
+                { "x": 9.5, "y": 2.5, "matrix": [8, 8] },
+                { "x": 10.5, "y": 2.5, "matrix": [8, 7] },
+                { "x": 11.5, "y": 2.5, "matrix": [8, 5] },
+                { "x": 12.5, "y": 2.5, "matrix": [8, 4] },
+                { "x": 13.5, "y": 2.5, "w": 1.5, "matrix": [9, 4] },
+
+                { "x": 15.25, "y": 2.5, "matrix": [8, 6] },
+                { "x": 16.25, "y": 2.5, "matrix": [8, 2] },
+                { "x": 17.25, "y": 2.5, "matrix": [8, 1] },
+
+                { "x": 0, "y": 3.5, "w": 1.75, "matrix": [3, 0] },
+                { "x": 1.75, "y": 3.5, "matrix": [3, 1] },
+                { "x": 2.75, "y": 3.5, "matrix": [3, 2] },
+                { "x": 3.75, "y": 3.5, "matrix": [3, 3] },
+                { "x": 4.75, "y": 3.5, "matrix": [3, 4] },
+                { "x": 5.75, "y": 3.5, "matrix": [3, 5] },
+                { "x": 6.75, "y": 3.5, "matrix": [3, 6] },
+                { "x": 7.75, "y": 3.5, "matrix": [3, 7] },
+                { "x": 8.75, "y": 3.5, "matrix": [3, 8] },
+                { "x": 9.75, "y": 3.5, "matrix": [9, 8] },
+                { "x": 10.75, "y": 3.5, "matrix": [9, 7] },
+                { "x": 11.75, "y": 3.5, "matrix": [9, 5] },
+                { "x": 12.75, "y": 3.5, "w": 2.25, "matrix": [8, 3] },
+
+                { "x": 0, "y": 4.5, "w": 1.25, "matrix": [4, 0] },
+                { "x": 1.25, "y": 4.5, "matrix": [4, 1] },
+                { "x": 2.25, "y": 4.5, "matrix": [4, 2] },
+                { "x": 3.25, "y": 4.5, "matrix": [4, 3] },
+                { "x": 4.25, "y": 4.5, "matrix": [4, 4] },
+                { "x": 5.25, "y": 4.5, "matrix": [4, 5] },
+                { "x": 6.25, "y": 4.5, "matrix": [4, 6] },
+                { "x": 7.25, "y": 4.5, "matrix": [4, 7] },
+                { "x": 8.25, "y": 4.5, "matrix": [4, 8] },
+                { "x": 9.25, "y": 4.5, "matrix": [10, 8] },
+                { "x": 10.25, "y": 4.5, "matrix": [10, 7] },
+                { "x": 11.25, "y": 4.5, "matrix": [10, 5] },
+                { "x": 12.25, "y": 4.5, "w": 1.75, "matrix": [10, 4] },
+                { "x": 14, "y": 4.5, "matrix": [10, 3] },
+
+                { "x": 16.25, "y": 4.5, "matrix": [9, 2] },
+
+                { "x": 0, "y": 5.5, "w": 1.25, "matrix": [5, 0] },
+                { "x": 1.25, "y": 5.5, "w": 1.25, "matrix": [5, 1] },
+                { "x": 2.5, "y": 5.5, "w": 1.25, "matrix": [5, 2] },
+                { "x": 3.75, "y": 5.5, "w": 6.25, "matrix": [5, 6] },
+                { "x": 10, "y": 5.5, "w": 1.25, "matrix": [5, 8] },
+                { "x": 11.25, "y": 5.5, "w": 1.25, "matrix": [5, 7] },
+                { "x": 12.5, "y": 5.5, "w": 1.25, "matrix": [5, 4] },
+                { "x": 13.75, "y": 5.5, "w": 1.25, "matrix": [5, 3] },
+
+                { "x": 15.25, "y": 5.5, "matrix": [10, 6] },
+                { "x": 16.25, "y": 5.5, "matrix": [10, 2] },
+                { "x": 17.25, "y": 5.5, "matrix": [10, 1] }
             ]
         },
         "LAYOUT_tkl_ansi": {
             "layout": [
-              { "label": "Esc", "x": 0, "y": 0 },
-              { "label": "F1", "x": 2, "y": 0 },
-              { "label": "F2", "x": 3, "y": 0 },
-              { "label": "F3", "x": 4, "y": 0 },
-              { "label": "F4", "x": 5, "y": 0 },
-              { "label": "F5", "x": 6.5, "y": 0 },
-              { "label": "F6", "x": 7.5, "y": 0 },
-              { "label": "F7", "x": 8.5, "y": 0 },
-              { "label": "F8", "x": 9.5, "y": 0 },
-              { "label": "F9", "x": 11, "y": 0 },
-              { "label": "F10", "x": 12, "y": 0 },
-              { "label": "F11", "x": 13, "y": 0 },
-              { "label": "F12", "x": 14, "y": 0 },
-              { "label": "Print Screen", "x": 15.25, "y": 0 },
-              { "label": "Scroll Lock", "x": 16.25, "y": 0 },
-              { "label": "Pause", "x": 17.25, "y": 0 },
-              { "label": "`", "x": 0, "y": 1.25 },
-              { "label": "1", "x": 1, "y": 1.25 },
-              { "label": "2", "x": 2, "y": 1.25 },
-              { "label": "3", "x": 3, "y": 1.25 },
-              { "label": "4", "x": 4, "y": 1.25 },
-              { "label": "5", "x": 5, "y": 1.25 },
-              { "label": "6", "x": 6, "y": 1.25 },
-              { "label": "7", "x": 7, "y": 1.25 },
-              { "label": "8", "x": 8, "y": 1.25 },
-              { "label": "9", "x": 9, "y": 1.25 },
-              { "label": "0", "x": 10, "y": 1.25 },
-              { "label": "-", "x": 11, "y": 1.25 },
-              { "label": "=", "x": 12, "y": 1.25 },
-              { "label": "Backspace", "x": 13, "y": 1.25, "w": 2 },
-              { "label": "Insert", "x": 15.25, "y": 1.25 },
-              { "label": "Home", "x": 16.25, "y": 1.25 },
-              { "label": "PgUp", "x": 17.25, "y": 1.25 },
-              { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 },
-              { "label": "Q", "x": 1.5, "y": 2.25 },
-              { "label": "W", "x": 2.5, "y": 2.25 },
-              { "label": "E", "x": 3.5, "y": 2.25 },
-              { "label": "R", "x": 4.5, "y": 2.25 },
-              { "label": "T", "x": 5.5, "y": 2.25 },
-              { "label": "Y", "x": 6.5, "y": 2.25 },
-              { "label": "U", "x": 7.5, "y": 2.25 },
-              { "label": "I", "x": 8.5, "y": 2.25 },
-              { "label": "O", "x": 9.5, "y": 2.25 },
-              { "label": "P", "x": 10.5, "y": 2.25 },
-              { "label": "[", "x": 11.5, "y": 2.25 },
-              { "label": "]", "x": 12.5, "y": 2.25 },
-              { "label": "\\", "x": 13.5, "y": 2.25, "w": 1.5 },
-              { "label": "Delete", "x": 15.25, "y": 2.25 },
-              { "label": "End", "x": 16.25, "y": 2.25 },
-              { "label": "PgDn", "x": 17.25, "y": 2.25 },
-              { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 },
-              { "label": "A", "x": 1.75, "y": 3.25 },
-              { "label": "S", "x": 2.75, "y": 3.25 },
-              { "label": "D", "x": 3.75, "y": 3.25 },
-              { "label": "F", "x": 4.75, "y": 3.25 },
-              { "label": "G", "x": 5.75, "y": 3.25 },
-              { "label": "H", "x": 6.75, "y": 3.25 },
-              { "label": "J", "x": 7.75, "y": 3.25 },
-              { "label": "K", "x": 8.75, "y": 3.25 },
-              { "label": "L", "x": 9.75, "y": 3.25 },
-              { "label": ";", "x": 10.75, "y": 3.25 },
-              { "label": "'", "x": 11.75, "y": 3.25 },
-              { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 },
-              { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 },
-              { "label": "Z", "x": 2.25, "y": 4.25 },
-              { "label": "X", "x": 3.25, "y": 4.25 },
-              { "label": "C", "x": 4.25, "y": 4.25 },
-              { "label": "V", "x": 5.25, "y": 4.25 },
-              { "label": "B", "x": 6.25, "y": 4.25 },
-              { "label": "N", "x": 7.25, "y": 4.25 },
-              { "label": "M", "x": 8.25, "y": 4.25 },
-              { "label": ",", "x": 9.25, "y": 4.25 },
-              { "label": ".", "x": 10.25, "y": 4.25 },
-              { "label": "/", "x": 11.25, "y": 4.25 },
-              { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 },
-              { "label": "Up", "x": 16.25, "y": 4.25 },
-              { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 },
-              { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 },
-              { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 },
-              { "label": "Space", "x": 3.75, "y": 5.25, "w": 6.25 },
-              { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 },
-              { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 },
-              { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 },
-              { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 },
-              { "label": "Left", "x": 15.25, "y": 5.25 },
-              { "label": "Down", "x": 16.25, "y": 5.25 },
-              { "label": "Right", "x": 17.25, "y": 5.25 }
+                { "x": 0, "y": 0, "matrix": [0, 0] },
+
+                { "x": 2, "y": 0, "matrix": [0, 2] },
+                { "x": 3, "y": 0, "matrix": [0, 3] },
+                { "x": 4, "y": 0, "matrix": [0, 4] },
+                { "x": 5, "y": 0, "matrix": [0, 5] },
+
+                { "x": 6.5, "y": 0, "matrix": [0, 6] },
+                { "x": 7.5, "y": 0, "matrix": [0, 7] },
+                { "x": 8.5, "y": 0, "matrix": [0, 8] },
+                { "x": 9.5, "y": 0, "matrix": [6, 8] },
+
+                { "x": 11, "y": 0, "matrix": [6, 7] },
+                { "x": 12, "y": 0, "matrix": [6, 5] },
+                { "x": 13, "y": 0, "matrix": [6, 4] },
+                { "x": 14, "y": 0, "matrix": [6, 3] },
+
+                { "x": 15.25, "y": 0, "matrix": [6, 6] },
+                { "x": 16.25, "y": 0, "matrix": [6, 2] },
+                { "x": 17.25, "y": 0, "matrix": [6, 1] },
+
+                { "x": 0, "y": 1.25, "matrix": [1, 0] },
+                { "x": 1, "y": 1.25, "matrix": [1, 1] },
+                { "x": 2, "y": 1.25, "matrix": [1, 2] },
+                { "x": 3, "y": 1.25, "matrix": [1, 3] },
+                { "x": 4, "y": 1.25, "matrix": [1, 4] },
+                { "x": 5, "y": 1.25, "matrix": [1, 5] },
+                { "x": 6, "y": 1.25, "matrix": [1, 6] },
+                { "x": 7, "y": 1.25, "matrix": [1, 7] },
+                { "x": 8, "y": 1.25, "matrix": [1, 8] },
+                { "x": 9, "y": 1.25, "matrix": [7, 8] },
+                { "x": 10, "y": 1.25, "matrix": [7, 0] },
+                { "x": 11, "y": 1.25, "matrix": [7, 7] },
+                { "x": 12, "y": 1.25, "matrix": [7, 5] },
+                { "x": 13, "y": 1.25, "w": 2, "matrix": [7, 3] },
+
+                { "x": 15.25, "y": 1.25, "matrix": [7, 6] },
+                { "x": 16.25, "y": 1.25, "matrix": [7, 2] },
+                { "x": 17.25, "y": 1.25, "matrix": [7, 1] },
+
+                { "x": 0, "y": 2.25, "w": 1.5, "matrix": [2, 0] },
+                { "x": 1.5, "y": 2.25, "matrix": [2, 1] },
+                { "x": 2.5, "y": 2.25, "matrix": [2, 2] },
+                { "x": 3.5, "y": 2.25, "matrix": [2, 3] },
+                { "x": 4.5, "y": 2.25, "matrix": [2, 4] },
+                { "x": 5.5, "y": 2.25, "matrix": [2, 5] },
+                { "x": 6.5, "y": 2.25, "matrix": [2, 6] },
+                { "x": 7.5, "y": 2.25, "matrix": [2, 7] },
+                { "x": 8.5, "y": 2.25, "matrix": [2, 8] },
+                { "x": 9.5, "y": 2.25, "matrix": [8, 8] },
+                { "x": 10.5, "y": 2.25, "matrix": [8, 7] },
+                { "x": 11.5, "y": 2.25, "matrix": [8, 5] },
+                { "x": 12.5, "y": 2.25, "matrix": [8, 4] },
+                { "x": 13.5, "y": 2.25, "w": 1.5, "matrix": [9, 4] },
+
+                { "x": 15.25, "y": 2.25, "matrix": [8, 6] },
+                { "x": 16.25, "y": 2.25, "matrix": [8, 2] },
+                { "x": 17.25, "y": 2.25, "matrix": [8, 1] },
+
+                { "x": 0, "y": 3.25, "w": 1.75, "matrix": [3, 0] },
+                { "x": 1.75, "y": 3.25, "matrix": [3, 1] },
+                { "x": 2.75, "y": 3.25, "matrix": [3, 2] },
+                { "x": 3.75, "y": 3.25, "matrix": [3, 3] },
+                { "x": 4.75, "y": 3.25, "matrix": [3, 4] },
+                { "x": 5.75, "y": 3.25, "matrix": [3, 5] },
+                { "x": 6.75, "y": 3.25, "matrix": [3, 6] },
+                { "x": 7.75, "y": 3.25, "matrix": [3, 7] },
+                { "x": 8.75, "y": 3.25, "matrix": [3, 8] },
+                { "x": 9.75, "y": 3.25, "matrix": [9, 8] },
+                { "x": 10.75, "y": 3.25, "matrix": [9, 7] },
+                { "x": 11.75, "y": 3.25, "matrix": [9, 5] },
+                { "x": 12.75, "y": 3.25, "w": 2.25, "matrix": [8, 3] },
+
+                { "x": 0, "y": 4.25, "w": 2.25, "matrix": [4, 0] },
+                { "x": 2.25, "y": 4.25, "matrix": [4, 2] },
+                { "x": 3.25, "y": 4.25, "matrix": [4, 3] },
+                { "x": 4.25, "y": 4.25, "matrix": [4, 4] },
+                { "x": 5.25, "y": 4.25, "matrix": [4, 5] },
+                { "x": 6.25, "y": 4.25, "matrix": [4, 6] },
+                { "x": 7.25, "y": 4.25, "matrix": [4, 7] },
+                { "x": 8.25, "y": 4.25, "matrix": [4, 8] },
+                { "x": 9.25, "y": 4.25, "matrix": [10, 8] },
+                { "x": 10.25, "y": 4.25, "matrix": [10, 7] },
+                { "x": 11.25, "y": 4.25, "matrix": [10, 5] },
+                { "x": 12.25, "y": 4.25, "w": 2.75, "matrix": [10, 4] },
+
+                { "x": 16.25, "y": 4.25, "matrix": [9, 2] },
+
+                { "x": 0, "y": 5.25, "w": 1.25, "matrix": [5, 0] },
+                { "x": 1.25, "y": 5.25, "w": 1.25, "matrix": [5, 1] },
+                { "x": 2.5, "y": 5.25, "w": 1.25, "matrix": [5, 2] },
+                { "x": 3.75, "y": 5.25, "w": 6.25, "matrix": [5, 6] },
+                { "x": 10, "y": 5.25, "w": 1.25, "matrix": [5, 8] },
+                { "x": 11.25, "y": 5.25, "w": 1.25, "matrix": [5, 7] },
+                { "x": 12.5, "y": 5.25, "w": 1.25, "matrix": [5, 4] },
+                { "x": 13.75, "y": 5.25, "w": 1.25, "matrix": [5, 3] },
+                { "x": 15.25, "y": 5.25, "matrix": [10, 6] },
+                { "x": 16.25, "y": 5.25, "matrix": [10, 2] },
+                { "x": 17.25, "y": 5.25, "matrix": [10, 1] }
             ]
-          },
-          "LAYOUT_tkl_iso": {
+        },
+        "LAYOUT_tkl_iso": {
             "layout": [
-              { "label": "Esc", "x": 0, "y": 0 },
-              { "label": "F1", "x": 2, "y": 0 },
-              { "label": "F2", "x": 3, "y": 0 },
-              { "label": "F3", "x": 4, "y": 0 },
-              { "label": "F4", "x": 5, "y": 0 },
-              { "label": "F5", "x": 6.5, "y": 0 },
-              { "label": "F6", "x": 7.5, "y": 0 },
-              { "label": "F7", "x": 8.5, "y": 0 },
-              { "label": "F8", "x": 9.5, "y": 0 },
-              { "label": "F9", "x": 11, "y": 0 },
-              { "label": "F10", "x": 12, "y": 0 },
-              { "label": "F11", "x": 13, "y": 0 },
-              { "label": "F12", "x": 14, "y": 0 },
-              { "label": "Print Screen", "x": 15.25, "y": 0 },
-              { "label": "Scroll Lock", "x": 16.25, "y": 0 },
-              { "label": "Pause", "x": 17.25, "y": 0 },
-              { "label": "`", "x": 0, "y": 1.25 },
-              { "label": "1", "x": 1, "y": 1.25 },
-              { "label": "2", "x": 2, "y": 1.25 },
-              { "label": "3", "x": 3, "y": 1.25 },
-              { "label": "4", "x": 4, "y": 1.25 },
-              { "label": "5", "x": 5, "y": 1.25 },
-              { "label": "6", "x": 6, "y": 1.25 },
-              { "label": "7", "x": 7, "y": 1.25 },
-              { "label": "8", "x": 8, "y": 1.25 },
-              { "label": "9", "x": 9, "y": 1.25 },
-              { "label": "0", "x": 10, "y": 1.25 },
-              { "label": "-", "x": 11, "y": 1.25 },
-              { "label": "=", "x": 12, "y": 1.25 },
-              { "label": "Backspace", "x": 13, "y": 1.25, "w": 2 },
-              { "label": "Insert", "x": 15.25, "y": 1.25 },
-              { "label": "Home", "x": 16.25, "y": 1.25 },
-              { "label": "PgUp", "x": 17.25, "y": 1.25 },
-              { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 },
-              { "label": "Q", "x": 1.5, "y": 2.25 },
-              { "label": "W", "x": 2.5, "y": 2.25 },
-              { "label": "E", "x": 3.5, "y": 2.25 },
-              { "label": "R", "x": 4.5, "y": 2.25 },
-              { "label": "T", "x": 5.5, "y": 2.25 },
-              { "label": "Y", "x": 6.5, "y": 2.25 },
-              { "label": "U", "x": 7.5, "y": 2.25 },
-              { "label": "I", "x": 8.5, "y": 2.25 },
-              { "label": "O", "x": 9.5, "y": 2.25 },
-              { "label": "P", "x": 10.5, "y": 2.25 },
-              { "label": "[", "x": 11.5, "y": 2.25 },
-              { "label": "]", "x": 12.5, "y": 2.25 },
-              { "label": "Delete", "x": 15.25, "y": 2.25 },
-              { "label": "End", "x": 16.25, "y": 2.25 },
-              { "label": "PgDn", "x": 17.25, "y": 2.25 },
-              { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 },
-              { "label": "A", "x": 1.75, "y": 3.25 },
-              { "label": "S", "x": 2.75, "y": 3.25 },
-              { "label": "D", "x": 3.75, "y": 3.25 },
-              { "label": "F", "x": 4.75, "y": 3.25 },
-              { "label": "G", "x": 5.75, "y": 3.25 },
-              { "label": "H", "x": 6.75, "y": 3.25 },
-              { "label": "J", "x": 7.75, "y": 3.25 },
-              { "label": "K", "x": 8.75, "y": 3.25 },
-              { "label": "L", "x": 9.75, "y": 3.25 },
-              { "label": ";", "x": 10.75, "y": 3.25 },
-              { "label": "'", "x": 11.75, "y": 3.25 },
-              { "label": "#", "x": 12.75, "y": 3.25 },
-              { "label": "Enter", "x": 13.75, "y": 2.25, "w": 1.25, "h": 2 },
-              { "label": "Shift", "x": 0, "y": 4.25, "w": 1.25 },
-              { "label": "\\", "x": 1.25, "y": 4.25 },
-              { "label": "Z", "x": 2.25, "y": 4.25 },
-              { "label": "X", "x": 3.25, "y": 4.25 },
-              { "label": "C", "x": 4.25, "y": 4.25 },
-              { "label": "V", "x": 5.25, "y": 4.25 },
-              { "label": "B", "x": 6.25, "y": 4.25 },
-              { "label": "N", "x": 7.25, "y": 4.25 },
-              { "label": "M", "x": 8.25, "y": 4.25 },
-              { "label": ",", "x": 9.25, "y": 4.25 },
-              { "label": ".", "x": 10.25, "y": 4.25 },
-              { "label": "/", "x": 11.25, "y": 4.25 },
-              { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 },
-              { "label": "Up", "x": 16.25, "y": 4.25 },
-              { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 },
-              { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 },
-              { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 },
-              { "label": "Space", "x": 3.75, "y": 5.25, "w": 6.25 },
-              { "label": "AltGr", "x": 10, "y": 5.25, "w": 1.25 },
-              { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 },
-              { "label": "Menu", "x": 12.5, "y": 5.25, "w": 1.25 },
-              { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 },
-              { "label": "Left", "x": 15.25, "y": 5.25 },
-              { "label": "Down", "x": 16.25, "y": 5.25 },
-              { "label": "Right", "x": 17.25, "y": 5.25 }
+                { "x": 0, "y": 0, "matrix": [0, 0] },
+
+                { "x": 2, "y": 0, "matrix": [0, 2] },
+                { "x": 3, "y": 0, "matrix": [0, 3] },
+                { "x": 4, "y": 0, "matrix": [0, 4] },
+                { "x": 5, "y": 0, "matrix": [0, 5] },
+
+                { "x": 6.5, "y": 0, "matrix": [0, 6] },
+                { "x": 7.5, "y": 0, "matrix": [0, 7] },
+                { "x": 8.5, "y": 0, "matrix": [0, 8] },
+                { "x": 9.5, "y": 0, "matrix": [6, 8] },
+
+                { "x": 11, "y": 0, "matrix": [6, 7] },
+                { "x": 12, "y": 0, "matrix": [6, 5] },
+                { "x": 13, "y": 0, "matrix": [6, 4] },
+                { "x": 14, "y": 0, "matrix": [6, 3] },
+
+                { "x": 15.25, "y": 0, "matrix": [6, 6] },
+                { "x": 16.25, "y": 0, "matrix": [6, 2] },
+                { "x": 17.25, "y": 0, "matrix": [6, 1] },
+
+                { "x": 0, "y": 1.25, "matrix": [1, 0] },
+                { "x": 1, "y": 1.25, "matrix": [1, 1] },
+                { "x": 2, "y": 1.25, "matrix": [1, 2] },
+                { "x": 3, "y": 1.25, "matrix": [1, 3] },
+                { "x": 4, "y": 1.25, "matrix": [1, 4] },
+                { "x": 5, "y": 1.25, "matrix": [1, 5] },
+                { "x": 6, "y": 1.25, "matrix": [1, 6] },
+                { "x": 7, "y": 1.25, "matrix": [1, 7] },
+                { "x": 8, "y": 1.25, "matrix": [1, 8] },
+                { "x": 9, "y": 1.25, "matrix": [7, 8] },
+                { "x": 10, "y": 1.25, "matrix": [7, 0] },
+                { "x": 11, "y": 1.25, "matrix": [7, 7] },
+                { "x": 12, "y": 1.25, "matrix": [7, 5] },
+                { "x": 13, "y": 1.25, "w": 2, "matrix": [7, 3] },
+
+                { "x": 15.25, "y": 1.25, "matrix": [7, 6] },
+                { "x": 16.25, "y": 1.25, "matrix": [7, 2] },
+                { "x": 17.25, "y": 1.25, "matrix": [7, 1] },
+
+                { "x": 0, "y": 2.25, "w": 1.5, "matrix": [2, 0] },
+                { "x": 1.5, "y": 2.25, "matrix": [2, 1] },
+                { "x": 2.5, "y": 2.25, "matrix": [2, 2] },
+                { "x": 3.5, "y": 2.25, "matrix": [2, 3] },
+                { "x": 4.5, "y": 2.25, "matrix": [2, 4] },
+                { "x": 5.5, "y": 2.25, "matrix": [2, 5] },
+                { "x": 6.5, "y": 2.25, "matrix": [2, 6] },
+                { "x": 7.5, "y": 2.25, "matrix": [2, 7] },
+                { "x": 8.5, "y": 2.25, "matrix": [2, 8] },
+                { "x": 9.5, "y": 2.25, "matrix": [8, 8] },
+                { "x": 10.5, "y": 2.25, "matrix": [8, 7] },
+                { "x": 11.5, "y": 2.25, "matrix": [8, 5] },
+                { "x": 12.5, "y": 2.25, "matrix": [8, 4] },
+
+                { "x": 15.25, "y": 2.25, "matrix": [8, 6] },
+                { "x": 16.25, "y": 2.25, "matrix": [8, 2] },
+                { "x": 17.25, "y": 2.25, "matrix": [8, 1] },
+
+                { "x": 0, "y": 3.25, "w": 1.75, "matrix": [3, 0] },
+                { "x": 1.75, "y": 3.25, "matrix": [3, 1] },
+                { "x": 2.75, "y": 3.25, "matrix": [3, 2] },
+                { "x": 3.75, "y": 3.25, "matrix": [3, 3] },
+                { "x": 4.75, "y": 3.25, "matrix": [3, 4] },
+                { "x": 5.75, "y": 3.25, "matrix": [3, 5] },
+                { "x": 6.75, "y": 3.25, "matrix": [3, 6] },
+                { "x": 7.75, "y": 3.25, "matrix": [3, 7] },
+                { "x": 8.75, "y": 3.25, "matrix": [3, 8] },
+                { "x": 9.75, "y": 3.25, "matrix": [9, 8] },
+                { "x": 10.75, "y": 3.25, "matrix": [9, 7] },
+                { "x": 11.75, "y": 3.25, "matrix": [9, 5] },
+                { "x": 12.75, "y": 3.25, "matrix": [9, 4] },
+                { "x": 13.75, "y": 2.25, "w": 1.25, "h": 2, "matrix": [8, 3] },
+
+                { "x": 0, "y": 4.25, "w": 1.25, "matrix": [4, 0] },
+                { "x": 1.25, "y": 4.25, "matrix": [4, 1] },
+                { "x": 2.25, "y": 4.25, "matrix": [4, 2] },
+                { "x": 3.25, "y": 4.25, "matrix": [4, 3] },
+                { "x": 4.25, "y": 4.25, "matrix": [4, 4] },
+                { "x": 5.25, "y": 4.25, "matrix": [4, 5] },
+                { "x": 6.25, "y": 4.25, "matrix": [4, 6] },
+                { "x": 7.25, "y": 4.25, "matrix": [4, 7] },
+                { "x": 8.25, "y": 4.25, "matrix": [4, 8] },
+                { "x": 9.25, "y": 4.25, "matrix": [10, 8] },
+                { "x": 10.25, "y": 4.25, "matrix": [10, 7] },
+                { "x": 11.25, "y": 4.25, "matrix": [10, 5] },
+                { "x": 12.25, "y": 4.25, "w": 2.75, "matrix": [10, 4] },
+
+                { "x": 16.25, "y": 4.25, "matrix": [9, 2] },
+
+                { "x": 0, "y": 5.25, "w": 1.25, "matrix": [5, 0] },
+                { "x": 1.25, "y": 5.25, "w": 1.25, "matrix": [5, 1] },
+                { "x": 2.5, "y": 5.25, "w": 1.25, "matrix": [5, 2] },
+                { "x": 3.75, "y": 5.25, "w": 6.25, "matrix": [5, 6] },
+                { "x": 10, "y": 5.25, "w": 1.25, "matrix": [5, 8] },
+                { "x": 11.25, "y": 5.25, "w": 1.25, "matrix": [5, 7] },
+                { "x": 12.5, "y": 5.25, "w": 1.25, "matrix": [5, 4] },
+                { "x": 13.75, "y": 5.25, "w": 1.25, "matrix": [5, 3] },
+
+                { "x": 15.25, "y": 5.25, "matrix": [10, 6] },
+                { "x": 16.25, "y": 5.25, "matrix": [10, 2] },
+                { "x": 17.25, "y": 5.25, "matrix": [10, 1] }
             ]
-          }
+        }
     }
 }

+ 0 - 17
keyboards/mt/ncr80/solder/solder.c

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

+ 0 - 84
keyboards/mt/ncr80/solder/solder.h

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

+ 135 - 135
keyboards/mwstudio/mw65_black/info.json

@@ -16,153 +16,153 @@
     "layouts": {
         "LAYOUT_65_ansi_blocker": {
             "layout": [
-                {"label":"ESC", "x":0, "y":0},
-                {"label":"1", "x":1, "y":0},
-                {"label":"2", "x":2, "y":0},
-                {"label":"3", "x":3, "y":0},
-                {"label":"4", "x":4, "y":0},
-                {"label":"5", "x":5, "y":0},
-                {"label":"6", "x":6, "y":0},
-                {"label":"7", "x":7, "y":0},
-                {"label":"8", "x":8, "y":0},
-                {"label":"9", "x":9, "y":0},
-                {"label":"0", "x":10, "y":0},
-                {"label":"-", "x":11, "y":0},
-                {"label":"=", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
-                {"label":"Delete", "x":15, "y":0},
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "w":2, "matrix": [0, 13]},
+                {"x":15, "y":0, "matrix": [0, 14]},
 
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"[", "x":11.5, "y":1},
-                {"label":"]", "x":12.5, "y":1},
-                {"label":"\\", "x":13.5, "y":1, "w":1.5},
-                {"label":"PgUp", "x":15, "y":1},
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 13]},
+                {"x":15, "y":1, "matrix": [1, 14]},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";", "x":10.75, "y":2},
-                {"label":"'", "x":11.75, "y":2},
-                {"label":"\\", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":2, "w":1.25},
-                {"label":"PgDn", "x":15, "y":2},
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "matrix": [2, 12]},
+                {"x":13.75, "y":2, "w":1.25, "matrix": [2, 13]},
+                {"x":15, "y":2, "matrix": [2, 14]},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",", "x":9.25, "y":3},
-                {"label":".", "x":10.25, "y":3},
-                {"label":"/", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"End", "x":15, "y":3},
+                {"x":0, "y":3, "w":2.25, "matrix": [3, 0]},
+                {"x":2.25, "y":3, "matrix": [3, 1]},
+                {"x":3.25, "y":3, "matrix": [3, 2]},
+                {"x":4.25, "y":3, "matrix": [3, 3]},
+                {"x":5.25, "y":3, "matrix": [3, 4]},
+                {"x":6.25, "y":3, "matrix": [3, 5]},
+                {"x":7.25, "y":3, "matrix": [3, 6]},
+                {"x":8.25, "y":3, "matrix": [3, 7]},
+                {"x":9.25, "y":3, "matrix": [3, 8]},
+                {"x":10.25, "y":3, "matrix": [3, 9]},
+                {"x":11.25, "y":3, "matrix": [3, 10]},
+                {"x":12.25, "y":3, "w":1.75, "matrix": [3, 11]},
+                {"x":14, "y":3, "matrix": [3, 13]},
+                {"x":15, "y":3, "matrix": [3, 14]},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Win", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"Fn", "x":11.25, "y":4, "w":1.25},
-                {"label":"\u2190", "x":13, "y":4},
-                {"label":"\u2193", "x":14, "y":4},
-                {"label":"\u2192", "x":15, "y":4}
+                {"x":0, "y":4, "w":1.25, "matrix": [4, 0]},
+                {"x":1.25, "y":4, "w":1.25, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.25, "matrix": [4, 2]},
+                {"x":3.75, "y":4, "w":6.25, "matrix": [4, 5]},
+                {"x":10, "y":4, "w":1.25, "matrix": [4, 9]},
+                {"x":11.25, "y":4, "w":1.25, "matrix": [4, 10]},
+                {"x":13, "y":4, "matrix": [4, 12]},
+                {"x":14, "y":4, "matrix": [4, 13]},
+                {"x":15, "y":4, "matrix": [4, 14]}
             ]
         },
         "LAYOUT_65_ansi_blocker_tsangan": {
             "layout": [
-                {"label":"ESC", "x":0, "y":0},
-                {"label":"1", "x":1, "y":0},
-                {"label":"2", "x":2, "y":0},
-                {"label":"3", "x":3, "y":0},
-                {"label":"4", "x":4, "y":0},
-                {"label":"5", "x":5, "y":0},
-                {"label":"6", "x":6, "y":0},
-                {"label":"7", "x":7, "y":0},
-                {"label":"8", "x":8, "y":0},
-                {"label":"9", "x":9, "y":0},
-                {"label":"0", "x":10, "y":0},
-                {"label":"-", "x":11, "y":0},
-                {"label":"=", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
-                {"label":"Delete", "x":15, "y":0},
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "matrix": [0, 11]},
+                {"x":12, "y":0, "matrix": [0, 12]},
+                {"x":13, "y":0, "w":2, "matrix": [0, 13]},
+                {"x":15, "y":0, "matrix": [0, 14]},
 
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"[", "x":11.5, "y":1},
-                {"label":"]", "x":12.5, "y":1},
-                {"label":"\\", "x":13.5, "y":1, "w":1.5},
-                {"label":"PgUp", "x":15, "y":1},
+                {"x":0, "y":1, "w":1.5, "matrix": [1, 0]},
+                {"x":1.5, "y":1, "matrix": [1, 1]},
+                {"x":2.5, "y":1, "matrix": [1, 2]},
+                {"x":3.5, "y":1, "matrix": [1, 3]},
+                {"x":4.5, "y":1, "matrix": [1, 4]},
+                {"x":5.5, "y":1, "matrix": [1, 5]},
+                {"x":6.5, "y":1, "matrix": [1, 6]},
+                {"x":7.5, "y":1, "matrix": [1, 7]},
+                {"x":8.5, "y":1, "matrix": [1, 8]},
+                {"x":9.5, "y":1, "matrix": [1, 9]},
+                {"x":10.5, "y":1, "matrix": [1, 10]},
+                {"x":11.5, "y":1, "matrix": [1, 11]},
+                {"x":12.5, "y":1, "matrix": [1, 12]},
+                {"x":13.5, "y":1, "w":1.5, "matrix": [1, 13]},
+                {"x":15, "y":1, "matrix": [1, 14]},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";", "x":10.75, "y":2},
-                {"label":"'", "x":11.75, "y":2},
-                {"label":"\\", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":2, "w":1.25},
-                {"label":"PgDn", "x":15, "y":2},
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "matrix": [2, 10]},
+                {"x":11.75, "y":2, "matrix": [2, 11]},
+                {"x":12.75, "y":2, "matrix": [2, 12]},
+                {"x":13.75, "y":2, "w":1.25, "matrix": [2, 13]},
+                {"x":15, "y":2, "matrix": [2, 14]},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",", "x":9.25, "y":3},
-                {"label":".", "x":10.25, "y":3},
-                {"label":"/", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"End", "x":15, "y":3},
+                {"x":0, "y":3, "w":2.25, "matrix": [3, 0]},
+                {"x":2.25, "y":3, "matrix": [3, 1]},
+                {"x":3.25, "y":3, "matrix": [3, 2]},
+                {"x":4.25, "y":3, "matrix": [3, 3]},
+                {"x":5.25, "y":3, "matrix": [3, 4]},
+                {"x":6.25, "y":3, "matrix": [3, 5]},
+                {"x":7.25, "y":3, "matrix": [3, 6]},
+                {"x":8.25, "y":3, "matrix": [3, 7]},
+                {"x":9.25, "y":3, "matrix": [3, 8]},
+                {"x":10.25, "y":3, "matrix": [3, 9]},
+                {"x":11.25, "y":3, "matrix": [3, 10]},
+                {"x":12.25, "y":3, "w":1.75, "matrix": [3, 11]},
+                {"x":14, "y":3, "matrix": [3, 13]},
+                {"x":15, "y":3, "matrix": [3, 14]},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"Win", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"label":"Fn", "x":11, "y":4, "w":1.5},
-                {"label":"\u2190", "x":13, "y":4},
-                {"label":"\u2193", "x":14, "y":4},
-                {"label":"\u2192", "x":15, "y":4}
+                {"x":0, "y":4, "w":1.5, "matrix": [4, 0]},
+                {"x":1.5, "y":4, "matrix": [4, 1]},
+                {"x":2.5, "y":4, "w":1.5, "matrix": [4, 2]},
+                {"x":4, "y":4, "w":7, "matrix": [4, 5]},
+                {"x":11, "y":4, "w":1.5, "matrix": [4, 10]},
+                {"x":13, "y":4, "matrix": [4, 12]},
+                {"x":14, "y":4, "matrix": [4, 13]},
+                {"x":15, "y":4, "matrix": [4, 14]}
             ]
         }
     }

+ 0 - 16
keyboards/mwstudio/mw65_black/mw65_black.c

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

+ 0 - 61
keyboards/mwstudio/mw65_black/mw65_black.h

@@ -1,61 +0,0 @@
-/* Copyright 2021 TW59420 <https://github.com/TW59420>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "quantum.h"
-
-/*                                                           (403┬404) rotary encoder
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬─┴─┐
- * │000│001│002│003│004│005│006│007│008│009│010│011│012│013    │014│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤      ┌─────┐
- * │100  │101│102│103│104│105│106│107│108│109│110│111│112│113  │114│      │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤   ┌──┴┐213 │ ISO Enter
- * │200   │201│202│203│204│205│206│207│208│209│210│211│213     │214│   │212│    │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤   └───┴────┘
- * │300     │301│302│303│304│305│306│307│308│309│310│311   │313│314│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │400 │401 │402 │405                     │409 │410 │ │412│413│414│
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- * ┌─────┬───┬─────┬───────────────────────────┬─────┐
- * │400  │401│402  │405                        │410  │ Tsangan
- * └─────┴───┴─────┴───────────────────────────┴─────┘
- */
-
-#define LAYOUT_65_ansi_blocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, \
-	K400, K401, K402,             K405,                   K409, K410,       K412, K413, K414  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014  }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114  }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214  }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K313,  K314,  KC_NO }, \
-	{ K400,  K401,  K402,  K405,  K409,  K410,  K412,  K413,  K414,  KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }  \
-}
-
-#define LAYOUT_65_ansi_blocker_tsangan( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, \
-	K400, K401, K402,             K405,                         K410,       K412, K413, K414  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014  }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114  }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214  }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K313,  K314,  KC_NO }, \
-	{ K400,  K401,  K402,  K405,  ____,  K410,  K412,  K413,  K414,  KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }  \
-}

+ 0 - 16
keyboards/rainkeebs/delilah/delilah.c

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

+ 0 - 28
keyboards/rainkeebs/delilah/delilah.h

@@ -1,28 +0,0 @@
-/* Copyright 2021 Regan Palmer
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "quantum.h"
-
-#define LAYOUT( \
-	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,       K211, \
-	K300, K301, K302, K303,             K306,       K308, K309,       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,  KC_NO, K211 }, \
-	{ K300,  K301,  K302,  K303,  KC_NO, KC_NO, K306,  KC_NO, K308,  K309,  KC_NO, K311 }  \
-}

+ 48 - 1
keyboards/rainkeebs/delilah/info.json

@@ -12,7 +12,54 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT": {
-            "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":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<br>Space", "x":11, "y":0, "w":1.25}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Shift", "x":10.75, "y":2, "w":1.5}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Win", "x":1.25, "y":3}, {"label":"Alt", "x":2.25, "y":3}, {"label":"225", "x":3.25, "y":3, "w":2.25}, {"label":"275", "x":5.5, "y":3, "w":2.75}, {"label":"Alt", "x":9.0, "y":3}, {"label":"Win", "x":10.0, "y":3}, {"label":"Ctrl", "x":11.0, "y":3, "w":1.25}]
+            "layout": [
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":6, "y":0, "matrix": [0, 6]},
+                {"x":7, "y":0, "matrix": [0, 7]},
+                {"x":8, "y":0, "matrix": [0, 8]},
+                {"x":9, "y":0, "matrix": [0, 9]},
+                {"x":10, "y":0, "matrix": [0, 10]},
+                {"x":11, "y":0, "w":1.25, "matrix": [0, 11]},
+
+                {"x":0, "y":1, "w":1.25, "matrix": [1, 0]},
+                {"x":1.25, "y":1, "matrix": [1, 1]},
+                {"x":2.25, "y":1, "matrix": [1, 2]},
+                {"x":3.25, "y":1, "matrix": [1, 3]},
+                {"x":4.25, "y":1, "matrix": [1, 4]},
+                {"x":5.25, "y":1, "matrix": [1, 5]},
+                {"x":6.25, "y":1, "matrix": [1, 6]},
+                {"x":7.25, "y":1, "matrix": [1, 7]},
+                {"x":8.25, "y":1, "matrix": [1, 8]},
+                {"x":9.25, "y":1, "matrix": [1, 9]},
+                {"x":10.25, "y":1, "matrix": [1, 10]},
+                {"x":11.25, "y":1, "matrix": [1, 11]},
+
+                {"x":0, "y":2, "w":1.75, "matrix": [2, 0]},
+                {"x":1.75, "y":2, "matrix": [2, 1]},
+                {"x":2.75, "y":2, "matrix": [2, 2]},
+                {"x":3.75, "y":2, "matrix": [2, 3]},
+                {"x":4.75, "y":2, "matrix": [2, 4]},
+                {"x":5.75, "y":2, "matrix": [2, 5]},
+                {"x":6.75, "y":2, "matrix": [2, 6]},
+                {"x":7.75, "y":2, "matrix": [2, 7]},
+                {"x":8.75, "y":2, "matrix": [2, 8]},
+                {"x":9.75, "y":2, "matrix": [2, 9]},
+                {"x":10.75, "y":2, "w":1.5, "matrix": [2, 11]},
+
+                {"x":0, "y":3, "w":1.25, "matrix": [3, 0]},
+                {"x":1.25, "y":3, "matrix": [3, 1]},
+                {"x":2.25, "y":3, "matrix": [3, 2]},
+                {"x":3.25, "y":3, "w":2.25, "matrix": [3, 3]},
+                {"x":5.5, "y":3, "w":2.75, "matrix": [3, 6]},
+                {"x":9.0, "y":3, "matrix": [3, 8]},
+                {"x":10.0, "y":3, "matrix": [3, 9]},
+                {"x":11.0, "y":3, "w":1.25, "matrix": [3, 11]}
+            ]
         }
     }
 }

+ 48 - 48
keyboards/splitish/info.json

@@ -13,57 +13,57 @@
     "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":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
+                {"x":0, "y":0, "matrix": [0, 0]},
+                {"x":1, "y":0, "matrix": [0, 1]},
+                {"x":2, "y":0, "matrix": [0, 2]},
+                {"x":3, "y":0, "matrix": [0, 3]},
+                {"x":4, "y":0, "matrix": [0, 4]},
+                {"x":5, "y":0, "matrix": [0, 5]},
+                {"x":7, "y":0, "matrix": [0, 6]},
+                {"x":8, "y":0, "matrix": [0, 7]},
+                {"x":9, "y":0, "matrix": [0, 8]},
+                {"x":10, "y":0, "matrix": [0, 9]},
+                {"x":11, "y":0, "matrix": [0, 10]},
+                {"x":12, "y":0, "matrix": [0, 11]},
 
-                {"x":0, "y":1},
-                {"x":1, "y":1},
-                {"x":2, "y":1},
-                {"x":3, "y":1},
-                {"x":4, "y":1},
-                {"x":5, "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":0, "y":1, "matrix": [1, 0]},
+                {"x":1, "y":1, "matrix": [1, 1]},
+                {"x":2, "y":1, "matrix": [1, 2]},
+                {"x":3, "y":1, "matrix": [1, 3]},
+                {"x":4, "y":1, "matrix": [1, 4]},
+                {"x":5, "y":1, "matrix": [1, 5]},
+                {"x":7, "y":1, "matrix": [1, 6]},
+                {"x":8, "y":1, "matrix": [1, 7]},
+                {"x":9, "y":1, "matrix": [1, 8]},
+                {"x":10, "y":1, "matrix": [1, 9]},
+                {"x":11, "y":1, "matrix": [1, 10]},
+                {"x":12, "y":1, "matrix": [1, 11]},
 
-                {"x":0, "y":2},
-                {"x":1, "y":2},
-                {"x":2, "y":2},
-                {"x":3, "y":2},
-                {"x":4, "y":2},
-                {"x":5, "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":0, "y":2, "matrix": [2, 0]},
+                {"x":1, "y":2, "matrix": [2, 1]},
+                {"x":2, "y":2, "matrix": [2, 2]},
+                {"x":3, "y":2, "matrix": [2, 3]},
+                {"x":4, "y":2, "matrix": [2, 4]},
+                {"x":5, "y":2, "matrix": [2, 5]},
+                {"x":7, "y":2, "matrix": [2, 6]},
+                {"x":8, "y":2, "matrix": [2, 7]},
+                {"x":9, "y":2, "matrix": [2, 8]},
+                {"x":10, "y":2, "matrix": [2, 9]},
+                {"x":11, "y":2, "matrix": [2, 10]},
+                {"x":12, "y":2, "matrix": [2, 11]},
 
-                {"x":0, "y":3},
-                {"x":1, "y":3},
-                {"x":2, "y":3},
-                {"x":3, "y":3},
-                {"x":4, "y":3},
-                {"x":5, "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":0, "y":3, "matrix": [3, 0]},
+                {"x":1, "y":3, "matrix": [3, 1]},
+                {"x":2, "y":3, "matrix": [3, 2]},
+                {"x":3, "y":3, "matrix": [3, 3]},
+                {"x":4, "y":3, "matrix": [3, 4]},
+                {"x":5, "y":3, "matrix": [3, 5]},
+                {"x":7, "y":3, "matrix": [3, 6]},
+                {"x":8, "y":3, "matrix": [3, 7]},
+                {"x":9, "y":3, "matrix": [3, 8]},
+                {"x":10, "y":3, "matrix": [3, 9]},
+                {"x":11, "y":3, "matrix": [3, 10]},
+                {"x":12, "y":3, "matrix": [3, 11]}
             ]
         }
     }

+ 0 - 1
keyboards/splitish/splitish.c

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

+ 0 - 14
keyboards/splitish/splitish.h

@@ -1,14 +0,0 @@
-#include "quantum.h"
-
-#define LAYOUT( \
-    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} \
-}

+ 47 - 1
keyboards/tanuki/info.json

@@ -12,7 +12,53 @@
   "bootloader": "caterina",
   "layouts": {
     "LAYOUT": {
-      "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":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, "w":1.25}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Game", "x":11.25, "y":1}, {"label":"Shift", "x":0.25, "y":2, "w":1.5}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"\"", "x":8.75, "y":2}, {"label":"?", "x":9.75, "y":2}, {"label":"Enter", "x":10.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3}, {"label":"<", "x":3.5, "y":3}, {"x":4.5, "y":3, "w":2}, {"x":6.5, "y":3, "w":2}, {"label":">", "x":8.5, "y":3}, {"label":"GUI", "x":9.5, "y":3, "w":1.25}]
+      "layout": [
+        {"x":0, "y":0, "matrix": [3, 1]},
+        {"x":1, "y":0, "matrix": [0, 0]},
+        {"x":2, "y":0, "matrix": [0, 1]},
+        {"x":3, "y":0, "matrix": [0, 2]},
+        {"x":4, "y":0, "matrix": [0, 3]},
+        {"x":5, "y":0, "matrix": [0, 4]},
+        {"x":6, "y":0, "matrix": [0, 5]},
+        {"x":7, "y":0, "matrix": [0, 6]},
+        {"x":8, "y":0, "matrix": [0, 7]},
+        {"x":9, "y":0, "matrix": [0, 8]},
+        {"x":10, "y":0, "matrix": [0, 9]},
+        {"x":11, "y":0, "w":1.25, "matrix": [0, 10]},
+
+        {"x":0, "y":1, "w":1.25, "matrix": [3, 0]},
+        {"x":1.25, "y":1, "matrix": [1, 0]},
+        {"x":2.25, "y":1, "matrix": [1, 1]},
+        {"x":3.25, "y":1, "matrix": [1, 2]},
+        {"x":4.25, "y":1, "matrix": [1, 3]},
+        {"x":5.25, "y":1, "matrix": [1, 4]},
+        {"x":6.25, "y":1, "matrix": [1, 5]},
+        {"x":7.25, "y":1, "matrix": [1, 6]},
+        {"x":8.25, "y":1, "matrix": [1, 7]},
+        {"x":9.25, "y":1, "matrix": [1, 8]},
+        {"x":10.25, "y":1, "matrix": [1, 9]},
+        {"x":11.25, "y":1, "matrix": [1, 10]},
+
+        {"x":0.25, "y":2, "w":1.5, "matrix": [2, 0]},
+        {"x":1.75, "y":2, "matrix": [2, 1]},
+        {"x":2.75, "y":2, "matrix": [2, 2]},
+        {"x":3.75, "y":2, "matrix": [2, 3]},
+        {"x":4.75, "y":2, "matrix": [2, 4]},
+        {"x":5.75, "y":2, "matrix": [2, 5]},
+        {"x":6.75, "y":2, "matrix": [2, 6]},
+        {"x":7.75, "y":2, "matrix": [2, 7]},
+        {"x":8.75, "y":2, "matrix": [2, 8]},
+        {"x":9.75, "y":2, "matrix": [2, 9]},
+        {"x":10.75, "y":2, "w":1.25, "matrix": [2, 10]},
+
+        {"x":1.25, "y":3, "w":1.25, "matrix": [3, 2]},
+        {"x":2.5, "y":3, "matrix": [3, 3]},
+        {"x":3.5, "y":3, "matrix": [3, 4]},
+        {"x":4.5, "y":3, "w":2, "matrix": [3, 5]},
+        {"x":6.5, "y":3, "w":2, "matrix": [3, 6]},
+        {"x":8.5, "y":3, "matrix": [3, 8]},
+        {"x":9.5, "y":3, "w":1.25, "matrix": [3, 9]}
+      ]
     }
   }
 }

+ 0 - 4
keyboards/tanuki/tanuki.c

@@ -1,4 +0,0 @@
-#include "tanuki.h"
-#include "rgblight.h"
-#include "config.h"
-#include "rgblight.h"

+ 0 - 22
keyboards/tanuki/tanuki.h

@@ -1,22 +0,0 @@
-#include "quantum.h"
-
-
-// readability
-#define XXX KC_NO
-
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT( \
-	k31, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, \
-	k30, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, \
-	k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, \
-	k32, k33, k34, k35, k36, k38, k39 \
-) \
-{ \
-		{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a}, \
-		{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a}, \
-		{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a}, \
-		{k30, k31, k32, k33, k34, k35, k36, XXX, k38, k39, XXX} \
-}
-
-

+ 410 - 370
keyboards/toad/info.json

@@ -18,396 +18,436 @@
   "layouts": {
     "LAYOUT_all": {
       "layout": [
-        {"label":"K000", "x":0, "y":0},
-        {"label":"K001", "x":2, "y":0},
-        {"label":"K002", "x":3, "y":0},
-        {"label":"K003", "x":4, "y":0},
-        {"label":"K004", "x":5, "y":0},
-        {"label":"K005", "x":6.5, "y":0},
-        {"label":"K006", "x":7.5, "y":0},
-        {"label":"K007", "x":8.5, "y":0},
-        {"label":"K008", "x":9.5, "y":0},
-        {"label":"K009", "x":11, "y":0},
-        {"label":"K010", "x":12, "y":0},
-        {"label":"K011", "x":13, "y":0},
-        {"label":"K012", "x":14, "y":0},
-        {"label":"K100", "x":0, "y":1.5},
-        {"label":"K101", "x":1, "y":1.5},
-        {"label":"K102", "x":2, "y":1.5},
-        {"label":"K103", "x":3, "y":1.5},
-        {"label":"K104", "x":4, "y":1.5},
-        {"label":"K105", "x":5, "y":1.5},
-        {"label":"K106", "x":6, "y":1.5},
-        {"label":"K107", "x":7, "y":1.5},
-        {"label":"K108", "x":8, "y":1.5},
-        {"label":"K109", "x":9, "y":1.5},
-        {"label":"K110", "x":10, "y":1.5},
-        {"label":"K111", "x":11, "y":1.5},
-        {"label":"K112", "x":12, "y":1.5},
-        {"label":"K113", "x":13, "y":1.5},
-        {"label":"K013", "x":14, "y":1.5},
-        {"label":"K200", "x":0, "y":2.5, "w":1.5},
-        {"label":"K201", "x":1.5, "y":2.5},
-        {"label":"K202", "x":2.5, "y":2.5},
-        {"label":"K203", "x":3.5, "y":2.5},
-        {"label":"K204", "x":4.5, "y":2.5},
-        {"label":"K205", "x":5.5, "y":2.5},
-        {"label":"K206", "x":6.5, "y":2.5},
-        {"label":"K207", "x":7.5, "y":2.5},
-        {"label":"K208", "x":8.5, "y":2.5},
-        {"label":"K209", "x":9.5, "y":2.5},
-        {"label":"K210", "x":10.5, "y":2.5},
-        {"label":"K211", "x":11.5, "y":2.5},
-        {"label":"K212", "x":12.5, "y":2.5},
-        {"label":"K213", "x":13.5, "y":2.5, "w":1.5},
-        {"label":"K300", "x":0, "y":3.5, "w":1.75},
-        {"label":"K301", "x":1.75, "y":3.5},
-        {"label":"K302", "x":2.75, "y":3.5},
-        {"label":"K303", "x":3.75, "y":3.5},
-        {"label":"K304", "x":4.75, "y":3.5},
-        {"label":"K305", "x":5.75, "y":3.5},
-        {"label":"K306", "x":6.75, "y":3.5},
-        {"label":"K307", "x":7.75, "y":3.5},
-        {"label":"K308", "x":8.75, "y":3.5},
-        {"label":"K309", "x":9.75, "y":3.5},
-        {"label":"K310", "x":10.75, "y":3.5},
-        {"label":"K311", "x":11.75, "y":3.5},
-        {"label":"K312", "x":12.75, "y":3.5},
-        {"label":"K313", "x":13.75, "y":3.5, "w":1.25},
-        {"label":"K400", "x":0, "y":4.5, "w":1.25},
-        {"label":"K401", "x":1.25, "y":4.5},
-        {"label":"K402", "x":2.25, "y":4.5},
-        {"label":"K403", "x":3.25, "y":4.5},
-        {"label":"K404", "x":4.25, "y":4.5},
-        {"label":"K405", "x":5.25, "y":4.5},
-        {"label":"K406", "x":6.25, "y":4.5},
-        {"label":"K407", "x":7.25, "y":4.5},
-        {"label":"K408", "x":8.25, "y":4.5},
-        {"label":"K409", "x":9.25, "y":4.5},
-        {"label":"K410", "x":10.25, "y":4.5},
-        {"label":"K411", "x":11.25, "y":4.5},
-        {"label":"K412", "x":12.25, "y":4.5, "w":1.75},
-        {"label":"K413", "x":14, "y":4.5},
-        {"label":"K500", "x":0, "y":5.5, "w":1.25},
-        {"label":"K501", "x":1.25, "y":5.5, "w":1.25},
-        {"label":"K502", "x":2.5, "y":5.5, "w":1.25},
-        {"label":"K507", "x":3.75, "y":5.5, "w":6.25},
-        {"label":"K510", "x":10, "y":5.5, "w":1.25},
-        {"label":"K511", "x":11.25, "y":5.5, "w":1.25},
-        {"label":"K512", "x":12.5, "y":5.5, "w":1.25},
-        {"label":"K513", "x":13.75, "y":5.5, "w":1.25}
+        {"x":0, "y":0, "matrix": [0, 0]},
+
+        {"x":2, "y":0, "matrix": [0, 1]},
+        {"x":3, "y":0, "matrix": [0, 2]},
+        {"x":4, "y":0, "matrix": [0, 3]},
+        {"x":5, "y":0, "matrix": [0, 4]},
+
+        {"x":6.5, "y":0, "matrix": [0, 5]},
+        {"x":7.5, "y":0, "matrix": [0, 6]},
+        {"x":8.5, "y":0, "matrix": [0, 7]},
+        {"x":9.5, "y":0, "matrix": [0, 8]},
+
+        {"x":11, "y":0, "matrix": [0, 9]},
+        {"x":12, "y":0, "matrix": [0, 10]},
+        {"x":13, "y":0, "matrix": [0, 11]},
+        {"x":14, "y":0, "matrix": [0, 12]},
+
+        {"x":0, "y":1.5, "matrix": [1, 0]},
+        {"x":1, "y":1.5, "matrix": [1, 1]},
+        {"x":2, "y":1.5, "matrix": [1, 2]},
+        {"x":3, "y":1.5, "matrix": [1, 3]},
+        {"x":4, "y":1.5, "matrix": [1, 4]},
+        {"x":5, "y":1.5, "matrix": [1, 5]},
+        {"x":6, "y":1.5, "matrix": [1, 6]},
+        {"x":7, "y":1.5, "matrix": [1, 7]},
+        {"x":8, "y":1.5, "matrix": [1, 8]},
+        {"x":9, "y":1.5, "matrix": [1, 9]},
+        {"x":10, "y":1.5, "matrix": [1, 10]},
+        {"x":11, "y":1.5, "matrix": [1, 11]},
+        {"x":12, "y":1.5, "matrix": [1, 12]},
+        {"x":13, "y":1.5, "matrix": [1, 13]},
+        {"x":14, "y":1.5, "matrix": [0, 13]},
+
+        {"x":0, "y":2.5, "w":1.5, "matrix": [2, 0]},
+        {"x":1.5, "y":2.5, "matrix": [2, 1]},
+        {"x":2.5, "y":2.5, "matrix": [2, 2]},
+        {"x":3.5, "y":2.5, "matrix": [2, 3]},
+        {"x":4.5, "y":2.5, "matrix": [2, 4]},
+        {"x":5.5, "y":2.5, "matrix": [2, 5]},
+        {"x":6.5, "y":2.5, "matrix": [2, 6]},
+        {"x":7.5, "y":2.5, "matrix": [2, 7]},
+        {"x":8.5, "y":2.5, "matrix": [2, 8]},
+        {"x":9.5, "y":2.5, "matrix": [2, 9]},
+        {"x":10.5, "y":2.5, "matrix": [2, 10]},
+        {"x":11.5, "y":2.5, "matrix": [2, 11]},
+        {"x":12.5, "y":2.5, "matrix": [2, 12]},
+        {"x":13.5, "y":2.5, "w":1.5, "matrix": [2, 13]},
+
+        {"x":0, "y":3.5, "w":1.75, "matrix": [3, 0]},
+        {"x":1.75, "y":3.5, "matrix": [3, 1]},
+        {"x":2.75, "y":3.5, "matrix": [3, 2]},
+        {"x":3.75, "y":3.5, "matrix": [3, 3]},
+        {"x":4.75, "y":3.5, "matrix": [3, 4]},
+        {"x":5.75, "y":3.5, "matrix": [3, 5]},
+        {"x":6.75, "y":3.5, "matrix": [3, 6]},
+        {"x":7.75, "y":3.5, "matrix": [3, 7]},
+        {"x":8.75, "y":3.5, "matrix": [3, 8]},
+        {"x":9.75, "y":3.5, "matrix": [3, 9]},
+        {"x":10.75, "y":3.5, "matrix": [3, 10]},
+        {"x":11.75, "y":3.5, "matrix": [3, 11]},
+        {"x":12.75, "y":3.5, "matrix": [3, 12]},
+        {"x":13.75, "y":3.5, "w":1.25, "matrix": [3, 13]},
+
+        {"x":0, "y":4.5, "w":1.25, "matrix": [4, 0]},
+        {"x":1.25, "y":4.5, "matrix": [4, 1]},
+        {"x":2.25, "y":4.5, "matrix": [4, 2]},
+        {"x":3.25, "y":4.5, "matrix": [4, 3]},
+        {"x":4.25, "y":4.5, "matrix": [4, 4]},
+        {"x":5.25, "y":4.5, "matrix": [4, 5]},
+        {"x":6.25, "y":4.5, "matrix": [4, 6]},
+        {"x":7.25, "y":4.5, "matrix": [4, 7]},
+        {"x":8.25, "y":4.5, "matrix": [4, 8]},
+        {"x":9.25, "y":4.5, "matrix": [4, 9]},
+        {"x":10.25, "y":4.5, "matrix": [4, 10]},
+        {"x":11.25, "y":4.5, "matrix": [4, 11]},
+        {"x":12.25, "y":4.5, "w":1.75, "matrix": [4, 12]},
+        {"x":14, "y":4.5, "matrix": [4, 13]},
+
+        {"x":0, "y":5.5, "w":1.25, "matrix": [5, 0]},
+        {"x":1.25, "y":5.5, "w":1.25, "matrix": [5, 1]},
+        {"x":2.5, "y":5.5, "w":1.25, "matrix": [5, 2]},
+        {"x":3.75, "y":5.5, "w":6.25, "matrix": [5, 7]},
+        {"x":10, "y":5.5, "w":1.25, "matrix": [5, 10]},
+        {"x":11.25, "y":5.5, "w":1.25, "matrix": [5, 11]},
+        {"x":12.5, "y":5.5, "w":1.25, "matrix": [5, 12]},
+        {"x":13.75, "y":5.5, "w":1.25, "matrix": [5, 13]}
       ]
     },
 
     "LAYOUT_ansi_wk": {
       "layout": [
-        {"label":"K000", "x":0, "y":0}, 
-        {"label":"K001", "x":2, "y":0}, 
-        {"label":"K002", "x":3, "y":0}, 
-        {"label":"K003", "x":4, "y":0}, 
-        {"label":"K004", "x":5, "y":0}, 
-        {"label":"K005", "x":6.5, "y":0}, 
-        {"label":"K006", "x":7.5, "y":0}, 
-        {"label":"K007", "x":8.5, "y":0}, 
-        {"label":"K008", "x":9.5, "y":0}, 
-        {"label":"K009", "x":11, "y":0}, 
-        {"label":"K010", "x":12, "y":0}, 
-        {"label":"K011", "x":13, "y":0}, 
-        {"label":"K012", "x":14, "y":0}, 
-        {"label":"K100", "x":0, "y":1.5}, 
-        {"label":"K101", "x":1, "y":1.5}, 
-        {"label":"K102", "x":2, "y":1.5}, 
-        {"label":"K103", "x":3, "y":1.5}, 
-        {"label":"K104", "x":4, "y":1.5}, 
-        {"label":"K105", "x":5, "y":1.5}, 
-        {"label":"K106", "x":6, "y":1.5}, 
-        {"label":"K107", "x":7, "y":1.5}, 
-        {"label":"K108", "x":8, "y":1.5}, 
-        {"label":"K109", "x":9, "y":1.5}, 
-        {"label":"K110", "x":10, "y":1.5}, 
-        {"label":"K111", "x":11, "y":1.5}, 
-        {"label":"K112", "x":12, "y":1.5}, 
-        {"label":"K013", "x":13, "y":1.5, "w":2}, 
-        {"label":"K200", "x":0, "y":2.5, "w":1.5}, 
-        {"label":"K201", "x":1.5, "y":2.5}, 
-        {"label":"K202", "x":2.5, "y":2.5}, 
-        {"label":"K203", "x":3.5, "y":2.5}, 
-        {"label":"K204", "x":4.5, "y":2.5}, 
-        {"label":"K205", "x":5.5, "y":2.5}, 
-        {"label":"K206", "x":6.5, "y":2.5}, 
-        {"label":"K207", "x":7.5, "y":2.5}, 
-        {"label":"K208", "x":8.5, "y":2.5}, 
-        {"label":"K209", "x":9.5, "y":2.5}, 
-        {"label":"K210", "x":10.5, "y":2.5}, 
-        {"label":"K211", "x":11.5, "y":2.5}, 
-        {"label":"K212", "x":12.5, "y":2.5}, 
-        {"label":"K213", "x":13.5, "y":2.5, "w":1.5}, 
-        {"label":"K300", "x":0, "y":3.5, "w":1.75}, 
-        {"label":"K301", "x":1.75, "y":3.5}, 
-        {"label":"K302", "x":2.75, "y":3.5}, 
-        {"label":"K303", "x":3.75, "y":3.5}, 
-        {"label":"K304", "x":4.75, "y":3.5}, 
-        {"label":"K305", "x":5.75, "y":3.5}, 
-        {"label":"K306", "x":6.75, "y":3.5}, 
-        {"label":"K307", "x":7.75, "y":3.5}, 
-        {"label":"K308", "x":8.75, "y":3.5}, 
-        {"label":"K309", "x":9.75, "y":3.5}, 
-        {"label":"K310", "x":10.75, "y":3.5}, 
-        {"label":"K311", "x":11.75, "y":3.5}, 
-        {"label":"K313", "x":12.75, "y":3.5, "w":2.25}, 
-        {"label":"K400", "x":0, "y":4.5, "w":2.25}, 
-        {"label":"K402", "x":2.25, "y":4.5}, 
-        {"label":"K403", "x":3.25, "y":4.5}, 
-        {"label":"K404", "x":4.25, "y":4.5}, 
-        {"label":"K405", "x":5.25, "y":4.5}, 
-        {"label":"K406", "x":6.25, "y":4.5}, 
-        {"label":"K407", "x":7.25, "y":4.5}, 
-        {"label":"K408", "x":8.25, "y":4.5}, 
-        {"label":"K409", "x":9.25, "y":4.5}, 
-        {"label":"K410", "x":10.25, "y":4.5}, 
-        {"label":"K411", "x":11.25, "y":4.5}, 
-        {"label":"K412", "x":12.25, "y":4.5, "w":2.75}, 
-        {"label":"K500", "x":0, "y":5.5, "w":1.25}, 
-        {"label":"K501", "x":1.25, "y":5.5, "w":1.25}, 
-        {"label":"K502", "x":2.5, "y":5.5, "w":1.25}, 
-        {"label":"K507", "x":3.75, "y":5.5, "w":6.25}, 
-        {"label":"K510", "x":10, "y":5.5, "w":1.25}, 
-        {"label":"K511", "x":11.25, "y":5.5, "w":1.25}, 
-        {"label":"K512", "x":12.5, "y":5.5, "w":1.25}, 
-        {"label":"K513", "x":13.75, "y":5.5, "w":1.25}
+        {"x":0, "y":0, "matrix": [0, 0]},
+
+        {"x":2, "y":0, "matrix": [0, 1]},
+        {"x":3, "y":0, "matrix": [0, 2]},
+        {"x":4, "y":0, "matrix": [0, 3]},
+        {"x":5, "y":0, "matrix": [0, 4]},
+
+        {"x":6.5, "y":0, "matrix": [0, 5]},
+        {"x":7.5, "y":0, "matrix": [0, 6]},
+        {"x":8.5, "y":0, "matrix": [0, 7]},
+        {"x":9.5, "y":0, "matrix": [0, 8]},
+
+        {"x":11, "y":0, "matrix": [0, 9]},
+        {"x":12, "y":0, "matrix": [0, 10]},
+        {"x":13, "y":0, "matrix": [0, 11]},
+        {"x":14, "y":0, "matrix": [0, 12]},
+
+        {"x":0, "y":1.5, "matrix": [1, 0]},
+        {"x":1, "y":1.5, "matrix": [1, 1]},
+        {"x":2, "y":1.5, "matrix": [1, 2]},
+        {"x":3, "y":1.5, "matrix": [1, 3]},
+        {"x":4, "y":1.5, "matrix": [1, 4]},
+        {"x":5, "y":1.5, "matrix": [1, 5]},
+        {"x":6, "y":1.5, "matrix": [1, 6]},
+        {"x":7, "y":1.5, "matrix": [1, 7]},
+        {"x":8, "y":1.5, "matrix": [1, 8]},
+        {"x":9, "y":1.5, "matrix": [1, 9]},
+        {"x":10, "y":1.5, "matrix": [1, 10]},
+        {"x":11, "y":1.5, "matrix": [1, 11]},
+        {"x":12, "y":1.5, "matrix": [1, 12]},
+        {"x":13, "y":1.5, "w":2, "matrix": [0, 13]},
+
+        {"x":0, "y":2.5, "w":1.5, "matrix": [2, 0]},
+        {"x":1.5, "y":2.5, "matrix": [2, 1]},
+        {"x":2.5, "y":2.5, "matrix": [2, 2]},
+        {"x":3.5, "y":2.5, "matrix": [2, 3]},
+        {"x":4.5, "y":2.5, "matrix": [2, 4]},
+        {"x":5.5, "y":2.5, "matrix": [2, 5]},
+        {"x":6.5, "y":2.5, "matrix": [2, 6]},
+        {"x":7.5, "y":2.5, "matrix": [2, 7]},
+        {"x":8.5, "y":2.5, "matrix": [2, 8]},
+        {"x":9.5, "y":2.5, "matrix": [2, 9]},
+        {"x":10.5, "y":2.5, "matrix": [2, 10]},
+        {"x":11.5, "y":2.5, "matrix": [2, 11]},
+        {"x":12.5, "y":2.5, "matrix": [2, 12]},
+        {"x":13.5, "y":2.5, "w":1.5, "matrix": [2, 13]},
+
+        {"x":0, "y":3.5, "w":1.75, "matrix": [3, 0]},
+        {"x":1.75, "y":3.5, "matrix": [3, 1]},
+        {"x":2.75, "y":3.5, "matrix": [3, 2]},
+        {"x":3.75, "y":3.5, "matrix": [3, 3]},
+        {"x":4.75, "y":3.5, "matrix": [3, 4]},
+        {"x":5.75, "y":3.5, "matrix": [3, 5]},
+        {"x":6.75, "y":3.5, "matrix": [3, 6]},
+        {"x":7.75, "y":3.5, "matrix": [3, 7]},
+        {"x":8.75, "y":3.5, "matrix": [3, 8]},
+        {"x":9.75, "y":3.5, "matrix": [3, 9]},
+        {"x":10.75, "y":3.5, "matrix": [3, 10]},
+        {"x":11.75, "y":3.5, "matrix": [3, 11]},
+        {"x":12.75, "y":3.5, "w":2.25, "matrix": [3, 13]},
+
+        {"x":0, "y":4.5, "w":2.25, "matrix": [4, 0]},
+        {"x":2.25, "y":4.5, "matrix": [4, 2]},
+        {"x":3.25, "y":4.5, "matrix": [4, 3]},
+        {"x":4.25, "y":4.5, "matrix": [4, 4]},
+        {"x":5.25, "y":4.5, "matrix": [4, 5]},
+        {"x":6.25, "y":4.5, "matrix": [4, 6]},
+        {"x":7.25, "y":4.5, "matrix": [4, 7]},
+        {"x":8.25, "y":4.5, "matrix": [4, 8]},
+        {"x":9.25, "y":4.5, "matrix": [4, 9]},
+        {"x":10.25, "y":4.5, "matrix": [4, 10]},
+        {"x":11.25, "y":4.5, "matrix": [4, 11]},
+        {"x":12.25, "y":4.5, "w":2.75, "matrix": [4, 12]},
+
+        {"x":0, "y":5.5, "w":1.25, "matrix": [5, 0]},
+        {"x":1.25, "y":5.5, "w":1.25, "matrix": [5, 1]},
+        {"x":2.5, "y":5.5, "w":1.25, "matrix": [5, 2]},
+        {"x":3.75, "y":5.5, "w":6.25, "matrix": [5, 7]},
+        {"x":10, "y":5.5, "w":1.25, "matrix": [5, 10]},
+        {"x":11.25, "y":5.5, "w":1.25, "matrix": [5, 11]},
+        {"x":12.5, "y":5.5, "w":1.25, "matrix": [5, 12]},
+        {"x":13.75, "y":5.5, "w":1.25, "matrix": [5, 13]}
       ]
     },
  
     "LAYOUT_ansi_wkl": {
       "layout": [
-        {"label":"K000", "x":0, "y":0}, 
-        {"label":"K001", "x":2, "y":0}, 
-        {"label":"K002", "x":3, "y":0}, 
-        {"label":"K003", "x":4, "y":0}, 
-        {"label":"K004", "x":5, "y":0}, 
-        {"label":"K005", "x":6.5, "y":0}, 
-        {"label":"K006", "x":7.5, "y":0}, 
-        {"label":"K007", "x":8.5, "y":0}, 
-        {"label":"K008", "x":9.5, "y":0}, 
-        {"label":"K009", "x":11, "y":0}, 
-        {"label":"K010", "x":12, "y":0}, 
-        {"label":"K011", "x":13, "y":0}, 
-        {"label":"K012", "x":14, "y":0}, 
-        {"label":"K100", "x":0, "y":1.5}, 
-        {"label":"K101", "x":1, "y":1.5}, 
-        {"label":"K102", "x":2, "y":1.5}, 
-        {"label":"K103", "x":3, "y":1.5}, 
-        {"label":"K104", "x":4, "y":1.5}, 
-        {"label":"K105", "x":5, "y":1.5}, 
-        {"label":"K106", "x":6, "y":1.5}, 
-        {"label":"K107", "x":7, "y":1.5}, 
-        {"label":"K108", "x":8, "y":1.5}, 
-        {"label":"K109", "x":9, "y":1.5}, 
-        {"label":"K110", "x":10, "y":1.5}, 
-        {"label":"K111", "x":11, "y":1.5}, 
-        {"label":"K112", "x":12, "y":1.5}, 
-        {"label":"K013", "x":13, "y":1.5, "w":2}, 
-        {"label":"K200", "x":0, "y":2.5, "w":1.5}, 
-        {"label":"K201", "x":1.5, "y":2.5}, 
-        {"label":"K202", "x":2.5, "y":2.5}, 
-        {"label":"K203", "x":3.5, "y":2.5}, 
-        {"label":"K204", "x":4.5, "y":2.5}, 
-        {"label":"K205", "x":5.5, "y":2.5}, 
-        {"label":"K206", "x":6.5, "y":2.5}, 
-        {"label":"K207", "x":7.5, "y":2.5}, 
-        {"label":"K208", "x":8.5, "y":2.5}, 
-        {"label":"K209", "x":9.5, "y":2.5}, 
-        {"label":"K210", "x":10.5, "y":2.5}, 
-        {"label":"K211", "x":11.5, "y":2.5}, 
-        {"label":"K212", "x":12.5, "y":2.5}, 
-        {"label":"K213", "x":13.5, "y":2.5, "w":1.5}, 
-        {"label":"K300", "x":0, "y":3.5, "w":1.75}, 
-        {"label":"K301", "x":1.75, "y":3.5}, 
-        {"label":"K302", "x":2.75, "y":3.5}, 
-        {"label":"K303", "x":3.75, "y":3.5}, 
-        {"label":"K304", "x":4.75, "y":3.5}, 
-        {"label":"K305", "x":5.75, "y":3.5}, 
-        {"label":"K306", "x":6.75, "y":3.5}, 
-        {"label":"K307", "x":7.75, "y":3.5}, 
-        {"label":"K308", "x":8.75, "y":3.5}, 
-        {"label":"K309", "x":9.75, "y":3.5}, 
-        {"label":"K310", "x":10.75, "y":3.5}, 
-        {"label":"K311", "x":11.75, "y":3.5}, 
-        {"label":"K313", "x":12.75, "y":3.5, "w":2.25}, 
-        {"label":"K400", "x":0, "y":4.5, "w":2.25}, 
-        {"label":"K402", "x":2.25, "y":4.5}, 
-        {"label":"K403", "x":3.25, "y":4.5}, 
-        {"label":"K404", "x":4.25, "y":4.5}, 
-        {"label":"K405", "x":5.25, "y":4.5}, 
-        {"label":"K406", "x":6.25, "y":4.5}, 
-        {"label":"K407", "x":7.25, "y":4.5}, 
-        {"label":"K408", "x":8.25, "y":4.5}, 
-        {"label":"K409", "x":9.25, "y":4.5}, 
-        {"label":"K410", "x":10.25, "y":4.5}, 
-        {"label":"K411", "x":11.25, "y":4.5}, 
-        {"label":"K412", "x":12.25, "y":4.5, "w":2.75}, 
-        {"label":"K500", "x":0, "y":5.5, "w":1.5}, 
-        {"label":"K502", "x":2.5, "y":5.5, "w":1.5}, 
-        {"label":"K507", "x":4, "y":5.5, "w":7}, 
-        {"label":"K511", "x":11, "y":5.5, "w":1.5}, 
-        {"label":"K513", "x":13.5, "y":5.5, "w":1.5}
+        {"x":0, "y":0, "matrix": [0, 0]},
+
+        {"x":2, "y":0, "matrix": [0, 1]},
+        {"x":3, "y":0, "matrix": [0, 2]},
+        {"x":4, "y":0, "matrix": [0, 3]},
+        {"x":5, "y":0, "matrix": [0, 4]},
+
+        {"x":6.5, "y":0, "matrix": [0, 5]},
+        {"x":7.5, "y":0, "matrix": [0, 6]},
+        {"x":8.5, "y":0, "matrix": [0, 7]},
+        {"x":9.5, "y":0, "matrix": [0, 8]},
+
+        {"x":11, "y":0, "matrix": [0, 9]},
+        {"x":12, "y":0, "matrix": [0, 10]},
+        {"x":13, "y":0, "matrix": [0, 11]},
+        {"x":14, "y":0, "matrix": [0, 12]},
+
+        {"x":0, "y":1.5, "matrix": [1, 0]},
+        {"x":1, "y":1.5, "matrix": [1, 1]},
+        {"x":2, "y":1.5, "matrix": [1, 2]},
+        {"x":3, "y":1.5, "matrix": [1, 3]},
+        {"x":4, "y":1.5, "matrix": [1, 4]},
+        {"x":5, "y":1.5, "matrix": [1, 5]},
+        {"x":6, "y":1.5, "matrix": [1, 6]},
+        {"x":7, "y":1.5, "matrix": [1, 7]},
+        {"x":8, "y":1.5, "matrix": [1, 8]},
+        {"x":9, "y":1.5, "matrix": [1, 9]},
+        {"x":10, "y":1.5, "matrix": [1, 10]},
+        {"x":11, "y":1.5, "matrix": [1, 11]},
+        {"x":12, "y":1.5, "matrix": [1, 12]},
+        {"x":13, "y":1.5, "w":2, "matrix": [0, 13]},
+
+        {"x":0, "y":2.5, "w":1.5, "matrix": [2, 0]},
+        {"x":1.5, "y":2.5, "matrix": [2, 1]},
+        {"x":2.5, "y":2.5, "matrix": [2, 2]},
+        {"x":3.5, "y":2.5, "matrix": [2, 3]},
+        {"x":4.5, "y":2.5, "matrix": [2, 4]},
+        {"x":5.5, "y":2.5, "matrix": [2, 5]},
+        {"x":6.5, "y":2.5, "matrix": [2, 6]},
+        {"x":7.5, "y":2.5, "matrix": [2, 7]},
+        {"x":8.5, "y":2.5, "matrix": [2, 8]},
+        {"x":9.5, "y":2.5, "matrix": [2, 9]},
+        {"x":10.5, "y":2.5, "matrix": [2, 10]},
+        {"x":11.5, "y":2.5, "matrix": [2, 11]},
+        {"x":12.5, "y":2.5, "matrix": [2, 12]},
+        {"x":13.5, "y":2.5, "w":1.5, "matrix": [2, 13]},
+
+        {"x":0, "y":3.5, "w":1.75, "matrix": [3, 0]},
+        {"x":1.75, "y":3.5, "matrix": [3, 1]},
+        {"x":2.75, "y":3.5, "matrix": [3, 2]},
+        {"x":3.75, "y":3.5, "matrix": [3, 3]},
+        {"x":4.75, "y":3.5, "matrix": [3, 4]},
+        {"x":5.75, "y":3.5, "matrix": [3, 5]},
+        {"x":6.75, "y":3.5, "matrix": [3, 6]},
+        {"x":7.75, "y":3.5, "matrix": [3, 7]},
+        {"x":8.75, "y":3.5, "matrix": [3, 8]},
+        {"x":9.75, "y":3.5, "matrix": [3, 9]},
+        {"x":10.75, "y":3.5, "matrix": [3, 10]},
+        {"x":11.75, "y":3.5, "matrix": [3, 11]},
+        {"x":12.75, "y":3.5, "w":2.25, "matrix": [3, 13]},
+
+        {"x":0, "y":4.5, "w":2.25, "matrix": [4, 0]},
+        {"x":2.25, "y":4.5, "matrix": [4, 2]},
+        {"x":3.25, "y":4.5, "matrix": [4, 3]},
+        {"x":4.25, "y":4.5, "matrix": [4, 4]},
+        {"x":5.25, "y":4.5, "matrix": [4, 5]},
+        {"x":6.25, "y":4.5, "matrix": [4, 6]},
+        {"x":7.25, "y":4.5, "matrix": [4, 7]},
+        {"x":8.25, "y":4.5, "matrix": [4, 8]},
+        {"x":9.25, "y":4.5, "matrix": [4, 9]},
+        {"x":10.25, "y":4.5, "matrix": [4, 10]},
+        {"x":11.25, "y":4.5, "matrix": [4, 11]},
+        {"x":12.25, "y":4.5, "w":2.75, "matrix": [4, 12]},
+
+        {"x":0, "y":5.5, "w":1.5, "matrix": [5, 0]},
+        {"x":2.5, "y":5.5, "w":1.5, "matrix": [5, 2]},
+        {"x":4, "y":5.5, "w":7, "matrix": [5, 7]},
+        {"x":11, "y":5.5, "w":1.5, "matrix": [5, 11]},
+        {"x":13.5, "y":5.5, "w":1.5, "matrix": [5, 13]}
       ]
     },
 
     "LAYOUT_iso_wk": {
       "layout": [
-        {"label":"K000", "x":0, "y":0}, 
-        {"label":"K001", "x":2, "y":0}, 
-        {"label":"K002", "x":3, "y":0}, 
-        {"label":"K003", "x":4, "y":0}, 
-        {"label":"K004", "x":5, "y":0}, 
-        {"label":"K005", "x":6.5, "y":0}, 
-        {"label":"K006", "x":7.5, "y":0}, 
-        {"label":"K007", "x":8.5, "y":0}, 
-        {"label":"K008", "x":9.5, "y":0}, 
-        {"label":"K009", "x":11, "y":0}, 
-        {"label":"K010", "x":12, "y":0}, 
-        {"label":"K011", "x":13, "y":0}, 
-        {"label":"K012", "x":14, "y":0}, 
-        {"label":"K100", "x":0, "y":1.5}, 
-        {"label":"K101", "x":1, "y":1.5}, 
-        {"label":"K102", "x":2, "y":1.5}, 
-        {"label":"K103", "x":3, "y":1.5}, 
-        {"label":"K104", "x":4, "y":1.5}, 
-        {"label":"K105", "x":5, "y":1.5}, 
-        {"label":"K106", "x":6, "y":1.5}, 
-        {"label":"K107", "x":7, "y":1.5}, 
-        {"label":"K108", "x":8, "y":1.5}, 
-        {"label":"K109", "x":9, "y":1.5}, 
-        {"label":"K110", "x":10, "y":1.5}, 
-        {"label":"K111", "x":11, "y":1.5}, 
-        {"label":"K112", "x":12, "y":1.5}, 
-        {"label":"K013", "x":13, "y":1.5, "w":2}, 
-        {"label":"K200", "x":0, "y":2.5, "w":1.5}, 
-        {"label":"K201", "x":1.5, "y":2.5}, 
-        {"label":"K202", "x":2.5, "y":2.5}, 
-        {"label":"K203", "x":3.5, "y":2.5}, 
-        {"label":"K204", "x":4.5, "y":2.5}, 
-        {"label":"K205", "x":5.5, "y":2.5}, 
-        {"label":"K206", "x":6.5, "y":2.5}, 
-        {"label":"K207", "x":7.5, "y":2.5}, 
-        {"label":"K208", "x":8.5, "y":2.5}, 
-        {"label":"K209", "x":9.5, "y":2.5}, 
-        {"label":"K210", "x":10.5, "y":2.5}, 
-        {"label":"K211", "x":11.5, "y":2.5}, 
-        {"label":"K212", "x":12.5, "y":2.5}, 
-        {"label":"K300", "x":0, "y":3.5, "w":1.75}, 
-        {"label":"K301", "x":1.75, "y":3.5}, 
-        {"label":"K302", "x":2.75, "y":3.5}, 
-        {"label":"K303", "x":3.75, "y":3.5}, 
-        {"label":"K304", "x":4.75, "y":3.5}, 
-        {"label":"K305", "x":5.75, "y":3.5}, 
-        {"label":"K306", "x":6.75, "y":3.5}, 
-        {"label":"K307", "x":7.75, "y":3.5}, 
-        {"label":"K308", "x":8.75, "y":3.5}, 
-        {"label":"K309", "x":9.75, "y":3.5}, 
-        {"label":"K310", "x":10.75, "y":3.5}, 
-        {"label":"K311", "x":11.75, "y":3.5}, 
-        {"label":"K312", "x":12.75, "y":3.5}, 
-        {"label":"K313", "x":13.75, "y":2.5, "w":1.25, "h":2}, 
-        {"label":"K400", "x":0, "y":4.5, "w":1.25}, 
-        {"label":"K401", "x":1.25, "y":4.5}, 
-        {"label":"K402", "x":2.25, "y":4.5}, 
-        {"label":"K403", "x":3.25, "y":4.5}, 
-        {"label":"K404", "x":4.25, "y":4.5}, 
-        {"label":"K405", "x":5.25, "y":4.5}, 
-        {"label":"K406", "x":6.25, "y":4.5}, 
-        {"label":"K407", "x":7.25, "y":4.5}, 
-        {"label":"K408", "x":8.25, "y":4.5}, 
-        {"label":"K409", "x":9.25, "y":4.5}, 
-        {"label":"K410", "x":10.25, "y":4.5}, 
-        {"label":"K411", "x":11.25, "y":4.5}, 
-        {"label":"K412", "x":12.25, "y":4.5, "w":2.75}, 
-        {"label":"K500", "x":0, "y":5.5, "w":1.25}, 
-        {"label":"K501", "x":1.25, "y":5.5, "w":1.25}, 
-        {"label":"K502", "x":2.5, "y":5.5, "w":1.25}, 
-        {"label":"K507", "x":3.75, "y":5.5, "w":6.25}, 
-        {"label":"K510", "x":10, "y":5.5, "w":1.25}, 
-        {"label":"K511", "x":11.25, "y":5.5, "w":1.25}, 
-        {"label":"K512", "x":12.5, "y":5.5, "w":1.25}, 
-        {"label":"K513", "x":13.75, "y":5.5, "w":1.25}
+        {"x":0, "y":0, "matrix": [0, 0]},
+
+        {"x":2, "y":0, "matrix": [0, 1]},
+        {"x":3, "y":0, "matrix": [0, 2]},
+        {"x":4, "y":0, "matrix": [0, 3]},
+        {"x":5, "y":0, "matrix": [0, 4]},
+
+        {"x":6.5, "y":0, "matrix": [0, 5]},
+        {"x":7.5, "y":0, "matrix": [0, 6]},
+        {"x":8.5, "y":0, "matrix": [0, 7]},
+        {"x":9.5, "y":0, "matrix": [0, 8]},
+
+        {"x":11, "y":0, "matrix": [0, 9]},
+        {"x":12, "y":0, "matrix": [0, 10]},
+        {"x":13, "y":0, "matrix": [0, 11]},
+        {"x":14, "y":0, "matrix": [0, 12]},
+
+        {"x":0, "y":1.5, "matrix": [1, 0]},
+        {"x":1, "y":1.5, "matrix": [1, 1]},
+        {"x":2, "y":1.5, "matrix": [1, 2]},
+        {"x":3, "y":1.5, "matrix": [1, 3]},
+        {"x":4, "y":1.5, "matrix": [1, 4]},
+        {"x":5, "y":1.5, "matrix": [1, 5]},
+        {"x":6, "y":1.5, "matrix": [1, 6]},
+        {"x":7, "y":1.5, "matrix": [1, 7]},
+        {"x":8, "y":1.5, "matrix": [1, 8]},
+        {"x":9, "y":1.5, "matrix": [1, 9]},
+        {"x":10, "y":1.5, "matrix": [1, 10]},
+        {"x":11, "y":1.5, "matrix": [1, 11]},
+        {"x":12, "y":1.5, "matrix": [1, 12]},
+        {"x":13, "y":1.5, "w":2, "matrix": [0, 13]},
+
+        {"x":0, "y":2.5, "w":1.5, "matrix": [2, 0]},
+        {"x":1.5, "y":2.5, "matrix": [2, 1]},
+        {"x":2.5, "y":2.5, "matrix": [2, 2]},
+        {"x":3.5, "y":2.5, "matrix": [2, 3]},
+        {"x":4.5, "y":2.5, "matrix": [2, 4]},
+        {"x":5.5, "y":2.5, "matrix": [2, 5]},
+        {"x":6.5, "y":2.5, "matrix": [2, 6]},
+        {"x":7.5, "y":2.5, "matrix": [2, 7]},
+        {"x":8.5, "y":2.5, "matrix": [2, 8]},
+        {"x":9.5, "y":2.5, "matrix": [2, 9]},
+        {"x":10.5, "y":2.5, "matrix": [2, 10]},
+        {"x":11.5, "y":2.5, "matrix": [2, 11]},
+        {"x":12.5, "y":2.5, "matrix": [2, 12]},
+
+        {"x":0, "y":3.5, "w":1.75, "matrix": [3, 0]},
+        {"x":1.75, "y":3.5, "matrix": [3, 1]},
+        {"x":2.75, "y":3.5, "matrix": [3, 2]},
+        {"x":3.75, "y":3.5, "matrix": [3, 3]},
+        {"x":4.75, "y":3.5, "matrix": [3, 4]},
+        {"x":5.75, "y":3.5, "matrix": [3, 5]},
+        {"x":6.75, "y":3.5, "matrix": [3, 6]},
+        {"x":7.75, "y":3.5, "matrix": [3, 7]},
+        {"x":8.75, "y":3.5, "matrix": [3, 8]},
+        {"x":9.75, "y":3.5, "matrix": [3, 9]},
+        {"x":10.75, "y":3.5, "matrix": [3, 10]},
+        {"x":11.75, "y":3.5, "matrix": [3, 11]},
+        {"x":12.75, "y":3.5, "matrix": [3, 12]},
+        {"x":13.75, "y":2.5, "w":1.25, "h":2, "matrix": [3, 13]},
+
+        {"x":0, "y":4.5, "w":1.25, "matrix": [4, 0]},
+        {"x":1.25, "y":4.5, "matrix": [4, 1]},
+        {"x":2.25, "y":4.5, "matrix": [4, 2]},
+        {"x":3.25, "y":4.5, "matrix": [4, 3]},
+        {"x":4.25, "y":4.5, "matrix": [4, 4]},
+        {"x":5.25, "y":4.5, "matrix": [4, 5]},
+        {"x":6.25, "y":4.5, "matrix": [4, 6]},
+        {"x":7.25, "y":4.5, "matrix": [4, 7]},
+        {"x":8.25, "y":4.5, "matrix": [4, 8]},
+        {"x":9.25, "y":4.5, "matrix": [4, 9]},
+        {"x":10.25, "y":4.5, "matrix": [4, 10]},
+        {"x":11.25, "y":4.5, "matrix": [4, 11]},
+        {"x":12.25, "y":4.5, "w":2.75, "matrix": [4, 12]},
+
+        {"x":0, "y":5.5, "w":1.25, "matrix": [5, 0]},
+        {"x":1.25, "y":5.5, "w":1.25, "matrix": [5, 1]},
+        {"x":2.5, "y":5.5, "w":1.25, "matrix": [5, 2]},
+        {"x":3.75, "y":5.5, "w":6.25, "matrix": [5, 7]},
+        {"x":10, "y":5.5, "w":1.25, "matrix": [5, 10]},
+        {"x":11.25, "y":5.5, "w":1.25, "matrix": [5, 11]},
+        {"x":12.5, "y":5.5, "w":1.25, "matrix": [5, 12]},
+        {"x":13.75, "y":5.5, "w":1.25, "matrix": [5, 13]}
       ]
     },
  
     "LAYOUT_iso_wkl": {
       "layout": [
-        {"label":"K000", "x":0, "y":0}, 
-        {"label":"K001", "x":2, "y":0}, 
-        {"label":"K002", "x":3, "y":0}, 
-        {"label":"K003", "x":4, "y":0}, 
-        {"label":"K004", "x":5, "y":0}, 
-        {"label":"K005", "x":6.5, "y":0}, 
-        {"label":"K006", "x":7.5, "y":0}, 
-        {"label":"K007", "x":8.5, "y":0}, 
-        {"label":"K008", "x":9.5, "y":0}, 
-        {"label":"K009", "x":11, "y":0}, 
-        {"label":"K010", "x":12, "y":0}, 
-        {"label":"K011", "x":13, "y":0}, 
-        {"label":"K012", "x":14, "y":0}, 
-        {"label":"K100", "x":0, "y":1.5}, 
-        {"label":"K101", "x":1, "y":1.5}, 
-        {"label":"K102", "x":2, "y":1.5}, 
-        {"label":"K103", "x":3, "y":1.5}, 
-        {"label":"K104", "x":4, "y":1.5}, 
-        {"label":"K105", "x":5, "y":1.5}, 
-        {"label":"K106", "x":6, "y":1.5}, 
-        {"label":"K107", "x":7, "y":1.5}, 
-        {"label":"K108", "x":8, "y":1.5}, 
-        {"label":"K109", "x":9, "y":1.5}, 
-        {"label":"K110", "x":10, "y":1.5}, 
-        {"label":"K111", "x":11, "y":1.5}, 
-        {"label":"K112", "x":12, "y":1.5}, 
-        {"label":"K013", "x":13, "y":1.5, "w":2}, 
-        {"label":"K200", "x":0, "y":2.5, "w":1.5}, 
-        {"label":"K201", "x":1.5, "y":2.5}, 
-        {"label":"K202", "x":2.5, "y":2.5}, 
-        {"label":"K203", "x":3.5, "y":2.5}, 
-        {"label":"K204", "x":4.5, "y":2.5}, 
-        {"label":"K205", "x":5.5, "y":2.5}, 
-        {"label":"K206", "x":6.5, "y":2.5}, 
-        {"label":"K207", "x":7.5, "y":2.5}, 
-        {"label":"K208", "x":8.5, "y":2.5}, 
-        {"label":"K209", "x":9.5, "y":2.5}, 
-        {"label":"K210", "x":10.5, "y":2.5}, 
-        {"label":"K211", "x":11.5, "y":2.5}, 
-        {"label":"K212", "x":12.5, "y":2.5}, 
-        {"label":"K300", "x":0, "y":3.5, "w":1.75}, 
-        {"label":"K301", "x":1.75, "y":3.5}, 
-        {"label":"K302", "x":2.75, "y":3.5}, 
-        {"label":"K303", "x":3.75, "y":3.5}, 
-        {"label":"K304", "x":4.75, "y":3.5}, 
-        {"label":"K305", "x":5.75, "y":3.5}, 
-        {"label":"K306", "x":6.75, "y":3.5}, 
-        {"label":"K307", "x":7.75, "y":3.5}, 
-        {"label":"K308", "x":8.75, "y":3.5}, 
-        {"label":"K309", "x":9.75, "y":3.5}, 
-        {"label":"K310", "x":10.75, "y":3.5}, 
-        {"label":"K311", "x":11.75, "y":3.5}, 
-        {"label":"K312", "x":12.75, "y":3.5}, 
-        {"label":"K313", "x":13.75, "y":2.5, "w":1.25, "h":2}, 
-        {"label":"K400", "x":0, "y":4.5, "w":1.25}, 
-        {"label":"K401", "x":1.25, "y":4.5}, 
-        {"label":"K402", "x":2.25, "y":4.5}, 
-        {"label":"K403", "x":3.25, "y":4.5}, 
-        {"label":"K404", "x":4.25, "y":4.5}, 
-        {"label":"K405", "x":5.25, "y":4.5}, 
-        {"label":"K406", "x":6.25, "y":4.5}, 
-        {"label":"K407", "x":7.25, "y":4.5}, 
-        {"label":"K408", "x":8.25, "y":4.5}, 
-        {"label":"K409", "x":9.25, "y":4.5}, 
-        {"label":"K410", "x":10.25, "y":4.5}, 
-        {"label":"K411", "x":11.25, "y":4.5}, 
-        {"label":"K412", "x":12.25, "y":4.5, "w":2.75}, 
-        {"label":"K500", "x":0, "y":5.5, "w":1.5}, 
-        {"label":"K502", "x":2.5, "y":5.5, "w":1.5}, 
-        {"label":"K507", "x":4, "y":5.5, "w":7}, 
-        {"label":"K511", "x":11, "y":5.5, "w":1.5}, 
-        {"label":"K513", "x":13.5, "y":5.5, "w":1.5}
+        {"x":0, "y":0, "matrix": [0, 0]},
+
+        {"x":2, "y":0, "matrix": [0, 1]},
+        {"x":3, "y":0, "matrix": [0, 2]},
+        {"x":4, "y":0, "matrix": [0, 3]},
+        {"x":5, "y":0, "matrix": [0, 4]},
+
+        {"x":6.5, "y":0, "matrix": [0, 5]},
+        {"x":7.5, "y":0, "matrix": [0, 6]},
+        {"x":8.5, "y":0, "matrix": [0, 7]},
+        {"x":9.5, "y":0, "matrix": [0, 8]},
+
+        {"x":11, "y":0, "matrix": [0, 9]},
+        {"x":12, "y":0, "matrix": [0, 10]},
+        {"x":13, "y":0, "matrix": [0, 11]},
+        {"x":14, "y":0, "matrix": [0, 12]},
+
+        {"x":0, "y":1.5, "matrix": [1, 0]},
+        {"x":1, "y":1.5, "matrix": [1, 1]},
+        {"x":2, "y":1.5, "matrix": [1, 2]},
+        {"x":3, "y":1.5, "matrix": [1, 3]},
+        {"x":4, "y":1.5, "matrix": [1, 4]},
+        {"x":5, "y":1.5, "matrix": [1, 5]},
+        {"x":6, "y":1.5, "matrix": [1, 6]},
+        {"x":7, "y":1.5, "matrix": [1, 7]},
+        {"x":8, "y":1.5, "matrix": [1, 8]},
+        {"x":9, "y":1.5, "matrix": [1, 9]},
+        {"x":10, "y":1.5, "matrix": [1, 10]},
+        {"x":11, "y":1.5, "matrix": [1, 11]},
+        {"x":12, "y":1.5, "matrix": [1, 12]},
+        {"x":13, "y":1.5, "w":2, "matrix": [0, 13]},
+
+        {"x":0, "y":2.5, "w":1.5, "matrix": [2, 0]},
+        {"x":1.5, "y":2.5, "matrix": [2, 1]},
+        {"x":2.5, "y":2.5, "matrix": [2, 2]},
+        {"x":3.5, "y":2.5, "matrix": [2, 3]},
+        {"x":4.5, "y":2.5, "matrix": [2, 4]},
+        {"x":5.5, "y":2.5, "matrix": [2, 5]},
+        {"x":6.5, "y":2.5, "matrix": [2, 6]},
+        {"x":7.5, "y":2.5, "matrix": [2, 7]},
+        {"x":8.5, "y":2.5, "matrix": [2, 8]},
+        {"x":9.5, "y":2.5, "matrix": [2, 9]},
+        {"x":10.5, "y":2.5, "matrix": [2, 10]},
+        {"x":11.5, "y":2.5, "matrix": [2, 11]},
+        {"x":12.5, "y":2.5, "matrix": [2, 12]},
+
+        {"x":0, "y":3.5, "w":1.75, "matrix": [3, 0]},
+        {"x":1.75, "y":3.5, "matrix": [3, 1]},
+        {"x":2.75, "y":3.5, "matrix": [3, 2]},
+        {"x":3.75, "y":3.5, "matrix": [3, 3]},
+        {"x":4.75, "y":3.5, "matrix": [3, 4]},
+        {"x":5.75, "y":3.5, "matrix": [3, 5]},
+        {"x":6.75, "y":3.5, "matrix": [3, 6]},
+        {"x":7.75, "y":3.5, "matrix": [3, 7]},
+        {"x":8.75, "y":3.5, "matrix": [3, 8]},
+        {"x":9.75, "y":3.5, "matrix": [3, 9]},
+        {"x":10.75, "y":3.5, "matrix": [3, 10]},
+        {"x":11.75, "y":3.5, "matrix": [3, 11]},
+        {"x":12.75, "y":3.5, "matrix": [3, 12]},
+        {"x":13.75, "y":2.5, "w":1.25, "h":2, "matrix": [3, 13]},
+
+        {"x":0, "y":4.5, "w":1.25, "matrix": [4, 0]},
+        {"x":1.25, "y":4.5, "matrix": [4, 1]},
+        {"x":2.25, "y":4.5, "matrix": [4, 2]},
+        {"x":3.25, "y":4.5, "matrix": [4, 3]},
+        {"x":4.25, "y":4.5, "matrix": [4, 4]},
+        {"x":5.25, "y":4.5, "matrix": [4, 5]},
+        {"x":6.25, "y":4.5, "matrix": [4, 6]},
+        {"x":7.25, "y":4.5, "matrix": [4, 7]},
+        {"x":8.25, "y":4.5, "matrix": [4, 8]},
+        {"x":9.25, "y":4.5, "matrix": [4, 9]},
+        {"x":10.25, "y":4.5, "matrix": [4, 10]},
+        {"x":11.25, "y":4.5, "matrix": [4, 11]},
+        {"x":12.25, "y":4.5, "w":2.75, "matrix": [4, 12]},
+
+        {"x":0, "y":5.5, "w":1.5, "matrix": [5, 0]},
+        {"x":2.5, "y":5.5, "w":1.5, "matrix": [5, 2]},
+        {"x":4, "y":5.5, "w":7, "matrix": [5, 7]},
+        {"x":11, "y":5.5, "w":1.5, "matrix": [5, 11]},
+        {"x":13.5, "y":5.5, "w":1.5, "matrix": [5, 13]}
       ]
     }
   }

+ 0 - 1
keyboards/toad/toad.c

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

+ 0 - 91
keyboards/toad/toad.h

@@ -1,91 +0,0 @@
-#ifndef TOAD
-#define TOAD
-
-#include "quantum.h"
-
-// 70% keyboard: default - all keys
-#define LAYOUT_all( \
-	K000,       K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,        \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K013,  \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,        \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,        \
-	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413,        \
-	K500, K501, K502,                         K507,             K510, K511, K512, K513         \
-) { \
-	{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
-	{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
-	{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \
-	{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \
-	{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413 }, \
-	{ K500, K501, K502, KC_NO,KC_NO,KC_NO,KC_NO,K507, KC_NO,KC_NO,K510, K511, K512, K513 }  \
-}
-
-// 70% keyboard: ANSI Winkey
-#define LAYOUT_ansi_wk( \
-	K000,       K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,  \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K013,  \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,  \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313,  \
-	K400,       K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412,        \
-	K500, K501, K502,                         K507,             K510, K511, K512, K513   \
-) { \
-	{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
-	{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO}, \
-	{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \
-	{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO,K313 }, \
-	{ K400, KC_NO,K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, KC_NO}, \
-	{ K500, K501, K502, KC_NO,KC_NO,KC_NO,KC_NO,K507, KC_NO,KC_NO,K510, K511, K512, K513 }  \
-}
-
-// 70% keyboard: ANSI Winkeyless
-#define LAYOUT_ansi_wkl( \
-	K000,       K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,  \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K013,  \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,  \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313,  \
-	K400,       K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412,        \
-	K500,       K502,                         K507,                   K511,       K513   \
-) { \
-	{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
-	{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO}, \
-	{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \
-	{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO,K313 }, \
-	{ K400, KC_NO,K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, KC_NO}, \
-	{ K500, KC_NO,K502, KC_NO,KC_NO,KC_NO,KC_NO,K507, KC_NO,KC_NO,KC_NO,K511, KC_NO,K513 }  \
-}
-
-// 70% keyboard: ISO Winkey
-#define LAYOUT_iso_wk( \
-	K000,       K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,  \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K013,  \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,        \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,  \
-	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412,        \
-	K500, K501, K502,                         K507,             K510, K511, K512, K513   \
-) { \
-	{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
-	{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO}, \
-	{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO}, \
-	{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \
-	{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, KC_NO}, \
-	{ K500, K501, K502, KC_NO,KC_NO,KC_NO,KC_NO,K507, KC_NO,KC_NO,K510, K511, K512, K513 }  \
-}
-
-// 70% keyboard: ISO Winkeyless
-#define LAYOUT_iso_wkl( \
-	K000,       K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,  \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K013,  \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,        \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,  \
-	K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412,        \
-	K500,       K502,                         K507,                   K511,       K513   \
-) { \
-	{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
-	{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO}, \
-	{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO}, \
-	{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \
-	{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, KC_NO}, \
-	{ K500, KC_NO,K502, KC_NO,KC_NO,KC_NO,KC_NO,K507, KC_NO,KC_NO,KC_NO,K511, KC_NO,K513 }  \
-}
-
-#endif

+ 1 - 1
keyboards/westm/westm68/rev1/rev1.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "rev1.h"
+#include "westm68.h"
 
 void board_init(void) {
     rgblight_toggle(); // Fixes if LEDs were off in the first place buggy LED turns on

+ 0 - 17
keyboards/westm/westm68/rev1/rev1.h

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

+ 0 - 17
keyboards/westm/westm68/rev2/rev2.c

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

+ 0 - 17
keyboards/westm/westm68/rev2/rev2.h

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

+ 1 - 1
keyboards/westm/westm9/rev1/rev1.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "rev1.h"
+#include "westm9.h"
 
 void board_init(void) {
     // Purely for fixing problem on prototype board

+ 0 - 17
keyboards/westm/westm9/rev1/rev1.h

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

+ 1 - 1
keyboards/westm/westm9/rev2/rev2.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "rev2.h"
+#include "westm9.h"
 
 void board_init(void) {
     SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; // DMA re-map, you may not need this depending on your 

+ 0 - 17
keyboards/westm/westm9/rev2/rev2.h

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

+ 2 - 0
keyboards/work_louder/micro/micro.h

@@ -1,6 +1,8 @@
 // Copyright 2022 Christopher Courtney, aka Drashna Jael're  (@drashna) <drashna@live.com>
 // SPDX-License-Identifier: GPL-2.0-or-later
 
+#pragma once
+
 #include "quantum.h"
 
 extern void work_louder_micro_led_1_on(void);

+ 1 - 1
keyboards/xelus/kangaroo/rev1/rev1.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "rev1.h"
+#include "kangaroo.h"
 
 void board_init(void) {
   SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;

+ 0 - 17
keyboards/xelus/kangaroo/rev1/rev1.h

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

Some files were not shown because too many files changed in this diff