Browse Source

Merge remote-tracking branch 'origin/develop' into xap

QMK Bot 3 years ago
parent
commit
966334f71b
100 changed files with 10121 additions and 13207 deletions
  1. 0 101
      keyboards/anomalykb/a65i/a65i.h
  2. 343 343
      keyboards/anomalykb/a65i/info.json
  3. 0 34
      keyboards/aurora65/aurora65.h
  4. 67 67
      keyboards/aurora65/info.json
  5. 0 157
      keyboards/aves65/aves65.h
  6. 654 654
      keyboards/aves65/info.json
  7. 272 272
      keyboards/buildakb/potato65/info.json
  8. 0 75
      keyboards/buildakb/potato65/potato65.h
  9. 67 67
      keyboards/buildakb/potato65hs/info.json
  10. 0 33
      keyboards/buildakb/potato65hs/potato65hs.h
  11. 0 0
      keyboards/cannonkeys/savage65/info.json
  12. 0 73
      keyboards/cannonkeys/savage65/savage65.h
  13. 274 274
      keyboards/capsunlocked/cu65/info.json
  14. 0 108
      keyboards/chaos65/chaos65.h
  15. 337 337
      keyboards/chaos65/info.json
  16. 564 564
      keyboards/cipulot/kawayo/info.json
  17. 0 153
      keyboards/cipulot/kawayo/kawayo.h
  18. 72 68
      keyboards/clawsome/sedan/info.json
  19. 0 32
      keyboards/clawsome/sedan/sedan.h
  20. 0 133
      keyboards/coseyfannitutti/discipline/discipline.h
  21. 572 572
      keyboards/coseyfannitutti/discipline/info.json
  22. 0 57
      keyboards/crazy_keyboard_68/crazy_keyboard_68.h
  23. 72 68
      keyboards/crazy_keyboard_68/info.json
  24. 0 89
      keyboards/cutie_club/keebcats/dougal/dougal.h
  25. 214 210
      keyboards/cutie_club/keebcats/dougal/info.json
  26. 0 0
      keyboards/doro67/multi/info.json
  27. 0 60
      keyboards/doro67/multi/multi.h
  28. 71 67
      keyboards/doro67/regular/info.json
  29. 0 32
      keyboards/doro67/regular/regular.h
  30. 71 67
      keyboards/doro67/rgb/info.json
  31. 1 2
      keyboards/doro67/rgb/rgb.c
  32. 0 32
      keyboards/doro67/rgb/rgb.h
  33. 0 135
      keyboards/draytronics/elise/elise.h
  34. 572 572
      keyboards/draytronics/elise/info.json
  35. 0 135
      keyboards/draytronics/elise_v2/elise_v2.h
  36. 572 572
      keyboards/draytronics/elise_v2/info.json
  37. 336 336
      keyboards/drewkeys/iskar/info.json
  38. 0 155
      keyboards/drewkeys/iskar/iskar.h
  39. 1 3
      keyboards/durgod/dgk6x/dgk6x.h
  40. 1 1
      keyboards/durgod/dgk6x/hades/hades.c
  41. 0 37
      keyboards/durgod/dgk6x/hades/hades.h
  42. 68 68
      keyboards/durgod/dgk6x/hades/info.json
  43. 0 33
      keyboards/dztech/duo_s/duo_s.h
  44. 73 1
      keyboards/dztech/duo_s/info.json
  45. 1 79
      keyboards/dztech/dz65rgb/info.json
  46. 79 1
      keyboards/dztech/dz65rgb/v1/info.json
  47. 1 1
      keyboards/dztech/dz65rgb/v1/v1.c
  48. 0 34
      keyboards/dztech/dz65rgb/v1/v1.h
  49. 79 1
      keyboards/dztech/dz65rgb/v2/info.json
  50. 1 1
      keyboards/dztech/dz65rgb/v2/v2.c
  51. 0 34
      keyboards/dztech/dz65rgb/v2/v2.h
  52. 79 1
      keyboards/dztech/dz65rgb/v3/info.json
  53. 1 1
      keyboards/dztech/dz65rgb/v3/v3.c
  54. 0 35
      keyboards/dztech/dz65rgb/v3/v3.h
  55. 0 222
      keyboards/eason/capsule65/capsule65.h
  56. 938 934
      keyboards/eason/capsule65/info.json
  57. 0 103
      keyboards/evyd13/eon65/eon65.h
  58. 363 363
      keyboards/evyd13/eon65/info.json
  59. 363 343
      keyboards/evyd13/ta65/info.json
  60. 0 82
      keyboards/evyd13/ta65/ta65.h
  61. 0 365
      keyboards/exclusive/e65/e65.h
  62. 0 1
      keyboards/exclusive/e65/info.json
  63. 0 69
      keyboards/exent/exent.h
  64. 210 210
      keyboards/exent/info.json
  65. 0 95
      keyboards/feels/feels65/feels65.h
  66. 342 342
      keyboards/feels/feels65/info.json
  67. 0 32
      keyboards/fjlabs/bks65/bks65.h
  68. 68 68
      keyboards/fjlabs/bks65/info.json
  69. 0 46
      keyboards/fjlabs/bks65solder/bks65solder.h
  70. 140 140
      keyboards/fjlabs/bks65solder/info.json
  71. 1 1
      keyboards/fjlabs/bolsa65/bolsa65.c
  72. 0 32
      keyboards/fjlabs/bolsa65/bolsa65.h
  73. 67 67
      keyboards/fjlabs/bolsa65/info.json
  74. 68 68
      keyboards/fjlabs/kyuu/info.json
  75. 0 32
      keyboards/fjlabs/kyuu/kyuu.h
  76. 68 68
      keyboards/fjlabs/ldk65/info.json
  77. 0 32
      keyboards/fjlabs/ldk65/ldk65.h
  78. 69 69
      keyboards/fjlabs/tf65rgbv2/info.json
  79. 0 32
      keyboards/fjlabs/tf65rgbv2/tf65rgbv2.h
  80. 362 342
      keyboards/flx/lodestone/info.json
  81. 0 93
      keyboards/flx/lodestone/lodestone.h
  82. 293 277
      keyboards/foxlab/key65/universal/info.json
  83. 0 75
      keyboards/foxlab/key65/universal/universal.h
  84. 342 342
      keyboards/ft/mars65/info.json
  85. 0 111
      keyboards/ft/mars65/mars65.h
  86. 0 36
      keyboards/genone/eclipse_65/eclipse_65.h
  87. 74 1
      keyboards/genone/eclipse_65/info.json
  88. 0 37
      keyboards/genone/g1_65/g1_65.h
  89. 74 1
      keyboards/genone/g1_65/info.json
  90. 206 208
      keyboards/gray_studio/space65/info.json
  91. 0 70
      keyboards/gray_studio/space65/space65.h
  92. 204 206
      keyboards/gray_studio/space65r3/info.json
  93. 0 57
      keyboards/gray_studio/space65r3/space65r3.h
  94. 0 35
      keyboards/gray_studio/think65/hotswap/hotswap.h
  95. 71 67
      keyboards/gray_studio/think65/hotswap/info.json
  96. 214 202
      keyboards/gray_studio/think65/solder/info.json
  97. 1 1
      keyboards/gray_studio/think65/solder/solder.c
  98. 0 63
      keyboards/gray_studio/think65/solder/solder.h
  99. 68 68
      keyboards/handwired/sick68/info.json
  100. 0 62
      keyboards/handwired/sick68/sick68.h

+ 0 - 101
keyboards/anomalykb/a65i/a65i.h

@@ -1,101 +0,0 @@
-/* Copyright 2021 Lfgberg
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_all( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E, K3F, \
-    K40, K41, K42,                     K47,           K4A, K4B,      K4D, K4E, K4F  \
-) \
-{ \
-    { K00, K01, K02, K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A, K0B, K0C,   K0D,   K0E, K0F }, \
-    { K10, K11, K12, K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A, K1B, K1C,   KC_NO, K1E, K1F }, \
-    { K20, K21, K22, K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A, K2B, K2C,   K2D,   K2E, K2F }, \
-    { K30, K31, K32, K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A, K3B, K3C,   KC_NO, K3E, K3F }, \
-    { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47,   KC_NO, KC_NO, K4A, K4B, KC_NO, K4D,   K4E, K4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,      K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D,      K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E, K3F, \
-    K40, K41, K42,                     K47,           K4A, K4B,      K4D, K4E, K4F  \
-) \
-{ \
-    { K00, K01,   K02, K03,   K04,   K05,   K06,   K07, K08,   K09,   K0A, K0B, K0C,   K0D,   KC_NO, K0F }, \
-    { K10, K11,   K12, K13,   K14,   K15,   K16,   K17, K18,   K19,   K1A, K1B, K1C,   KC_NO, K1E,   K1F }, \
-    { K20, K21,   K22, K23,   K24,   K25,   K26,   K27, K28,   K29,   K2A, K2B, KC_NO, K2D,   KC_NO, K2F }, \
-    { K30, KC_NO, K32, K33,   K34,   K35,   K36,   K37, K38,   K39,   K3A, K3B, K3C,   KC_NO, K3E,   K3F }, \
-    { K40, K41,   K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D,   K4E,   K4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D,      K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E, K3F, \
-    K40, K41, K42,                     K47,           K4A, K4B,      K4D, K4E, K4F  \
-) \
-{ \
-    { K00, K01,   K02, K03,   K04,   K05,   K06,   K07, K08,   K09,   K0A, K0B, K0C,   K0D,   K0E,   K0F }, \
-    { K10, K11,   K12, K13,   K14,   K15,   K16,   K17, K18,   K19,   K1A, K1B, K1C,   KC_NO, K1E,   K1F }, \
-    { K20, K21,   K22, K23,   K24,   K25,   K26,   K27, K28,   K29,   K2A, K2B, KC_NO, K2D,   KC_NO, K2F }, \
-    { K30, KC_NO, K32, K33,   K34,   K35,   K36,   K37, K38,   K39,   K3A, K3B, K3C,   KC_NO, K3E,   K3F }, \
-    { K40, K41,   K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D,   K4E,   K4F }, \
-}
-
-#define LAYOUT_65_iso_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,      K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,           K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E, K3F, \
-    K40, K41, K42,                     K47,           K4A, K4B,      K4D, K4E, K4F  \
-) \
-{ \
-    { K00, K01, K02, K03,   K04,   K05,   K06,   K07, K08,   K09,   K0A, K0B, K0C,   K0D,   KC_NO, K0F }, \
-    { K10, K11, K12, K13,   K14,   K15,   K16,   K17, K18,   K19,   K1A, K1B, K1C,   KC_NO, KC_NO, K1F }, \
-    { K20, K21, K22, K23,   K24,   K25,   K26,   K27, K28,   K29,   K2A, K2B, K2C,   KC_NO, K2E,   K2F }, \
-    { K30, K31, K32, K33,   K34,   K35,   K36,   K37, K38,   K39,   K3A, K3B, K3C,   KC_NO, K3E,   K3F }, \
-    { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D,   K4E,   K4F }, \
-}
-
-#define LAYOUT_65_iso_blocker_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,           K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      K3E, K3F, \
-    K40, K41, K42,                     K47,           K4A, K4B,      K4D, K4E, K4F  \
-) \
-{ \
-    { K00, K01, K02, K03,   K04,   K05,   K06,   K07, K08,   K09,   K0A, K0B, K0C,   K0D,   K0E,   K0F }, \
-    { K10, K11, K12, K13,   K14,   K15,   K16,   K17, K18,   K19,   K1A, K1B, K1C,   KC_NO, KC_NO, K1F }, \
-    { K20, K21, K22, K23,   K24,   K25,   K26,   K27, K28,   K29,   K2A, K2B, K2C,   KC_NO, K2E,   K2F }, \
-    { K30, K31, K32, K33,   K34,   K35,   K36,   K37, K38,   K39,   K3A, K3B, K3C,   KC_NO, K3E,   K3F }, \
-    { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D,   K4E,   K4F }, \
-}

+ 343 - 343
keyboards/anomalykb/a65i/info.json

@@ -23,385 +23,385 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                {"label":"Esc", "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":"~", "x":13, "y":0},
-                {"label":"Back", "x":14, "y":0},
-                {"label":"Print", "x":15, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "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":"PgUp", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"ISO #/~", "x":16.25, "y":2},
-                {"label":"ANSI Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"ISO Enter", "x":17.25, "y":1, "w":1.25, "h":2},
-                {"label":"PgDn", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 16.25, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 17.25, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"ISO \\/|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"Delete", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-                {"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},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker": {
             "layout": [
-                {"label":"Esc", "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":"Print", "x":15, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "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":"PgUp", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"PgDn", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"Delete", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-                {"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},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker_split_bs": {
             "layout": [
-                {"label":"Esc", "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":"~", "x":13, "y":0},
-                {"label":"Back", "x":14, "y":0},
-                {"label":"Print", "x":15, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "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":"PgUp", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"PgDn", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"Delete", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-                {"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},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker": {
             "layout": [
-                {"label":"Esc", "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":"Print", "x":15, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "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":"PgUp", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 15], "x": 15, "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":"PgDn", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"Delete", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-                {"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},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker_split_bs": {
             "layout": [
-                {"label":"Esc", "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":"~", "x":13, "y":0},
-                {"label":"Back", "x":14, "y":0},
-                {"label":"Print", "x":15, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "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":"PgUp", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 15], "x": 15, "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":"PgDn", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"Delete", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-                {"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},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 34
keyboards/aurora65/aurora65.h

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

+ 67 - 67
keyboards/aurora65/info.json

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

+ 0 - 157
keyboards/aves65/aves65.h

@@ -1,157 +0,0 @@
-/*
-Copyright 2019 I/O Keyboards <hello@iokeyboards.eu>
-
-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"
-
-// readability
-#define ___ KC_NO
-
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,           k4a, k4b, k49, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e }  \
-}
-
-#define LAYOUT_65_iso( \
-    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, k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,           k4a, k4b, k49, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e }  \
-}
-
-#define LAYOUT_65_iso_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, 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, k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,           k4a, k4b, k49, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e }  \
-}
-
-#define LAYOUT_65_iso_blocker( \
-    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, k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,                k4a, k4b, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e }  \
-}
-
-#define LAYOUT_65_iso_blocker_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, 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, k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,                k4a, k4b, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e }  \
-}
-
-#define LAYOUT_65_ansi( \
-    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, k2c, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, k2e, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,           k4a, k4b, k49, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e }  \
-}
-
-#define LAYOUT_65_ansi_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, k2e, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,           k4a, k4b, k49, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e }  \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-    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, k2c, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, k2e, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,                k4a, k4b, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e }  \
-}
-
-#define LAYOUT_65_ansi_blocker_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, k2e, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,                k4a, k4b, k4c, k4d, k4e  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e }  \
-}

+ 654 - 654
keyboards/aves65/info.json

@@ -23,692 +23,692 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k1d", "x":13, "y":0},
-                {"label":"k0d", "x":14, "y":0},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k2c", "x":13.5, "y":1, "w":1.5},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2d", "x":12.75, "y":2, "w":2.25},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":1.25},
-                {"label":"k31", "x":1.25, "y":3},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4},
-                {"label":"k4b", "x":11, "y":4},
-                {"label":"k49", "x":12, "y":4},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 9], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k0d", "x":13, "y":0, "w":2},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2c", "x":12.75, "y":2},
-                {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":1.25},
-                {"label":"k31", "x":1.25, "y":3},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4},
-                {"label":"k4b", "x":11, "y":4},
-                {"label":"k49", "x":12, "y":4},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 9], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_split_bs": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k1d", "x":13, "y":0},
-                {"label":"k0d", "x":14, "y":0},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2c", "x":12.75, "y":2},
-                {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":1.25},
-                {"label":"k31", "x":1.25, "y":3},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4},
-                {"label":"k4b", "x":11, "y":4},
-                {"label":"k49", "x":12, "y":4},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 9], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k0d", "x":13, "y":0, "w":2},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2c", "x":12.75, "y":2},
-                {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":1.25},
-                {"label":"k31", "x":1.25, "y":3},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4, "w":1.25},
-                {"label":"k4b", "x":11.25, "y":4, "w":1.25},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker_split_bs": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k1d", "x":13, "y":0},
-                {"label":"k0d", "x":14, "y":0},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2c", "x":12.75, "y":2},
-                {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":1.25},
-                {"label":"k31", "x":1.25, "y":3},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4, "w":1.25},
-                {"label":"k4b", "x":11.25, "y":4, "w":1.25},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k0d", "x":13, "y":0, "w":2},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k2c", "x":13.5, "y":1, "w":1.5},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2d", "x":12.75, "y":2, "w":2.25},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":2.25},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4},
-                {"label":"k4b", "x":11, "y":4},
-                {"label":"k49", "x":12, "y":4},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 9], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_split_bs": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k1d", "x":13, "y":0},
-                {"label":"k0d", "x":14, "y":0},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k2c", "x":13.5, "y":1, "w":1.5},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2d", "x":12.75, "y":2, "w":2.25},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":2.25},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4},
-                {"label":"k4b", "x":11, "y":4},
-                {"label":"k49", "x":12, "y":4},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 9], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k0d", "x":13, "y":0, "w":2},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k2c", "x":13.5, "y":1, "w":1.5},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2d", "x":12.75, "y":2, "w":2.25},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":2.25},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4, "w":1.25},
-                {"label":"k4b", "x":11.25, "y":4, "w":1.25},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker_split_bs": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k1d", "x":13, "y":0},
-                {"label":"k0d", "x":14, "y":0},
-                {"label":"k0e", "x":15, "y":0},
-
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k2c", "x":13.5, "y":1, "w":1.5},
-                {"label":"k1e", "x":15, "y":1},
-
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k21", "x":1.75, "y":2},
-                {"label":"k22", "x":2.75, "y":2},
-                {"label":"k23", "x":3.75, "y":2},
-                {"label":"k24", "x":4.75, "y":2},
-                {"label":"k25", "x":5.75, "y":2},
-                {"label":"k26", "x":6.75, "y":2},
-                {"label":"k27", "x":7.75, "y":2},
-                {"label":"k28", "x":8.75, "y":2},
-                {"label":"k29", "x":9.75, "y":2},
-                {"label":"k2a", "x":10.75, "y":2},
-                {"label":"k2b", "x":11.75, "y":2},
-                {"label":"k2d", "x":12.75, "y":2, "w":2.25},
-                {"label":"k2e", "x":15, "y":2},
-
-                {"label":"k30", "x":0, "y":3, "w":2.25},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k42", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k4a", "x":10, "y":4, "w":1.25},
-                {"label":"k4b", "x":11.25, "y":4, "w":1.25},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 272 - 272
keyboards/buildakb/potato65/info.json

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

+ 0 - 75
keyboards/buildakb/potato65/potato65.h

@@ -1,75 +0,0 @@
-/* Copyright 2021 Maelkk
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_65_ansi_split_bs( \
-    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, k115, \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,             k213, k215, \
-    k300,       k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,       k312, k313, k315, \
-    k400, k401, k402,                   k406,                   k409, k410, k411, k412, k413, k415  \
-) { \
-    { 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,  KC_NO, k115 }, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO, k215 }, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  k312,  k313,  KC_NO, k315 }, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, k406,  KC_NO, KC_NO, k409,  k410,  k411,  k412,  k413,  KC_NO, k415 }  \
-}
-
-#define LAYOUT_65_ansi( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012,       k014, k015, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,       k113, k115, \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,             k213, k215, \
-    k300,       k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,       k312, k313, k315, \
-    k400, k401, k402,                   k406,                   k409, k410, k411, k412, k413, k415  \
-) { \
-    { k000,  k001,  k002,  k003,  k004,  k005,  k006,  k007,  k008,  k009,  k010,  k011,  k012,  KC_NO, k014,  k015 }, \
-    { k100,  k101,  k102,  k103,  k104,  k105,  k106,  k107,  k108,  k109,  k110,  k111,  k112,  k113,  KC_NO, k115 }, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO, k215 }, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  k312,  k313,  KC_NO, k315 }, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, k406,  KC_NO, KC_NO, k409,  k410,  k411,  k412,  k413,  KC_NO, k415 }  \
-}
-
-#define LAYOUT_65_ansi_split_bs_2_right_mods( \
-    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, k115, \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,             k213, k215, \
-    k300,       k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,       k312, k313, k315, \
-    k400, k401, k402,                   k406,                   k409,       k411, k412, k413, k415  \
-) { \
-    { 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,  KC_NO, k115 }, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO, k215 }, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  k312,  k313,  KC_NO, k315 }, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, k406,  KC_NO, KC_NO, k409,  KC_NO, k411,  k412,  k413,  KC_NO, k415 }  \
-}
-
-#define LAYOUT_65_ansi_2_right_mods( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012,       k014, k015, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,       k113, k115, \
-    k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,             k213, k215, \
-    k300,       k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,       k312, k313, k315, \
-    k400, k401, k402,                   k406,                   k409,       k411, k412, k413, k415  \
-) { \
-    { k000,  k001,  k002,  k003,  k004,  k005,  k006,  k007,  k008,  k009,  k010,  k011,  k012,  KC_NO, k014,  k015 }, \
-    { k100,  k101,  k102,  k103,  k104,  k105,  k106,  k107,  k108,  k109,  k110,  k111,  k112,  k113,  KC_NO, k115 }, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO, k215 }, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  k312,  k313,  KC_NO, k315 }, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, k406,  KC_NO, KC_NO, k409,  KC_NO, k411,  k412,  k413,  KC_NO, k415 }  \
-}

+ 67 - 67
keyboards/buildakb/potato65hs/info.json

@@ -19,77 +19,77 @@
     "layouts": {
         "LAYOUT_65_ansi_blocker": {
             "layout": [
-                { "x":0, "y":0 },
-                { "x":1, "y":0 },
-                { "x":2, "y":0 },
-                { "x":3, "y":0 },
-                { "x":4, "y":0 },
-                { "x":5, "y":0 },
-                { "x":6, "y":0 },
-                { "x":7, "y":0 },
-                { "x":8, "y":0 },
-                { "x":9, "y":0 },
-                { "x":10, "y":0 },
-                { "x":11, "y":0 },
-                { "x":12, "y":0 },
-                { "x":13, "y":0, "w": 2 },
-                { "x":15, "y":0 },
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
 
-                { "x":0, "y":1, "w":1.5 },
-                { "x":1.5, "y":1 },
-                { "x":2.5, "y":1 },
-                { "x":3.5, "y":1 },
-                { "x":4.5, "y":1 },
-                { "x":5.5, "y":1 },
-                { "x":6.5, "y":1 },
-                { "x":7.5, "y":1 },
-                { "x":8.5, "y":1 },
-                { "x":9.5, "y":1 },
-                { "x":10.5, "y":1 },
-                { "x":11.5, "y":1 },
-                { "x":12.5, "y":1 },
-                { "x":13.5, "y":1, "w":1.5 },
-                { "x":15, "y":1 },
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                { "x":0, "y":2, "w":1.75 },
-                { "x":1.75, "y":2 },
-                { "x":2.75, "y":2 },
-                { "x":3.75, "y":2 },
-                { "x":4.75, "y":2 },
-                { "x":5.75, "y":2 },
-                { "x":6.75, "y":2 },
-                { "x":7.75, "y":2 },
-                { "x":8.75, "y":2 },
-                { "x":9.75, "y":2 },
-                { "x":10.75, "y":2 },
-                { "x":11.75, "y":2 },
-                { "x":12.75, "y":2, "w":2.25 },
-                { "x":15, "y":2 },
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                { "x":0, "y":3, "w":2.25 },
-                { "x":2.25, "y":3 },
-                { "x":3.25, "y":3 },
-                { "x":4.25, "y":3 },
-                { "x":5.25, "y":3 },
-                { "x":6.25, "y":3 },
-                { "x":7.25, "y":3 },
-                { "x":8.25, "y":3 },
-                { "x":9.25, "y":3 },
-                { "x":10.25, "y":3 },
-                { "x":11.25, "y":3 },
-                { "x":12.25, "y":3, "w":1.75 },
-                { "x":14, "y":3 },
-                { "x":15, "y":3 },
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                { "x":0, "y":4, "w":1.25 },
-                { "x":1.25, "y":4, "w":1.25 },
-                { "x":2.5, "y":4, "w":1.25 },
-                { "x":3.75, "y":4, "w":6.25 },
-                { "x":10, "y":4, "w":1.25 },
-                { "x":11.25, "y":4, "w":1.25 },
-                { "x":13, "y":4 },
-                { "x":14, "y":4 },
-                { "x":15, "y":4 }
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 33
keyboards/buildakb/potato65hs/potato65hs.h

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

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


+ 0 - 73
keyboards/cannonkeys/savage65/savage65.h

@@ -1,73 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_default( \
-	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,       K115, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,       K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
-	K400, K401, K402,                   K406,                   K410, K411, K412, K413,       K415  \
-) { \
-	{ 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,  KC_NO, K115 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  KC_NO, K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO,  K410,  K411,  K412,  K413,  KC_NO, K415 }  \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113,       K115, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,       K213,       K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
-	K400, K401, K402,                   K406,                   K410, K411, K412, K413,       K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO, K015 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  KC_NO, K115 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  KC_NO, K213,  KC_NO, K215 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO,  K410,  K411,  K412,  K413,  KC_NO, K415 }  \
-}
-
-#define LAYOUT_65_ansi_blocker_split_bs( \
-	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,       K115, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,       K213,       K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
-	K400, K401, K402,                   K406,                   K410, K411, K412, K413,       K415  \
-) { \
-	{ 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,  KC_NO, K115 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  KC_NO, K213,  KC_NO, K215 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO,  K410,  K411,  K412,  K413,  KC_NO, K415 }  \
-}
-
-#define LAYOUT_65_ansi_blocker_tsangan( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113,       K115, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,       K213,       K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
-	K400, K401, K402,                   K406,                         K411, K412, K413,       K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO, K015 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  KC_NO, K115 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  KC_NO, K213,  KC_NO, K215 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO,  KC_NO, K411,  K412,  K413,  KC_NO, K415 }  \
-}
-
-#define LAYOUT_65_iso_blocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,             K115, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,       K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
-	K400, K401, K402,                   K406,                   K410, K411, K412, K413,       K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO, K015 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, KC_NO, K115 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  KC_NO, K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO,  K410,  K411,  K412,  K413,  KC_NO, K415 }  \
-}

+ 274 - 274
keyboards/capsunlocked/cu65/info.json

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

+ 0 - 108
keyboards/chaos65/chaos65.h

@@ -1,108 +0,0 @@
-/* Copyright 2022 kb-elmo<mail@elmo.space>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-/*
- *              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐    ┌───────┐
- *              │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │48 │0E │    │0D     │ 2u Backspace
- *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤    └─┬─────┤
- *              │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D   │1E │      │     │
- *  2.25u       ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤   ┌──┴┐2C  │ ISO Enter
- *  LShift      │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C      │2D │   │1D │    │
- * ┌────────┐   ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤   └───┴────┘
- * │30      │   │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C    │3D │3E │
- * └────────┘   ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- *              │40  │41  │42  │46                      │4A  │4B  │ │4C │4D │4E │
- *              └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- *              ┌─────┬───┬─────┬───────────────────────────┬─────┬─┬───┬───┬───┐
- *              │40   │41 │42   │46                         │4A   │ │4C │4D │4E │ Tsangan
- *              └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘
- */
-
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k48, k0E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,      k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,    k2C,        k2D, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C,      k3D, k3E, \
-    k40, k41, k42,                k46,                k4A, k4B,      k4C, k4D, k4E  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, k48, ___, k4A, k4B, k4C, k4D, k4E }  \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,    k2C,   k2D, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
-    k40, k41, k42,                k46,                k4A, k4B, k4C, k4D, k4E  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, k4E }  \
-}
-
-#define LAYOUT_65_ansi_blocker_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,    k2C,   k2D, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
-    k40, k41, k42,                k46,                     k4A, k4C, k4D, k4E  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, ___, k4C, k4D, k4E }  \
-}
-
-#define LAYOUT_65_iso_blocker( \
-    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, k1D, k2C, k2D, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
-    k40, k41, k42,                k46,                k4A, k4B, k4C, k4D, k4E  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, k4E }  \
-}
-
-#define LAYOUT_65_iso_blocker_tsangan( \
-    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, k1D, k2C, k2D, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
-    k40, k41, k42,                k46,                     k4A, k4C, k4D, k4E  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, ___, k4C, k4D, k4E }  \
-}

+ 337 - 337
keyboards/chaos65/info.json

@@ -19,379 +19,379 @@
     "layouts": {
         "LAYOUT_all": {
             "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},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Delete", "x":15, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [4, 8], "x": 14, "y": 0},
+                {"matrix": [0, 14], "x": 15, "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":"End", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"Page Up", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"Page Down", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "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}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "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":"End", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"Page Up", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"Page Down", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "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}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "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":"End", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"Page Up", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"Page Down", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "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}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2\"", "x":2, "y":0},
-                {"label":"3\u00a3", "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "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":"End", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "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":"Page Up", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [1, 13], "x": 12.75, "y": 2},
+                {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 13], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"Page Down", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "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}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker_tsangan": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2\"", "x":2, "y":0},
-                {"label":"3\u00a3", "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "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":"End", "x":15, "y":1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "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":"Page Up", "x":15, "y":2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [1, 13], "x": 12.75, "y": 2},
+                {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 13], "x": 15, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"Page Down", "x":15, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "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}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 564 - 564
keyboards/cipulot/kawayo/info.json

@@ -22,598 +22,598 @@
     "layouts": {
         "LAYOUT_65_ansi_blocker": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
-                {"label":"", "x":15, "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":"Fn", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+                {"matrix": [2, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4},
+                {"matrix": [4, 13], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker_split_bs": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Home", "x":15, "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":"Page Up", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"Page Down", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"End", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [2, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4},
+                {"matrix": [4, 13], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker_tsangan": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
-                {"label":"Home", "x":15, "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":"Page Up", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"Page Down", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"End", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+                {"matrix": [2, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4},
+                {"matrix": [4, 13], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker_tsangan_split_bs": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Home", "x":15, "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":"Page Up", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"Page Down", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"End", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [2, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4},
+                {"matrix": [4, 13], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_cb_blocker": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":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":"Fn", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"GUI", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4},
+                {"matrix": [4, 13], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_cb_blocker_split_bs": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0},
-                {"label":"Backspace", "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":"Fn", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"GUI", "x":11.25, "y":4, "w":1.25},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4},
+                {"matrix": [4, 13], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_cb_blocker_tsangan": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":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":"Fn", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4},
+                {"matrix": [4, 13], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_cb_blocker_tsangan_split_bs": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0},
-                {"label":"Backspace", "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":"Fn", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Up", "x":14, "y":3},
-                {"label":"", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Left", "x":13, "y":4},
-                {"label":"Down", "x":14, "y":4},
-                {"label":"Right", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 13], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 12], "x": 14, "y": 4},
+                {"matrix": [4, 13], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 153
keyboards/cipulot/kawayo/kawayo.h

@@ -1,153 +0,0 @@
-/* Copyright 2022 Cipulot
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-/*
- *                                                     ┌───────┐
- *                                        2u Backspace │0E     │▒▒▒  Corner Blocker (CB)
- *                                                     └───────┴────
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │2E │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D   │1E │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C      │2D │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │30      │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B    │3C │3D │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │40  │41  │42  │45                      │49  │4A  │ │4B │4C │4D │
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- * ┌─────┬───┬─────┬───────────────────────────┬─────┐
- * │40   │41 │42   │45                         │4A   │ Blocker Tsangan
- * └─────┴───┴─────┴───────────────────────────┴─────┘
- */
-
-#define LAYOUT_65_ansi_blocker( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,   k0E,    k2E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,           k2C, k2D, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, k3D, \
-    k40, k41, k42,           k45,                k49, k4A,           k4B, k4C, k4D  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, k49, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_65_ansi_blocker_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k2E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,           k2C, k2D, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, k3D, \
-    k40, k41, k42,           k45,                k49, k4A,           k4B, k4C, k4D  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, k49, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_65_ansi_blocker_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,   k0E,    k2E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,           k2C, k2D, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, k3D, \
-    k40, k41, k42,           k45,                     k4A,           k4B, k4C, k4D  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, ___, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_65_ansi_blocker_tsangan_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k2E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,           k2C, k2D, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, k3D, \
-    k40, k41, k42,           k45,                     k4A,           k4B, k4C, k4D  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, ___, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_65_ansi_cb_blocker( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,   k0E,         \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,           k2C, k2D, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, k3D, \
-    k40, k41, k42,           k45,                k49, k4A,           k4B, k4C, k4D  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, k49, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_65_ansi_cb_blocker_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E,      \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,           k2C, k2D, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, k3D, \
-    k40, k41, k42,           k45,                k49, k4A,           k4B, k4C, k4D  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, k49, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_65_ansi_cb_blocker_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,   k0E,         \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,           k2C, k2D, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, k3D, \
-    k40, k41, k42,           k45,                     k4A,           k4B, k4C, k4D  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, ___, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_65_ansi_cb_blocker_tsangan_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E,      \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1D, k1E, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,           k2C, k2D, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, k3D, \
-    k40, k41, k42,           k45,                     k4A,           k4B, k4C, k4D  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, ___, k4A, k4B, k4C, k4D, ___ }  \
-}

+ 72 - 68
keyboards/clawsome/sedan/info.json

@@ -19,74 +19,78 @@
     "layouts": {
         "LAYOUT_65_ansi": {
             "layout": [
-                {"label":"K00 (B0,B5)", "x":0, "y":0},
-                {"label":"K01 (B0,B6)", "x":1, "y":0},
-                {"label":"K02 (B0,B7)", "x":2, "y":0},
-                {"label":"K03 (B0,C0)", "x":3, "y":0},
-                {"label":"K04 (B0,C1)", "x":4, "y":0},
-                {"label":"K05 (B0,C2)", "x":5, "y":0},
-                {"label":"K06 (B0,C3)", "x":6, "y":0},
-                {"label":"K07 (B0,C4)", "x":7, "y":0},
-                {"label":"K08 (B0,C5)", "x":8, "y":0},
-                {"label":"K09 (B0,C6)", "x":9, "y":0},
-                {"label":"K0A (B0,C7)", "x":10, "y":0},
-                {"label":"K0B (B0,D0)", "x":11, "y":0},
-                {"label":"K0C (B0,D1)", "x":12, "y":0},
-                {"label":"K0D (B0,D2)", "x":13, "y":0, "w":2},
-                {"label":"K0E (B0,D3)", "x":15, "y":0},
-                {"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5},
-                {"label":"K11 (B1,B6)", "x":1.5, "y":1},
-                {"label":"K12 (B1,B7)", "x":2.5, "y":1},
-                {"label":"K13 (B1,C0)", "x":3.5, "y":1},
-                {"label":"K14 (B1,C1)", "x":4.5, "y":1},
-                {"label":"K15 (B1,C2)", "x":5.5, "y":1},
-                {"label":"K16 (B1,C3)", "x":6.5, "y":1},
-                {"label":"K17 (B1,C4)", "x":7.5, "y":1},
-                {"label":"K18 (B1,C5)", "x":8.5, "y":1},
-                {"label":"K19 (B1,C6)", "x":9.5, "y":1},
-                {"label":"K1A (B1,C7)", "x":10.5, "y":1},
-                {"label":"K1B (B1,D0)", "x":11.5, "y":1},
-                {"label":"K1C (B1,D1)", "x":12.5, "y":1},
-                {"label":"K1D (B1,D2)", "x":13.5, "y":1, "w":1.5},
-                {"label":"K1E (B1,D3)", "x":15, "y":1},
-                {"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75},
-                {"label":"K21 (B2,B6)", "x":1.75, "y":2},
-                {"label":"K22 (B2,B7)", "x":2.75, "y":2},
-                {"label":"K23 (B2,C0)", "x":3.75, "y":2},
-                {"label":"K24 (B2,C1)", "x":4.75, "y":2},
-                {"label":"K25 (B2,C2)", "x":5.75, "y":2},
-                {"label":"K26 (B2,C3)", "x":6.75, "y":2},
-                {"label":"K27 (B2,C4)", "x":7.75, "y":2},
-                {"label":"K28 (B2,C5)", "x":8.75, "y":2},
-                {"label":"K29 (B2,C6)", "x":9.75, "y":2},
-                {"label":"K2A (B2,C7)", "x":10.75, "y":2},
-                {"label":"K2B (B2,D0)", "x":11.75, "y":2},
-                {"label":"K2D (B2,D2)", "x":12.75, "y":2, "w":2.25},
-                {"label":"K2E (B2,D3)", "x":15, "y":2},
-                {"label":"K30 (B3,B5)", "x":0, "y":3, "w":2.25},
-                {"label":"K31 (B3,B6)", "x":2.25, "y":3},
-                {"label":"K32 (B3,B7)", "x":3.25, "y":3},
-                {"label":"K33 (B3,C0)", "x":4.25, "y":3},
-                {"label":"K34 (B3,C1)", "x":5.25, "y":3},
-                {"label":"K35 (B3,C2)", "x":6.25, "y":3},
-                {"label":"K36 (B3,C3)", "x":7.25, "y":3},
-                {"label":"K37 (B3,C4)", "x":8.25, "y":3},
-                {"label":"K38 (B3,C5)", "x":9.25, "y":3},
-                {"label":"K39 (B3,C6)", "x":10.25, "y":3},
-                {"label":"K3A (B3,C7)", "x":11.25, "y":3},
-                {"label":"K3B (B3,D0)", "x":12.25, "y":3, "w":1.75},
-                {"label":"K3D (B3,D2)", "x":14, "y":3},
-                {"label":"K3E (B3,D3)", "x":15, "y":3},
-                {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.25},
-                {"label":"K41 (B4,B6)", "x":1.25, "y":4, "w":1.25},
-                {"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.25},
-                {"label":"K45 (B4,C2)", "x":3.75, "y":4, "w":6.25},
-                {"label":"K49 (B4,C6)", "x":10, "y":4},
-                {"label":"K4A (B4,C7)", "x":11, "y":4},
-                {"label":"K4B (B4,D0)", "x":12, "y":4},
-                {"label":"K4C (B4,D1)", "x":13, "y":4},
-                {"label":"K4D (B4,D2)", "x":14, "y":4},
-                {"label":"K4E (B4,D3)", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

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

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

+ 0 - 133
keyboards/coseyfannitutti/discipline/discipline.h

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

+ 572 - 572
keyboards/coseyfannitutti/discipline/info.json

@@ -27,606 +27,606 @@
     "layouts": {
         "LAYOUT_65_ansi": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2, "w":2.25},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":2.25},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2, "w":2.25},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":2.25},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4, "w":1.5},
-                {"x":11.5, "y":4, "w":1.5},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.5},
+                {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_wkl": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2, "w":2.25},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":2.25},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4, "w":1.5},
-                {"x":3, "y":4, "w":7},
-                {"x":10, "y":4, "w":1.5},
-                {"x":11.5, "y":4, "w":1.5},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 3, "y": 4, "w": 7},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.5},
+                {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_lwkl": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2, "w":2.25},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":2.25},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4, "w":1.5},
-                {"x":3, "y":4, "w":7},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 3, "y": 4, "w": 7},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2},
-                {"x":13.75, "y":1, "w":1.25, "h":2},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":1.25},
-                {"x":1.25, "y":3},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2},
-                {"x":13.75, "y":1, "w":1.25, "h":2},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":1.25},
-                {"x":1.25, "y":3},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4, "w":1.5},
-                {"x":11.5, "y":4, "w":1.5},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.5},
+                {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_wkl": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2},
-                {"x":13.75, "y":1, "w":1.25, "h":2},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":1.25},
-                {"x":1.25, "y":3},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4, "w":1.5},
-                {"x":3, "y":4, "w":7},
-                {"x":10, "y":4, "w":1.5},
-                {"x":11.5, "y":4, "w":1.5},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 3, "y": 4, "w": 7},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.5},
+                {"matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_lwkl": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2},
-                {"x":13.75, "y":1, "w":1.25, "h":2},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":1.25},
-                {"x":1.25, "y":3},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4, "w":1.5},
-                {"x":3, "y":4, "w":7},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 3, "y": 4, "w": 7},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 57
keyboards/crazy_keyboard_68/crazy_keyboard_68.h

@@ -1,57 +0,0 @@
-/* Copyright 2020 chent7
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* Crazy Keyboard 68 (ANSI) layout
- * ,----------------------------------------------------------------.
- * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d    | 0e |
- * |----------------------------------------------------------------|
- * | 10  | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c|  1d | 1e |
- * |----------------------------------------------------------------|
- * | 20    | 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c| 2d    | 2e |
- * |----------------------------------------------------------------|
- * | 31     | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b|    3c| 3d| 3e |
- * |----------------------------------------------------------------|
- * | 40 | 41 | 43 |        46             | 49| 4a|  4b| 4c| 4d| 4e |
- * `----------------------------------------------------------------'
- *
- * This is a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_65_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
-    k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,      k2d, k2e, \
-    k31,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k43,                k46,           k49, k4a, k4b, k4c, k4d, k4e  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \
-    {k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e}, \
-    {XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \
-    {k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e}  \
-}

+ 72 - 68
keyboards/crazy_keyboard_68/info.json

@@ -23,74 +23,78 @@
     "layouts": {
         "LAYOUT_65_ansi": {
             "layout": [
-                {"label":"k00", "x":0, "y":0},
-                {"label":"k01", "x":1, "y":0},
-                {"label":"k02", "x":2, "y":0},
-                {"label":"k03", "x":3, "y":0},
-                {"label":"k04", "x":4, "y":0},
-                {"label":"k05", "x":5, "y":0},
-                {"label":"k06", "x":6, "y":0},
-                {"label":"k07", "x":7, "y":0},
-                {"label":"k08", "x":8, "y":0},
-                {"label":"k09", "x":9, "y":0},
-                {"label":"k0a", "x":10, "y":0},
-                {"label":"k0b", "x":11, "y":0},
-                {"label":"k0c", "x":12, "y":0},
-                {"label":"k0d", "x":13, "y":0, "w":2},
-                {"label":"k0e", "x":15, "y":0},
-                {"label":"k10", "x":0, "y":1, "w":1.5},
-                {"label":"k11", "x":1.5, "y":1},
-                {"label":"k12", "x":2.5, "y":1},
-                {"label":"k13", "x":3.5, "y":1},
-                {"label":"k14", "x":4.5, "y":1},
-                {"label":"k15", "x":5.5, "y":1},
-                {"label":"k16", "x":6.5, "y":1},
-                {"label":"k17", "x":7.5, "y":1},
-                {"label":"k18", "x":8.5, "y":1},
-                {"label":"k19", "x":9.5, "y":1},
-                {"label":"k1a", "x":10.5, "y":1},
-                {"label":"k1b", "x":11.5, "y":1},
-                {"label":"k1c", "x":12.5, "y":1},
-                {"label":"k1d", "x":13.5, "y":1, "w":1.5},
-                {"label":"k1e", "x":15, "y":1},
-                {"label":"k20", "x":0, "y":2, "w":1.75},
-                {"label":"k22", "x":1.75, "y":2},
-                {"label":"k23", "x":2.75, "y":2},
-                {"label":"k24", "x":3.75, "y":2},
-                {"label":"k25", "x":4.75, "y":2},
-                {"label":"k26", "x":5.75, "y":2},
-                {"label":"k27", "x":6.75, "y":2},
-                {"label":"k28", "x":7.75, "y":2},
-                {"label":"k29", "x":8.75, "y":2},
-                {"label":"k2a", "x":9.75, "y":2},
-                {"label":"k2b", "x":10.75, "y":2},
-                {"label":"k2c", "x":11.75, "y":2},
-                {"label":"k2d", "x":12.75, "y":2, "w":2.25},
-                {"label":"k2e", "x":15, "y":2},
-                {"label":"k31", "x":0, "y":3, "w":2.25},
-                {"label":"k32", "x":2.25, "y":3},
-                {"label":"k33", "x":3.25, "y":3},
-                {"label":"k34", "x":4.25, "y":3},
-                {"label":"k35", "x":5.25, "y":3},
-                {"label":"k36", "x":6.25, "y":3},
-                {"label":"k37", "x":7.25, "y":3},
-                {"label":"k38", "x":8.25, "y":3},
-                {"label":"k39", "x":9.25, "y":3},
-                {"label":"k3a", "x":10.25, "y":3},
-                {"label":"k3b", "x":11.25, "y":3},
-                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3d", "x":14, "y":3},
-                {"label":"k3e", "x":15, "y":3},
-                {"label":"k40", "x":0, "y":4, "w":1.25},
-                {"label":"k41", "x":1.25, "y":4, "w":1.25},
-                {"label":"k43", "x":2.5, "y":4, "w":1.25},
-                {"label":"k46", "x":3.75, "y":4, "w":6.25},
-                {"label":"k49", "x":10, "y":4},
-                {"label":"k4a", "x":11, "y":4},
-                {"label":"k4b", "x":12, "y":4},
-                {"label":"k4c", "x":13, "y":4},
-                {"label":"k4d", "x":14, "y":4},
-                {"label":"k4e", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 1.75, "y": 2},
+                {"matrix": [2, 3], "x": 2.75, "y": 2},
+                {"matrix": [2, 4], "x": 3.75, "y": 2},
+                {"matrix": [2, 5], "x": 4.75, "y": 2},
+                {"matrix": [2, 6], "x": 5.75, "y": 2},
+                {"matrix": [2, 7], "x": 6.75, "y": 2},
+                {"matrix": [2, 8], "x": 7.75, "y": 2},
+                {"matrix": [2, 9], "x": 8.75, "y": 2},
+                {"matrix": [2, 10], "x": 9.75, "y": 2},
+                {"matrix": [2, 11], "x": 10.75, "y": 2},
+                {"matrix": [2, 12], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 89
keyboards/cutie_club/keebcats/dougal/dougal.h

@@ -1,89 +0,0 @@
-/* Copyright 2021 Cutie Club
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-/*
- *              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐      ┌───────┐
- *              │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │      │0E     │ 2u Backspace
- *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤      └─┬─────┤
- *              │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D   │1F │        │     │
- *  2.25u       ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤     ┌──┴┐2D  │ ISO Enter
- *  LShift      │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D      │2F │     │2C │    │
- * ┌────────┐   ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤   ┌─┴───┴────┤
- * │30      │   │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C    │3D │3F │   │3C        │ 2.75u RShift
- * └────────┘   ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤   └──────────┘
- *              │40  │41  │42  │44      │46  │48        │49 │4A │4B │4C │4D │4F │
- *              └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘
- *              ┌────┬────┬────┬────────────────────────┬───┬───┬───┐
- *              │40  │41  │42  │46                      │49 │4A │4B │ Standard
- *              └────┴────┴────┴────────────────────────┴───┴───┴───┘
- *              ┌─────┬─────┬───────────────────────────┬─────┬─────┐
- *              │40   │41   │46                         │49   │4A   │ WKL
- *              └─────┴─────┴───────────────────────────┴─────┴─────┘
- *              ┌─────┬───┬─────┬───────────────────────────┬─────┐
- *              │40   │41 │42   │46                         │4A   │ Tsangan
- *              └─────┴───┴─────┴───────────────────────────┴─────┘
- */
-
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,      k1F, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,      k2F, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C,      k3D, k3F, \
-    k40, k41, k42,      k44,      k46,      k48, k49, k4A, k4B,      k4C, k4D, k4F  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___, k3F }, \
-    { k40, k41, k42, ___, k44, ___, k46, ___, k48, k49, k4A, k4B, k4C, k4D, ___, k4F }  \
-}
-
-#define LAYOUT_65_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k0F, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,      k2D, k2F, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \
-    k40, k41, k42,                k46,           k49, k4A, k4B, k4C, k4D, k4F  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E, k0F }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___, k1F }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___, k2F }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___, k3F }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, ___, k4F }  \
-}
-
-#define LAYOUT_65_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k0F, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C,      k1F, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3F, \
-    k40, k41, k42,                k46,           k49, k4A, k4B, k4C, k4D, k4F  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E, k0F }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, ___, k1F }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___, k3F }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, ___, k4F }  \
-}

+ 214 - 210
keyboards/cutie_club/keebcats/dougal/info.json

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

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


+ 0 - 60
keyboards/doro67/multi/multi.h

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

+ 71 - 67
keyboards/doro67/regular/info.json

@@ -22,73 +22,77 @@
     "layouts": {
       "LAYOUT_65_ansi_blocker": {
         "layout": [
-          {"label":"K00", "x":0, "y":0},
-          {"label":"K01", "x":1, "y":0},
-          {"label":"K02", "x":2, "y":0},
-          {"label":"K03", "x":3, "y":0},
-          {"label":"K04", "x":4, "y":0},
-          {"label":"K05", "x":5, "y":0},
-          {"label":"K06", "x":6, "y":0},
-          {"label":"K07", "x":7, "y":0},
-          {"label":"K08", "x":8, "y":0},
-          {"label":"K09", "x":9, "y":0},
-          {"label":"K0A", "x":10, "y":0},
-          {"label":"K0B", "x":11, "y":0},
-          {"label":"K0C", "x":12, "y":0},
-          {"label":"K0D", "x":13, "y":0, "w":2},
-          {"label":"K0E", "x":15, "y":0},
-          {"label":"K10", "x":0, "y":1, "w":1.5},
-          {"label":"K11", "x":1.5, "y":1},
-          {"label":"K12", "x":2.5, "y":1},
-          {"label":"K13", "x":3.5, "y":1},
-          {"label":"K14", "x":4.5, "y":1},
-          {"label":"K15", "x":5.5, "y":1},
-          {"label":"K16", "x":6.5, "y":1},
-          {"label":"K17", "x":7.5, "y":1},
-          {"label":"K18", "x":8.5, "y":1},
-          {"label":"K19", "x":9.5, "y":1},
-          {"label":"K1A", "x":10.5, "y":1},
-          {"label":"K1B", "x":11.5, "y":1},
-          {"label":"K1C", "x":12.5, "y":1},
-          {"label":"K1D", "x":13.5, "y":1, "w":1.5},
-          {"label":"K1E", "x":15, "y":1},
-          {"label":"K20", "x":0, "y":2, "w":1.75},
-          {"label":"K21", "x":1.75, "y":2},
-          {"label":"K22", "x":2.75, "y":2},
-          {"label":"K23", "x":3.75, "y":2},
-          {"label":"K24", "x":4.75, "y":2},
-          {"label":"K25", "x":5.75, "y":2},
-          {"label":"K26", "x":6.75, "y":2},
-          {"label":"K27", "x":7.75, "y":2},
-          {"label":"K28", "x":8.75, "y":2},
-          {"label":"K29", "x":9.75, "y":2},
-          {"label":"K2A", "x":10.75, "y":2},
-          {"label":"K2B", "x":11.75, "y":2},
-          {"label":"K2D", "x":12.75, "y":2, "w":2.25},
-          {"label":"K2E", "x":15, "y":2},
-          {"label":"K30", "x":0, "y":3, "w":2.25},
-          {"label":"K32", "x":2.25, "y":3},
-          {"label":"K33", "x":3.25, "y":3},
-          {"label":"K34", "x":4.25, "y":3},
-          {"label":"K35", "x":5.25, "y":3},
-          {"label":"K36", "x":6.25, "y":3},
-          {"label":"K37", "x":7.25, "y":3},
-          {"label":"K38", "x":8.25, "y":3},
-          {"label":"K39", "x":9.25, "y":3},
-          {"label":"K3A", "x":10.25, "y":3},
-          {"label":"K3B", "x":11.25, "y":3},
-          {"label":"K3C", "x":12.25, "y":3, "w":1.75},
-          {"label":"K3D", "x":14, "y":3},
-          {"label":"K3E", "x":15, "y":3},
-          {"label":"K40", "x":0, "y":4, "w":1.25},
-          {"label":"K41", "x":1.25, "y":4, "w":1.25},
-          {"label":"K42", "x":2.5, "y":4, "w":1.25},
-          {"label":"K43", "x":3.75, "y":4, "w":6.25},
-          {"label":"K49", "x":10, "y":4, "w":1.25},
-          {"label":"K4A", "x":11.25, "y":4, "w":1.25},
-          {"label":"K4C", "x":13, "y":4},
-          {"label":"K4D", "x":14, "y":4},
-          {"label":"K4E", "x":15, "y":4}
+          {"matrix": [0, 0], "x": 0, "y": 0},
+          {"matrix": [0, 1], "x": 1, "y": 0},
+          {"matrix": [0, 2], "x": 2, "y": 0},
+          {"matrix": [0, 3], "x": 3, "y": 0},
+          {"matrix": [0, 4], "x": 4, "y": 0},
+          {"matrix": [0, 5], "x": 5, "y": 0},
+          {"matrix": [0, 6], "x": 6, "y": 0},
+          {"matrix": [0, 7], "x": 7, "y": 0},
+          {"matrix": [0, 8], "x": 8, "y": 0},
+          {"matrix": [0, 9], "x": 9, "y": 0},
+          {"matrix": [0, 10], "x": 10, "y": 0},
+          {"matrix": [0, 11], "x": 11, "y": 0},
+          {"matrix": [0, 12], "x": 12, "y": 0},
+          {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+          {"matrix": [0, 14], "x": 15, "y": 0},
+
+          {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+          {"matrix": [1, 1], "x": 1.5, "y": 1},
+          {"matrix": [1, 2], "x": 2.5, "y": 1},
+          {"matrix": [1, 3], "x": 3.5, "y": 1},
+          {"matrix": [1, 4], "x": 4.5, "y": 1},
+          {"matrix": [1, 5], "x": 5.5, "y": 1},
+          {"matrix": [1, 6], "x": 6.5, "y": 1},
+          {"matrix": [1, 7], "x": 7.5, "y": 1},
+          {"matrix": [1, 8], "x": 8.5, "y": 1},
+          {"matrix": [1, 9], "x": 9.5, "y": 1},
+          {"matrix": [1, 10], "x": 10.5, "y": 1},
+          {"matrix": [1, 11], "x": 11.5, "y": 1},
+          {"matrix": [1, 12], "x": 12.5, "y": 1},
+          {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+          {"matrix": [1, 14], "x": 15, "y": 1},
+
+          {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+          {"matrix": [2, 1], "x": 1.75, "y": 2},
+          {"matrix": [2, 2], "x": 2.75, "y": 2},
+          {"matrix": [2, 3], "x": 3.75, "y": 2},
+          {"matrix": [2, 4], "x": 4.75, "y": 2},
+          {"matrix": [2, 5], "x": 5.75, "y": 2},
+          {"matrix": [2, 6], "x": 6.75, "y": 2},
+          {"matrix": [2, 7], "x": 7.75, "y": 2},
+          {"matrix": [2, 8], "x": 8.75, "y": 2},
+          {"matrix": [2, 9], "x": 9.75, "y": 2},
+          {"matrix": [2, 10], "x": 10.75, "y": 2},
+          {"matrix": [2, 11], "x": 11.75, "y": 2},
+          {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+          {"matrix": [2, 14], "x": 15, "y": 2},
+
+          {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+          {"matrix": [3, 2], "x": 2.25, "y": 3},
+          {"matrix": [3, 3], "x": 3.25, "y": 3},
+          {"matrix": [3, 4], "x": 4.25, "y": 3},
+          {"matrix": [3, 5], "x": 5.25, "y": 3},
+          {"matrix": [3, 6], "x": 6.25, "y": 3},
+          {"matrix": [3, 7], "x": 7.25, "y": 3},
+          {"matrix": [3, 8], "x": 8.25, "y": 3},
+          {"matrix": [3, 9], "x": 9.25, "y": 3},
+          {"matrix": [3, 10], "x": 10.25, "y": 3},
+          {"matrix": [3, 11], "x": 11.25, "y": 3},
+          {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+          {"matrix": [3, 13], "x": 14, "y": 3},
+          {"matrix": [3, 14], "x": 15, "y": 3},
+
+          {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+          {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+          {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+          {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
+          {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+          {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+          {"matrix": [4, 12], "x": 13, "y": 4},
+          {"matrix": [4, 13], "x": 14, "y": 4},
+          {"matrix": [4, 14], "x": 15, "y": 4}
         ]
       }
     }

+ 0 - 32
keyboards/doro67/regular/regular.h

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

+ 71 - 67
keyboards/doro67/rgb/info.json

@@ -23,73 +23,77 @@
     "layouts": {
       "LAYOUT_65_ansi_blocker": {
         "layout": [
-          {"label":"K00", "x":0, "y":0},
-          {"label":"K01", "x":1, "y":0},
-          {"label":"K02", "x":2, "y":0},
-          {"label":"K03", "x":3, "y":0},
-          {"label":"K04", "x":4, "y":0},
-          {"label":"K05", "x":5, "y":0},
-          {"label":"K06", "x":6, "y":0},
-          {"label":"K07", "x":7, "y":0},
-          {"label":"K08", "x":8, "y":0},
-          {"label":"K09", "x":9, "y":0},
-          {"label":"K0A", "x":10, "y":0},
-          {"label":"K0B", "x":11, "y":0},
-          {"label":"K0C", "x":12, "y":0},
-          {"label":"K0D", "x":13, "y":0, "w":2},
-          {"label":"K0E", "x":15, "y":0},
-          {"label":"K10", "x":0, "y":1, "w":1.5},
-          {"label":"K11", "x":1.5, "y":1},
-          {"label":"K12", "x":2.5, "y":1},
-          {"label":"K13", "x":3.5, "y":1},
-          {"label":"K14", "x":4.5, "y":1},
-          {"label":"K15", "x":5.5, "y":1},
-          {"label":"K16", "x":6.5, "y":1},
-          {"label":"K17", "x":7.5, "y":1},
-          {"label":"K18", "x":8.5, "y":1},
-          {"label":"K19", "x":9.5, "y":1},
-          {"label":"K1A", "x":10.5, "y":1},
-          {"label":"K1B", "x":11.5, "y":1},
-          {"label":"K1C", "x":12.5, "y":1},
-          {"label":"K1D", "x":13.5, "y":1, "w":1.5},
-          {"label":"K1E", "x":15, "y":1},
-          {"label":"K20", "x":0, "y":2, "w":1.75},
-          {"label":"K21", "x":1.75, "y":2},
-          {"label":"K22", "x":2.75, "y":2},
-          {"label":"K23", "x":3.75, "y":2},
-          {"label":"K24", "x":4.75, "y":2},
-          {"label":"K25", "x":5.75, "y":2},
-          {"label":"K26", "x":6.75, "y":2},
-          {"label":"K27", "x":7.75, "y":2},
-          {"label":"K28", "x":8.75, "y":2},
-          {"label":"K29", "x":9.75, "y":2},
-          {"label":"K2A", "x":10.75, "y":2},
-          {"label":"K2B", "x":11.75, "y":2},
-          {"label":"K2D", "x":12.75, "y":2, "w":2.25},
-          {"label":"K2E", "x":15, "y":2},
-          {"label":"K30", "x":0, "y":3, "w":2.25},
-          {"label":"K32", "x":2.25, "y":3},
-          {"label":"K33", "x":3.25, "y":3},
-          {"label":"K34", "x":4.25, "y":3},
-          {"label":"K35", "x":5.25, "y":3},
-          {"label":"K36", "x":6.25, "y":3},
-          {"label":"K37", "x":7.25, "y":3},
-          {"label":"K38", "x":8.25, "y":3},
-          {"label":"K39", "x":9.25, "y":3},
-          {"label":"K3A", "x":10.25, "y":3},
-          {"label":"K3B", "x":11.25, "y":3},
-          {"label":"K3C", "x":12.25, "y":3, "w":1.75},
-          {"label":"K3D", "x":14, "y":3},
-          {"label":"K3E", "x":15, "y":3},
-          {"label":"K40", "x":0, "y":4, "w":1.25},
-          {"label":"K41", "x":1.25, "y":4, "w":1.25},
-          {"label":"K42", "x":2.5, "y":4, "w":1.25},
-          {"label":"K43", "x":3.75, "y":4, "w":6.25},
-          {"label":"K49", "x":10, "y":4, "w":1.25},
-          {"label":"K4A", "x":11.25, "y":4, "w":1.25},
-          {"label":"K4C", "x":13, "y":4},
-          {"label":"K4D", "x":14, "y":4},
-          {"label":"K4E", "x":15, "y":4}
+          {"matrix": [0, 0], "x": 0, "y": 0},
+          {"matrix": [0, 1], "x": 1, "y": 0},
+          {"matrix": [0, 2], "x": 2, "y": 0},
+          {"matrix": [0, 3], "x": 3, "y": 0},
+          {"matrix": [0, 4], "x": 4, "y": 0},
+          {"matrix": [0, 5], "x": 5, "y": 0},
+          {"matrix": [0, 6], "x": 6, "y": 0},
+          {"matrix": [0, 7], "x": 7, "y": 0},
+          {"matrix": [0, 8], "x": 8, "y": 0},
+          {"matrix": [0, 9], "x": 9, "y": 0},
+          {"matrix": [0, 10], "x": 10, "y": 0},
+          {"matrix": [0, 11], "x": 11, "y": 0},
+          {"matrix": [0, 12], "x": 12, "y": 0},
+          {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+          {"matrix": [0, 14], "x": 15, "y": 0},
+
+          {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+          {"matrix": [1, 1], "x": 1.5, "y": 1},
+          {"matrix": [1, 2], "x": 2.5, "y": 1},
+          {"matrix": [1, 3], "x": 3.5, "y": 1},
+          {"matrix": [1, 4], "x": 4.5, "y": 1},
+          {"matrix": [1, 5], "x": 5.5, "y": 1},
+          {"matrix": [1, 6], "x": 6.5, "y": 1},
+          {"matrix": [1, 7], "x": 7.5, "y": 1},
+          {"matrix": [1, 8], "x": 8.5, "y": 1},
+          {"matrix": [1, 9], "x": 9.5, "y": 1},
+          {"matrix": [1, 10], "x": 10.5, "y": 1},
+          {"matrix": [1, 11], "x": 11.5, "y": 1},
+          {"matrix": [1, 12], "x": 12.5, "y": 1},
+          {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+          {"matrix": [1, 14], "x": 15, "y": 1},
+
+          {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+          {"matrix": [2, 1], "x": 1.75, "y": 2},
+          {"matrix": [2, 2], "x": 2.75, "y": 2},
+          {"matrix": [2, 3], "x": 3.75, "y": 2},
+          {"matrix": [2, 4], "x": 4.75, "y": 2},
+          {"matrix": [2, 5], "x": 5.75, "y": 2},
+          {"matrix": [2, 6], "x": 6.75, "y": 2},
+          {"matrix": [2, 7], "x": 7.75, "y": 2},
+          {"matrix": [2, 8], "x": 8.75, "y": 2},
+          {"matrix": [2, 9], "x": 9.75, "y": 2},
+          {"matrix": [2, 10], "x": 10.75, "y": 2},
+          {"matrix": [2, 11], "x": 11.75, "y": 2},
+          {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+          {"matrix": [2, 14], "x": 15, "y": 2},
+
+          {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+          {"matrix": [3, 2], "x": 2.25, "y": 3},
+          {"matrix": [3, 3], "x": 3.25, "y": 3},
+          {"matrix": [3, 4], "x": 4.25, "y": 3},
+          {"matrix": [3, 5], "x": 5.25, "y": 3},
+          {"matrix": [3, 6], "x": 6.25, "y": 3},
+          {"matrix": [3, 7], "x": 7.25, "y": 3},
+          {"matrix": [3, 8], "x": 8.25, "y": 3},
+          {"matrix": [3, 9], "x": 9.25, "y": 3},
+          {"matrix": [3, 10], "x": 10.25, "y": 3},
+          {"matrix": [3, 11], "x": 11.25, "y": 3},
+          {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+          {"matrix": [3, 13], "x": 14, "y": 3},
+          {"matrix": [3, 14], "x": 15, "y": 3},
+
+          {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+          {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+          {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+          {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25},
+          {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+          {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+          {"matrix": [4, 12], "x": 13, "y": 4},
+          {"matrix": [4, 13], "x": 14, "y": 4},
+          {"matrix": [4, 14], "x": 15, "y": 4}
         ]
       }
     }

+ 1 - 2
keyboards/doro67/rgb/rgb.c

@@ -13,8 +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 "rgb.h"
-#include "rgb_matrix_types.h"
+#include "quantum.h"
 
 led_config_t g_led_config = { {
   {   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14 },

+ 0 - 32
keyboards/doro67/rgb/rgb.h

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

+ 0 - 135
keyboards/draytronics/elise/elise.h

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

+ 572 - 572
keyboards/draytronics/elise/info.json

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

+ 0 - 135
keyboards/draytronics/elise_v2/elise_v2.h

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

+ 572 - 572
keyboards/draytronics/elise_v2/info.json

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

+ 336 - 336
keyboards/drewkeys/iskar/info.json

@@ -18,378 +18,378 @@
     "layouts": {
         "LAYOUT": {
             "layout": [
-                {"label": "Esc 0,0", "x": 0, "y": 0},
-                {"label": "1 0,1", "x": 1, "y": 0},
-                {"label": "2 0,2", "x": 2, "y": 0},
-                {"label": "3 0,3", "x": 3, "y": 0},
-                {"label": "4 0,4", "x": 4, "y": 0},
-                {"label": "5 0,5", "x": 5, "y": 0},
-                {"label": "6 0,6", "x": 6, "y": 0},
-                {"label": "7 0,7", "x": 7, "y": 0},
-                {"label": "8 0,8", "x": 8, "y": 0},
-                {"label": "9 0,9", "x": 9, "y": 0},
-                {"label": "0 0,10", "x": 10, "y": 0},
-                {"label": "- 0,11", "x": 11, "y": 0},
-                {"label": "= 0,12", "x": 12, "y": 0},
-                {"label": "bsp extra 0,13", "x": 13, "y": 0},
-                {"label": "bsp 0,14", "x": 14, "y": 0},
-                {"label": "del 0,15", "x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
 
-                {"label": "tab 1,0", "x": 0, "y": 1, "w": 1.5},
-                {"label": "q 1,2", "x": 1.5, "y": 1},
-                {"label": "w 1,3", "x": 2.5, "y": 1},
-                {"label": "e 1,4", "x": 3.5, "y": 1},
-                {"label": "r 1,5", "x": 4.5, "y": 1},
-                {"label": "t 1,6", "x": 5.5, "y": 1},
-                {"label": "y 1,7", "x": 6.5, "y": 1},
-                {"label": "u 1,8", "x": 7.5, "y": 1},
-                {"label": "i 1,9", "x": 8.5, "y": 1},
-                {"label": "o 1,10", "x": 9.5, "y": 1},
-                {"label": "p 1,11", "x": 10.5, "y": 1},
-                {"label": "[ 1,12", "x": 11.5, "y": 1},
-                {"label": "] 1,13", "x": 12.5, "y": 1},
-                {"label": "| 1,14", "x": 13.5, "y": 1, "w": 1.5},
-                {"label": "home 1,15", "x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 2], "x": 1.5, "y": 1},
+                {"matrix": [1, 3], "x": 2.5, "y": 1},
+                {"matrix": [1, 4], "x": 3.5, "y": 1},
+                {"matrix": [1, 5], "x": 4.5, "y": 1},
+                {"matrix": [1, 6], "x": 5.5, "y": 1},
+                {"matrix": [1, 7], "x": 6.5, "y": 1},
+                {"matrix": [1, 8], "x": 7.5, "y": 1},
+                {"matrix": [1, 9], "x": 8.5, "y": 1},
+                {"matrix": [1, 10], "x": 9.5, "y": 1},
+                {"matrix": [1, 11], "x": 10.5, "y": 1},
+                {"matrix": [1, 12], "x": 11.5, "y": 1},
+                {"matrix": [1, 13], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
 
-                {"label": "caps 2,0", "x": 0, "y": 2, "w": 1.75},
-                {"label": "a 2,2", "x": 1.75, "y": 2},
-                {"label": "s 2,3", "x": 2.75, "y": 2},
-                {"label": "d 2,4", "x": 3.75, "y": 2},
-                {"label": "f 2,5", "x": 4.75, "y": 2},
-                {"label": "g 2,6", "x": 5.75, "y": 2},
-                {"label": "h 2,7", "x": 6.75, "y": 2},
-                {"label": "j 2,8", "x": 7.75, "y": 2},
-                {"label": "k 2,9", "x": 8.75, "y": 2},
-                {"label": "l 2,10", "x": 9.75, "y": 2},
-                {"label": "; 2,11", "x": 10.75, "y": 2},
-                {"label": "' 2,12", "x": 11.75, "y": 2},
-                {"label": "enter 2,13", "x": 12.75, "y": 2, "w": 2.25},
-                {"label": "pg up 2,15", "x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 1.75, "y": 2},
+                {"matrix": [2, 3], "x": 2.75, "y": 2},
+                {"matrix": [2, 4], "x": 3.75, "y": 2},
+                {"matrix": [2, 5], "x": 4.75, "y": 2},
+                {"matrix": [2, 6], "x": 5.75, "y": 2},
+                {"matrix": [2, 7], "x": 6.75, "y": 2},
+                {"matrix": [2, 8], "x": 7.75, "y": 2},
+                {"matrix": [2, 9], "x": 8.75, "y": 2},
+                {"matrix": [2, 10], "x": 9.75, "y": 2},
+                {"matrix": [2, 11], "x": 10.75, "y": 2},
+                {"matrix": [2, 12], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-                {"label": "shift 3,1", "x": 0, "y": 3, "w": 2.25},
-                {"label": "z 3,2", "x": 2.25, "y": 3},
-                {"label": "x 3,3", "x": 3.25, "y": 3},
-                {"label": "c 3,4", "x": 4.25, "y": 3},
-                {"label": "v 3,5", "x": 5.25, "y": 3},
-                {"label": "b 3,6", "x": 6.25, "y": 3},
-                {"label": "n 3,7", "x": 7.25, "y": 3},
-                {"label": "m 3,8", "x": 8.25, "y": 3},
-                {"label": ", 3,9", "x": 9.25, "y": 3},
-                {"label": ". 3,10", "x": 10.25, "y": 3},
-                {"label": "/ 3,11", "x": 11.25, "y": 3},
-                {"label": "shift 3,13", "x": 12.25, "y":3, "w": 1.75},
-                {"label": "up 3,14", "x": 14, "y": 3},
-                {"label": "pg dn 3,15", "x": 15, "y": 3},
+                {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-                {"label": "ctrl 4,0", "x": 0, "y": 4, "w": 1.25},
-                {"label": "win 4,1", "x": 1.25, "y": 4, "w": 1.25},
-                {"label": "alt 4,2", "x": 2.5, "y": 4, "w": 1.25},
-                {"label": "spacebar 4,6", "x": 3.75, "y": 4, "w": 6.25},
-                {"label": "fn 4,10", "x": 10, "y": 4, "w": 1.25},
-                {"label": "ctrl 4,11", "x": 11.25, "y": 4, "w": 1.25},
-                {"label": "left 4,13", "x": 13, "y": 4},
-                {"label": "down 4,14", "x": 14, "y": 4},
-                {"label": "right 4,15", "x": 15, "y": 4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi": {
             "layout": [
-              {"label": "Esc 0,0", "x": 0, "y": 0},
-              {"label": "1 0,1", "x": 1, "y": 0},
-              {"label": "2 0,2", "x": 2, "y": 0},
-              {"label": "3 0,3", "x": 3, "y": 0},
-              {"label": "4 0,4", "x": 4, "y": 0},
-              {"label": "5 0,5", "x": 5, "y": 0},
-              {"label": "6 0,6", "x": 6, "y": 0},
-              {"label": "7 0,7", "x": 7, "y": 0},
-              {"label": "8 0,8", "x": 8, "y": 0},
-              {"label": "9 0,9", "x": 9, "y": 0},
-              {"label": "0 0,10", "x": 10, "y": 0},
-              {"label": "- 0,11", "x": 11, "y": 0},
-              {"label": "= 0,12", "x": 12, "y": 0},
-              {"label": "bsp 0,14", "x": 13, "y": 0, "w": 2},
-              {"label": "del 0,15", "x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "y": 0},
 
-              {"label": "tab 1,0", "x": 0, "y": 1, "w": 1.5},
-              {"label": "q 1,2", "x": 1.5, "y": 1},
-              {"label": "w 1,3", "x": 2.5, "y": 1},
-              {"label": "e 1,4", "x": 3.5, "y": 1},
-              {"label": "r 1,5", "x": 4.5, "y": 1},
-              {"label": "t 1,6", "x": 5.5, "y": 1},
-              {"label": "y 1,7", "x": 6.5, "y": 1},
-              {"label": "u 1,8", "x": 7.5, "y": 1},
-              {"label": "i 1,9", "x": 8.5, "y": 1},
-              {"label": "o 1,10", "x": 9.5, "y": 1},
-              {"label": "p 1,11", "x": 10.5, "y": 1},
-              {"label": "[ 1,12", "x": 11.5, "y": 1},
-              {"label": "] 1,13", "x": 12.5, "y": 1},
-              {"label": "| 1,14", "x": 13.5, "y": 1, "w": 1.5},
-              {"label": "home 1,15", "x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 2], "x": 1.5, "y": 1},
+                {"matrix": [1, 3], "x": 2.5, "y": 1},
+                {"matrix": [1, 4], "x": 3.5, "y": 1},
+                {"matrix": [1, 5], "x": 4.5, "y": 1},
+                {"matrix": [1, 6], "x": 5.5, "y": 1},
+                {"matrix": [1, 7], "x": 6.5, "y": 1},
+                {"matrix": [1, 8], "x": 7.5, "y": 1},
+                {"matrix": [1, 9], "x": 8.5, "y": 1},
+                {"matrix": [1, 10], "x": 9.5, "y": 1},
+                {"matrix": [1, 11], "x": 10.5, "y": 1},
+                {"matrix": [1, 12], "x": 11.5, "y": 1},
+                {"matrix": [1, 13], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
 
-              {"label": "caps 2,0", "x": 0, "y": 2, "w": 1.75},
-              {"label": "a 2,2", "x": 1.75, "y": 2},
-              {"label": "s 2,3", "x": 2.75, "y": 2},
-              {"label": "d 2,4", "x": 3.75, "y": 2},
-              {"label": "f 2,5", "x": 4.75, "y": 2},
-              {"label": "g 2,6", "x": 5.75, "y": 2},
-              {"label": "h 2,7", "x": 6.75, "y": 2},
-              {"label": "j 2,8", "x": 7.75, "y": 2},
-              {"label": "k 2,9", "x": 8.75, "y": 2},
-              {"label": "l 2,10", "x": 9.75, "y": 2},
-              {"label": "; 2,11", "x": 10.75, "y": 2},
-              {"label": "' 2,12", "x": 11.75, "y": 2},
-              {"label": "enter 2,13", "x": 12.75, "y": 2, "w": 2.25},
-              {"label": "pg up 2,15", "x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 1.75, "y": 2},
+                {"matrix": [2, 3], "x": 2.75, "y": 2},
+                {"matrix": [2, 4], "x": 3.75, "y": 2},
+                {"matrix": [2, 5], "x": 4.75, "y": 2},
+                {"matrix": [2, 6], "x": 5.75, "y": 2},
+                {"matrix": [2, 7], "x": 6.75, "y": 2},
+                {"matrix": [2, 8], "x": 7.75, "y": 2},
+                {"matrix": [2, 9], "x": 8.75, "y": 2},
+                {"matrix": [2, 10], "x": 9.75, "y": 2},
+                {"matrix": [2, 11], "x": 10.75, "y": 2},
+                {"matrix": [2, 12], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-              {"label": "shift 3,1", "x": 0, "y": 3, "w": 2.25},
-              {"label": "z 3,2", "x": 2.25, "y": 3},
-              {"label": "x 3,3", "x": 3.25, "y": 3},
-              {"label": "c 3,4", "x": 4.25, "y": 3},
-              {"label": "v 3,5", "x": 5.25, "y": 3},
-              {"label": "b 3,6", "x": 6.25, "y": 3},
-              {"label": "n 3,7", "x": 7.25, "y": 3},
-              {"label": "m 3,8", "x": 8.25, "y": 3},
-              {"label": ", 3,9", "x": 9.25, "y": 3},
-              {"label": ". 3,10", "x": 10.25, "y": 3},
-              {"label": "/ 3,11", "x": 11.25, "y": 3},
-              {"label": "shift 3,13", "x": 12.25, "y":3, "w": 1.75},
-              {"label": "up 3,14", "x": 14, "y": 3},
-              {"label": "pg dn 3,15", "x": 15, "y": 3},
+                {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-              {"label": "ctrl 4,0", "x": 0, "y": 4, "w": 1.25},
-              {"label": "win 4,1", "x": 1.25, "y": 4, "w": 1.25},
-              {"label": "alt 4,2", "x": 2.5, "y": 4, "w": 1.25},
-              {"label": "spacebar 4,6", "x": 3.75, "y": 4, "w": 6.25},
-              {"label": "fn 4,10", "x": 10, "y": 4, "w": 1.25},
-              {"label": "ctrl 4,11", "x": 11.25, "y": 4, "w": 1.25},
-              {"label": "left 4,13", "x": 13, "y": 4},
-              {"label": "down 4,14", "x": 14, "y": 4},
-              {"label": "right 4,15", "x": 15, "y": 4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_split_bs": {
             "layout": [
-              {"label": "Esc 0,0", "x": 0, "y": 0},
-              {"label": "1 0,1", "x": 1, "y": 0},
-              {"label": "2 0,2", "x": 2, "y": 0},
-              {"label": "3 0,3", "x": 3, "y": 0},
-              {"label": "4 0,4", "x": 4, "y": 0},
-              {"label": "5 0,5", "x": 5, "y": 0},
-              {"label": "6 0,6", "x": 6, "y": 0},
-              {"label": "7 0,7", "x": 7, "y": 0},
-              {"label": "8 0,8", "x": 8, "y": 0},
-              {"label": "9 0,9", "x": 9, "y": 0},
-              {"label": "0 0,10", "x": 10, "y": 0},
-              {"label": "- 0,11", "x": 11, "y": 0},
-              {"label": "= 0,12", "x": 12, "y": 0},
-              {"label": "bsp extra 0,13", "x": 13, "y": 0},
-              {"label": "bsp 0,14", "x": 14, "y": 0},
-              {"label": "del 0,15", "x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
 
-              {"label": "tab 1,0", "x": 0, "y": 1, "w": 1.5},
-              {"label": "q 1,2", "x": 1.5, "y": 1},
-              {"label": "w 1,3", "x": 2.5, "y": 1},
-              {"label": "e 1,4", "x": 3.5, "y": 1},
-              {"label": "r 1,5", "x": 4.5, "y": 1},
-              {"label": "t 1,6", "x": 5.5, "y": 1},
-              {"label": "y 1,7", "x": 6.5, "y": 1},
-              {"label": "u 1,8", "x": 7.5, "y": 1},
-              {"label": "i 1,9", "x": 8.5, "y": 1},
-              {"label": "o 1,10", "x": 9.5, "y": 1},
-              {"label": "p 1,11", "x": 10.5, "y": 1},
-              {"label": "[ 1,12", "x": 11.5, "y": 1},
-              {"label": "] 1,13", "x": 12.5, "y": 1},
-              {"label": "| 1,14", "x": 13.5, "y": 1, "w": 1.5},
-              {"label": "home 1,15", "x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 2], "x": 1.5, "y": 1},
+                {"matrix": [1, 3], "x": 2.5, "y": 1},
+                {"matrix": [1, 4], "x": 3.5, "y": 1},
+                {"matrix": [1, 5], "x": 4.5, "y": 1},
+                {"matrix": [1, 6], "x": 5.5, "y": 1},
+                {"matrix": [1, 7], "x": 6.5, "y": 1},
+                {"matrix": [1, 8], "x": 7.5, "y": 1},
+                {"matrix": [1, 9], "x": 8.5, "y": 1},
+                {"matrix": [1, 10], "x": 9.5, "y": 1},
+                {"matrix": [1, 11], "x": 10.5, "y": 1},
+                {"matrix": [1, 12], "x": 11.5, "y": 1},
+                {"matrix": [1, 13], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
 
-              {"label": "caps 2,0", "x": 0, "y": 2, "w": 1.75},
-              {"label": "a 2,2", "x": 1.75, "y": 2},
-              {"label": "s 2,3", "x": 2.75, "y": 2},
-              {"label": "d 2,4", "x": 3.75, "y": 2},
-              {"label": "f 2,5", "x": 4.75, "y": 2},
-              {"label": "g 2,6", "x": 5.75, "y": 2},
-              {"label": "h 2,7", "x": 6.75, "y": 2},
-              {"label": "j 2,8", "x": 7.75, "y": 2},
-              {"label": "k 2,9", "x": 8.75, "y": 2},
-              {"label": "l 2,10", "x": 9.75, "y": 2},
-              {"label": "; 2,11", "x": 10.75, "y": 2},
-              {"label": "' 2,12", "x": 11.75, "y": 2},
-              {"label": "enter 2,13", "x": 12.75, "y": 2, "w": 2.25},
-              {"label": "pg up 2,15", "x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 1.75, "y": 2},
+                {"matrix": [2, 3], "x": 2.75, "y": 2},
+                {"matrix": [2, 4], "x": 3.75, "y": 2},
+                {"matrix": [2, 5], "x": 4.75, "y": 2},
+                {"matrix": [2, 6], "x": 5.75, "y": 2},
+                {"matrix": [2, 7], "x": 6.75, "y": 2},
+                {"matrix": [2, 8], "x": 7.75, "y": 2},
+                {"matrix": [2, 9], "x": 8.75, "y": 2},
+                {"matrix": [2, 10], "x": 9.75, "y": 2},
+                {"matrix": [2, 11], "x": 10.75, "y": 2},
+                {"matrix": [2, 12], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-              {"label": "shift 3,1", "x": 0, "y": 3, "w": 2.25},
-              {"label": "z 3,2", "x": 2.25, "y": 3},
-              {"label": "x 3,3", "x": 3.25, "y": 3},
-              {"label": "c 3,4", "x": 4.25, "y": 3},
-              {"label": "v 3,5", "x": 5.25, "y": 3},
-              {"label": "b 3,6", "x": 6.25, "y": 3},
-              {"label": "n 3,7", "x": 7.25, "y": 3},
-              {"label": "m 3,8", "x": 8.25, "y": 3},
-              {"label": ", 3,9", "x": 9.25, "y": 3},
-              {"label": ". 3,10", "x": 10.25, "y": 3},
-              {"label": "/ 3,11", "x": 11.25, "y": 3},
-              {"label": "shift 3,13", "x": 12.25, "y":3, "w": 1.75},
-              {"label": "up 3,14", "x": 14, "y": 3},
-              {"label": "pg dn 3,15", "x": 15, "y": 3},
+                {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-              {"label": "ctrl 4,0", "x": 0, "y": 4, "w": 1.25},
-              {"label": "win 4,1", "x": 1.25, "y": 4, "w": 1.25},
-              {"label": "alt 4,2", "x": 2.5, "y": 4, "w": 1.25},
-              {"label": "spacebar 4,6", "x": 3.75, "y": 4, "w": 6.25},
-              {"label": "fn 4,10", "x": 10, "y": 4, "w": 1.25},
-              {"label": "ctrl 4,11", "x": 11.25, "y": 4, "w": 1.25},
-              {"label": "left 4,13", "x": 13, "y": 4},
-              {"label": "down 4,14", "x": 14, "y": 4},
-              {"label": "right 4,15", "x": 15, "y": 4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_tsangan": {
             "layout": [
-              {"label": "Esc 0,0", "x": 0, "y": 0},
-              {"label": "1 0,1", "x": 1, "y": 0},
-              {"label": "2 0,2", "x": 2, "y": 0},
-              {"label": "3 0,3", "x": 3, "y": 0},
-              {"label": "4 0,4", "x": 4, "y": 0},
-              {"label": "5 0,5", "x": 5, "y": 0},
-              {"label": "6 0,6", "x": 6, "y": 0},
-              {"label": "7 0,7", "x": 7, "y": 0},
-              {"label": "8 0,8", "x": 8, "y": 0},
-              {"label": "9 0,9", "x": 9, "y": 0},
-              {"label": "0 0,10", "x": 10, "y": 0},
-              {"label": "- 0,11", "x": 11, "y": 0},
-              {"label": "= 0,12", "x": 12, "y": 0},
-              {"label": "bsp 0,14", "x": 13, "y": 0, "w": 2},
-              {"label": "del 0,15", "x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "y": 0},
 
-              {"label": "tab 1,0", "x": 0, "y": 1, "w": 1.5},
-              {"label": "q 1,2", "x": 1.5, "y": 1},
-              {"label": "w 1,3", "x": 2.5, "y": 1},
-              {"label": "e 1,4", "x": 3.5, "y": 1},
-              {"label": "r 1,5", "x": 4.5, "y": 1},
-              {"label": "t 1,6", "x": 5.5, "y": 1},
-              {"label": "y 1,7", "x": 6.5, "y": 1},
-              {"label": "u 1,8", "x": 7.5, "y": 1},
-              {"label": "i 1,9", "x": 8.5, "y": 1},
-              {"label": "o 1,10", "x": 9.5, "y": 1},
-              {"label": "p 1,11", "x": 10.5, "y": 1},
-              {"label": "[ 1,12", "x": 11.5, "y": 1},
-              {"label": "] 1,13", "x": 12.5, "y": 1},
-              {"label": "| 1,14", "x": 13.5, "y": 1, "w": 1.5},
-              {"label": "home 1,15", "x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 2], "x": 1.5, "y": 1},
+                {"matrix": [1, 3], "x": 2.5, "y": 1},
+                {"matrix": [1, 4], "x": 3.5, "y": 1},
+                {"matrix": [1, 5], "x": 4.5, "y": 1},
+                {"matrix": [1, 6], "x": 5.5, "y": 1},
+                {"matrix": [1, 7], "x": 6.5, "y": 1},
+                {"matrix": [1, 8], "x": 7.5, "y": 1},
+                {"matrix": [1, 9], "x": 8.5, "y": 1},
+                {"matrix": [1, 10], "x": 9.5, "y": 1},
+                {"matrix": [1, 11], "x": 10.5, "y": 1},
+                {"matrix": [1, 12], "x": 11.5, "y": 1},
+                {"matrix": [1, 13], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
 
-              {"label": "caps 2,0", "x": 0, "y": 2, "w": 1.75},
-              {"label": "a 2,2", "x": 1.75, "y": 2},
-              {"label": "s 2,3", "x": 2.75, "y": 2},
-              {"label": "d 2,4", "x": 3.75, "y": 2},
-              {"label": "f 2,5", "x": 4.75, "y": 2},
-              {"label": "g 2,6", "x": 5.75, "y": 2},
-              {"label": "h 2,7", "x": 6.75, "y": 2},
-              {"label": "j 2,8", "x": 7.75, "y": 2},
-              {"label": "k 2,9", "x": 8.75, "y": 2},
-              {"label": "l 2,10", "x": 9.75, "y": 2},
-              {"label": "; 2,11", "x": 10.75, "y": 2},
-              {"label": "' 2,12", "x": 11.75, "y": 2},
-              {"label": "enter 2,13", "x": 12.75, "y": 2, "w": 2.25},
-              {"label": "pg up 2,15", "x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 1.75, "y": 2},
+                {"matrix": [2, 3], "x": 2.75, "y": 2},
+                {"matrix": [2, 4], "x": 3.75, "y": 2},
+                {"matrix": [2, 5], "x": 4.75, "y": 2},
+                {"matrix": [2, 6], "x": 5.75, "y": 2},
+                {"matrix": [2, 7], "x": 6.75, "y": 2},
+                {"matrix": [2, 8], "x": 7.75, "y": 2},
+                {"matrix": [2, 9], "x": 8.75, "y": 2},
+                {"matrix": [2, 10], "x": 9.75, "y": 2},
+                {"matrix": [2, 11], "x": 10.75, "y": 2},
+                {"matrix": [2, 12], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-              {"label": "shift 3,1", "x": 0, "y": 3, "w": 2.25},
-              {"label": "z 3,2", "x": 2.25, "y": 3},
-              {"label": "x 3,3", "x": 3.25, "y": 3},
-              {"label": "c 3,4", "x": 4.25, "y": 3},
-              {"label": "v 3,5", "x": 5.25, "y": 3},
-              {"label": "b 3,6", "x": 6.25, "y": 3},
-              {"label": "n 3,7", "x": 7.25, "y": 3},
-              {"label": "m 3,8", "x": 8.25, "y": 3},
-              {"label": ", 3,9", "x": 9.25, "y": 3},
-              {"label": ". 3,10", "x": 10.25, "y": 3},
-              {"label": "/ 3,11", "x": 11.25, "y": 3},
-              {"label": "shift 3,13", "x": 12.25, "y":3, "w": 1.75},
-              {"label": "up 3,14", "x": 14, "y": 3},
-              {"label": "pg dn 3,15", "x": 15, "y": 3},
+                {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-              {"label": "ctrl 4,0", "x": 0, "y": 4, "w": 1.5},
-              {"label": "win 4,1", "x": 1.5, "y": 4},
-              {"label": "alt 4,2", "x": 2.5, "y": 4, "w": 1.5},
-              {"label": "spacebar 4,6", "x": 4, "y": 4, "w": 7},
-              {"label": "ctrl 4,11", "x": 11, "y": 4, "w": 1.5},
-              {"label": "left 4,13", "x": 13, "y": 4},
-              {"label": "down 4,14", "x": 14, "y": 4},
-              {"label": "right 4,15", "x": 15, "y": 4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_tsangan_split_bs": {
             "layout": [
-              {"label": "Esc 0,0", "x": 0, "y": 0},
-              {"label": "1 0,1", "x": 1, "y": 0},
-              {"label": "2 0,2", "x": 2, "y": 0},
-              {"label": "3 0,3", "x": 3, "y": 0},
-              {"label": "4 0,4", "x": 4, "y": 0},
-              {"label": "5 0,5", "x": 5, "y": 0},
-              {"label": "6 0,6", "x": 6, "y": 0},
-              {"label": "7 0,7", "x": 7, "y": 0},
-              {"label": "8 0,8", "x": 8, "y": 0},
-              {"label": "9 0,9", "x": 9, "y": 0},
-              {"label": "0 0,10", "x": 10, "y": 0},
-              {"label": "- 0,11", "x": 11, "y": 0},
-              {"label": "= 0,12", "x": 12, "y": 0},
-              {"label": "bsp extra 0,13", "x": 13, "y": 0},
-              {"label": "bsp 0,14", "x": 14, "y": 0},
-              {"label": "del 0,15", "x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
 
-              {"label": "tab 1,0", "x": 0, "y": 1, "w": 1.5},
-              {"label": "q 1,2", "x": 1.5, "y": 1},
-              {"label": "w 1,3", "x": 2.5, "y": 1},
-              {"label": "e 1,4", "x": 3.5, "y": 1},
-              {"label": "r 1,5", "x": 4.5, "y": 1},
-              {"label": "t 1,6", "x": 5.5, "y": 1},
-              {"label": "y 1,7", "x": 6.5, "y": 1},
-              {"label": "u 1,8", "x": 7.5, "y": 1},
-              {"label": "i 1,9", "x": 8.5, "y": 1},
-              {"label": "o 1,10", "x": 9.5, "y": 1},
-              {"label": "p 1,11", "x": 10.5, "y": 1},
-              {"label": "[ 1,12", "x": 11.5, "y": 1},
-              {"label": "] 1,13", "x": 12.5, "y": 1},
-              {"label": "| 1,14", "x": 13.5, "y": 1, "w": 1.5},
-              {"label": "home 1,15", "x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 2], "x": 1.5, "y": 1},
+                {"matrix": [1, 3], "x": 2.5, "y": 1},
+                {"matrix": [1, 4], "x": 3.5, "y": 1},
+                {"matrix": [1, 5], "x": 4.5, "y": 1},
+                {"matrix": [1, 6], "x": 5.5, "y": 1},
+                {"matrix": [1, 7], "x": 6.5, "y": 1},
+                {"matrix": [1, 8], "x": 7.5, "y": 1},
+                {"matrix": [1, 9], "x": 8.5, "y": 1},
+                {"matrix": [1, 10], "x": 9.5, "y": 1},
+                {"matrix": [1, 11], "x": 10.5, "y": 1},
+                {"matrix": [1, 12], "x": 11.5, "y": 1},
+                {"matrix": [1, 13], "x": 12.5, "y": 1},
+                {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
 
-              {"label": "caps 2,0", "x": 0, "y": 2, "w": 1.75},
-              {"label": "a 2,2", "x": 1.75, "y": 2},
-              {"label": "s 2,3", "x": 2.75, "y": 2},
-              {"label": "d 2,4", "x": 3.75, "y": 2},
-              {"label": "f 2,5", "x": 4.75, "y": 2},
-              {"label": "g 2,6", "x": 5.75, "y": 2},
-              {"label": "h 2,7", "x": 6.75, "y": 2},
-              {"label": "j 2,8", "x": 7.75, "y": 2},
-              {"label": "k 2,9", "x": 8.75, "y": 2},
-              {"label": "l 2,10", "x": 9.75, "y": 2},
-              {"label": "; 2,11", "x": 10.75, "y": 2},
-              {"label": "' 2,12", "x": 11.75, "y": 2},
-              {"label": "enter 2,13", "x": 12.75, "y": 2, "w": 2.25},
-              {"label": "pg up 2,15", "x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 1.75, "y": 2},
+                {"matrix": [2, 3], "x": 2.75, "y": 2},
+                {"matrix": [2, 4], "x": 3.75, "y": 2},
+                {"matrix": [2, 5], "x": 4.75, "y": 2},
+                {"matrix": [2, 6], "x": 5.75, "y": 2},
+                {"matrix": [2, 7], "x": 6.75, "y": 2},
+                {"matrix": [2, 8], "x": 7.75, "y": 2},
+                {"matrix": [2, 9], "x": 8.75, "y": 2},
+                {"matrix": [2, 10], "x": 9.75, "y": 2},
+                {"matrix": [2, 11], "x": 10.75, "y": 2},
+                {"matrix": [2, 12], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
 
-              {"label": "shift 3,1", "x": 0, "y": 3, "w": 2.25},
-              {"label": "z 3,2", "x": 2.25, "y": 3},
-              {"label": "x 3,3", "x": 3.25, "y": 3},
-              {"label": "c 3,4", "x": 4.25, "y": 3},
-              {"label": "v 3,5", "x": 5.25, "y": 3},
-              {"label": "b 3,6", "x": 6.25, "y": 3},
-              {"label": "n 3,7", "x": 7.25, "y": 3},
-              {"label": "m 3,8", "x": 8.25, "y": 3},
-              {"label": ", 3,9", "x": 9.25, "y": 3},
-              {"label": ". 3,10", "x": 10.25, "y": 3},
-              {"label": "/ 3,11", "x": 11.25, "y": 3},
-              {"label": "shift 3,13", "x": 12.25, "y":3, "w": 1.75},
-              {"label": "up 3,14", "x": 14, "y": 3},
-              {"label": "pg dn 3,15", "x": 15, "y": 3},
+                {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
 
-              {"label": "ctrl 4,0", "x": 0, "y": 4, "w": 1.5},
-              {"label": "win 4,1", "x": 1.5, "y": 4},
-              {"label": "alt 4,2", "x": 2.5, "y": 4, "w": 1.5},
-              {"label": "spacebar 4,6", "x": 4, "y": 4, "w": 7},
-              {"label": "ctrl 4,11", "x": 11, "y": 4, "w": 1.5},
-              {"label": "left 4,13", "x": 13, "y": 4},
-              {"label": "down 4,14", "x": 14, "y": 4},
-              {"label": "right 4,15", "x": 15, "y": 4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 13, "y": 4},
+                {"matrix": [4, 14], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 155
keyboards/drewkeys/iskar/iskar.h

@@ -1,155 +0,0 @@
-/* Copyright 2021 Drewkeys
- *
- * 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"
-// Corresponding changes to the layout names and/or definitions must also be made to info.json
-
-/* Standard arrangement / LAYOUT
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │0f │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤───┤
- * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e   │1f │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤───┤
- * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d      │2f │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤───┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d    │3e │3f │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┬┴───┬┴┬───┼───┤───┤
- * │40  │41  │43  │        46              │4a  │4b  │▓│4d │4e │4f │
- * └────┴────┴────┴────────────────────────┴────┴────┴ ┴───┴───┘───┘
-*/
-#define LAYOUT( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E,   k0F,    \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E,   k1F,    \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,        k2F,    \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D, k3E,   k3F,    \
-    k40, k41, k42,                k46,                k4A, k4B,      k4D, k4E,   k4F     \
-) { \
-    { k00,   k01,   k02, k03,   k04,   k05,   k06, k07,   k08,   k09,   k0A, k0B, k0C,   k0D, k0E,   k0F }, \
-    { k10,   KC_NO, k12, k13,   k14,   k15,   k16, k17,   k18,   k19,   k1A, k1B, k1C,   k1D, k1E,   k1F }, \
-    { k20,   KC_NO, k22, k23,   k24,   k25,   k26, k27,   k28,   k29,   k2A, k2B, k2C,   k2D, KC_NO, k2F }, \
-    { KC_NO, k31,   k32, k33,   k34,   k35,   k36, k37,   k38,   k39,   k3A, k3B, KC_NO, k3D, k3E,   k3F }, \
-    { k40,   k41,   k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4A, k4B, KC_NO, k4D, k4E,   k4F }  \
-}
-
-/* Standard arrangement / 65 ANSI
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0e     │0f │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤───┤
- * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e   │1f │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤───┤
- * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d      │2f │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤───┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d    │3e │3f │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┬┴───┬┴┬───┼───┤───┤
- * │40  │41  │43  │        46              │4a  │4b  │ │4d │4e │4f │
- * └────┴────┴────┴────────────────────────┴────┴────┴ ┴───┴───┘───┘
-*/
-#define LAYOUT_65_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,        k0E, k0F,    \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,   k1E, k1F,    \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,        k2F,    \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D,   k3E, k3F,    \
-    k40, k41, k42,                k46,                k4A, k4B,      k4D,   k4E, k4F     \
-) { \
-    { k00,   k01,   k02, k03,   k04,   k05,   k06, k07,   k08,   k09,   k0A, k0B, k0C,   KC_NO, k0E, k0F }, \
-    { k10,   KC_NO, k12, k13,   k14,   k15,   k16, k17,   k18,   k19,   k1A, k1B, k1C,   k1D, k1E,   k1F }, \
-    { k20,   KC_NO, k22, k23,   k24,   k25,   k26, k27,   k28,   k29,   k2A, k2B, k2C,   k2D, KC_NO, k2F }, \
-    { KC_NO, k31,   k32, k33,   k34,   k35,   k36, k37,   k38,   k39,   k3A, k3B, KC_NO, k3D, k3E,   k3F }, \
-    { k40,   k41,   k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4A, k4B, KC_NO, k4D, k4E,   k4F }  \
-}
-
-/* Standard arrangement / 65 ANSI SPLIT
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │0f │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤───┤
- * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e   │1f │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤───┤
- * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d      │2f │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤───┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d    │3e │3f │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┬┴───┬┴┬───┼───┤───┤
- * │40  │41  │43  │        46              │4a  │4b  │ │4d │4e │4f │
- * └────┴────┴────┴────────────────────────┴────┴────┴ ┴───┴───┘───┘
-*/
-#define LAYOUT_65_ansi_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E,   k0F,    \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E,   k1F,    \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,        k2F,    \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D, k3E,   k3F,    \
-    k40, k41, k42,                k46,                k4A, k4B,      k4D, k4E,   k4F     \
-) { \
-    { k00,   k01,   k02, k03,   k04,   k05,   k06, k07,   k08,   k09,   k0A, k0B, k0C,   k0D, k0E,   k0F }, \
-    { k10,   KC_NO, k12, k13,   k14,   k15,   k16, k17,   k18,   k19,   k1A, k1B, k1C,   k1D, k1E,   k1F }, \
-    { k20,   KC_NO, k22, k23,   k24,   k25,   k26, k27,   k28,   k29,   k2A, k2B, k2C,   k2D, KC_NO, k2F }, \
-    { KC_NO, k31,   k32, k33,   k34,   k35,   k36, k37,   k38,   k39,   k3A, k3B, KC_NO, k3D, k3E,   k3F }, \
-    { k40,   k41,   k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4A, k4B, KC_NO, k4D, k4E,   k4F }  \
-}
-
-/* Standard arrangement / 65 TSANGAN
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0e     │0f │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤───┤
- * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e   │1f │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤───┤
- * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d      │2f │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤───┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d    │3e │3f │
- * ├─────┬─┴─┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┬┴───┬┴┬───┼───┤───┤
- * │40   │41 │43  │        46                   │4b  │ │4d │4e │4f │
- * └─────┴───┴────┴─────────────────────────────┴────┴ ┴───┴───┘───┘
-*/
-#define LAYOUT_65_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,      k0E,  k0F,     \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E,   k1F,    \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,        k2F,    \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D, k3E,   k3F,    \
-    k40, k41, k42,                k46,                     k4B,      k4D, k4E,   k4F     \
-) { \
-    { k00,   k01,   k02, k03,   k04,   k05,   k06, k07,   k08,   k09,   k0A, k0B, k0C,   KC_NO, k0E, k0F }, \
-    { k10,   KC_NO, k12, k13,   k14,   k15,   k16, k17,   k18,   k19,   k1A, k1B, k1C,   k1D, k1E,   k1F }, \
-    { k20,   KC_NO, k22, k23,   k24,   k25,   k26, k27,   k28,   k29,   k2A, k2B, k2C,   k2D, KC_NO, k2F }, \
-    { KC_NO, k31,   k32, k33,   k34,   k35,   k36, k37,   k38,   k39,   k3A, k3B, KC_NO, k3D, k3E,   k3F }, \
-    { k40,   k41,   k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, KC_NO, k4B, KC_NO, k4D, k4E, k4F }  \
-}
-
-/* Standard arrangement / 65 TSANGAN SPLIT
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │0f │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤───┤
- * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e   │1f │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤───┤
- * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d      │2f │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤───┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d    │3e │3f │
- * ├─────┬─┴─┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┬┴───┬┴┬───┼───┤───┤
- * │40   │41 │43  │        46                   │4b  │ │4d │4e │4f │
- * └─────┴───┴────┴─────────────────────────────┴────┴ ┴───┴───┘───┘
-*/
-#define LAYOUT_65_tsangan_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E,   k0F,    \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E,   k1F,    \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,        k2F,    \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D, k3E,   k3F,    \
-    k40, k41, k42,                k46,                     k4B,      k4D, k4E,   k4F     \
-) { \
-    { k00,   k01,   k02, k03,   k04,   k05,   k06, k07,   k08,   k09,   k0A, k0B, k0C,   k0D, k0E,   k0F }, \
-    { k10,   KC_NO, k12, k13,   k14,   k15,   k16, k17,   k18,   k19,   k1A, k1B, k1C,   k1D, k1E,   k1F }, \
-    { k20,   KC_NO, k22, k23,   k24,   k25,   k26, k27,   k28,   k29,   k2A, k2B, k2C,   k2D, KC_NO, k2F }, \
-    { KC_NO, k31,   k32, k33,   k34,   k35,   k36, k37,   k38,   k39,   k3A, k3B, KC_NO, k3D, k3E,   k3F }, \
-    { k40,   k41,   k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, KC_NO, k4B, KC_NO, k4D, k4E,   k4F }  \
-}

+ 1 - 3
keyboards/durgod/dgk6x/dgk6x.h

@@ -17,9 +17,7 @@
 
 #include "quantum.h"
 
-#ifdef KEYBOARD_durgod_dgk6x_hades
-#   include "hades.h"
-#elif defined KEYBOARD_durgod_dgk6x_venus
+#if defined KEYBOARD_durgod_dgk6x_venus
 #   include "venus.h"
 #elif defined KEYBOARD_durgod_dgk6x_galaxy
 #   include "galaxy.h"

+ 1 - 1
keyboards/durgod/dgk6x/hades/hades.c

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

+ 0 - 37
keyboards/durgod/dgk6x/hades/hades.h

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

+ 68 - 68
keyboards/durgod/dgk6x/hades/info.json

@@ -17,78 +17,78 @@
     "layouts": {
         "LAYOUT_65_ansi": {
             "layout": [
-                { "label": "Esc", "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": "Delete", "x": 15, "y": 0 },
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "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": "Home", "x": 15, "y": 1 },
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                { "label": "CapsLock", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "A", "x": 1.75, "y": 2 },
-                { "label": "S", "x": 2.75, "y": 2 },
-                { "label": "D", "x": 3.75, "y": 2 },
-                { "label": "F", "x": 4.75, "y": 2 },
-                { "label": "G", "x": 5.75, "y": 2 },
-                { "label": "H", "x": 6.75, "y": 2 },
-                { "label": "J", "x": 7.75, "y": 2 },
-                { "label": "K", "x": 8.75, "y": 2 },
-                { "label": "L", "x": 9.75, "y": 2 },
-                { "label": ":", "x": 10.75, "y": 2 },
-                { "label": "\"", "x": 11.75, "y": 2 },
-                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
-                { "label": "PgUp", "x": 15, "y": 2 },
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
-                { "label": "Z", "x": 2.25, "y": 3 },
-                { "label": "X", "x": 3.25, "y": 3 },
-                { "label": "C", "x": 4.25, "y": 3 },
-                { "label": "V", "x": 5.25, "y": 3 },
-                { "label": "B", "x": 6.25, "y": 3 },
-                { "label": "N", "x": 7.25, "y": 3 },
-                { "label": "M", "x": 8.25, "y": 3 },
-                { "label": "<", "x": 9.25, "y": 3 },
-                { "label": ">", "x": 10.25, "y": 3 },
-                { "label": "?", "x": 11.25, "y": 3 },
-                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
-                { "label": "Up", "x": 14, "y": 3 },
-                { "label": "PgDn", "x": 15, "y": 3 },
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                { "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": "Fn1", "x": 10, "y": 4 },
-                { "label": "Fn2", "x": 11, "y": 4 },
-                { "label": "Ctrl", "x": 12, "y": 4 },
-                { "label": "Left", "x": 13, "y": 4 },
-                { "label": "Down", "x": 14, "y": 4 },
-                { "label": "Right", "x": 15, "y": 4 }
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 33
keyboards/dztech/duo_s/duo_s.h

@@ -1,33 +0,0 @@
-/* Copyright 2021 DZTECH <moyi4681@live.cn>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"  
-
-#define LAYOUT_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,       K213, K214, \
-    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, \
-    K400, K401, K402,             K405,             K408,       K410, K411,       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,  KC_NO, K213,  K214 }, \
-    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314 }, \
-    { K400,  K401,  K402,  KC_NO, KC_NO, K405,  KC_NO, KC_NO, K408,  KC_NO, K410,  K411,  KC_NO, K413,  K414 }  \
-}

+ 73 - 1
keyboards/dztech/duo_s/info.json

@@ -18,7 +18,79 @@
   "community_layouts": ["65_ansi_blocker"],
   "layouts": {
       "LAYOUT_65_ansi_blocker": {
-          "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
+          "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0},
+            {"matrix": [0, 1], "x": 1, "y": 0},
+            {"matrix": [0, 2], "x": 2, "y": 0},
+            {"matrix": [0, 3], "x": 3, "y": 0},
+            {"matrix": [0, 4], "x": 4, "y": 0},
+            {"matrix": [0, 5], "x": 5, "y": 0},
+            {"matrix": [0, 6], "x": 6, "y": 0},
+            {"matrix": [0, 7], "x": 7, "y": 0},
+            {"matrix": [0, 8], "x": 8, "y": 0},
+            {"matrix": [0, 9], "x": 9, "y": 0},
+            {"matrix": [0, 10], "x": 10, "y": 0},
+            {"matrix": [0, 11], "x": 11, "y": 0},
+            {"matrix": [0, 12], "x": 12, "y": 0},
+            {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+            {"matrix": [0, 14], "x": 15, "y": 0},
+
+            {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+            {"matrix": [1, 1], "x": 1.5, "y": 1},
+            {"matrix": [1, 2], "x": 2.5, "y": 1},
+            {"matrix": [1, 3], "x": 3.5, "y": 1},
+            {"matrix": [1, 4], "x": 4.5, "y": 1},
+            {"matrix": [1, 5], "x": 5.5, "y": 1},
+            {"matrix": [1, 6], "x": 6.5, "y": 1},
+            {"matrix": [1, 7], "x": 7.5, "y": 1},
+            {"matrix": [1, 8], "x": 8.5, "y": 1},
+            {"matrix": [1, 9], "x": 9.5, "y": 1},
+            {"matrix": [1, 10], "x": 10.5, "y": 1},
+            {"matrix": [1, 11], "x": 11.5, "y": 1},
+            {"matrix": [1, 12], "x": 12.5, "y": 1},
+            {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+            {"matrix": [1, 14], "x": 15, "y": 1},
+
+            {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+            {"matrix": [2, 1], "x": 1.75, "y": 2},
+            {"matrix": [2, 2], "x": 2.75, "y": 2},
+            {"matrix": [2, 3], "x": 3.75, "y": 2},
+            {"matrix": [2, 4], "x": 4.75, "y": 2},
+            {"matrix": [2, 5], "x": 5.75, "y": 2},
+            {"matrix": [2, 6], "x": 6.75, "y": 2},
+            {"matrix": [2, 7], "x": 7.75, "y": 2},
+            {"matrix": [2, 8], "x": 8.75, "y": 2},
+            {"matrix": [2, 9], "x": 9.75, "y": 2},
+            {"matrix": [2, 10], "x": 10.75, "y": 2},
+            {"matrix": [2, 11], "x": 11.75, "y": 2},
+            {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+            {"matrix": [2, 14], "x": 15, "y": 2},
+
+            {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+            {"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, 13], "x": 14, "y": 3},
+            {"matrix": [3, 14], "x": 15, "y": 3},
+
+            {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+            {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+            {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+            {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+            {"matrix": [4, 8], "x": 10, "y": 4, "w": 1.25},
+            {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+            {"matrix": [4, 11], "x": 13, "y": 4},
+            {"matrix": [4, 13], "x": 14, "y": 4},
+            {"matrix": [4, 14], "x": 15, "y": 4}
+          ]
       }
   }
 }

+ 1 - 79
keyboards/dztech/dz65rgb/info.json

@@ -6,83 +6,5 @@
     "usb": {
         "vid": "0x445A"
     },
-    "community_layouts": ["65_ansi"],
-    "layouts": {
-        "LAYOUT_65_ansi": {
-            "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
-                {"x":15, "y":0},
-
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
-                {"x":15, "y":1},
-
-                {"x":0, "y":2, "w":1.75},
-                {"x":1.75, "y":2},
-                {"x":2.75, "y":2},
-                {"x":3.75, "y":2},
-                {"x":4.75, "y":2},
-                {"x":5.75, "y":2},
-                {"x":6.75, "y":2},
-                {"x":7.75, "y":2},
-                {"x":8.75, "y":2},
-                {"x":9.75, "y":2},
-                {"x":10.75, "y":2},
-                {"x":11.75, "y":2},
-                {"x":12.75, "y":2, "w":2.25},
-                {"x":15, "y":2},
-
-                {"x":0, "y":3, "w":2.25},
-                {"x":2.25, "y":3},
-                {"x":3.25, "y":3},
-                {"x":4.25, "y":3},
-                {"x":5.25, "y":3},
-                {"x":6.25, "y":3},
-                {"x":7.25, "y":3},
-                {"x":8.25, "y":3},
-                {"x":9.25, "y":3},
-                {"x":10.25, "y":3},
-                {"x":11.25, "y":3},
-                {"x":12.25, "y":3, "w":1.75},
-                {"x":14, "y":3},
-                {"x":15, "y":3},
-
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4},
-                {"x":15, "y":4}
-            ]
-        }
-    }
+    "community_layouts": ["65_ansi"]
 }

+ 79 - 1
keyboards/dztech/dz65rgb/v1/info.json

@@ -11,5 +11,83 @@
     "processor": "STM32F303",
     "bootloader": "stm32-dfu",
     "board": "QMK_PROTON_C",
-    "debounce": 3
+    "debounce": 3,
+    "layouts": {
+        "LAYOUT_65_ansi": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 8], "x": 10, "y": 4},
+                {"matrix": [4, 9], "x": 11, "y": 4},
+                {"matrix": [4, 10], "x": 12, "y": 4},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
+            ]
+        }
+    }
 }

+ 1 - 1
keyboards/dztech/dz65rgb/v1/v1.c

@@ -13,7 +13,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-#include "v1.h"
+#include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
 const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {

+ 0 - 34
keyboards/dztech/dz65rgb/v1/v1.h

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

+ 79 - 1
keyboards/dztech/dz65rgb/v2/info.json

@@ -10,5 +10,83 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
-    "debounce": 3
+    "debounce": 3,
+    "layouts": {
+        "LAYOUT_65_ansi": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 8], "x": 10, "y": 4},
+                {"matrix": [4, 9], "x": 11, "y": 4},
+                {"matrix": [4, 10], "x": 12, "y": 4},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
+            ]
+        }
+    }
 }

+ 1 - 1
keyboards/dztech/dz65rgb/v2/v2.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 "v2.h"
+#include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
 const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {

+ 0 - 34
keyboards/dztech/dz65rgb/v2/v2.h

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

+ 79 - 1
keyboards/dztech/dz65rgb/v3/info.json

@@ -9,5 +9,83 @@
     },
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
-    "bootloader": "lufa-ms"
+    "bootloader": "lufa-ms",
+    "layouts": {
+        "LAYOUT_65_ansi": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
+            ]
+        }
+    }
 }

+ 1 - 1
keyboards/dztech/dz65rgb/v3/v3.c

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

+ 0 - 35
keyboards/dztech/dz65rgb/v3/v3.h

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

+ 0 - 222
keyboards/eason/capsule65/capsule65.h

@@ -1,222 +0,0 @@
-/* Copyright 2022 EASON XIAOXUXK@YEAH.NET
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/*              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐    ┌───────┐
- *              │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │    │0D     │ 2u Backspace
- *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤    └─┬─────┤
- *              │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D   │1F │      │     │
- *  2.25u       ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤   ┌──┴┐1D  │ ISO Enter
- *  LShift      │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C      │2F │   │2C │    │
- * ┌────────┐   ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴┬──┴────┬───┼───┤   └───┴────┘
- * │30      │   │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B│3C     │3D │3F │
- * └────────┘   ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┼───┬───┼───┼───┤
- *              │40  │41  │42  │45                      │49 │4A │4B │4C │4D │4F │
- *              └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- *              ┌────┬────┬────┬────────────────────────┬────┬────┐
- *              │40  │41  │42  │45                      │49  │4A  │ Blocker
- *              └────┴────┴────┴────────────────────────┴────┴────┘
- *              ┌─────┬───┬─────┬───────────────────────────┬─────┐
- *              │40   │41 │42   │45                         │4A   │ Tsangan
- *              └─────┴───┴─────┴───────────────────────────┴─────┘
- */
-
-#define LAYOUT_all( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,           K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      K3F, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D,      K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_ansi_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,           K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      K3F, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D,      K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
-    K40, K41, K42,           K45,                K49, K4A,      K4C, K4D, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,           K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      K3F, \
-    K40, K41, K42,           K45,                K49, K4A,      K4C, K4D,      K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker_tsangan( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
-    K40, K41, K42,           K45,                     K4A,      K4C, K4D, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker_tsangan_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,           K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      K3F, \
-    K40, K41, K42,           K45,                     K4A,      K4C, K4D,      K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_iso( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_iso_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,           K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D,      K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      K3F, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D,      K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_iso_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
-    K40, K41, K42,           K45,                K49, K4A,      K4C, K4D, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_iso_blocker_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,           K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D,      K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      K3F, \
-    K40, K41, K42,           K45,                K49, K4A,      K4C, K4D,      K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, XXX, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_iso_blocker_tsangan( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
-    K40, K41, K42,           K45,                     K4A,      K4C, K4D, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D, XXX, K4F }, \
-}
-
-#define LAYOUT_65_iso_blocker_tsangan_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,           K1F, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D,      K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      K3F, \
-    K40, K41, K42,           K45,                     K4A,      K4C, K4D,      K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, XXX, K4C, K4D, XXX, K4F }, \
-}

+ 938 - 934
keyboards/eason/capsule65/info.json

@@ -25,988 +25,992 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                { "label": "K00 (F4,D5)", "x": 0, "y": 0 },
-                { "label": "K01 (F4,D2)", "x": 1, "y": 0 },
-                { "label": "K02 (F4,D3)", "x": 2, "y": 0 },
-                { "label": "K03 (F4,D4)", "x": 3, "y": 0 },
-                { "label": "K04 (F4,D6)", "x": 4, "y": 0 },
-                { "label": "K05 (F4,D7)", "x": 5, "y": 0 },
-                { "label": "K06 (F4,B4)", "x": 6, "y": 0 },
-                { "label": "K07 (F4,B5)", "x": 7, "y": 0 },
-                { "label": "K08 (F4,B6)", "x": 8, "y": 0 },
-                { "label": "K09 (F4,C6)", "x": 9, "y": 0 },
-                { "label": "K0A (F4,C7)", "x": 10, "y": 0 },
-                { "label": "K0B (F4,E2)", "x": 11, "y": 0 },
-                { "label": "K0C (F4,B3)", "x": 12, "y": 0 },
-                { "label": "K0D (F4,B1)", "x": 13, "y": 0 },
-                { "label": "K0E (F4,B0)", "x": 14, "y": 0 },
-                { "label": "K0F (F4,B2)", "x": 15, "y": 0 },
-                { "label": "K10 (D1,D5)", "x": 0, "y": 1 ,"w":1.5},
-                { "label": "K11 (D1,D2)", "x": 1.5, "y": 1},
-                { "label": "K12 (D1,D3)", "x": 2.5, "y": 1 },
-                { "label": "K13 (D1,D4)", "x": 3.5, "y": 1 },
-                { "label": "K14 (D1,D6)", "x": 4.5, "y": 1 },
-                { "label": "K15 (D1,D7)", "x": 5.5, "y": 1 },
-                { "label": "K16 (D1,B4)", "x": 6.5, "y": 1 },
-                { "label": "K17 (D1,B5)", "x": 7.5, "y": 1 },
-                { "label": "K18 (D1,B6)", "x": 8.5, "y": 1 },
-                { "label": "K19 (D1,C6)", "x": 9.5, "y": 1 },
-                { "label": "K1A (D1,C7)", "x": 10.5, "y": 1 },
-                { "label": "K1B (D1,E2)", "x": 11.5, "y": 1 },
-                { "label": "K1C (D1,B3)", "x": 12.5, "y": 1 },
-                { "label": "K1D (D1,B1)", "x": 13.5, "y": 1 ,"w":1.5},
-                { "label": "K1F (D1,B2)", "x": 15, "y": 1 },
-                { "label": "K20 (B7,D5)", "x": 0, "y": 2,"w":1.75 },
-                { "label": "K21 (B7,D2)", "x": 1.75, "y": 2 },
-                { "label": "K22 (B7,D3)", "x": 2.75, "y": 2 },
-                { "label": "K23 (B7,D4)", "x": 3.75, "y": 2 },
-                { "label": "K24 (B7,D6)", "x": 4.75, "y": 2 },
-                { "label": "K25 (B7,D7)", "x": 5.75, "y": 2 },
-                { "label": "K26 (B7,B4)", "x": 6.75, "y": 2 },
-                { "label": "K27 (B7,B5)", "x": 7.75, "y": 2 },
-                { "label": "K28 (B7,B6)", "x": 8.75, "y": 2 },
-                { "label": "K29 (B7,C6)", "x": 9.75, "y": 2 },
-                { "label": "K2A (B7,C7)", "x": 10.75, "y": 2 },
-                { "label": "K2B (B7,E2)", "x": 11.75, "y": 2 },
-                { "label": "K2C (B7,B3)", "x": 12.75, "y": 2 ,"w":2.25},
-                { "label": "K2F (B7,B2)", "x": 15, "y": 2 },
-                { "label": "K30 (D0,D5)", "x": 0, "y": 3 ,"w":1.25},
-                { "label": "K31 (D0,D2)", "x": 1.25, "y": 3 },
-                { "label": "K32 (D0,D3)", "x": 2.25, "y": 3 },
-                { "label": "K33 (D0,D4)", "x": 3.25, "y": 3 },
-                { "label": "K34 (D0,D6)", "x": 4.25, "y": 3 },
-                { "label": "K35 (D0,D7)", "x": 5.25, "y": 3 },
-                { "label": "K36 (D0,B4)", "x": 6.25, "y": 3 },
-                { "label": "K37 (D0,B5)", "x": 7.25, "y": 3 },
-                { "label": "K38 (D0,B6)", "x": 8.25, "y": 3 },
-                { "label": "K39 (D0,C6)", "x": 9.25, "y": 3 },
-                { "label": "K3A (D0,C7)", "x": 10.25, "y": 3 },
-                { "label": "K3B (D0,E2)", "x": 11.25, "y": 3 },
-                { "label": "K3C (D0,B3)", "x": 12.25, "y": 3 ,"w":1.75 },
-                { "label": "K3D (D0,B1)", "x": 14, "y": 3 },
-                { "label": "K3F (D0,B2)", "x": 15, "y": 3 },
-                { "label": "K40 (F5,D5)", "x": 0, "y": 4 ,"w":1.25},
-                { "label": "K41 (F5,D2)", "x": 1.25, "y": 4 ,"w":1.25},
-                { "label": "K42 (F5,D3)", "x": 2.5, "y": 4 ,"w":1.25},
-                { "label": "K45 (F5,D7)", "x": 3.75, "y": 4,"w":6.25 },
-                { "label": "K49 (F5,C6)", "x": 10, "y": 4 },
-                { "label": "K4A (F5,C7)", "x": 11, "y": 4 },
-                { "label": "K4B (F5,E2)", "x": 12, "y": 4 },
-                { "label": "K4C (F5,B3)", "x": 13, "y": 4 },
-                { "label": "K4D (F5,B1)", "x": 14, "y": 4 },
-                { "label": "K4F (F5,B2)", "x": 15, "y": 4 }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi": {
             "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},
-
-                {"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":"End", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Fn", "x":10, "y":4},
-                {"label":"Ctrl", "x":11, "y":4},
-                {"label":"RGB Toggle", "x":12, "y":4},
-                {"label":"\u2190", "x":13, "y":4},
-                {"label":"\u2193", "x":14, "y":4},
-                {"label":"\u2192", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_split_bs": {
             "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},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Delete", "x":15, "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":"End", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Fn", "x":10, "y":4},
-                {"label":"Ctrl", "x":11, "y":4},
-                {"label":"RGB Toggle", "x":12, "y":4},
-                {"label":"\u2190", "x":13, "y":4},
-                {"label":"\u2193", "x":14, "y":4},
-                {"label":"\u2192", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "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},
-
-                {"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":"End", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Fn", "x":10, "y":4, "w":1.25},
-                {"label":"Ctrl", "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}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker_split_bs": {
             "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},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Delete", "x":15, "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":"End", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Fn", "x":10, "y":4, "w":1.25},
-                {"label":"Ctrl", "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}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "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},
-
-                {"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":"End", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "x":4, "y":4, "w":7},
-                {"label":"Ctrl", "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}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_ansi_blocker_tsangan_split_bs": {
             "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},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Delete", "x":15, "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":"End", "x":15, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-                {"label":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "x":4, "y":4, "w":7},
-                {"label":"Ctrl", "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}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2\"", "x":2, "y":0},
-                {"label":"3\u00a3", "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},
-
-                {"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":"End", "x":15, "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":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Fn", "x":10, "y":4},
-                {"label":"Ctrl", "x":11, "y":4},
-                {"label":"RGB Toggle", "x":12, "y":4},
-                {"label":"\u2190", "x":13, "y":4},
-                {"label":"\u2193", "x":14, "y":4},
-                {"label":"\u2192", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_split_bs": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2\"", "x":2, "y":0},
-                {"label":"3\u00a3", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Delete", "x":15, "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":"End", "x":15, "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":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Fn", "x":10, "y":4},
-                {"label":"Ctrl", "x":11, "y":4},
-                {"label":"RGB Toggle", "x":12, "y":4},
-                {"label":"\u2190", "x":13, "y":4},
-                {"label":"\u2193", "x":14, "y":4},
-                {"label":"\u2192", "x":15, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2\"", "x":2, "y":0},
-                {"label":"3\u00a3", "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},
-
-                {"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":"End", "x":15, "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":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Fn", "x":10, "y":4, "w":1.25},
-                {"label":"Ctrl", "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}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker_split_bs": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2\"", "x":2, "y":0},
-                {"label":"3\u00a3", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Delete", "x":15, "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":"End", "x":15, "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":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"label":"Space", "x":3.75, "y":4, "w":6.25},
-                {"label":"Fn", "x":10, "y":4, "w":1.25},
-                {"label":"Ctrl", "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}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker_tsangan": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2\"", "x":2, "y":0},
-                {"label":"3\u00a3", "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},
-
-                {"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":"End", "x":15, "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":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "x":4, "y":4, "w":7},
-                {"label":"Ctrl", "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}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         },
         "LAYOUT_65_iso_blocker_tsangan_split_bs": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2\"", "x":2, "y":0},
-                {"label":"3\u00a3", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0},
-                {"label":"Backspace", "x":14, "y":0},
-                {"label":"Delete", "x":15, "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":"End", "x":15, "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":"PgUp", "x":15, "y":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":14, "y":3},
-                {"label":"PgDn", "x":15, "y":3},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"GUI", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"label":"Space", "x":4, "y":4, "w":7},
-                {"label":"Ctrl", "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}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+                {"matrix": [0, 15], "x": 15, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 15], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 15], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 103
keyboards/evyd13/eon65/eon65.h

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

+ 363 - 363
keyboards/evyd13/eon65/info.json

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

+ 363 - 343
keyboards/evyd13/ta65/info.json

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

+ 0 - 82
keyboards/evyd13/ta65/ta65.h

@@ -1,82 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-// readability
-#define ___ KC_NO
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      k1d, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,      k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,      k3d, k3e, \
-    k40, k41, k42,                k46,           k49, k4a, k4b, k4c,      k4d, k4e  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, ___}, \
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, ___}, \
-    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
-    {k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e, ___}  \
-}
-
-#define LAYOUT_65_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c,      k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      k1d, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,           k2d, k2e, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,      k3d, k3e, \
-    k40, k41, k42,                k46,           k49, k4a, k4b, k4c,      k4d, k4e  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, ___}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, ___}, \
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___, k2d, k2e, ___}, \
-    {k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
-    {k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e, ___}  \
-}
-
-#define LAYOUT_ansi_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      k1d, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,           k2d, k2e, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,      k3d, k3e, \
-    k40, k41, k42,                k46,                k4a,      k4c,      k4d, k4e  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, ___}, \
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___, k2d, k2e, ___}, \
-    {k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
-    {k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, ___, k4c, k4d, k4e, ___}  \
-}
-
-#define LAYOUT_iso_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, 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,      k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,      k3d, k3e, \
-    k40, k41, k42,                k46,                k4a,      k4c,      k4d, k4e  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e, ___}, \
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, ___}, \
-    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
-    {k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, ___, k4c, k4d, k4e, ___}  \
-}
-
-#define LAYOUT_65_iso( \
-    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,      k2d, k2e, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,      k3d, k3e, \
-    k40, k41, k42,                k46,           k49, k4a, k4b, k4c,      k4d, k4e  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, ___}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      k1e, ___}, \
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, ___}, \
-    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
-    {k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e, ___}  \
-}
-
-void matrix_init_user(void);
-void matrix_scan_user(void);

+ 0 - 365
keyboards/exclusive/e65/e65.h

@@ -1,365 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// clang-format off
-
-// layout with all the switches supported by the PCB
-#define LAYOUT_all( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410, K411, K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  K412,  K413,  K414,  K415 }  \
-}
-
-// Ansi layout with bottom row 1.25,1.25,1,25,6.25,1.5,1.5,<-,v,->
-#define LAYOUT_65_all_noblocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410,       K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  KC_NO, K412, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_noblocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410,       K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  KC_NO, K412, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_noblocker_splitbs( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410,       K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  KC_NO, K412, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_iso_noblocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113,       K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K114, K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410,       K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  KC_NO, K412, K413,  K414,  K415 }  \
-}
-
-// Ansi layout with bottom row 1.25,1.25,1,25,6.25,1.25,1.25 blocker <-,v,->
-#define LAYOUT_65_all_blocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410, K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410, K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_blocker_splitbs( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410, K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_iso_blocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113,       K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K114, K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                   K410, K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-// ANSI layout with bottom row 1.5,1.5,7,1.5,1.5,<-,v,->
-#define LAYOUT_65_all_7u_noblocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,                         K406,                   K410,       K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  KC_NO, K412, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_7u_noblocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,                         K406,                   K410,       K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  KC_NO, K412, K413,  K414,  K415 }  \
-}
-
-
-#define LAYOUT_65_ansi_7u_noblocker_splitbs( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,                         K406,                   K410,       K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  KC_NO, K412, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_iso_7u_noblocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113,       K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K114, K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,                         K406,                   K410,       K412, K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  KC_NO, K412, K413,  K414,  K415 }  \
-}
-
-// ANSI layout with bottom row 1.5,1,1.5,7,1.5, blocker, <-,v,->
-#define LAYOUT_65_all_7u_wk( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                         K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_7u_wk( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                         K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_7u_wk_splitbs( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                         K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_iso_7u_wk( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113,       K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K114, K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400, K401,       K403,             K406,                         K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-// layout with bottom row 1.5,blocker,1.5,7,1.5, blocker, <-,v,->
-#define LAYOUT_65_all_7u_wkl( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400,       K402,                   K406,                         K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  KC_NO, K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_7u_wkl( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-	K400,       K402,                   K406,                         K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  KC_NO, K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_7u_wkl_splitbs( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-    K400,        K402,                   K406,                         K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  KC_NO, K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_iso_7u_wkl( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113,       K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K114, K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-    K400,        K402,                   K406,                         K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  KC_NO, K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-// layout with bottom row blocker,1,1.5,7,1.5,1, blocker, <-,v,->
-#define LAYOUT_65_all_7u_hhkb( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-    K400, K401,                         K406,                   K410, K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401, KC_NO,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_7u_hhkb( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-    K400, K401,                         K406,                   K410, K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401, KC_NO,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_ansi_7u_hhkb_splitbs( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-    K400, K401,                         K406,                   K410, K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  KC_NO,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401, KC_NO,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-#define LAYOUT_65_iso_7u_hhkb( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       K015, \
-	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113,       K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K114, K214, K215, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, K315, \
-    K400, K401,                         K406,                   K410, K411,       K413, K414, K415  \
-) { \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO,  K015 }, \
-	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115 }, \
-	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314,  K315 }, \
-	{ K400,  K401, KC_NO,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414,  K415 }  \
-}
-
-// clang-format on

File diff suppressed because it is too large
+ 0 - 1
keyboards/exclusive/e65/info.json


+ 0 - 69
keyboards/exent/exent.h

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

+ 210 - 210
keyboards/exent/info.json

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

+ 0 - 95
keyboards/feels/feels65/feels65.h

@@ -1,95 +0,0 @@
-/* Copyright 2021 Swiftrax <swiftrax@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \
-    k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \
-    k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \
-    k40, k42, k43,                k46,           k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
-    {k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
-    {k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
-    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \
-    {k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F }  \
-}
-
-#define LAYOUT_65_iso_blocker( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0F, \
-    k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,      k1F, \
-    k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \
-    k40, k42, k43,                k46,           k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX, k0F }, \
-    { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, XXX, k1F }, \
-    { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \
-    { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F }  \
-}
-
-#define LAYOUT_65_iso_blocker_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \
-    k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,      k1F, \
-    k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \
-    k40, k42, k43,                k46,           k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
-    { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, XXX, k1F }, \
-    { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \
-    { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F }  \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0F, \
-    k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \
-    k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C,      k2E, k2F, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \
-    k40, k42, k43,                k46,           k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX, k0F }, \
-    { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
-    { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E, k2F }, \
-    { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \
-    { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F }  \
-}
-
-#define LAYOUT_65_ansi_blocker_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \
-    k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \
-    k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C,      k2E, k2F, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \
-    k40, k42, k43,                k46,           k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
-    { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
-    { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E, k2F }, \
-    { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E, k3F }, \
-    { k40, XXX, k42, k43, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, XXX, k4D, k4E, k4F }  \
-}

+ 342 - 342
keyboards/feels/feels65/info.json

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

+ 0 - 32
keyboards/fjlabs/bks65/bks65.h

@@ -1,32 +0,0 @@
-/*
-Copyright 2020 <me@homedrop.org>
-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"
-
-/* BKS65 Keymap Definitions */
-#define LAYOUT_65_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, K3E, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D, K4E \
-) { \
-    { K00, K01, K02, K03,   K04,     K05,   K06,   K07,   K08,   K09, K0A, K0B, K0C,   K0D,   K0E }, \
-    { K10, K11, K12, K13,   K14,     K15,   K16,   K17,   K18,   K19, K1A, K1B, K1C,   K1D,   K1E }, \
-    { K20, K21, K22, K23,   K24,     K25,   K26,   K27,   K28,   K29, K2A, K2B, K2C,   KC_NO, K2E }, \
-    { K30, K31, K32, K33,   K34,     K35,   K36,   K37,   K38,   K39, K3A, K3B, KC_NO, K3D,   K3E }, \
-    { K40, K41, K42, KC_NO, KC_NO,   K45,   KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C,   K4D,   K4E }  \
-}

+ 68 - 68
keyboards/fjlabs/bks65/info.json

@@ -22,78 +22,78 @@
     "layouts": {
         "LAYOUT_65_ansi": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
-                {"x": 4, "y": 0},
-                {"x": 5, "y": 0},
-                {"x": 6, "y": 0},
-                {"x": 7, "y": 0},
-                {"x": 8, "y": 0},
-                {"x": 9, "y": 0},
-                {"x": 10, "y": 0},
-                {"x": 11, "y": 0},
-                {"x": 12, "y": 0},
-                {"x": 13, "y": 0, "w": 2},
-                {"x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"x": 13.5, "y": 1, "w": 1.5},
-                {"x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"x": 0, "y": 2, "w": 1.75},
-                {"x": 1.75, "y": 2},
-                {"x": 2.75, "y": 2},
-                {"x": 3.75, "y": 2},
-                {"x": 4.75, "y": 2},
-                {"x": 5.75, "y": 2},
-                {"x": 6.75, "y": 2},
-                {"x": 7.75, "y": 2},
-                {"x": 8.75, "y": 2},
-                {"x": 9.75, "y": 2},
-                {"x": 10.75, "y": 2},
-                {"x": 11.75, "y": 2},
-                {"x": 12.75, "y": 2, "w": 2.25},
-                {"x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                {"x": 0, "y": 3, "w": 2.25},
-                {"x": 2.25, "y": 3},
-                {"x": 3.25, "y": 3},
-                {"x": 4.25, "y": 3},
-                {"x": 5.25, "y": 3},
-                {"x": 6.25, "y": 3},
-                {"x": 7.25, "y": 3},
-                {"x": 8.25, "y": 3},
-                {"x": 9.25, "y": 3},
-                {"x": 10.25, "y": 3},
-                {"x": 11.25, "y": 3},
-                {"x": 12.25, "y": 3, "w": 1.75},
-                {"x": 14, "y": 3},
-                {"x": 15, "y": 3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"x": 0, "y": 4, "w": 1.25},
-                {"x": 1.25, "y": 4, "w": 1.25},
-                {"x": 2.5, "y": 4, "w": 1.25},
-                {"x": 3.75, "y": 4, "w": 6.25},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4},
-                {"x": 12, "y": 4},
-                {"x": 13, "y": 4},
-                {"x": 14, "y": 4},
-                {"x": 15, "y": 4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 46
keyboards/fjlabs/bks65solder/bks65solder.h

@@ -1,46 +0,0 @@
-/*
-Copyright 2020 <me@homedrop.org>
-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"
-
-/* BKS65 Solder Solder Keymap Definitions */
-#define LAYOUT_all( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K0E, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      K1E, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2C,      K2E, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3C, K3D, K3E, \
-    K40, K41, K42,           K45, K46, K48,           K49, K4A, K4B, K4C, K4D, K4E \
-) { \
-    { K00, K01, K02, K03,   K04,   K05, K06, K07,   K08, K09, K0A, K0B, K0C, K0D, K0E }, \
-    { K10, K11, K12, K13,   K14,   K15, K16, K17,   K18, K19, K1A, K1B, K1C, K1D, K1E }, \
-    { K20, K21, K22, K23,   K24,   K25, K26, K27,   K28, K29, K2A, K2B, K2C, K2D, K2E }, \
-    { K30, K31, K32, K33,   K34,   K35, K36, K37,   K38, K39, K3A, K3B, K3C, K3D, K3E }, \
-    { K40, K41, K42, KC_NO, KC_NO, K45, K46, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E }  \
-}
-
-#define LAYOUT_65_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2C, K2E, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
-    K40, K41, K42,                K46,           K49, K4A, K4B, K4C, K4D, K4E \
-) { \
-    { K00, K01,   K02, K03,   K04,   K05,   K06, K07,   K08,   K09, K0A, K0B, K0C, K0D,   K0E }, \
-    { K10, K11,   K12, K13,   K14,   K15,   K16, K17,   K18,   K19, K1A, K1B, K1C, K1D,   K1E }, \
-    { K20, K21,   K22, K23,   K24,   K25,   K26, K27,   K28,   K29, K2A, K2B, K2C, KC_NO, K2E }, \
-    { K30, KC_NO, K32, K33,   K34,   K35,   K36, K37,   K38,   K39, K3A, K3B, K3C, K3D,   K3E }, \
-    { K40, K41,   K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D,   K4E }  \
-}

+ 140 - 140
keyboards/fjlabs/bks65solder/info.json

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

+ 1 - 1
keyboards/fjlabs/bolsa65/bolsa65.c

@@ -11,7 +11,7 @@ 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 "bolsa65.h"
+#include "quantum.h"
 
 void matrix_init_kb(void) {
     // Initialize indicator LEDs to output

+ 0 - 32
keyboards/fjlabs/bolsa65/bolsa65.h

@@ -1,32 +0,0 @@
-/*
-Copyright 2020 <me@homedrop.org>
-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"
-
-/* Bolsa65 Keymap Definitions */
-#define LAYOUT_65_ansi_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, K3E, \
-    K40, K41, K42,      K44,                     K49, K4A,      K4C, K4D, K4E \
-) { \
-    { K00, K01, K02, K03,   K04,   K05,   K06,   K07,   K08,   K09, K0A, K0B,   K0C,   K0D,   K0E }, \
-    { K10, K11, K12, K13,   K14,   K15,   K16,   K17,   K18,   K19, K1A, K1B,   K1C,   K1D,   K1E }, \
-    { K20, K21, K22, K23,   K24,   K25,   K26,   K27,   K28,   K29, K2A, K2B,   K2C,   KC_NO, K2E }, \
-    { K30, K31, K32, K33,   K34,   K35,   K36,   K37,   K38,   K39, K3A, K3B,   KC_NO, K3D,   K3E }, \
-    { K40, K41, K42, KC_NO, K44,   KC_NO, KC_NO, KC_NO, KC_NO, K49, K4A, KC_NO, K4C,   K4D,   K4E }  \
-}

+ 67 - 67
keyboards/fjlabs/bolsa65/info.json

@@ -19,77 +19,77 @@
     "layouts": {
         "LAYOUT_65_ansi_blocker": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
-                {"x": 4, "y": 0},
-                {"x": 5, "y": 0},
-                {"x": 6, "y": 0},
-                {"x": 7, "y": 0},
-                {"x": 8, "y": 0},
-                {"x": 9, "y": 0},
-                {"x": 10, "y": 0},
-                {"x": 11, "y": 0},
-                {"x": 12, "y": 0},
-                {"x": 13, "y": 0, "w": 2},
-                {"x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"x": 13.5, "y": 1, "w": 1.5},
-                {"x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"x": 0, "y": 2, "w": 1.75},
-                {"x": 1.75, "y": 2},
-                {"x": 2.75, "y": 2},
-                {"x": 3.75, "y": 2},
-                {"x": 4.75, "y": 2},
-                {"x": 5.75, "y": 2},
-                {"x": 6.75, "y": 2},
-                {"x": 7.75, "y": 2},
-                {"x": 8.75, "y": 2},
-                {"x": 9.75, "y": 2},
-                {"x": 10.75, "y": 2},
-                {"x": 11.75, "y": 2},
-                {"x": 12.75, "y": 2, "w": 2.25},
-                {"x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                {"x": 0, "y": 3, "w": 2.25},
-                {"x": 2.25, "y": 3},
-                {"x": 3.25, "y": 3},
-                {"x": 4.25, "y": 3},
-                {"x": 5.25, "y": 3},
-                {"x": 6.25, "y": 3},
-                {"x": 7.25, "y": 3},
-                {"x": 8.25, "y": 3},
-                {"x": 9.25, "y": 3},
-                {"x": 10.25, "y": 3},
-                {"x": 11.25, "y": 3},
-                {"x": 12.25, "y": 3, "w": 1.75},
-                {"x": 14, "y": 3},
-                {"x": 15, "y": 3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"x": 0, "y": 4, "w": 1.25},
-                {"x": 1.25, "y": 4, "w": 1.25},
-                {"x": 2.5, "y": 4, "w": 1.25},
-                {"x": 3.75, "y": 4, "w": 6.25},
-                {"x": 10, "y": 4, "w": 1.25},
-                {"x": 11.25, "y": 4, "w": 1.25},
-                {"x": 13, "y": 4},
-                {"x": 14, "y": 4},
-                {"x": 15, "y": 4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 68 - 68
keyboards/fjlabs/kyuu/info.json

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

+ 0 - 32
keyboards/fjlabs/kyuu/kyuu.h

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

+ 68 - 68
keyboards/fjlabs/ldk65/info.json

@@ -22,78 +22,78 @@
     "layouts": {
         "LAYOUT_65_ansi": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
-                {"x": 4, "y": 0},
-                {"x": 5, "y": 0},
-                {"x": 6, "y": 0},
-                {"x": 7, "y": 0},
-                {"x": 8, "y": 0},
-                {"x": 9, "y": 0},
-                {"x": 10, "y": 0},
-                {"x": 11, "y": 0},
-                {"x": 12, "y": 0},
-                {"x": 13, "y": 0, "w": 2},
-                {"x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"x": 13.5, "y": 1, "w": 1.5},
-                {"x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"x": 0, "y": 2, "w": 1.75},
-                {"x": 1.75, "y": 2},
-                {"x": 2.75, "y": 2},
-                {"x": 3.75, "y": 2},
-                {"x": 4.75, "y": 2},
-                {"x": 5.75, "y": 2},
-                {"x": 6.75, "y": 2},
-                {"x": 7.75, "y": 2},
-                {"x": 8.75, "y": 2},
-                {"x": 9.75, "y": 2},
-                {"x": 10.75, "y": 2},
-                {"x": 11.75, "y": 2},
-                {"x": 12.75, "y": 2, "w": 2.25},
-                {"x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                {"x": 0, "y": 3, "w": 2.25},
-                {"x": 2.25, "y": 3},
-                {"x": 3.25, "y": 3},
-                {"x": 4.25, "y": 3},
-                {"x": 5.25, "y": 3},
-                {"x": 6.25, "y": 3},
-                {"x": 7.25, "y": 3},
-                {"x": 8.25, "y": 3},
-                {"x": 9.25, "y": 3},
-                {"x": 10.25, "y": 3},
-                {"x": 11.25, "y": 3},
-                {"x": 12.25, "y": 3, "w": 1.75},
-                {"x": 14, "y": 3},
-                {"x": 15, "y": 3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
 
-                {"x": 0, "y": 4, "w": 1.25},
-                {"x": 1.25, "y": 4, "w": 1.25},
-                {"x": 2.5, "y": 4, "w": 1.25},
-                {"x": 3.75, "y": 4, "w": 6.25},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4},
-                {"x": 12, "y": 4},
-                {"x": 13, "y": 4},
-                {"x": 14, "y": 4},
-                {"x": 15, "y": 4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 32
keyboards/fjlabs/ldk65/ldk65.h

@@ -1,32 +0,0 @@
-/*
-Copyright 2020 <me@homedrop.org>
-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"
-
-/* BKS65 Keymap Definitions */
-#define LAYOUT_65_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, K3E, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D, K4E \
-) { \
-    { K00, K01, K02, K03,   K04,     K05,   K06,   K07,   K08,   K09, K0A, K0B, K0C,   K0D,   K0E }, \
-    { K10, K11, K12, K13,   K14,     K15,   K16,   K17,   K18,   K19, K1A, K1B, K1C,   K1D,   K1E }, \
-    { K20, K21, K22, K23,   K24,     K25,   K26,   K27,   K28,   K29, K2A, K2B, K2C,   KC_NO, K2E }, \
-    { K30, K31, K32, K33,   K34,     K35,   K36,   K37,   K38,   K39, K3A, K3B, KC_NO, K3D,   K3E }, \
-    { K40, K41, K42, KC_NO, KC_NO,   K45,   KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C,   K4D,   K4E }  \
-}

+ 69 - 69
keyboards/fjlabs/tf65rgbv2/info.json

@@ -19,78 +19,78 @@
     "layouts": {
         "LAYOUT_65_ansi": {
             "layout": [
-                {"x": 0, "y": 0},
-                {"x": 1, "y": 0},
-                {"x": 2, "y": 0},
-                {"x": 3, "y": 0},
-                {"x": 4, "y": 0},
-                {"x": 5, "y": 0},
-                {"x": 6, "y": 0},
-                {"x": 7, "y": 0},
-                {"x": 8, "y": 0},
-                {"x": 9, "y": 0},
-                {"x": 10, "y": 0},
-                {"x": 11, "y": 0},
-                {"x": 12, "y": 0},
-                {"x": 13, "y": 0, "w": 2},
-                {"x": 15, "y": 0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+                {"matrix": [0, 14], "x": 15, "y": 0},
 
-                {"x": 0, "y": 1, "w": 1.5},
-                {"x": 1.5, "y": 1},
-                {"x": 2.5, "y": 1},
-                {"x": 3.5, "y": 1},
-                {"x": 4.5, "y": 1},
-                {"x": 5.5, "y": 1},
-                {"x": 6.5, "y": 1},
-                {"x": 7.5, "y": 1},
-                {"x": 8.5, "y": 1},
-                {"x": 9.5, "y": 1},
-                {"x": 10.5, "y": 1},
-                {"x": 11.5, "y": 1},
-                {"x": 12.5, "y": 1},
-                {"x": 13.5, "y": 1, "w": 1.5},
-                {"x": 15, "y": 1},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 14], "x": 15, "y": 1},
 
-                {"x": 0, "y": 2, "w": 1.75},
-                {"x": 1.75, "y": 2},
-                {"x": 2.75, "y": 2},
-                {"x": 3.75, "y": 2},
-                {"x": 4.75, "y": 2},
-                {"x": 5.75, "y": 2},
-                {"x": 6.75, "y": 2},
-                {"x": 7.75, "y": 2},
-                {"x": 8.75, "y": 2},
-                {"x": 9.75, "y": 2},
-                {"x": 10.75, "y": 2},
-                {"x": 11.75, "y": 2},
-                {"x": 12.75, "y": 2, "w": 2.25},
-                {"x": 15, "y": 2},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+                {"matrix": [2, 14], "x": 15, "y": 2},
 
-                {"x": 0, "y": 3, "w": 2.25},
-                {"x": 2.25, "y": 3},
-                {"x": 3.25, "y": 3},
-                {"x": 4.25, "y": 3},
-                {"x": 5.25, "y": 3},
-                {"x": 6.25, "y": 3},
-                {"x": 7.25, "y": 3},
-                {"x": 8.25, "y": 3},
-                {"x": 9.25, "y": 3},
-                {"x": 10.25, "y": 3},
-                {"x": 11.25, "y": 3},
-                {"x": 12.25, "y": 3, "w": 1.75},
-                {"x": 14, "y": 3},
-                {"x": 15, "y": 3},
-                
-                {"x": 0, "y": 4, "w": 1.25},
-                {"x": 1.25, "y": 4, "w": 1.25},
-                {"x": 2.5, "y": 4, "w": 1.25},
-                {"x": 3.75, "y": 4, "w": 6.25},
-                {"x": 10, "y": 4},
-                {"x": 11, "y": 4},
-                {"x": 12, "y": 4},
-                {"x": 13, "y": 4},
-                {"x": 14, "y": 4},
-                {"x": 15, "y": 4}
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"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, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+                {"matrix": [3, 14], "x": 15, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4}
             ]
         }
     }

+ 0 - 32
keyboards/fjlabs/tf65rgbv2/tf65rgbv2.h

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

+ 362 - 342
keyboards/flx/lodestone/info.json

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

+ 0 - 93
keyboards/flx/lodestone/lodestone.h

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

+ 293 - 277
keyboards/foxlab/key65/universal/info.json

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

+ 0 - 75
keyboards/foxlab/key65/universal/universal.h

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

+ 342 - 342
keyboards/ft/mars65/info.json

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

+ 0 - 111
keyboards/ft/mars65/mars65.h

@@ -1,111 +0,0 @@
-// Copyright 2022 wonderbeel (https://github.com/wonderbeel)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* ANSI
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐    ┌───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │    │0D     │ 2u Backspace
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤    └───────┘
- * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E   │1F │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ 
- * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E      │2F │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D    │3E │3F │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │40  │41  │43  │46                      │4A  │4B  │ │4D │4E │4F │
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- */
-
-
-/* ISO
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐    ┌───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │    │0D     │ 2u Backspace
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤    └───────┘
- * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ 1E  │1F │   
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤   
- * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │    │2F │   
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤   
- * │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D    │3E │3F │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │40  │41  │43  │46                      │4A  │4B  │ │4D │4E │4F │
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- */
-
-#define LAYOUT_all( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
-    K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \
-    K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, XXX, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
-    K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
-    K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \
-    K40, K41, K43,                K46,           K4A, K4B,      K4D, K4E, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \
-    { K10, XXX, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, XXX, K4D, K4E, K4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
-    K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E, K2F, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \
-    K40, K41, K43,                K46,           K4A, K4B,      K4D, K4E, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, XXX, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, XXX, K4D, K4E, K4F }, \
-}
-
-#define LAYOUT_65_iso_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
-    K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      K1F, \
-    K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K1E, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \
-    K40, K41, K43,                K46,           K4A, K4B,      K4D, K4E, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, XXX, K0F }, \
-    { K10, XXX, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, XXX, K4D, K4E, K4F }, \
-}
-
-#define LAYOUT_65_iso_blocker_split_bs( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
-    K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      K1F, \
-    K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K1E, K2F, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \
-    K40, K41, K43,                K46,           K4A, K4B,      K4D, K4E, K4F  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
-    { K10, XXX, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
-    { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \
-    { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, XXX, K4D, K4E, K4F }, \
-}
-
-// generated by KBFirmware JSON to QMK Parser
-// https://noroadsleft.github.io/kbf_qmk_converter/
-

+ 0 - 36
keyboards/genone/eclipse_65/eclipse_65.h

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

+ 74 - 1
keyboards/genone/eclipse_65/info.json

@@ -18,7 +18,80 @@
   "community_layouts": ["65_ansi"],
   "layouts": {
       "LAYOUT_65_ansi": {
-          "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
+          "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0},
+            {"matrix": [0, 1], "x": 1, "y": 0},
+            {"matrix": [0, 2], "x": 2, "y": 0},
+            {"matrix": [0, 3], "x": 3, "y": 0},
+            {"matrix": [0, 4], "x": 4, "y": 0},
+            {"matrix": [0, 5], "x": 5, "y": 0},
+            {"matrix": [0, 6], "x": 6, "y": 0},
+            {"matrix": [0, 7], "x": 7, "y": 0},
+            {"matrix": [0, 8], "x": 8, "y": 0},
+            {"matrix": [0, 9], "x": 9, "y": 0},
+            {"matrix": [0, 10], "x": 10, "y": 0},
+            {"matrix": [0, 11], "x": 11, "y": 0},
+            {"matrix": [0, 12], "x": 12, "y": 0},
+            {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+            {"matrix": [0, 14], "x": 15, "y": 0},
+
+            {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+            {"matrix": [1, 1], "x": 1.5, "y": 1},
+            {"matrix": [1, 2], "x": 2.5, "y": 1},
+            {"matrix": [1, 3], "x": 3.5, "y": 1},
+            {"matrix": [1, 4], "x": 4.5, "y": 1},
+            {"matrix": [1, 5], "x": 5.5, "y": 1},
+            {"matrix": [1, 6], "x": 6.5, "y": 1},
+            {"matrix": [1, 7], "x": 7.5, "y": 1},
+            {"matrix": [1, 8], "x": 8.5, "y": 1},
+            {"matrix": [1, 9], "x": 9.5, "y": 1},
+            {"matrix": [1, 10], "x": 10.5, "y": 1},
+            {"matrix": [1, 11], "x": 11.5, "y": 1},
+            {"matrix": [1, 12], "x": 12.5, "y": 1},
+            {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+            {"matrix": [1, 14], "x": 15, "y": 1},
+
+            {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+            {"matrix": [2, 1], "x": 1.75, "y": 2},
+            {"matrix": [2, 2], "x": 2.75, "y": 2},
+            {"matrix": [2, 3], "x": 3.75, "y": 2},
+            {"matrix": [2, 4], "x": 4.75, "y": 2},
+            {"matrix": [2, 5], "x": 5.75, "y": 2},
+            {"matrix": [2, 6], "x": 6.75, "y": 2},
+            {"matrix": [2, 7], "x": 7.75, "y": 2},
+            {"matrix": [2, 8], "x": 8.75, "y": 2},
+            {"matrix": [2, 9], "x": 9.75, "y": 2},
+            {"matrix": [2, 10], "x": 10.75, "y": 2},
+            {"matrix": [2, 11], "x": 11.75, "y": 2},
+            {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+            {"matrix": [2, 14], "x": 15, "y": 2},
+
+            {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+            {"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, 12], "x": 12.25, "y": 3, "w": 1.75},
+            {"matrix": [3, 13], "x": 14, "y": 3},
+            {"matrix": [3, 14], "x": 15, "y": 3},
+
+            {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+            {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+            {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+            {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+            {"matrix": [4, 9], "x": 10, "y": 4},
+            {"matrix": [4, 10], "x": 11, "y": 4},
+            {"matrix": [4, 11], "x": 12, "y": 4},
+            {"matrix": [4, 12], "x": 13, "y": 4},
+            {"matrix": [4, 13], "x": 14, "y": 4},
+            {"matrix": [4, 14], "x": 15, "y": 4}
+          ]
       }
   }
 }

+ 0 - 37
keyboards/genone/g1_65/g1_65.h

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

+ 74 - 1
keyboards/genone/g1_65/info.json

@@ -18,7 +18,80 @@
   "community_layouts": ["65_ansi"],
   "layouts": {
       "LAYOUT_65_ansi": {
-          "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
+          "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0},
+            {"matrix": [0, 1], "x": 1, "y": 0},
+            {"matrix": [0, 2], "x": 2, "y": 0},
+            {"matrix": [0, 3], "x": 3, "y": 0},
+            {"matrix": [0, 4], "x": 4, "y": 0},
+            {"matrix": [0, 5], "x": 5, "y": 0},
+            {"matrix": [0, 6], "x": 6, "y": 0},
+            {"matrix": [0, 7], "x": 7, "y": 0},
+            {"matrix": [0, 8], "x": 8, "y": 0},
+            {"matrix": [0, 9], "x": 9, "y": 0},
+            {"matrix": [0, 10], "x": 10, "y": 0},
+            {"matrix": [0, 11], "x": 11, "y": 0},
+            {"matrix": [0, 12], "x": 12, "y": 0},
+            {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+            {"matrix": [0, 14], "x": 15, "y": 0},
+
+            {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+            {"matrix": [1, 1], "x": 1.5, "y": 1},
+            {"matrix": [1, 2], "x": 2.5, "y": 1},
+            {"matrix": [1, 3], "x": 3.5, "y": 1},
+            {"matrix": [1, 4], "x": 4.5, "y": 1},
+            {"matrix": [1, 5], "x": 5.5, "y": 1},
+            {"matrix": [1, 6], "x": 6.5, "y": 1},
+            {"matrix": [1, 7], "x": 7.5, "y": 1},
+            {"matrix": [1, 8], "x": 8.5, "y": 1},
+            {"matrix": [1, 9], "x": 9.5, "y": 1},
+            {"matrix": [1, 10], "x": 10.5, "y": 1},
+            {"matrix": [1, 11], "x": 11.5, "y": 1},
+            {"matrix": [1, 12], "x": 12.5, "y": 1},
+            {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+            {"matrix": [1, 14], "x": 15, "y": 1},
+
+            {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+            {"matrix": [2, 1], "x": 1.75, "y": 2},
+            {"matrix": [2, 2], "x": 2.75, "y": 2},
+            {"matrix": [2, 3], "x": 3.75, "y": 2},
+            {"matrix": [2, 4], "x": 4.75, "y": 2},
+            {"matrix": [2, 5], "x": 5.75, "y": 2},
+            {"matrix": [2, 6], "x": 6.75, "y": 2},
+            {"matrix": [2, 7], "x": 7.75, "y": 2},
+            {"matrix": [2, 8], "x": 8.75, "y": 2},
+            {"matrix": [2, 9], "x": 9.75, "y": 2},
+            {"matrix": [2, 10], "x": 10.75, "y": 2},
+            {"matrix": [2, 11], "x": 11.75, "y": 2},
+            {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+            {"matrix": [2, 14], "x": 15, "y": 2},
+
+            {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+            {"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, 12], "x": 12.25, "y": 3, "w": 1.75},
+            {"matrix": [3, 13], "x": 14, "y": 3},
+            {"matrix": [3, 14], "x": 15, "y": 3},
+
+            {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+            {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+            {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+            {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+            {"matrix": [4, 9], "x": 10, "y": 4},
+            {"matrix": [4, 10], "x": 11, "y": 4},
+            {"matrix": [4, 11], "x": 12, "y": 4},
+            {"matrix": [4, 12], "x": 13, "y": 4},
+            {"matrix": [4, 13], "x": 14, "y": 4},
+            {"matrix": [4, 14], "x": 15, "y": 4}
+          ]
       }
   }
 }

+ 206 - 208
keyboards/gray_studio/space65/info.json

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

+ 0 - 70
keyboards/gray_studio/space65/space65.h

@@ -1,70 +0,0 @@
-/* Copyright 2019 MechMerlin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,      k2F, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D,      k3E, k3F, \
-    k40, k41,      k43,      k45,      k47, k48,      k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    { k00, k01,   k02,   k03, k04,   k05, k06,   k07, k08, k09,   k0A, k0B, k0C,   k0D, k0E,   k0F }, \
-    { k10, KC_NO, k12,   k13, k14,   k15, k16,   k17, k18, k19,   k1A, k1B, k1C,   k1D, k1E,   k1F }, \
-    { k20, KC_NO, k22,   k23, k24,   k25, k26,   k27, k28, k29,   k2A, k2B, k2C,   k2D, KC_NO, k2F }, \
-    { k30, k31,   k32,   k33, k34,   k35, k36,   k37, k38, k39,   k3A, k3B, KC_NO, k3D, k3E,   k3F }, \
-    { k40, k41,   KC_NO, k43, KC_NO, k45, KC_NO, k47, k48, KC_NO, k4A, k4B, KC_NO, k4D, k4E,   k4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D,      k0F, \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,      k2F, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D,      k3E, k3F, \
-    k40, k41,      k43,                k47,           k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    { k00, k01,   k02,   k03, k04,   k05,   k06,   k07, k08,   k09,   k0A, k0B, k0C,   k0D,   KC_NO, k0F }, \
-    { k10, KC_NO, k12,   k13, k14,   k15,   k16,   k17, k18,   k19,   k1A, k1B, k1C,   k1D,   k1E,   k1F }, \
-    { k20, KC_NO, k22,   k23, k24,   k25,   k26,   k27, k28,   k29,   k2A, k2B, k2C,   k2D,   KC_NO, k2F }, \
-    { k30, KC_NO, k32,   k33, k34,   k35,   k36,   k37, k38,   k39,   k3A, k3B, KC_NO, k3D,   k3E,   k3F }, \
-    { k40, k41,   KC_NO, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4A, k4B, KC_NO, k4D,   k4E,   k4F }, \
-}
-
-#define LAYOUT_65_iso_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,    K0D,   K0F,   \
-    K10,   K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,         K1F,   \
-    K20,    K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D,   K2F,   \
-    K30,  K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D,     K3E, K3F,   \
-    K40,  K41,  K43,              K47,                K4A,  K4B,     K4D, K4E, K4F    \
-) { \
-    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D,   KC_NO, K0F   }, \
-    { K10,   KC_NO, K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D,   K1E,   K1F   }, \
-    { K20,   KC_NO, K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   K2D,   KC_NO, K2F   }, \
-    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   KC_NO, K3D,   K3E,   K3F   }, \
-    { K40,   K41,   KC_NO, K43,   KC_NO, KC_NO, KC_NO, K47,   KC_NO, KC_NO, K4A,   K4B,   KC_NO, K4D,   K4E,   K4F   }, \
-}

+ 204 - 206
keyboards/gray_studio/space65r3/info.json

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

+ 0 - 57
keyboards/gray_studio/space65r3/space65r3.h

@@ -1,57 +0,0 @@
-// Copyright 2022 Yizhen Liu (@edwardslau)
-// SPDX-License-Identifier: GPL-2.0
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,      k2F, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D,      k3E, k3F, \
-    k40, k41,      k43,                k47,           k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    { k00, k01,   k02,   k03, k04,   k05, k06,   k07, k08, k09,   k0A, k0B, k0C,   k0D, k0E,   k0F }, \
-    { k10, KC_NO, k12,   k13, k14,   k15, k16,   k17, k18, k19,   k1A, k1B, k1C,   k1D, k1E,   k1F }, \
-    { k20, KC_NO, k22,   k23, k24,   k25, k26,   k27, k28, k29,   k2A, k2B, k2C,   k2D, KC_NO, k2F }, \
-    { k30, k31,   k32,   k33, k34,   k35, k36,   k37, k38, k39,   k3A, k3B, KC_NO, k3D, k3E,   k3F }, \
-    { k40, k41,  KC_NO,  k43, KC_NO,KC_NO,KC_NO, k47,KC_NO, KC_NO,k4A, k4B, KC_NO, k4D, k4E,   k4F }, \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D,      k0F, \
-    k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,      k2F, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D,      k3E, k3F, \
-    k40, k41,      k43,                k47,           k4A, k4B,      k4D, k4E, k4F  \
-) \
-{ \
-    { k00, k01,   k02,   k03, k04,   k05,   k06,   k07, k08,   k09,   k0A, k0B, k0C,   k0D,   KC_NO, k0F }, \
-    { k10, KC_NO, k12,   k13, k14,   k15,   k16,   k17, k18,   k19,   k1A, k1B, k1C,   k1D,   k1E,   k1F }, \
-    { k20, KC_NO, k22,   k23, k24,   k25,   k26,   k27, k28,   k29,   k2A, k2B, k2C,   k2D,   KC_NO, k2F }, \
-    { k30, KC_NO, k32,   k33, k34,   k35,   k36,   k37, k38,   k39,   k3A, k3B, KC_NO, k3D,   k3E,   k3F }, \
-    { k40, k41,   KC_NO, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4A, k4B, KC_NO, k4D,   k4E,   k4F }, \
-}
-
-#define LAYOUT_65_iso_blocker( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,    K0D,   K0F,   \
-    K10,   K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,         K1F,   \
-    K20,    K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1E, K2D,   K2F,   \
-    K30,  K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D,     K3E, K3F,   \
-    K40,  K41,  K43,              K47,                K4A,  K4B,     K4D, K4E, K4F    \
-) { \
-    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D,   KC_NO, K0F   }, \
-    { K10,   KC_NO, K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D,   K1E,   K1F   }, \
-    { K20,   KC_NO, K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   K2D,   KC_NO, K2F   }, \
-    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   KC_NO, K3D,   K3E,   K3F   }, \
-    { K40,   K41,   KC_NO, K43,   KC_NO, KC_NO, KC_NO, K47,   KC_NO, KC_NO, K4A,   K4B,   KC_NO, K4D,   K4E,   K4F   }, \
-}

+ 0 - 35
keyboards/gray_studio/think65/hotswap/hotswap.h

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

+ 71 - 67
keyboards/gray_studio/think65/hotswap/info.json

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

+ 214 - 202
keyboards/gray_studio/think65/solder/info.json

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

+ 1 - 1
keyboards/gray_studio/think65/solder/solder.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 "solder.h"
+#include "quantum.h"
 
 // Optional override functions below.
 // You can leave any or all of these undefined.

+ 0 - 63
keyboards/gray_studio/think65/solder/solder.h

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

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

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

+ 0 - 62
keyboards/handwired/sick68/sick68.h

@@ -1,62 +0,0 @@
-/* Copyright 2020 umbynos
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-/* This is a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-
-// readability
-#define XXX KC_NO
-
-/* SICK68 ANSI layout
- * ,----------------------------------------------------------------.
- * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d    | 0e |
- * |----------------------------------------------------------------|
- * | 10  | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c|  1d | 1e |
- * |----------------------------------------------------------------|
- * | 20    | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d    | 2e |
- * |----------------------------------------------------------------|
- * | 30     | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b|    3c| 3d| 3e |
- * |----------------------------------------------------------------|
- * | 40 | 41 | 42 |          46           | 49| 4a|  4b| 4c| 4d| 4e |
- * `----------------------------------------------------------------'
- */
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-
-#define LAYOUT_65_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, k2e, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
-    k40, k41, k42,                k46,           k49, k4a, k4b, k4c, k4d, k4e  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e}, \
-    {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \
-    {k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e}  \
-}

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