1
0
Эх сурвалжийг харах

Move remaining `LAYOUT_all`s to data driven (#20463)

Ryan 3 жил өмнө
parent
commit
4871f651c5
100 өөрчлөгдсөн 12499 нэмэгдсэн , 14147 устгасан
  1. 93 85
      keyboards/0xcb/static/info.json
  2. 0 66
      keyboards/0xcb/static/static.h
  3. 268 252
      keyboards/ai03/polaris/info.json
  4. 0 86
      keyboards/ai03/polaris/polaris.h
  5. 1 1
      keyboards/alas/alas.c
  6. 0 132
      keyboards/alas/alas.h
  7. 545 8
      keyboards/alas/info.json
  8. 0 106
      keyboards/alps64/alps64.h
  9. 0 1
      keyboards/alps64/info.json
  10. 0 131
      keyboards/amjkeyboard/amj60/amj60.h
  11. 311 311
      keyboards/amjkeyboard/amj60/info.json
  12. 0 68
      keyboards/ares/ares.h
  13. 188 188
      keyboards/ares/info.json
  14. 0 86
      keyboards/atxkb/1894/1894.h
  15. 268 252
      keyboards/atxkb/1894/info.json
  16. 0 122
      keyboards/aves60/aves60.h
  17. 452 452
      keyboards/aves60/info.json
  18. 0 63
      keyboards/barleycorn_smd/barleycorn_smd.h
  19. 284 263
      keyboards/barleycorn_smd/info.json
  20. 1 1
      keyboards/bemeier/bmek/bmek.c
  21. 0 50
      keyboards/bemeier/bmek/bmek.h
  22. 159 8
      keyboards/bemeier/bmek/info.json
  23. 0 56
      keyboards/bfake/bfake.h
  24. 0 1
      keyboards/bfake/info.json
  25. 0 161
      keyboards/bioi/f60/f60.h
  26. 663 623
      keyboards/bioi/f60/info.json
  27. 0 89
      keyboards/bioi/g60ble/g60ble.h
  28. 399 375
      keyboards/bioi/g60ble/info.json
  29. 0 47
      keyboards/cannonkeys/an_c/an_c.h
  30. 0 0
      keyboards/cannonkeys/an_c/info.json
  31. 0 0
      keyboards/cannonkeys/instant60/info.json
  32. 0 47
      keyboards/cannonkeys/instant60/instant60.h
  33. 0 81
      keyboards/capsunlocked/cu65/cu65.h
  34. 4 0
      keyboards/capsunlocked/cu65/info.json
  35. 441 412
      keyboards/charue/sunsetter/info.json
  36. 0 114
      keyboards/charue/sunsetter/sunsetter.h
  37. 437 437
      keyboards/chlx/merro60/info.json
  38. 0 214
      keyboards/chlx/merro60/merro60.h
  39. 437 437
      keyboards/chlx/str_merro60/info.json
  40. 0 249
      keyboards/chlx/str_merro60/str_merro60.h
  41. 190 4
      keyboards/coseyfannitutti/romeo/info.json
  42. 0 76
      keyboards/coseyfannitutti/romeo/romeo.h
  43. 861 780
      keyboards/creatkeebs/thera/info.json
  44. 0 190
      keyboards/creatkeebs/thera/thera.h
  45. 0 112
      keyboards/crin/crin.h
  46. 398 378
      keyboards/crin/info.json
  47. 0 57
      keyboards/cutie_club/borsdorf/borsdorf.h
  48. 137 133
      keyboards/cutie_club/borsdorf/info.json
  49. 0 157
      keyboards/cutie_club/keebcats/denis/denis.h
  50. 596 596
      keyboards/cutie_club/keebcats/denis/info.json
  51. 266 161
      keyboards/cutie_club/wraith/info.json
  52. 1 1
      keyboards/cutie_club/wraith/wraith.c
  53. 0 84
      keyboards/cutie_club/wraith/wraith.h
  54. 0 0
      keyboards/dc01/left/info.json
  55. 0 48
      keyboards/dc01/left/left.h
  56. 86 3
      keyboards/dc01/right/info.json
  57. 0 48
      keyboards/dc01/right/right.h
  58. 145 2
      keyboards/delikeeb/vaguettelite/info.json
  59. 0 57
      keyboards/delikeeb/vaguettelite/vaguettelite.h
  60. 3 0
      keyboards/dm9records/tartan/info.json
  61. 0 111
      keyboards/dm9records/tartan/tartan.h
  62. 0 71
      keyboards/do60/do60.h
  63. 0 0
      keyboards/do60/info.json
  64. 1 1
      keyboards/dp60/dp60.c
  65. 0 152
      keyboards/dp60/dp60.h
  66. 438 369
      keyboards/dp60/info.json
  67. 314 313
      keyboards/duck/eagle_viper/v2/info.json
  68. 1 1
      keyboards/duck/eagle_viper/v2/v2.c
  69. 0 90
      keyboards/duck/eagle_viper/v2/v2.h
  70. 1 1
      keyboards/ducky/one2mini/1861st/1861st.c
  71. 0 70
      keyboards/ducky/one2mini/1861st/1861st.h
  72. 186 188
      keyboards/ducky/one2mini/1861st/info.json
  73. 0 106
      keyboards/dyz/dyz60/dyz60.h
  74. 315 315
      keyboards/dyz/dyz60/info.json
  75. 0 120
      keyboards/dyz/dyz60_hs/dyz60_hs.h
  76. 377 377
      keyboards/dyz/dyz60_hs/info.json
  77. 99 91
      keyboards/dyz/selka40/info.json
  78. 0 58
      keyboards/dyz/selka40/selka40.h
  79. 0 135
      keyboards/eniigmakeyboards/ek60/ek60.h
  80. 476 49
      keyboards/eniigmakeyboards/ek60/info.json
  81. 0 74
      keyboards/eniigmakeyboards/ek65/ek65.h
  82. 217 21
      keyboards/eniigmakeyboards/ek65/info.json
  83. 0 0
      keyboards/ericrlau/numdiscipline/rev1/info.json
  84. 0 77
      keyboards/ericrlau/numdiscipline/rev1/rev1.h
  85. 0 97
      keyboards/evyd13/eon75/eon75.h
  86. 301 268
      keyboards/evyd13/eon75/info.json
  87. 0 96
      keyboards/evyd13/eon95/eon95.h
  88. 350 317
      keyboards/evyd13/eon95/info.json
  89. 0 94
      keyboards/evyd13/gh80_1800/gh80_1800.h
  90. 368 335
      keyboards/evyd13/gh80_1800/info.json
  91. 1 1
      keyboards/evyd13/gud70/gud70.c
  92. 0 73
      keyboards/evyd13/gud70/gud70.h
  93. 231 231
      keyboards/evyd13/gud70/info.json
  94. 345 312
      keyboards/evyd13/nt980/info.json
  95. 0 97
      keyboards/evyd13/nt980/nt980.h
  96. 302 278
      keyboards/evyd13/omrontkl/info.json
  97. 0 79
      keyboards/evyd13/omrontkl/omrontkl.h
  98. 271 7
      keyboards/exclusive/e6v2/le_bmc/info.json
  99. 0 103
      keyboards/exclusive/e6v2/le_bmc/le_bmc.h
  100. 271 7
      keyboards/exclusive/e6v2/oe_bmc/info.json

+ 93 - 85
keyboards/0xcb/static/info.json

@@ -26,95 +26,103 @@
   "layouts": {
     "LAYOUT_all": {
       "layout": [
-          {"x":11, "y":0},
-          {"x":0, "y":1},
-          {"x":1, "y":1},
-          {"x":2, "y":1},
-          {"x":3, "y":1},
-          {"x":4, "y":1},
-          {"x":5, "y":1},
-          {"x":6, "y":1},
-          {"x":7, "y":1},
-          {"x":8, "y":1},
-          {"x":9, "y":1},
-          {"x":10, "y":1},
-          {"x":11, "y":1},
-          {"x":0, "y":2, "w":1.25},
-          {"x":1.25, "y":2},
-          {"x":2.25, "y":2},
-          {"x":3.25, "y":2},
-          {"x":4.25, "y":2},
-          {"x":5.25, "y":2},
-          {"x":6.25, "y":2},
-          {"x":7.25, "y":2},
-          {"x":8.25, "y":2},
-          {"x":9.25, "y":2},
-          {"x":10.25, "y":2, "w":1.75},
-          {"x":0, "y":3, "w":1.75},
-          {"x":1.75, "y":3},
-          {"x":2.75, "y":3},
-          {"x":3.75, "y":3},
-          {"x":4.75, "y":3},
-          {"x":5.75, "y":3},
-          {"x":6.75, "y":3},
-          {"x":7.75, "y":3},
-          {"x":8.75, "y":3},
-          {"x":9.75, "y":3},
-          {"x":10.75, "y":3, "w":1.25},
-          {"x":0, "y":4},
-          {"x":1, "y":4},
-          {"x":2, "y":4},
-          {"x":3, "y":4, "w":2.75},
-          {"x":5.75, "y":4},
-          {"x":6.75, "y":4, "w":2.25},
-          {"x":9, "y":4},
-          {"x":10, "y":4},
-          {"x":11, "y":4}
+        {"matrix": [1, 5], "x": 11, "y": 0},
+
+        {"matrix": [0, 0], "x": 0, "y": 1},
+        {"matrix": [1, 0], "x": 1, "y": 1},
+        {"matrix": [0, 1], "x": 2, "y": 1},
+        {"matrix": [1, 1], "x": 3, "y": 1},
+        {"matrix": [0, 2], "x": 4, "y": 1},
+        {"matrix": [1, 2], "x": 5, "y": 1},
+        {"matrix": [0, 3], "x": 6, "y": 1},
+        {"matrix": [1, 3], "x": 7, "y": 1},
+        {"matrix": [0, 4], "x": 8, "y": 1},
+        {"matrix": [1, 4], "x": 9, "y": 1},
+        {"matrix": [0, 5], "x": 10, "y": 1},
+        {"matrix": [3, 5], "x": 11, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
+        {"matrix": [3, 0], "x": 1.25, "y": 2},
+        {"matrix": [2, 1], "x": 2.25, "y": 2},
+        {"matrix": [3, 1], "x": 3.25, "y": 2},
+        {"matrix": [2, 2], "x": 4.25, "y": 2},
+        {"matrix": [3, 2], "x": 5.25, "y": 2},
+        {"matrix": [2, 3], "x": 6.25, "y": 2},
+        {"matrix": [3, 3], "x": 7.25, "y": 2},
+        {"matrix": [2, 4], "x": 8.25, "y": 2},
+        {"matrix": [3, 4], "x": 9.25, "y": 2},
+        {"matrix": [2, 5], "x": 10.25, "y": 2, "w": 1.75},
+
+        {"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75},
+        {"matrix": [4, 1], "x": 1.75, "y": 3},
+        {"matrix": [5, 1], "x": 2.75, "y": 3},
+        {"matrix": [4, 2], "x": 3.75, "y": 3},
+        {"matrix": [5, 2], "x": 4.75, "y": 3},
+        {"matrix": [4, 3], "x": 5.75, "y": 3},
+        {"matrix": [5, 3], "x": 6.75, "y": 3},
+        {"matrix": [4, 4], "x": 7.75, "y": 3},
+        {"matrix": [5, 4], "x": 8.75, "y": 3},
+        {"matrix": [4, 5], "x": 9.75, "y": 3},
+        {"matrix": [5, 5], "x": 10.75, "y": 3, "w": 1.25},
+
+        {"matrix": [6, 0], "x": 0, "y": 4},
+        {"matrix": [7, 0], "x": 1, "y": 4},
+        {"matrix": [6, 1], "x": 2, "y": 4},
+        {"matrix": [7, 1], "x": 3, "y": 4, "w": 2.75},
+        {"matrix": [7, 2], "x": 5.75, "y": 4},
+        {"matrix": [6, 4], "x": 6.75, "y": 4, "w": 2.25},
+        {"matrix": [7, 4], "x": 9, "y": 4},
+        {"matrix": [6, 5], "x": 10, "y": 4},
+        {"matrix": [7, 5], "x": 11, "y": 4}
       ]
     },
     "LAYOUT_bigbar": {
       "layout": [
-          {"x":11, "y":0},
-          {"x":0, "y":1},
-          {"x":1, "y":1},
-          {"x":2, "y":1},
-          {"x":3, "y":1},
-          {"x":4, "y":1},
-          {"x":5, "y":1},
-          {"x":6, "y":1},
-          {"x":7, "y":1},
-          {"x":8, "y":1},
-          {"x":9, "y":1},
-          {"x":10, "y":1},
-          {"x":11, "y":1},
-          {"x":0, "y":2, "w":1.25},
-          {"x":1.25, "y":2},
-          {"x":2.25, "y":2},
-          {"x":3.25, "y":2},
-          {"x":4.25, "y":2},
-          {"x":5.25, "y":2},
-          {"x":6.25, "y":2},
-          {"x":7.25, "y":2},
-          {"x":8.25, "y":2},
-          {"x":9.25, "y":2},
-          {"x":10.25, "y":2, "w":1.75},
-          {"x":0, "y":3, "w":1.75},
-          {"x":1.75, "y":3},
-          {"x":2.75, "y":3},
-          {"x":3.75, "y":3},
-          {"x":4.75, "y":3},
-          {"x":5.75, "y":3},
-          {"x":6.75, "y":3},
-          {"x":7.75, "y":3},
-          {"x":8.75, "y":3},
-          {"x":9.75, "y":3},
-          {"x":10.75, "y":3, "w":1.25},
-          {"x":0, "y":4, "w":1.25},
-          {"x":1.25, "y":4},
-          {"x":2.25, "y":4},
-          {"x":3.25, "y":4, "w":6.25},
-          {"x":9.5, "y":4, "w":1.25},
-          {"x":10.75, "y":4, "w":1.25}
+        {"matrix": [1, 5], "x": 11, "y": 0},
+
+        {"matrix": [0, 0], "x": 0, "y": 1},
+        {"matrix": [1, 0], "x": 1, "y": 1},
+        {"matrix": [0, 1], "x": 2, "y": 1},
+        {"matrix": [1, 1], "x": 3, "y": 1},
+        {"matrix": [0, 2], "x": 4, "y": 1},
+        {"matrix": [1, 2], "x": 5, "y": 1},
+        {"matrix": [0, 3], "x": 6, "y": 1},
+        {"matrix": [1, 3], "x": 7, "y": 1},
+        {"matrix": [0, 4], "x": 8, "y": 1},
+        {"matrix": [1, 4], "x": 9, "y": 1},
+        {"matrix": [0, 5], "x": 10, "y": 1},
+        {"matrix": [3, 5], "x": 11, "y": 1},
+
+        {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
+        {"matrix": [3, 0], "x": 1.25, "y": 2},
+        {"matrix": [2, 1], "x": 2.25, "y": 2},
+        {"matrix": [3, 1], "x": 3.25, "y": 2},
+        {"matrix": [2, 2], "x": 4.25, "y": 2},
+        {"matrix": [3, 2], "x": 5.25, "y": 2},
+        {"matrix": [2, 3], "x": 6.25, "y": 2},
+        {"matrix": [3, 3], "x": 7.25, "y": 2},
+        {"matrix": [2, 4], "x": 8.25, "y": 2},
+        {"matrix": [3, 4], "x": 9.25, "y": 2},
+        {"matrix": [2, 5], "x": 10.25, "y": 2, "w": 1.75},
+
+        {"matrix": [4, 0], "x": 0, "y": 3, "w": 1.75},
+        {"matrix": [4, 1], "x": 1.75, "y": 3},
+        {"matrix": [5, 1], "x": 2.75, "y": 3},
+        {"matrix": [4, 2], "x": 3.75, "y": 3},
+        {"matrix": [5, 2], "x": 4.75, "y": 3},
+        {"matrix": [4, 3], "x": 5.75, "y": 3},
+        {"matrix": [5, 3], "x": 6.75, "y": 3},
+        {"matrix": [4, 4], "x": 7.75, "y": 3},
+        {"matrix": [5, 4], "x": 8.75, "y": 3},
+        {"matrix": [4, 5], "x": 9.75, "y": 3},
+        {"matrix": [5, 5], "x": 10.75, "y": 3, "w": 1.25},
+
+        {"matrix": [6, 0], "x": 0, "y": 4, "w": 1.25},
+        {"matrix": [7, 0], "x": 1.25, "y": 4},
+        {"matrix": [6, 1], "x": 2.25, "y": 4},
+        {"matrix": [7, 2], "x": 3.25, "y": 4, "w": 6.25},
+        {"matrix": [6, 5], "x": 9.5, "y": 4, "w": 1.25},
+        {"matrix": [7, 5], "x": 10.75, "y": 4, "w": 1.25}
       ]
     }
   }

+ 0 - 66
keyboards/0xcb/static/static.h

@@ -1,66 +0,0 @@
-/*
-Copyright 2021 0xCB - Conor Burns
-
-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.
- */
-
-// clang-format off
-#define LAYOUT_all( \
-                                                           K15, \
-    K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \
-    K20, K30, K21, K31, K22, K32, K23, K33, K24, K34,      K25, \
-    K40,      K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \
-    K60, K70, K61, K71,      K72,           K64, K74, K65, K75  \
-) \
-{ \
-    { K00,   K01,   K02,   K03,   K04,   K05 }, \
-    { K10,   K11,   K12,   K13,   K14,   K15 }, \
-    { K20,   K21,   K22,   K23,   K24,   K25 }, \
-    { K30,   K31,   K32,   K33,   K34,   K35 }, \
-    { K40,   K41,   K42,   K43,   K44,   K45 }, \
-    { KC_NO, K51,   K52,   K53,   K54,   K55 }, \
-    { K60,   K61,   KC_NO, KC_NO, K64,   K65 }, \
-    { K70,   K71,   K72,   KC_NO, K74,   K75 }, \
-}
-
-#define LAYOUT_bigbar( \
-                                                           K15, \
-    K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \
-    K20, K30, K21, K31, K22, K32, K23, K33, K24, K34,      K25, \
-    K40,      K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \
-    K60, K70, K61,                K72,                K65, K75  \
-) \
-{ \
-    { K00,   K01,   K02,   K03,   K04,   K05 }, \
-    { K10,   K11,   K12,   K13,   K14,   K15 }, \
-    { K20,   K21,   K22,   K23,   K24,   K25 }, \
-    { K30,   K31,   K32,   K33,   K34,   K35 }, \
-    { K40,   K41,   K42,   K43,   K44,   K45 }, \
-    { KC_NO, K51,   K52,   K53,   K54,   K55 }, \
-    { K60,   K61,   KC_NO, KC_NO, KC_NO, K65 }, \
-    { K70,   KC_NO, K72,   KC_NO, KC_NO, K75 }, \
-}
-// clang-format on

+ 268 - 252
keyboards/ai03/polaris/info.json

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

+ 0 - 86
keyboards/ai03/polaris/polaris.h

@@ -1,86 +0,0 @@
-/* Copyright 2019 Ryota Goto
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_all( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K113, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K213, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K312, K313, \
-	K400, K401, K402,       K404,       K406,       K408,             K410, K411, K412, K413  \
-) \
-{ \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313 }, \
-	{ K400,  K401,  K402,  KC_NO, K404,  KC_NO, K406,  KC_NO, K408,  KC_NO, K410,  K411,  K412,  K413 }  \
-}
-
-#define LAYOUT_60_ansi( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,       K013, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K113, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K213, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,             K312, \
-	K400, K401, K402,                   K406,                         K410, K411, K412, K413  \
-) \
-{ \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  KC_NO, K213 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO}, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  K412,  K413 }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K113, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K213, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K312, K313, \
-	K400, K401, K402,                   K406,                         K410, K411, K412, K413  \
-) \
-{ \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  K412,  K413 }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K113, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K213, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K312, K313, \
-	K400, K401, K402,                         K406,                         K411, K412, K413  \
-) \
-{ \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  K412,  K413 }  \
-}

+ 1 - 1
keyboards/alas/alas.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 "alas.h"
+#include "quantum.h"
 
 void led_init_ports(void) {
     // Set our LED pins as open drain outputs

+ 0 - 132
keyboards/alas/alas.h

@@ -1,132 +0,0 @@
-/* Copyright 2023 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_all( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
-    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,      K2D,      \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      \
-    K40, K41, K42,                K46,                K4A, 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, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3C, \
-    K40, K41, K42,                K46,                K4A, 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, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
-    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,      K2D,      \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      \
-    K40, K41, K42,                K46,                K4A, 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, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_ansi_tsangan( \
-    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,      K2D, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3C, \
-    K40, K41, K42,                K46,                     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, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_iso( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K1D, K2D, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3C, \
-    K40, K41, K42,                K46,                K4A, 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_iso_split_bs_rshift( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,           \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K1D, K2D,      \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      \
-    K40, K41, K42,                K46,                K4A, 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, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_iso_tsangan( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K1D, K2D, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3C, \
-    K40, K41, K42,                K46,                     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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
-    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,      K2D,      \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,      \
-    K40, K41, K42,                K46,                     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, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D }  \
-}

+ 545 - 8
keyboards/alas/info.json

@@ -17,28 +17,565 @@
     "bootloader": "stm32-dfu",
     "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":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":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":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":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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [2, 12], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_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":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":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":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":2.75}, {"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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
-            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "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":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":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":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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [2, 12], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_ansi_tsangan": {
-            "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":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":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":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":2.75}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [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": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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": 2.75},
+
+                {"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": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+            ]
         },
         "LAYOUT_60_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":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.75, "y":1, "w":1.25, "h":2}, {"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":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":2.75}, {"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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "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": [2, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [2, 1], "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": [1, 13], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "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": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_iso_split_bs_rshift": {
-            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "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.75, "y":1, "w":1.25, "h":2}, {"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":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":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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [2, 12], "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": [2, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [2, 1], "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": [1, 13], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "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": [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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_iso_tsangan": {
-            "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":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.75, "y":1, "w":1.25, "h":2}, {"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":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":2.75}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [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": [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, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [2, 1], "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": [1, 13], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "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": 2.75},
+
+                {"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": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+            ]
         },
         "LAYOUT_60_tsangan_hhkb": {
-            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "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":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":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":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [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, 12], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+            ]
         }
     }
 }

+ 0 - 106
keyboards/alps64/alps64.h

@@ -1,106 +0,0 @@
-/*
-Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-#pragma once
-
-#include "quantum.h"
-
-/* Alps64 keymap definition macro */
-
-#define LAYOUT_all( \
-    K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \
-    K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \
-    K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \
-    K31, K41, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, K22, \
-    K30, K40, K50,           K60,                     K70, K00, K10, K20  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17 }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37 }, \
-    { K40, K41, K42, K43, K44, K45, K46, K47 }, \
-    { K50, K51, K52, K53, K54, K55, K56, K57 }, \
-    { K60, K61, K62, K63, K64, K65, K66, K67 }, \
-    { K70, K71, K72, K73, K74, K75, K76, K77 } \
-}
-
-#define LAYOUT_iso( \
-    K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17,      K27, \
-    K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \
-    K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \
-    K31, K41, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21,  \
-    K30, K40, K50,           K60,                     K70, K00,      K20  \
-) { \
-    { K00,   K01, K02,   K03, K04, K05, K06,   K07 }, \
-    { KC_NO, K11, K12,   K13, K14, K15, K16,   K17 }, \
-    { K20,   K21, KC_NO, K23, K24, K25, KC_NO, K27 }, \
-    { K30,   K31, K32,   K33, K34, K35, K36,   K37 }, \
-    { K40,   K41, K42,   K43, K44, K45, K46,   K47 }, \
-    { K50,   K51, K52,   K53, K54, K55, K56,   K57 }, \
-    { K60,   K61, K62,   K63, K64, K65, K66,   K67 }, \
-    { K70,   K71, K72,   K73, K74, K75, K76,   K77 } \
-}
-
-#define LAYOUT_60_ansi( \
-    K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17,      K27, \
-    K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \
-    K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \
-    K31,      K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21,  \
-    K30, K40, K50,           K60,                     K70, K00, K10, K20  \
-) { \
-    { K00, K01,   K02,   K03, K04, K05, K06,   K07 }, \
-    { K10, K11,   K12,   K13, K14, K15, K16,   K17 }, \
-    { K20, K21,   KC_NO, K23, K24, K25, KC_NO, K27 }, \
-    { K30, K31,   K32,   K33, K34, K35, K36,   K37 }, \
-    { K40, KC_NO, K42,   K43, K44, K45, K46,   K47 }, \
-    { K50, K51,   K52,   K53, K54, K55, K56,   K57 }, \
-    { K60, K61,   K62,   K63, K64, K65, K66,   K67 }, \
-    { K70, K71,   K72,   K73, K74, K75, K76,   K77 } \
-}
-
-#define LAYOUT_infinity( \
-    K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \
-    K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \
-    K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \
-    K31,      K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, K22, \
-    K30, K40, K50,           K60,                     K70, K00, K10, K20  \
-) { \
-    { K00, K01,   K02, K03, K04, K05, K06, K07 }, \
-    { K10, K11,   K12, K13, K14, K15, K16, K17 }, \
-    { K20, K21,   K22, K23, K24, K25, K26, K27 }, \
-    { K30, K31,   K32, K33, K34, K35, K36, K37 }, \
-    { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \
-    { K50, K51,   K52, K53, K54, K55, K56, K57 }, \
-    { K60, K61,   K62, K63, K64, K65, K66, K67 }, \
-    { K70, K71,   K72, K73, K74, K75, K76, K77 } \
-}
-
-#define LAYOUT_aek_103( \
-    K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17,     K27, \
-    K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \
-    K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \
-    K31,      K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21,  \
-    K30, K40, K50,           K60,                          K00, K10, K20  \
-) { \
-    { K00,   K01,   K02,   K03, K04, K05, K06,   K07 }, \
-    { K10,   K11,   K12,   K13, K14, K15, K16,   K17 }, \
-    { K20,   K21,   KC_NO, K23, K24, K25, KC_NO, K27 }, \
-    { K30,   K31,   K32,   K33, K34, K35, K36,   K37 }, \
-    { K40,   KC_NO, K42,   K43, K44, K45, K46,   K47 }, \
-    { K50,   K51,   K52,   K53, K54, K55, K56,   K57 }, \
-    { K60,   K61,   K62,   K63, K64, K65, K66,   K67 }, \
-    { KC_NO, K71,   K72,   K73, K74, K75, K76,   K77 } \
-}

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 1
keyboards/alps64/info.json


+ 0 - 131
keyboards/amjkeyboard/amj60/amj60.h

@@ -1,131 +0,0 @@
-/* Copyright 2016 Toni (@toneman77)
- *           2021 James Young for QMK (@noroadsleft)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-// readability
-#define XXX KC_NO
-
-/* AMJ60 layout to the best of my knowledge matrix layout
- *
- * I scoured the internet researching this PCB, which near as I know was
- * discontinued around 2017. Fortunately, the wiring seems to be based on the
- * GH60, and I own a KC60, which is also based on the GH60. I traced my KC60
- * (which I already had apart!) and worked out the right shift can be split
- * 1.75/1 (HHKB style) or 1/1.75 (JIS/ABNT2). With either split, the 1u key
- * was on column C, so I used that here.
- *
- *                                                              - noroadsleft
- *
- *                                                                  ┌───────┐
- *                                                     2u Backspace │0d     │
- *                                                                  └───────┘
- *              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- *              │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │49 │        ┌─────┐
- *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤        │     │
- *              │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │     ┌──┴┐    │ ISO Enter
- * 2.25u        ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤     │2c │2d  │
- * LShift       │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d  │     └───┴────┘
- * ┌────────┐   ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤   ┌──────────┐
- * │30      │   │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d    │3c │   │3d        │ 2.75u RShift
- * └────────┘   ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤   └──────────┘
- *              │40  │41  │42  │           45           │4a  │4b  │4c  │4d  │   ┌───┬──────┐
- *              └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘   │3c │3d    │ JIS RShift
- *              ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐   └───┴──────┘
- *      Tsangan │40   │41 │42   │            45             │4b   │4c │4d   │
- *              └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- *              ┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐
- *  Topre-style │40   │41 │42   │          45           │4a   │4b │4c │4d   │
- *              └─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘
- *
- */
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
-    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, k3d, k3c, \
-    k40, k41, k42,           k45,                     k4a, 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, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d}  \
-}
-
-#define LAYOUT_60_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, \
-    k40, k41, k42,           k45,                     k4a, 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, XXX, k3d}, \
-    {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d}  \
-}
-
-#define LAYOUT_60_hhkb( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
-    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,      k2d, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
-         k41, k42,                k45,                     k4b, k4c       \
-) \
-{ \
-    {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}, \
-    {XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, XXX, k4b, k4c, XXX}  \
-}
-
-#define LAYOUT_60_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, \
-    k40, k41, k42,           k45,                     k4a, 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, XXX, k3d}, \
-    {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d}  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
-    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,      k2d, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
-    k40, k41, k42,           k45,                     k4a, 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, XXX, XXX, k49, k4a, k4b, k4c, k4d}  \
-}

+ 311 - 311
keyboards/amjkeyboard/amj60/info.json

@@ -31,353 +31,353 @@
     "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":"k0d", "x":13, "y":0},
-                {"label":"k49", "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": [4, 9], "x": 14, "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},
+                {"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},
 
-                {"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":2, "w":1.25},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [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},
 
-                {"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":"k3c", "x":14, "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, 12], "x": 14, "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":"k45", "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":12.5, "y":4, "w":1.25},
-                {"label":"k4d", "x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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":"k3d", "x":12.25, "y":3, "w":2.75},
+                {"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": 2.75},
 
-                {"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":"k45", "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":12.5, "y":4, "w":1.25},
-                {"label":"k4d", "x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_hhkb": {
             "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},
-                {"label":"k49", "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": [4, 9], "x": 14, "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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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":"k3d", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3c", "x":14, "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, 12], "x": 14, "y": 3},
 
-                {"label":"k41", "x":1.5, "y":4},
-                {"label":"k42", "x":2.5, "y":4, "w":1.5},
-                {"label":"k45", "x":4, "y":4, "w":7},
-                {"label":"k4b", "x":11, "y":4, "w":1.5},
-                {"label":"k4c", "x":12.5, "y":4}
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4}
             ]
         },
         "LAYOUT_60_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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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":2.75},
+                {"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": 2.75},
 
-                {"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":"k45", "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":12.5, "y":4, "w":1.25},
-                {"label":"k4d", "x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
             "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},
-                {"label":"k49", "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": [4, 9], "x": 14, "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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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":"k3d", "x":12.25, "y":3, "w":1.75},
-                {"label":"k3c", "x":14, "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, 12], "x": 14, "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":"k45", "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":12.5, "y":4, "w":1.25},
-                {"label":"k4d", "x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         }
     }

+ 0 - 68
keyboards/ares/ares.h

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

+ 188 - 188
keyboards/ares/info.json

@@ -34,214 +34,214 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                {"label":"~", "x":0, "y":0},
-                {"label":"!", "x":1, "y":0},
-                {"label":"@", "x":2, "y":0},
-                {"label":"#", "x":3, "y":0},
-                {"label":"$", "x":4, "y":0},
-                {"label":"%", "x":5, "y":0},
-                {"label":"^", "x":6, "y":0},
-                {"label":"&", "x":7, "y":0},
-                {"label":"*", "x":8, "y":0},
-                {"label":"(", "x":9, "y":0},
-                {"label":")", "x":10, "y":0},
-                {"label":"_", "x":11, "y":0},
-                {"label":"+", "x":12, "y":0},
-                {"label":"|", "x":13, "y":0},
-                {"label":"Back space", "x":14, "y":0},
+                {"matrix": [4, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [4, 6], "x": 6, "y": 0},
+                {"matrix": [4, 7], "x": 7, "y": 0},
+                {"matrix": [4, 8], "x": 8, "y": 0},
+                {"matrix": [4, 9], "x": 9, "y": 0},
+                {"matrix": [4, 10], "x": 10, "y": 0},
+                {"matrix": [4, 11], "x": 11, "y": 0},
+                {"matrix": [4, 12], "x": 12, "y": 0},
+                {"matrix": [4, 13], "x": 13, "y": 0},
+                {"matrix": [4, 14], "x": 14, "y": 0},
 
-                {"label":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"{", "x":11.5, "y":1},
-                {"label":"}", "x":12.5, "y":1},
-                {"label":"|", "x":13.5, "y":1, "w":1.5},
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [3, 6], "x": 6.5, "y": 1},
+                {"matrix": [3, 7], "x": 7.5, "y": 1},
+                {"matrix": [3, 8], "x": 8.5, "y": 1},
+                {"matrix": [3, 9], "x": 9.5, "y": 1},
+                {"matrix": [3, 10], "x": 10.5, "y": 1},
+                {"matrix": [3, 11], "x": 11.5, "y": 1},
+                {"matrix": [3, 12], "x": 12.5, "y": 1},
+                {"matrix": [3, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"|", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":2, "w":1.25},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [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},
 
-                {"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":"Fn", "x":14, "y":3},
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [1, 1], "x": 1.25, "y": 3},
+                {"matrix": [1, 2], "x": 2.25, "y": 3},
+                {"matrix": [1, 3], "x": 3.25, "y": 3},
+                {"matrix": [1, 4], "x": 4.25, "y": 3},
+                {"matrix": [1, 5], "x": 5.25, "y": 3},
+                {"matrix": [1, 6], "x": 6.25, "y": 3},
+                {"matrix": [1, 7], "x": 7.25, "y": 3},
+                {"matrix": [1, 8], "x": 8.25, "y": 3},
+                {"matrix": [1, 9], "x": 9.25, "y": 3},
+                {"matrix": [1, 10], "x": 10.25, "y": 3},
+                {"matrix": [1, 11], "x": 11.25, "y": 3},
+                {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [1, 13], "x": 14, "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":"Win", "x":11.25, "y":4, "w":1.25},
-                {"label":"Menu", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [0, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [0, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [0, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 12], "x": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [0, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
             "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": [4, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [4, 6], "x": 6, "y": 0},
+                {"matrix": [4, 7], "x": 7, "y": 0},
+                {"matrix": [4, 8], "x": 8, "y": 0},
+                {"matrix": [4, 9], "x": 9, "y": 0},
+                {"matrix": [4, 10], "x": 10, "y": 0},
+                {"matrix": [4, 11], "x": 11, "y": 0},
+                {"matrix": [4, 12], "x": 12, "y": 0},
+                {"matrix": [4, 13], "x": 13, "y": 0},
+                {"matrix": [4, 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},
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [3, 6], "x": 6.5, "y": 1},
+                {"matrix": [3, 7], "x": 7.5, "y": 1},
+                {"matrix": [3, 8], "x": 8.5, "y": 1},
+                {"matrix": [3, 9], "x": 9.5, "y": 1},
+                {"matrix": [3, 10], "x": 10.5, "y": 1},
+                {"matrix": [3, 11], "x": 11.5, "y": 1},
+                {"matrix": [3, 12], "x": 12.5, "y": 1},
+                {"matrix": [3, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [1, 2], "x": 2.25, "y": 3},
+                {"matrix": [1, 3], "x": 3.25, "y": 3},
+                {"matrix": [1, 4], "x": 4.25, "y": 3},
+                {"matrix": [1, 5], "x": 5.25, "y": 3},
+                {"matrix": [1, 6], "x": 6.25, "y": 3},
+                {"matrix": [1, 7], "x": 7.25, "y": 3},
+                {"matrix": [1, 8], "x": 8.25, "y": 3},
+                {"matrix": [1, 9], "x": 9.25, "y": 3},
+                {"matrix": [1, 10], "x": 10.25, "y": 3},
+                {"matrix": [1, 11], "x": 11.25, "y": 3},
+                {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [1, 13], "x": 14, "y": 3},
 
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [0, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [0, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [0, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 12], "x": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [0, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_hhkb": {
             "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": [4, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [4, 6], "x": 6, "y": 0},
+                {"matrix": [4, 7], "x": 7, "y": 0},
+                {"matrix": [4, 8], "x": 8, "y": 0},
+                {"matrix": [4, 9], "x": 9, "y": 0},
+                {"matrix": [4, 10], "x": 10, "y": 0},
+                {"matrix": [4, 11], "x": 11, "y": 0},
+                {"matrix": [4, 12], "x": 12, "y": 0},
+                {"matrix": [4, 13], "x": 13, "y": 0},
+                {"matrix": [4, 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},
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [3, 6], "x": 6.5, "y": 1},
+                {"matrix": [3, 7], "x": 7.5, "y": 1},
+                {"matrix": [3, 8], "x": 8.5, "y": 1},
+                {"matrix": [3, 9], "x": 9.5, "y": 1},
+                {"matrix": [3, 10], "x": 10.5, "y": 1},
+                {"matrix": [3, 11], "x": 11.5, "y": 1},
+                {"matrix": [3, 12], "x": 12.5, "y": 1},
+                {"matrix": [3, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [1, 2], "x": 2.25, "y": 3},
+                {"matrix": [1, 3], "x": 3.25, "y": 3},
+                {"matrix": [1, 4], "x": 4.25, "y": 3},
+                {"matrix": [1, 5], "x": 5.25, "y": 3},
+                {"matrix": [1, 6], "x": 6.25, "y": 3},
+                {"matrix": [1, 7], "x": 7.25, "y": 3},
+                {"matrix": [1, 8], "x": 8.25, "y": 3},
+                {"matrix": [1, 9], "x": 9.25, "y": 3},
+                {"matrix": [1, 10], "x": 10.25, "y": 3},
+                {"matrix": [1, 11], "x": 11.25, "y": 3},
+                {"matrix": [1, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [1, 13], "x": 14, "y": 3},
 
-                {"x":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"x":11, "y":4, "w":1.5},
-                {"x":12.5, "y":4}
+                {"matrix": [0, 1], "x": 1.5, "y": 4},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [0, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [0, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [0, 12], "x": 12.5, "y": 4}
             ]
         }
     }

+ 0 - 86
keyboards/atxkb/1894/1894.h

@@ -1,86 +0,0 @@
-/* Copyright 2019 Ryota Goto
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_all( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K113, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K213, \
-	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K312, K313, \
-	K400, K401, K402,       K404,       K406,       K408,             K410, K411, K412, K413  \
-) \
-{ \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213 }, \
-	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313 }, \
-	{ K400,  K401,  K402,  KC_NO, K404,  KC_NO, K406,  KC_NO, K408,  KC_NO, K410,  K411,  K412,  K413 }  \
-}
-
-#define LAYOUT_60_ansi( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,       K013, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K113, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K213, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,             K312, \
-	K400, K401, K402,                   K406,                         K410, K411, K412, K413  \
-) \
-{ \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  KC_NO, K213 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO}, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  K412,  K413 }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K113, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K213, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K312, K313, \
-	K400, K401, K402,                   K406,                         K410, K411, K412, K413  \
-) \
-{ \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  K412,  K413 }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, \
-	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K113, \
-	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K213, \
-	K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K312, K313, \
-	K400, K401, K402,                         K406,                         K411, K412, K413  \
-) \
-{ \
-	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013 }, \
-	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113 }, \
-	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213 }, \
-	{ K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313 }, \
-	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, KC_NO, K411,  K412,  K413 }  \
-}

+ 268 - 252
keyboards/atxkb/1894/info.json

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

+ 0 - 122
keyboards/aves60/aves60.h

@@ -1,122 +0,0 @@
-// Copyright 2021 Evelien Dekkers (@evyd13)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include "quantum.h"
-
-/* This is a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-
-#define XXX KC_NO
-
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-    k40, k41, k42,      k44,      k46, k47,           k4a, 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, XXX, k46, k47, XXX, XXX, k4a, k4b, k4c, k4d }  \
-}
-
-#define LAYOUT_60_ansi_split_rshift( \
-    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, k2c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-    k40, k41, k42,                k46,                k4a, 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, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-    k40, k41, k42,                k46,                k4a, 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, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift_space( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-    k40, k41, k42,      k44,      k46,      k47,      k4a, 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, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d }, \
-    { k40, k41, k42, XXX, k44, XXX, k46, k47, XXX, XXX, k4a, k4b, k4c, k4d }  \
-}
-
-#define LAYOUT_60_iso_split_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-    k40, k41, k42,                k46,                k4a, 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, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d }  \
-}
-
-#define LAYOUT_60_iso_split_bs_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-    k40, k41, k42,                k46,                k4a, 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, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, k4d }  \
-}
-
-#define LAYOUT_60_iso_split_bs_rshift_space( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-    k40, k41, k42,      k44,      k46,      k47,      k4a, 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, XXX, k46, k47, XXX, XXX, k4a, k4b, k4c, k4d }  \
-}

+ 452 - 452
keyboards/aves60/info.json

@@ -24,507 +24,507 @@
     "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},
+                {"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},
 
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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.75},
-                {"x":6.5, "y":4, "w":1.25},
-                {"x":7.75, "y":4, "w":2.25},
-                {"x":10, "y":4, "w":1.25},
-                {"x":11.25, "y":4, "w":1.25},
-                {"x":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"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.75},
+                {"matrix": [4, 6], "x": 6.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 7.75, "y": 4, "w": 2.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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_split_rshift": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
 
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"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},
+                {"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},
 
-                {"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":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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "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, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
             "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": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "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": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
+                {"matrix": [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},
 
-                {"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},
+                {"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},
 
-                {"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":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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift_space": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"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": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "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": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
+                {"matrix": [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},
 
-                {"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},
+                {"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},
 
-                {"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":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.75},
-                {"x":6.5, "y":4, "w":1.25},
-                {"x":7.75, "y":4, "w":2.25},
-                {"x":10, "y":4, "w":1.25},
-                {"x":11.25, "y":4, "w":1.25},
-                {"x":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"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.75},
+                {"matrix": [4, 6], "x": 6.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 7.75, "y": 4, "w": 2.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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso_split_rshift": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0, "w":2},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso_split_bs_rshift": {
             "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": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso_split_bs_rshift_space": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"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": [1, 13], "x": 13, "y": 0},
+                {"matrix": [0, 13], "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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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.75},
-                {"x":6.5, "y":4, "w":1.25},
-                {"x":7.75, "y":4, "w":2.25},
-                {"x":10, "y":4, "w":1.25},
-                {"x":11.25, "y":4, "w":1.25},
-                {"x":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"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.75},
+                {"matrix": [4, 6], "x": 6.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 7.75, "y": 4, "w": 2.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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         }
     }

+ 0 - 63
keyboards/barleycorn_smd/barleycorn_smd.h

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

+ 284 - 263
keyboards/barleycorn_smd/info.json

@@ -19,277 +19,298 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                { "label": "0,0", "x": 0, "y": 0 },
-                { "label": "0,1", "x": 1, "y": 0 },
-                { "label": "0,2", "x": 2, "y": 0 },
-                { "label": "0,3", "x": 3, "y": 0 },
-                { "label": "0,4", "x": 4, "y": 0 },
-                { "label": "0,5", "x": 5, "y": 0 },
-                { "label": "0,6", "x": 6, "y": 0 },
-                { "label": "0,7", "x": 7, "y": 0 },
-                { "label": "0,8", "x": 8, "y": 0 },
-                { "label": "0,9", "x": 9, "y": 0 },
-                { "label": "0,10", "x": 10, "y": 0 },
-                { "label": "0,11", "x": 11, "y": 0 },
-                { "label": "0,12", "x": 12, "y": 0 },
-                { "label": "0,13", "x": 13, "y": 0 },
-                { "label": "1,13", "x": 14, "y": 0 },
-                { "label": "0,14", "x": 15.5, "y": 0 },
-                { "label": "0,15", "x": 16.5, "y": 0 },
-                { "label": "0,16", "x": 17.5, "y": 0 },
-                { "label": "0,17", "x": 18.5, "y": 0 },
-
-                { "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
-                { "label": "1,1", "x": 1.5, "y": 1 },
-                { "label": "1,2", "x": 2.5, "y": 1 },
-                { "label": "1,3", "x": 3.5, "y": 1 },
-                { "label": "1,4", "x": 4.5, "y": 1 },
-                { "label": "1,5", "x": 5.5, "y": 1 },
-                { "label": "1,6", "x": 6.5, "y": 1 },
-                { "label": "1,7", "x": 7.5, "y": 1 },
-                { "label": "1,8", "x": 8.5, "y": 1 },
-                { "label": "1,9", "x": 9.5, "y": 1 },
-                { "label": "1,10", "x": 10.5, "y": 1 },
-                { "label": "1,11", "x": 11.5, "y": 1 },
-                { "label": "1,12", "x": 12.5, "y": 1 },
-                { "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 },
-                { "label": "1,14", "x": 15.5, "y": 1 },
-                { "label": "1,15", "x": 16.5, "y": 1 },
-                { "label": "1,16", "x": 17.5, "y": 1 },
-                { "label": "1,17", "x": 18.5, "y": 1 },
-
-                { "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "2,1", "x": 1.75, "y": 2 },
-                { "label": "2,2", "x": 2.75, "y": 2 },
-                { "label": "2,3", "x": 3.75, "y": 2 },
-                { "label": "2,4", "x": 4.75, "y": 2 },
-                { "label": "2,5", "x": 5.75, "y": 2 },
-                { "label": "2,6", "x": 6.75, "y": 2 },
-                { "label": "2,7", "x": 7.75, "y": 2 },
-                { "label": "2,8", "x": 8.75, "y": 2 },
-                { "label": "2,9", "x": 9.75, "y": 2 },
-                { "label": "2,10", "x": 10.75, "y": 2 },
-                { "label": "2,11", "x": 11.75, "y": 2 },
-                { "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 },
-                { "label": "2,14", "x": 15.5, "y": 2 },
-                { "label": "2,15", "x": 16.5, "y": 2 },
-                { "label": "2,16", "x": 17.5, "y": 2 },
-                { "label": "2,17", "x": 18.5, "y": 2 },
-
-                { "label": "3,0", "x": 0, "y": 3, "w": 1.25 },
-                { "label": "3,1", "x": 1.25, "y": 3 },
-                { "label": "3,2", "x": 2.25, "y": 3 },
-                { "label": "3,3", "x": 3.25, "y": 3 },
-                { "label": "3,4", "x": 4.25, "y": 3 },
-                { "label": "3,5", "x": 5.25, "y": 3 },
-                { "label": "3,6", "x": 6.25, "y": 3 },
-                { "label": "3,7", "x": 7.25, "y": 3 },
-                { "label": "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": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
-                { "label": "3,13", "x": 14.25, "y": 3.25 },
-                { "label": "3,14", "x": 15.5, "y": 3 },
-                { "label": "3,15", "x": 16.5, "y": 3 },
-                { "label": "3,16", "x": 17.5, "y": 3 },
-                { "label": "3,17", "x": 18.5, "y": 3 },
-
-                { "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
-                { "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
-                { "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
-                { "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
-                { "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
-                { "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
-                { "label": "4,12", "x": 13.25, "y": 4.25 },
-                { "label": "4,13", "x": 14.25, "y": 4.25 },
-                { "label": "4,14", "x": 15.25, "y": 4.25 },
-                { "label": "4,15", "x": 16.5, "y": 4 },
-                { "label": "4,16", "x": 17.5, "y": 4 },
-                { "label": "4,17", "x": 18.5, "y": 4 }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [1, 13], "x": 14, "y": 0},
+
+                {"matrix": [0, 14], "x": 15.5, "y": 0},
+                {"matrix": [0, 15], "x": 16.5, "y": 0},
+                {"matrix": [0, 16], "x": 17.5, "y": 0},
+                {"matrix": [0, 17], "x": 18.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1},
+                {"matrix": [1, 15], "x": 16.5, "y": 1},
+                {"matrix": [1, 16], "x": 17.5, "y": 1},
+                {"matrix": [1, 17], "x": 18.5, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2},
+                {"matrix": [2, 15], "x": 16.5, "y": 2},
+                {"matrix": [2, 16], "x": 17.5, "y": 2},
+                {"matrix": [2, 17], "x": 18.5, "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.25, "y": 3.25},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3},
+                {"matrix": [3, 15], "x": 16.5, "y": 3},
+                {"matrix": [3, 16], "x": 17.5, "y": 3},
+                {"matrix": [3, 17], "x": 18.5, "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.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5},
+
+                {"matrix": [4, 12], "x": 13.25, "y": 4.25},
+                {"matrix": [4, 13], "x": 14.25, "y": 4.25},
+                {"matrix": [4, 14], "x": 15.25, "y": 4.25},
+
+                {"matrix": [4, 15], "x": 16.5, "y": 4},
+                {"matrix": [4, 16], "x": 17.5, "y": 4},
+                {"matrix": [4, 17], "x": 18.5, "y": 4}
             ]
         },
         "LAYOUT_ansi": {
             "layout": [
-                { "label": "0,0", "x": 0, "y": 0 },
-                { "label": "0,1", "x": 1, "y": 0 },
-                { "label": "0,2", "x": 2, "y": 0 },
-                { "label": "0,3", "x": 3, "y": 0 },
-                { "label": "0,4", "x": 4, "y": 0 },
-                { "label": "0,5", "x": 5, "y": 0 },
-                { "label": "0,6", "x": 6, "y": 0 },
-                { "label": "0,7", "x": 7, "y": 0 },
-                { "label": "0,8", "x": 8, "y": 0 },
-                { "label": "0,9", "x": 9, "y": 0 },
-                { "label": "0,10", "x": 10, "y": 0 },
-                { "label": "0,11", "x": 11, "y": 0 },
-                { "label": "0,12", "x": 12, "y": 0 },
-                { "label": "0,13", "x": 13, "y": 0 },
-                { "label": "1,13", "x": 14, "y": 0 },
-                { "label": "0,14", "x": 15.5, "y": 0 },
-                { "label": "0,15", "x": 16.5, "y": 0 },
-                { "label": "0,16", "x": 17.5, "y": 0 },
-                { "label": "0,17", "x": 18.5, "y": 0 },
-
-                { "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
-                { "label": "1,1", "x": 1.5, "y": 1 },
-                { "label": "1,2", "x": 2.5, "y": 1 },
-                { "label": "1,3", "x": 3.5, "y": 1 },
-                { "label": "1,4", "x": 4.5, "y": 1 },
-                { "label": "1,5", "x": 5.5, "y": 1 },
-                { "label": "1,6", "x": 6.5, "y": 1 },
-                { "label": "1,7", "x": 7.5, "y": 1 },
-                { "label": "1,8", "x": 8.5, "y": 1 },
-                { "label": "1,9", "x": 9.5, "y": 1 },
-                { "label": "1,10", "x": 10.5, "y": 1 },
-                { "label": "1,11", "x": 11.5, "y": 1 },
-                { "label": "1,12", "x": 12.5, "y": 1 },
-                { "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 },
-                { "label": "1,14", "x": 15.5, "y": 1 },
-                { "label": "1,15", "x": 16.5, "y": 1 },
-                { "label": "1,16", "x": 17.5, "y": 1 },
-                { "label": "1,17", "x": 18.5, "y": 1 },
-
-                { "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "2,1", "x": 1.75, "y": 2 },
-                { "label": "2,2", "x": 2.75, "y": 2 },
-                { "label": "2,3", "x": 3.75, "y": 2 },
-                { "label": "2,4", "x": 4.75, "y": 2 },
-                { "label": "2,5", "x": 5.75, "y": 2 },
-                { "label": "2,6", "x": 6.75, "y": 2 },
-                { "label": "2,7", "x": 7.75, "y": 2 },
-                { "label": "2,8", "x": 8.75, "y": 2 },
-                { "label": "2,9", "x": 9.75, "y": 2 },
-                { "label": "2,10", "x": 10.75, "y": 2 },
-                { "label": "2,11", "x": 11.75, "y": 2 },
-                { "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 },
-                { "label": "2,14", "x": 15.5, "y": 2 },
-                { "label": "2,15", "x": 16.5, "y": 2 },
-                { "label": "2,16", "x": 17.5, "y": 2 },
-                { "label": "2,17", "x": 18.5, "y": 2 },
-
-                { "label": "3,0", "x": 0, "y": 3, "w": 2.25 },
-                { "label": "3,2", "x": 2.25, "y": 3 },
-                { "label": "3,3", "x": 3.25, "y": 3 },
-                { "label": "3,4", "x": 4.25, "y": 3 },
-                { "label": "3,5", "x": 5.25, "y": 3 },
-                { "label": "3,6", "x": 6.25, "y": 3 },
-                { "label": "3,7", "x": 7.25, "y": 3 },
-                { "label": "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": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
-                { "label": "3,13", "x": 14.25, "y": 3.25 },
-                { "label": "3,14", "x": 15.5, "y": 3 },
-                { "label": "3,15", "x": 16.5, "y": 3 },
-                { "label": "3,16", "x": 17.5, "y": 3 },
-                { "label": "3,17", "x": 18.5, "y": 3 },
-
-                { "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
-                { "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
-                { "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
-                { "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
-                { "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
-                { "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
-                { "label": "4,12", "x": 13.25, "y": 4.25 },
-                { "label": "4,13", "x": 14.25, "y": 4.25 },
-                { "label": "4,14", "x": 15.25, "y": 4.25 },
-                { "label": "4,15", "x": 16.5, "y": 4 },
-                { "label": "4,16", "x": 17.5, "y": 4 },
-                { "label": "4,17", "x": 18.5, "y": 4 }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [1, 13], "x": 14, "y": 0},
+
+                {"matrix": [0, 14], "x": 15.5, "y": 0},
+                {"matrix": [0, 15], "x": 16.5, "y": 0},
+                {"matrix": [0, 16], "x": 17.5, "y": 0},
+                {"matrix": [0, 17], "x": 18.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1},
+                {"matrix": [1, 15], "x": 16.5, "y": 1},
+                {"matrix": [1, 16], "x": 17.5, "y": 1},
+                {"matrix": [1, 17], "x": 18.5, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2},
+                {"matrix": [2, 15], "x": 16.5, "y": 2},
+                {"matrix": [2, 16], "x": 17.5, "y": 2},
+                {"matrix": [2, 17], "x": 18.5, "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.25, "y": 3.25},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3},
+                {"matrix": [3, 15], "x": 16.5, "y": 3},
+                {"matrix": [3, 16], "x": 17.5, "y": 3},
+                {"matrix": [3, 17], "x": 18.5, "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.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5},
+
+                {"matrix": [4, 12], "x": 13.25, "y": 4.25},
+                {"matrix": [4, 13], "x": 14.25, "y": 4.25},
+                {"matrix": [4, 14], "x": 15.25, "y": 4.25},
+
+                {"matrix": [4, 15], "x": 16.5, "y": 4},
+                {"matrix": [4, 16], "x": 17.5, "y": 4},
+                {"matrix": [4, 17], "x": 18.5, "y": 4}
             ]
         },
         "LAYOUT_iso": {
             "layout": [
-                { "label": "0,0", "x": 0, "y": 0 },
-                { "label": "0,1", "x": 1, "y": 0 },
-                { "label": "0,2", "x": 2, "y": 0 },
-                { "label": "0,3", "x": 3, "y": 0 },
-                { "label": "0,4", "x": 4, "y": 0 },
-                { "label": "0,5", "x": 5, "y": 0 },
-                { "label": "0,6", "x": 6, "y": 0 },
-                { "label": "0,7", "x": 7, "y": 0 },
-                { "label": "0,8", "x": 8, "y": 0 },
-                { "label": "0,9", "x": 9, "y": 0 },
-                { "label": "0,10", "x": 10, "y": 0 },
-                { "label": "0,11", "x": 11, "y": 0 },
-                { "label": "0,12", "x": 12, "y": 0 },
-                { "label": "0,13", "x": 13, "y": 0 },
-                { "label": "1,13", "x": 14, "y": 0 },
-                { "label": "0,14", "x": 15.5, "y": 0 },
-                { "label": "0,15", "x": 16.5, "y": 0 },
-                { "label": "0,16", "x": 17.5, "y": 0 },
-                { "label": "0,17", "x": 18.5, "y": 0 },
-
-                { "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
-                { "label": "1,1", "x": 1.5, "y": 1 },
-                { "label": "1,2", "x": 2.5, "y": 1 },
-                { "label": "1,3", "x": 3.5, "y": 1 },
-                { "label": "1,4", "x": 4.5, "y": 1 },
-                { "label": "1,5", "x": 5.5, "y": 1 },
-                { "label": "1,6", "x": 6.5, "y": 1 },
-                { "label": "1,7", "x": 7.5, "y": 1 },
-                { "label": "1,8", "x": 8.5, "y": 1 },
-                { "label": "1,9", "x": 9.5, "y": 1 },
-                { "label": "1,10", "x": 10.5, "y": 1 },
-                { "label": "1,11", "x": 11.5, "y": 1 },
-                { "label": "1,12", "x": 12.5, "y": 1 },
-                { "label": "1,14", "x": 15.5, "y": 1 },
-                { "label": "1,15", "x": 16.5, "y": 1 },
-                { "label": "1,16", "x": 17.5, "y": 1 },
-                { "label": "1,17", "x": 18.5, "y": 1 },
-
-                { "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "2,1", "x": 1.75, "y": 2 },
-                { "label": "2,2", "x": 2.75, "y": 2 },
-                { "label": "2,3", "x": 3.75, "y": 2 },
-                { "label": "2,4", "x": 4.75, "y": 2 },
-                { "label": "2,5", "x": 5.75, "y": 2 },
-                { "label": "2,6", "x": 6.75, "y": 2 },
-                { "label": "2,7", "x": 7.75, "y": 2 },
-                { "label": "2,8", "x": 8.75, "y": 2 },
-                { "label": "2,9", "x": 9.75, "y": 2 },
-                { "label": "2,10", "x": 10.75, "y": 2 },
-                { "label": "2,11", "x": 11.75, "y": 2 },
-                { "label": "2,12", "x": 12.75, "y": 2 },
-                { "label": "2,13", "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
-                { "label": "2,14", "x": 15.5, "y": 2 },
-                { "label": "2,15", "x": 16.5, "y": 2 },
-                { "label": "2,16", "x": 17.5, "y": 2 },
-                { "label": "2,17", "x": 18.5, "y": 2 },
-
-                { "label": "3,0", "x": 0, "y": 3, "w": 1.25 },
-                { "label": "3,1", "x": 1.25, "y": 3 },
-                { "label": "3,2", "x": 2.25, "y": 3 },
-                { "label": "3,3", "x": 3.25, "y": 3 },
-                { "label": "3,4", "x": 4.25, "y": 3 },
-                { "label": "3,5", "x": 5.25, "y": 3 },
-                { "label": "3,6", "x": 6.25, "y": 3 },
-                { "label": "3,7", "x": 7.25, "y": 3 },
-                { "label": "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": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
-                { "label": "3,13", "x": 14.25, "y": 3.25 },
-                { "label": "3,14", "x": 15.5, "y": 3 },
-                { "label": "3,15", "x": 16.5, "y": 3 },
-                { "label": "3,16", "x": 17.5, "y": 3 },
-                { "label": "3,17", "x": 18.5, "y": 3 },
-
-                { "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
-                { "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
-                { "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
-                { "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
-                { "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
-                { "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
-                { "label": "4,12", "x": 13.25, "y": 4.25 },
-                { "label": "4,13", "x": 14.25, "y": 4.25 },
-                { "label": "4,14", "x": 15.25, "y": 4.25 },
-                { "label": "4,15", "x": 16.5, "y": 4 },
-                { "label": "4,16", "x": 17.5, "y": 4 },
-                { "label": "4,17", "x": 18.5, "y": 4 }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [1, 13], "x": 14, "y": 0},
+
+                {"matrix": [0, 14], "x": 15.5, "y": 0},
+                {"matrix": [0, 15], "x": 16.5, "y": 0},
+                {"matrix": [0, 16], "x": 17.5, "y": 0},
+                {"matrix": [0, 17], "x": 18.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1},
+                {"matrix": [1, 15], "x": 16.5, "y": 1},
+                {"matrix": [1, 16], "x": 17.5, "y": 1},
+                {"matrix": [1, 17], "x": 18.5, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2},
+                {"matrix": [2, 15], "x": 16.5, "y": 2},
+                {"matrix": [2, 16], "x": 17.5, "y": 2},
+                {"matrix": [2, 17], "x": 18.5, "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.25, "y": 3.25},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3},
+                {"matrix": [3, 15], "x": 16.5, "y": 3},
+                {"matrix": [3, 16], "x": 17.5, "y": 3},
+                {"matrix": [3, 17], "x": 18.5, "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.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4, "w": 1.5},
+
+                {"matrix": [4, 12], "x": 13.25, "y": 4.25},
+                {"matrix": [4, 13], "x": 14.25, "y": 4.25},
+                {"matrix": [4, 14], "x": 15.25, "y": 4.25},
+
+                {"matrix": [4, 15], "x": 16.5, "y": 4},
+                {"matrix": [4, 16], "x": 17.5, "y": 4},
+                {"matrix": [4, 17], "x": 18.5, "y": 4}
             ]
         }
     }

+ 1 - 1
keyboards/bemeier/bmek/bmek.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 "bmek.h"
+#include "quantum.h"
 
 __attribute__((weak))
 void shutdown_user(void) {

+ 0 - 50
keyboards/bemeier/bmek/bmek.h

@@ -1,50 +0,0 @@
-/* Copyright 2020 bemeier
- *
- * 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  // makes the switch matrix easier to read
-
-// This layout is supported by all revisions
-#define LAYOUT_hhkb(\
-       K00, K01, K02, K03, K04, K05, K06, K07,     K08, K09, K0A, K0B, K0C, K0D, K0E, K1E,\
-      K10,  K11,  K12, K13, K14, K15, K16,        K17, K18, K19, K1A, K1B, K1C, K1D,   K2E,\
-     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,\
-                    K42,   K43,      K45,             K48,      K4A,  K4B                     \
-   ) { \
-    { 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 }, \
-    { XXX, XXX, K42, K43, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, XXX, XXX }  \
-}
-
-// Layout exposing all keys (adding the ISO-style split left shift, which is supported starting rev3)
-#define LAYOUT_all(\
-       K00, K01, K02, K03, K04, K05, K06, K07,     K08, K09, K0A, K0B, K0C, K0D, K0E, K1E,\
-      K10,  K11,  K12, K13, K14, K15, K16,        K17, K18, K19, K1A, K1B, K1C, K1D,   K2E,\
-     K20,   K21,   K22, K23, K24, K25, K26,        K27, K28, K29, K2A, K2B,     K2C,    K2D,\
-    K30,  K31, K41, K32,   K33, K34, K35, K36,   K37, K38, K39, K3A,  K3B, K3C,  K3D,    K3E,\
-                    K42,   K43,      K45,             K48,      K4A,  K4B                     \
-   ) { \
-    { 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 }, \
-    { XXX, K41, K42, K43, XXX, K45, XXX, XXX, K48, XXX, K4A, K4B, XXX, XXX, XXX }  \
-}

+ 159 - 8
keyboards/bemeier/bmek/info.json

@@ -10,18 +10,169 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                {"label":"Home", "x":0, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"!", "x":2.5, "y":0}, {"label":"@", "x":3.5, "y":0}, {"label":"#", "x":4.5, "y":0}, {"label":"$", "x":5.5, "y":0}, {"label":"%", "x":6.5, "y":0}, {"label":"^", "x":7.5, "y":0}, {"label":"&", "x":10, "y":0}, {"label":"*", "x":11, "y":0}, {"label":"(", "x":12, "y":0}, {"label":")", "x":13, "y":0}, {"label":"_", "x":14, "y":0}, {"label":"+", "x":15, "y":0}, {"label":"|", "x":16, "y":0}, {"label":"~", "x":17, "y":0},
-                {"label":"PgUp", "x":0, "y":1}, {"label":"Tab", "x":1.5, "y":1, "w":1.5}, {"label":"Q", "x":3, "y":1}, {"label":"W", "x":4, "y":1}, {"label":"E", "x":5, "y":1}, {"label":"R", "x":6, "y":1}, {"label":"T", "x":7, "y":1}, {"label":"Y", "x":9.5, "y":1}, {"label":"U", "x":10.5, "y":1}, {"label":"I", "x":11.5, "y":1}, {"label":"O", "x":12.5, "y":1}, {"label":"P", "x":13.5, "y":1}, {"label":"{", "x":14.5, "y":1}, {"label":"}", "x":15.5, "y":1}, {"label":"Backspace", "x":16.5, "y":1, "w":1.5},
-                {"label":"PgDn", "x":0, "y":2}, {"label":"Ctrl", "x":1.5, "y":2, "w":1.75}, {"label":"A", "x":3.25, "y":2}, {"label":"S", "x":4.25, "y":2}, {"label":"D", "x":5.25, "y":2}, {"label":"F", "x":6.25, "y":2}, {"label":"G", "x":7.25, "y":2}, {"label":"H", "x":9.75, "y":2}, {"label":"J", "x":10.75, "y":2}, {"label":"K", "x":11.75, "y":2}, {"label":"L", "x":12.75, "y":2}, {"label":":", "x":13.75, "y":2}, {"label":"\"", "x":14.75, "y":2}, {"label":"Enter", "x":15.75, "y":2, "w":2.25},
-                {"label":"End", "x":0, "y":3}, {"label":"Shift", "x":1.5, "y":3, "w":1.25}, {"label":"~", "x":2.75, "y":3}, {"label":"Z", "x":3.75, "y":3}, {"label":"X", "x":4.75, "y":3}, {"label":"C", "x":5.75, "y":3}, {"label":"V", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"B", "x":9.25, "y":3}, {"label":"N", "x":10.25, "y":3}, {"label":"M", "x":11.25, "y":3}, {"label":"<", "x":12.25, "y":3}, {"label":">", "x":13.25, "y":3}, {"label":"?", "x":14.25, "y":3}, {"label":"Shift", "x":15.25, "y":3, "w":1.75}, {"label":"Fn", "x":17, "y":3}, {"label":"Win", "x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.25}, {"x":6, "y":4, "w":2.75}, {"x":9.25, "y":4, "w":2.75}, {"label":"Alt", "x":12, "y":4, "w":1.25}, {"label":"Win", "x":13.25, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+
+                {"matrix": [0, 8], "x": 10, "y": 0},
+                {"matrix": [0, 9], "x": 11, "y": 0},
+                {"matrix": [0, 10], "x": 12, "y": 0},
+                {"matrix": [0, 11], "x": 13, "y": 0},
+                {"matrix": [0, 12], "x": 14, "y": 0},
+                {"matrix": [0, 13], "x": 15, "y": 0},
+                {"matrix": [0, 14], "x": 16, "y": 0},
+                {"matrix": [1, 14], "x": 17, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 2], "x": 3, "y": 1},
+                {"matrix": [1, 3], "x": 4, "y": 1},
+                {"matrix": [1, 4], "x": 5, "y": 1},
+                {"matrix": [1, 5], "x": 6, "y": 1},
+                {"matrix": [1, 6], "x": 7, "y": 1},
+
+                {"matrix": [1, 7], "x": 9.5, "y": 1},
+                {"matrix": [1, 8], "x": 10.5, "y": 1},
+                {"matrix": [1, 9], "x": 11.5, "y": 1},
+                {"matrix": [1, 10], "x": 12.5, "y": 1},
+                {"matrix": [1, 11], "x": 13.5, "y": 1},
+                {"matrix": [1, 12], "x": 14.5, "y": 1},
+                {"matrix": [1, 13], "x": 15.5, "y": 1},
+                {"matrix": [2, 14], "x": 16.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 3.25, "y": 2},
+                {"matrix": [2, 3], "x": 4.25, "y": 2},
+                {"matrix": [2, 4], "x": 5.25, "y": 2},
+                {"matrix": [2, 5], "x": 6.25, "y": 2},
+                {"matrix": [2, 6], "x": 7.25, "y": 2},
+
+                {"matrix": [2, 7], "x": 9.75, "y": 2},
+                {"matrix": [2, 8], "x": 10.75, "y": 2},
+                {"matrix": [2, 9], "x": 11.75, "y": 2},
+                {"matrix": [2, 10], "x": 12.75, "y": 2},
+                {"matrix": [2, 11], "x": 13.75, "y": 2},
+                {"matrix": [2, 12], "x": 14.75, "y": 2},
+                {"matrix": [2, 13], "x": 15.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 1.25},
+                {"matrix": [4, 1], "x": 2.75, "y": 3},
+                {"matrix": [3, 2], "x": 3.75, "y": 3},
+                {"matrix": [3, 3], "x": 4.75, "y": 3},
+                {"matrix": [3, 4], "x": 5.75, "y": 3},
+                {"matrix": [3, 5], "x": 6.75, "y": 3},
+                {"matrix": [3, 6], "x": 7.75, "y": 3},
+
+                {"matrix": [3, 7], "x": 9.25, "y": 3},
+                {"matrix": [3, 8], "x": 10.25, "y": 3},
+                {"matrix": [3, 9], "x": 11.25, "y": 3},
+                {"matrix": [3, 10], "x": 12.25, "y": 3},
+                {"matrix": [3, 11], "x": 13.25, "y": 3},
+                {"matrix": [3, 12], "x": 14.25, "y": 3},
+                {"matrix": [3, 13], "x": 15.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 17, "y": 3},
+
+                {"matrix": [4, 2], "x": 3.75, "y": 4},
+                {"matrix": [4, 3], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.75},
+
+                {"matrix": [4, 8], "x": 9.25, "y": 4, "w": 2.75},
+                {"matrix": [4, 10], "x": 12, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 13.25, "y": 4}
             ]
         },
         "LAYOUT_hhkb": {
             "layout": [
-                {"label":"Home", "x":0, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"!", "x":2.5, "y":0}, {"label":"@", "x":3.5, "y":0}, {"label":"#", "x":4.5, "y":0}, {"label":"$", "x":5.5, "y":0}, {"label":"%", "x":6.5, "y":0}, {"label":"^", "x":7.5, "y":0}, {"label":"&", "x":10, "y":0}, {"label":"*", "x":11, "y":0}, {"label":"(", "x":12, "y":0}, {"label":")", "x":13, "y":0}, {"label":"_", "x":14, "y":0}, {"label":"+", "x":15, "y":0}, {"label":"|", "x":16, "y":0}, {"label":"~", "x":17, "y":0},
-                {"label":"PgUp", "x":0, "y":1}, {"label":"Tab", "x":1.5, "y":1, "w":1.5}, {"label":"Q", "x":3, "y":1}, {"label":"W", "x":4, "y":1}, {"label":"E", "x":5, "y":1}, {"label":"R", "x":6, "y":1}, {"label":"T", "x":7, "y":1}, {"label":"Y", "x":9.5, "y":1}, {"label":"U", "x":10.5, "y":1}, {"label":"I", "x":11.5, "y":1}, {"label":"O", "x":12.5, "y":1}, {"label":"P", "x":13.5, "y":1}, {"label":"{", "x":14.5, "y":1}, {"label":"}", "x":15.5, "y":1}, {"label":"Backspace", "x":16.5, "y":1, "w":1.5},
-                {"label":"PgDn", "x":0, "y":2}, {"label":"Ctrl", "x":1.5, "y":2, "w":1.75}, {"label":"A", "x":3.25, "y":2}, {"label":"S", "x":4.25, "y":2}, {"label":"D", "x":5.25, "y":2}, {"label":"F", "x":6.25, "y":2}, {"label":"G", "x":7.25, "y":2}, {"label":"H", "x":9.75, "y":2}, {"label":"J", "x":10.75, "y":2}, {"label":"K", "x":11.75, "y":2}, {"label":"L", "x":12.75, "y":2}, {"label":":", "x":13.75, "y":2}, {"label":"\"", "x":14.75, "y":2}, {"label":"Enter", "x":15.75, "y":2, "w":2.25},
-                {"label":"End", "x":0, "y":3}, {"label":"Shift", "x":1.5, "y":3, "w":2.25}, {"label":"Z", "x":3.75, "y":3}, {"label":"X", "x":4.75, "y":3}, {"label":"C", "x":5.75, "y":3}, {"label":"V", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"B", "x":9.25, "y":3}, {"label":"N", "x":10.25, "y":3}, {"label":"M", "x":11.25, "y":3}, {"label":"<", "x":12.25, "y":3}, {"label":">", "x":13.25, "y":3}, {"label":"?", "x":14.25, "y":3}, {"label":"Shift", "x":15.25, "y":3, "w":1.75}, {"label":"Fn", "x":17, "y":3}, {"label":"Win", "x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.25}, {"x":6, "y":4, "w":2.75}, {"x":9.25, "y":4, "w":2.75}, {"label":"Alt", "x":12, "y":4, "w":1.25}, {"label":"Win", "x":13.25, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+
+                {"matrix": [0, 8], "x": 10, "y": 0},
+                {"matrix": [0, 9], "x": 11, "y": 0},
+                {"matrix": [0, 10], "x": 12, "y": 0},
+                {"matrix": [0, 11], "x": 13, "y": 0},
+                {"matrix": [0, 12], "x": 14, "y": 0},
+                {"matrix": [0, 13], "x": 15, "y": 0},
+                {"matrix": [0, 14], "x": 16, "y": 0},
+                {"matrix": [1, 14], "x": 17, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+
+                {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 2], "x": 3, "y": 1},
+                {"matrix": [1, 3], "x": 4, "y": 1},
+                {"matrix": [1, 4], "x": 5, "y": 1},
+                {"matrix": [1, 5], "x": 6, "y": 1},
+                {"matrix": [1, 6], "x": 7, "y": 1},
+
+                {"matrix": [1, 7], "x": 9.5, "y": 1},
+                {"matrix": [1, 8], "x": 10.5, "y": 1},
+                {"matrix": [1, 9], "x": 11.5, "y": 1},
+                {"matrix": [1, 10], "x": 12.5, "y": 1},
+                {"matrix": [1, 11], "x": 13.5, "y": 1},
+                {"matrix": [1, 12], "x": 14.5, "y": 1},
+                {"matrix": [1, 13], "x": 15.5, "y": 1},
+                {"matrix": [2, 14], "x": 16.5, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+
+                {"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75},
+                {"matrix": [2, 2], "x": 3.25, "y": 2},
+                {"matrix": [2, 3], "x": 4.25, "y": 2},
+                {"matrix": [2, 4], "x": 5.25, "y": 2},
+                {"matrix": [2, 5], "x": 6.25, "y": 2},
+                {"matrix": [2, 6], "x": 7.25, "y": 2},
+
+                {"matrix": [2, 7], "x": 9.75, "y": 2},
+                {"matrix": [2, 8], "x": 10.75, "y": 2},
+                {"matrix": [2, 9], "x": 11.75, "y": 2},
+                {"matrix": [2, 10], "x": 12.75, "y": 2},
+                {"matrix": [2, 11], "x": 13.75, "y": 2},
+                {"matrix": [2, 12], "x": 14.75, "y": 2},
+                {"matrix": [2, 13], "x": 15.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+
+                {"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 3.75, "y": 3},
+                {"matrix": [3, 3], "x": 4.75, "y": 3},
+                {"matrix": [3, 4], "x": 5.75, "y": 3},
+                {"matrix": [3, 5], "x": 6.75, "y": 3},
+                {"matrix": [3, 6], "x": 7.75, "y": 3},
+
+                {"matrix": [3, 7], "x": 9.25, "y": 3},
+                {"matrix": [3, 8], "x": 10.25, "y": 3},
+                {"matrix": [3, 9], "x": 11.25, "y": 3},
+                {"matrix": [3, 10], "x": 12.25, "y": 3},
+                {"matrix": [3, 11], "x": 13.25, "y": 3},
+                {"matrix": [3, 12], "x": 14.25, "y": 3},
+                {"matrix": [3, 13], "x": 15.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 17, "y": 3},
+
+                {"matrix": [4, 2], "x": 3.75, "y": 4},
+                {"matrix": [4, 3], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 6, "y": 4, "w": 2.75},
+
+                {"matrix": [4, 8], "x": 9.25, "y": 4, "w": 2.75},
+                {"matrix": [4, 10], "x": 12, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 13.25, "y": 4}
             ]
         }
     }

+ 0 - 56
keyboards/bfake/bfake.h

@@ -1,56 +0,0 @@
-/*
-Copyright 2017 Luiz Ribeiro <luizribeiro@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( \
-    k61, k71, k72, k73, k74, k64, k65, k75, k76, k77, k78, k68, k66, k1A, k6A,\
-     k11, k01, k02, k03, k04, k14, k15, k05, k06, k07, k08, k18, k16,  k2A, \
-      k12, k21, k22, k23, k24, k34, k35, k25, k26, k27, k28, k38,   k4A, \
-    k19, k13, k41, k42, k43, k44, k54, k55, k45, k46, k47, k58,   k49,    k5A, \
-    k09,   k0A,   k39,           k3A,                 k59,   k69,   k57,   k29 \
-) { \
-    { XXX, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A }, \
-    { XXX, k11, k12, k13, k14, k15, k16, XXX, k18, k19, k1A }, \
-    { XXX, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A }, \
-    { XXX, XXX, XXX, XXX, k34, k35, XXX, XXX, k38, k39, k3A }, \
-    { XXX, k41, k42, k43, k44, k45, k46, k47, XXX, k49, k4A }, \
-    { XXX, XXX, XXX, XXX, k54, k55, XXX, k57, k58, k59, k5A }, \
-    { XXX, k61, XXX, XXX, k64, k65, k66, XXX, k68, k69, k6A }, \
-    { XXX, k71, k72, k73, k74, k75, k76, k77, k78, XXX, XXX } \
-}
-
-#define LAYOUT_60_ansi( \
-    k61, k71, k72, k73, k74, k64, k65, k75, k76, k77, k78, k68, k66,      k6A, \
-     k11, k01, k02, k03, k04, k14, k15, k05, k06, k07, k08, k18, k16,  k2A, \
-      k12, k21, k22, k23, k24, k34, k35, k25, k26, k27, k28, k38,   k4A, \
-    k19,      k41, k42, k43, k44, k54, k55, k45, k46, k47, k58,   k49, \
-    k09,   k0A,   k39,           k3A,                 k59,   k69,   k57,   k29 \
-) { \
-    { XXX, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A }, \
-    { XXX, k11, k12, XXX, k14, k15, k16, XXX, k18, k19, XXX }, \
-    { XXX, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A }, \
-    { XXX, XXX, XXX, XXX, k34, k35, XXX, XXX, k38, k39, k3A }, \
-    { XXX, k41, k42, k43, k44, k45, k46, k47, XXX, k49, k4A }, \
-    { XXX, XXX, XXX, XXX, k54, k55, XXX, k57, k58, k59, XXX }, \
-    { XXX, k61, XXX, XXX, k64, k65, k66, XXX, k68, k69, k6A }, \
-    { XXX, k71, k72, k73, k74, k75, k76, k77, k78, XXX, XXX } \
-}

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 1
keyboards/bfake/info.json


+ 0 - 161
keyboards/bioi/f60/f60.h

@@ -1,161 +0,0 @@
-/* Copyright 2021 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
-
-#define LAYOUT_all( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k409, \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,      k113, \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212,  k213,    \
-    k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k313, k407, k312, \
-    k400, k401, k402,                   k405,                   k410, k411, k408, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \
-    { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, k407, k408, k409, k410, k411, k412, k413 }  \
-}
-
-#define LAYOUT_60_ansi( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012,    k013,    \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,      k113, \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,     k213,       \
-    k300,      k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,      k313,         \
-    k400, k401, k402,                      k405,                      k410, k411, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213 }, \
-    { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, ____, ____, ____, k410, k411, k412, k413 }  \
-}
-
-#define LAYOUT_60_ansi_tsangan( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012,    k013,    \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,      k113, \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,     k213,       \
-    k300,      k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,      k313,         \
-    k400, k401, k402,                      k405,                            k411, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213 }, \
-    { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, ____, ____, ____, ____, k411, k412, k413 }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, K409, \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,      k113, \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,     k213,       \
-    k300,      k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,     k313,    k312, \
-    k400, k401, k402,                      k405,                      k410, k411, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213 }, \
-    { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, ____, ____, K409, k410, k411, k412, k413 }  \
-}
-
-#define LAYOUT_60_hhkb( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k409, \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,      k113, \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,     k213,       \
-    k300,      k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,     k313,    k312, \
-          k401, k402,                       k405,                           k411, k412        \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213 }, \
-    { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \
-    { ____, k401, k402, ____, ____, k405, ____, ____, ____, k409, ____, k411, k412, ____ }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k409, \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,      k113, \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,     k213,       \
-    k300,      k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,     k313,    k312, \
-    k400, k401, k402,                       k405,                           k411, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213 }, \
-    { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, ____, ____, k409, ____, k411, k412, k413 }  \
-}
-
-#define LAYOUT_60_ansi_arrow( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012,    k013,    \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,      k113, \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211,     k213,       \
-    k300,      k302, k303, k304, k305, k306, k307, k308, k309, k310,    k313,     K407, K312, \
-    k400, k401, k402,                   k405,                   k410, k411, k408, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, ____, k213 }, \
-    { k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, ____, K312, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, K407, k408, ____, k410, k411, k412, k413 }  \
-}
-
-#define LAYOUT_60_iso( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012,    k013,    \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,            \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212,   k213,   \
-    k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,       k313,       \
-    k400, k401, k402,                      k405,                      k410, k411, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____ }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \
-    { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, ____, ____, ____, k410, k411, k412, k413 }  \
-}
-
-#define LAYOUT_60_iso_split_bs_rshift( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k409, \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,            \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212,   k213,   \
-    k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,    k313,    k312, \
-    k400, k401, k402,                      k405,                      k410, k411, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____ }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \
-    { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, ____, ____, k409, k410, k411, k412, k413 }  \
-}
-
-#define LAYOUT_60_iso_tsangan( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012,    k013,    \
-    k100,  k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,            \
-    k200,   k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212,   k213,   \
-    k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311,       k313,       \
-    k400, k401, k402,                      k405,                            k411, k412, k413  \
-) { \
-    { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
-    { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____ }, \
-    { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \
-    { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, ____, k313 }, \
-    { k400, k401, k402, ____, ____, k405, ____, ____, ____, ____, ____, k411, k412, k413 }  \
-}

+ 663 - 623
keyboards/bioi/f60/info.json

@@ -30,665 +30,705 @@
     "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":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":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":0, "y":3},
-                {"x":1, "y":3},
-                {"x":2, "y":3},
-                {"x":3, "y":3},
-                {"x":4, "y":3},
-                {"x":5, "y":3},
-                {"x":6, "y":3},
-                {"x":7, "y":3},
-                {"x":8, "y":3},
-                {"x":9, "y":3},
-                {"x":10, "y":3},
-                {"x":11, "y":3},
-                {"x":12, "y":3},
-                {"x":13, "y":3},
-                {"x":14, "y":3},
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4}
+                {"matrix": [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, 9], "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": [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": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+                {"matrix": [3, 6], "x": 6, "y": 3},
+                {"matrix": [3, 7], "x": 7, "y": 3},
+                {"matrix": [3, 8], "x": 8, "y": 3},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3},
+                {"matrix": [3, 13], "x": 12, "y": 3},
+                {"matrix": [4, 7], "x": 13, "y": 3},
+                {"matrix": [3, 12], "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, 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},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 8], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         },
         "LAYOUT_60_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":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":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":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":2.75},
-                {"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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_tsangan": {
             "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":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":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":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":2.75},
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"x":11, "y":4, "w":1.5},
-                {"x":12.5, "y":4},
-                {"x":13.5, "y":4, "w":1.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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": 2.75},
+
+                {"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, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14, "y":0},
-                {"x":0, "y":1, "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":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":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":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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [4, 9], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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, 12], "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, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_hhkb": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14, "y":0},
-                {"x":0, "y":1, "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":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":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":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"x":11, "y":4, "w":1.5},
-                {"x":12.5, "y":4}
+                {"matrix": [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, 9], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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, 12], "x": 14, "y": 3},
+
+                {"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, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4}
             ]
         },
         "LAYOUT_60_tsangan_hhkb": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14, "y":0},
-                {"x":0, "y":1, "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":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":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":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"x":11, "y":4, "w":1.5},
-                {"x":12.5, "y":4},
-                {"x":13.5, "y":4, "w":1.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [4, 9], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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, 12], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_ansi_arrow": {
             "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":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":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":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, "w":1.75},
-                {"x":13, "y":3},
-                {"x":14, "y":3},
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4}
+                {"matrix": [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": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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, 13], "x": 11.25, "y": 3, "w": 1.75},
+                {"matrix": [4, 7], "x": 13, "y": 3},
+                {"matrix": [3, 12], "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, 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},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 8], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         },
         "LAYOUT_60_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":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":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":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":2.75},
-                {"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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso_split_bs_rshift": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1, "y":0},
-                {"x":2, "y":0},
-                {"x":3, "y":0},
-                {"x":4, "y":0},
-                {"x":5, "y":0},
-                {"x":6, "y":0},
-                {"x":7, "y":0},
-                {"x":8, "y":0},
-                {"x":9, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14, "y":0},
-                {"x":0, "y":1, "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":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":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":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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [4, 9], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "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, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso_tsangan": {
             "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":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":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":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":2.75},
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"x":11, "y":4, "w":1.5},
-                {"x":12.5, "y":4},
-                {"x":13.5, "y":4, "w":1.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"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, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 0 - 89
keyboards/bioi/g60ble/g60ble.h

@@ -1,89 +0,0 @@
-#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, K49, \
-	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, K47, K3D, K3C, \
-	K40, K41, K42,           K45,                     K4A, K4B, K48, 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, XXX, K45, XXX, K47, K48, K49, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, \
-    K40, K41, K42,           K45,                     K4A, 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, XXX, K3D }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_iso( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, \
-    K40, K41, K42,           K45,                     K4A, 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, XXX, K3D }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_hhkb( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \
-    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,           \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C,      \
-         K41, K42,           K45,                          K4B, K4C            \
-) { \
-    { 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, XXX }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
-    { XXX, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, XXX, K4B, K4C, XXX }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \
-    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,      K2D, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
-    K40, K41, K42,           K45,                     K4A, 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, XXX, XXX, K49, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
-    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,      K2D, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
-    K40, K41, K42,           K45,                          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, XXX, XXX, K49, XXX, K4B, K4C, K4D }  \
-}

+ 399 - 375
keyboards/bioi/g60ble/info.json

@@ -26,401 +26,425 @@
     "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": "~", "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": "Backspace", "x": 13.5, "y": 1, "w": 1.5 },
-                { "label": "Ctrl", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "A", "x": 1.75, "y": 2 },
-                { "label": "S", "x": 2.75, "y": 2 },
-                { "label": "D", "x": 3.75, "y": 2 },
-                { "label": "F", "x": 4.75, "y": 2 },
-                { "label": "G", "x": 5.75, "y": 2 },
-                { "label": "H", "x": 6.75, "y": 2 },
-                { "label": "J", "x": 7.75, "y": 2 },
-                { "label": "K", "x": 8.75, "y": 2 },
-                { "label": "L", "x": 9.75, "y": 2 },
-                { "label": ":", "x": 10.75, "y": 2 },
-                { "label": "\"", "x": 11.75, "y": 2 },
-                { "label": "~", "x": 12.75, "y": 2 },
-                { "label": "Enter", "x": 13.75, "y": 2, "w": 1.25 },
-                { "label": "Shift", "x": 0, "y": 3 },
-                { "label": "|", "x": 1, "y": 3 },
-                { "label": "Z", "x": 2, "y": 3 },
-                { "label": "X", "x": 3, "y": 3 },
-                { "label": "C", "x": 4, "y": 3 },
-                { "label": "V", "x": 5, "y": 3 },
-                { "label": "B", "x": 6, "y": 3 },
-                { "label": "N", "x": 7, "y": 3 },
-                { "label": "M", "x": 8, "y": 3 },
-                { "label": "<", "x": 9, "y": 3 },
-                { "label": ">", "x": 10, "y": 3 },
-                { "label": "?", "x": 11, "y": 3 },
-                { "label": "Up", "x": 12, "y": 3 },
-                { "label": "Shift", "x": 13, "y": 3 },
-                { "label": "Fn", "x": 14, "y": 3 },
-                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
-                { "label": "Alt", "x": 1.25, "y": 4, "w": 1.25 },
-                { "label": "OS", "x": 2.5, "y": 4, "w": 1.25 },
-                { "x": 3.75, "y": 4, "w": 6.25 },
-                { "label": "OS", "x": 10, "y": 4 },
-                { "label": "Alt", "x": 11, "y": 4 },
-                { "label": "Left", "x": 12, "y": 4 },
-                { "label": "Menu", "x": 13, "y": 4 },
-                { "label": "Ctrl", "x": 14, "y": 4 }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [4, 9], "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": [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": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+                {"matrix": [3, 6], "x": 6, "y": 3},
+                {"matrix": [3, 7], "x": 7, "y": 3},
+                {"matrix": [3, 8], "x": 8, "y": 3},
+                {"matrix": [3, 9], "x": 9, "y": 3},
+                {"matrix": [3, 10], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 11, "y": 3},
+                {"matrix": [4, 7], "x": 12, "y": 3},
+                {"matrix": [3, 13], "x": 13, "y": 3},
+                {"matrix": [3, 12], "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, 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},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 8], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         },
         "LAYOUT_60_ansi": {
             "layout": [
-                { "label": "~", "x": 0, "y": 0 },
-                { "label": "!", "x": 1, "y": 0 },
-                { "label": "@", "x": 2, "y": 0 },
-                { "label": "#", "x": 3, "y": 0 },
-                { "label": "$", "x": 4, "y": 0 },
-                { "label": "%", "x": 5, "y": 0 },
-                { "label": "^", "x": 6, "y": 0 },
-                { "label": "&", "x": 7, "y": 0 },
-                { "label": "*", "x": 8, "y": 0 },
-                { "label": "(", "x": 9, "y": 0 },
-                { "label": ")", "x": 10, "y": 0 },
-                { "label": "_", "x": 11, "y": 0 },
-                { "label": "+", "x": 12, "y": 0 },
-                { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
-                { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
-                { "label": "Q", "x": 1.5, "y": 1 },
-                { "label": "W", "x": 2.5, "y": 1 },
-                { "label": "E", "x": 3.5, "y": 1 },
-                { "label": "R", "x": 4.5, "y": 1 },
-                { "label": "T", "x": 5.5, "y": 1 },
-                { "label": "Y", "x": 6.5, "y": 1 },
-                { "label": "U", "x": 7.5, "y": 1 },
-                { "label": "I", "x": 8.5, "y": 1 },
-                { "label": "O", "x": 9.5, "y": 1 },
-                { "label": "P", "x": 10.5, "y": 1 },
-                { "label": "{", "x": 11.5, "y": 1 },
-                { "label": "}", "x": 12.5, "y": 1 },
-                { "label": "|", "x": 13.5, "y": 1, "w": 1.5 },
-                { "label": "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": "Shift", "x": 0, "y": 3, "w": 2.25 },
-                { "label": "Z", "x": 2.25, "y": 3 },
-                { "label": "X", "x": 3.25, "y": 3 },
-                { "label": "C", "x": 4.25, "y": 3 },
-                { "label": "V", "x": 5.25, "y": 3 },
-                { "label": "B", "x": 6.25, "y": 3 },
-                { "label": "N", "x": 7.25, "y": 3 },
-                { "label": "M", "x": 8.25, "y": 3 },
-                { "label": "<", "x": 9.25, "y": 3 },
-                { "label": ">", "x": 10.25, "y": 3 },
-                { "label": "?", "x": 11.25, "y": 3 },
-                { "label": "Shift", "x": 12.25, "y": 3, "w": 2.75 },
-                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
-                { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
-                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
-                { "x": 3.75, "y": 4, "w": 6.25 },
-                { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
-                { "label": "Win", "x": 11.25, "y": 4, "w": 1.25 },
-                { "label": "Menu", "x": 12.5, "y": 4, "w": 1.25 },
-                { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
+                {"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": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso": {
             "layout": [
-                { "label": "¬", "x": 0, "y": 0 },
-                { "label": "!", "x": 1, "y": 0 },
-                { "label": "\"", "x": 2, "y": 0 },
-                { "label": "£", "x": 3, "y": 0 },
-                { "label": "$", "x": 4, "y": 0 },
-                { "label": "%", "x": 5, "y": 0 },
-                { "label": "^", "x": 6, "y": 0 },
-                { "label": "&", "x": 7, "y": 0 },
-                { "label": "*", "x": 8, "y": 0 },
-                { "label": "(", "x": 9, "y": 0 },
-                { "label": ")", "x": 10, "y": 0 },
-                { "label": "_", "x": 11, "y": 0 },
-                { "label": "+", "x": 12, "y": 0 },
-                { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
-                { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
-                { "label": "Q", "x": 1.5, "y": 1 },
-                { "label": "W", "x": 2.5, "y": 1 },
-                { "label": "E", "x": 3.5, "y": 1 },
-                { "label": "R", "x": 4.5, "y": 1 },
-                { "label": "T", "x": 5.5, "y": 1 },
-                { "label": "Y", "x": 6.5, "y": 1 },
-                { "label": "U", "x": 7.5, "y": 1 },
-                { "label": "I", "x": 8.5, "y": 1 },
-                { "label": "O", "x": 9.5, "y": 1 },
-                { "label": "P", "x": 10.5, "y": 1 },
-                { "label": "{", "x": 11.5, "y": 1 },
-                { "label": "}", "x": 12.5, "y": 1 },
-                { "label": "CapsLock", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "A", "x": 1.75, "y": 2 },
-                { "label": "S", "x": 2.75, "y": 2 },
-                { "label": "D", "x": 3.75, "y": 2 },
-                { "label": "F", "x": 4.75, "y": 2 },
-                { "label": "G", "x": 5.75, "y": 2 },
-                { "label": "H", "x": 6.75, "y": 2 },
-                { "label": "J", "x": 7.75, "y": 2 },
-                { "label": "K", "x": 8.75, "y": 2 },
-                { "label": "L", "x": 9.75, "y": 2 },
-                { "label": ":", "x": 10.75, "y": 2 },
-                { "label": "@", "x": 11.75, "y": 2 },
-                { "label": "~", "x": 12.75, "y": 2 },
-                { "label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
-                { "label": "Shift", "x": 0, "y": 3, "w": 1.25 },
-                { "label": "|", "x": 1.25, "y": 3 },
-                { "label": "Z", "x": 2.25, "y": 3 },
-                { "label": "X", "x": 3.25, "y": 3 },
-                { "label": "C", "x": 4.25, "y": 3 },
-                { "label": "V", "x": 5.25, "y": 3 },
-                { "label": "B", "x": 6.25, "y": 3 },
-                { "label": "N", "x": 7.25, "y": 3 },
-                { "label": "M", "x": 8.25, "y": 3 },
-                { "label": "<", "x": 9.25, "y": 3 },
-                { "label": ">", "x": 10.25, "y": 3 },
-                { "label": "?", "x": 11.25, "y": 3 },
-                { "label": "Shift", "x": 12.25, "y": 3, "w": 2.75 },
-                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
-                { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
-                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
-                { "x": 3.75, "y": 4, "w": 6.25 },
-                { "label": "AltGr", "x": 10, "y": 4, "w": 1.25 },
-                { "label": "Win", "x": 11.25, "y": 4, "w": 1.25 },
-                { "label": "Menu", "x": 12.5, "y": 4, "w": 1.25 },
-                { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
+                {"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": [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, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_hhkb": {
             "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": "\\", "x": 13, "y": 0 },
-                { "label": "`", "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": "Backspace", "x": 13.5, "y": 1, "w": 1.5 },
-                { "label": "Control", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "A", "x": 1.75, "y": 2 },
-                { "label": "S", "x": 2.75, "y": 2 },
-                { "label": "D", "x": 3.75, "y": 2 },
-                { "label": "F", "x": 4.75, "y": 2 },
-                { "label": "G", "x": 5.75, "y": 2 },
-                { "label": "H", "x": 6.75, "y": 2 },
-                { "label": "J", "x": 7.75, "y": 2 },
-                { "label": "K", "x": 8.75, "y": 2 },
-                { "label": "L", "x": 9.75, "y": 2 },
-                { "label": ";", "x": 10.75, "y": 2 },
-                { "label": "'", "x": 11.75, "y": 2 },
-                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
-                { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
-                { "label": "Z", "x": 2.25, "y": 3 },
-                { "label": "X", "x": 3.25, "y": 3 },
-                { "label": "C", "x": 4.25, "y": 3 },
-                { "label": "V", "x": 5.25, "y": 3 },
-                { "label": "B", "x": 6.25, "y": 3 },
-                { "label": "N", "x": 7.25, "y": 3 },
-                { "label": "M", "x": 8.25, "y": 3 },
-                { "label": ",", "x": 9.25, "y": 3 },
-                { "label": ".", "x": 10.25, "y": 3 },
-                { "label": "/", "x": 11.25, "y": 3 },
-                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
-                { "label": "Fn", "x": 14, "y": 3 },
-                { "label": "Os", "x": 1.5, "y": 4 },
-                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.5 },
-                { "x": 4, "y": 4, "w": 7 },
-                { "label": "Alt", "x": 11, "y": 4, "w": 1.5 },
-                { "label": "Os", "x": 12.5, "y": 4 }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [4, 9], "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": [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": [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, 12], "x": 14, "y": 3},
+
+                {"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, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
             "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": "~", "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": "BS", "x": 13.5, "y": 1, "w": 1.5 },
-                { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "A", "x": 1.75, "y": 2 },
-                { "label": "S", "x": 2.75, "y": 2 },
-                { "label": "D", "x": 3.75, "y": 2 },
-                { "label": "F", "x": 4.75, "y": 2 },
-                { "label": "G", "x": 5.75, "y": 2 },
-                { "label": "H", "x": 6.75, "y": 2 },
-                { "label": "J", "x": 7.75, "y": 2 },
-                { "label": "K", "x": 8.75, "y": 2 },
-                { "label": "L", "x": 9.75, "y": 2 },
-                { "label": ":", "x": 10.75, "y": 2 },
-                { "label": "\"", "x": 11.75, "y": 2 },
-                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
-                { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
-                { "label": "Z", "x": 2.25, "y": 3 },
-                { "label": "X", "x": 3.25, "y": 3 },
-                { "label": "C", "x": 4.25, "y": 3 },
-                { "label": "V", "x": 5.25, "y": 3 },
-                { "label": "B", "x": 6.25, "y": 3 },
-                { "label": "N", "x": 7.25, "y": 3 },
-                { "label": "M", "x": 8.25, "y": 3 },
-                { "label": "<", "x": 9.25, "y": 3 },
-                { "label": ">", "x": 10.25, "y": 3 },
-                { "label": "?", "x": 11.25, "y": 3 },
-                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
-                { "label": "Fn", "x": 14, "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": "Win", "x": 11.25, "y": 4, "w": 1.25 },
-                { "label": "Menu", "x": 12.5, "y": 4, "w": 1.25 },
-                { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
+                {"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, 9], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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, 12], "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, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_tsangan_hhkb": {
             "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": "~", "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": "Backspace", "x": 13.5, "y": 1, "w": 1.5 },
-                { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
-                { "label": "A", "x": 1.75, "y": 2 },
-                { "label": "S", "x": 2.75, "y": 2 },
-                { "label": "D", "x": 3.75, "y": 2 },
-                { "label": "F", "x": 4.75, "y": 2 },
-                { "label": "G", "x": 5.75, "y": 2 },
-                { "label": "H", "x": 6.75, "y": 2 },
-                { "label": "J", "x": 7.75, "y": 2 },
-                { "label": "K", "x": 8.75, "y": 2 },
-                { "label": "L", "x": 9.75, "y": 2 },
-                { "label": ":", "x": 10.75, "y": 2 },
-                { "label": "\"", "x": 11.75, "y": 2 },
-                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
-                { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
-                { "label": "Z", "x": 2.25, "y": 3 },
-                { "label": "X", "x": 3.25, "y": 3 },
-                { "label": "C", "x": 4.25, "y": 3 },
-                { "label": "V", "x": 5.25, "y": 3 },
-                { "label": "B", "x": 6.25, "y": 3 },
-                { "label": "N", "x": 7.25, "y": 3 },
-                { "label": "M", "x": 8.25, "y": 3 },
-                { "label": "<", "x": 9.25, "y": 3 },
-                { "label": ">", "x": 10.25, "y": 3 },
-                { "label": "?", "x": 11.25, "y": 3 },
-                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
-                { "label": "Fn", "x": 14, "y": 3 },
-                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.5 },
-                { "label": "Win", "x": 1.5, "y": 4 },
-                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.5 },
-                { "x": 4, "y": 4, "w": 7 },
-                { "label": "Win", "x": 11, "y": 4, "w": 1.5 },
-                { "label": "Menu", "x": 12.5, "y": 4 },
-                { "label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5 }
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [4, 9], "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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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, 12], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 0 - 47
keyboards/cannonkeys/an_c/an_c.h

@@ -1,47 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define KNO KC_NO
-
-#define LAYOUT_60_ansi( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
-  K40, K41,  K42,              K45,            K49, K4A, K4B,           K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  KNO}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  KNO,  KNO,  KNO  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    K49,  K4A,  K4B,  KNO,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,           K3E,\
-  K40, K41,  K42,              K45,                 K4A, K4B,           K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  K0E}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  KNO,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    KNO,  K4A,  K4B,  KNO,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_all( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,          K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,          K3E,\
-  K40, K41,  K42,              K45,            K49, K4A, K4B,          K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  K0E}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  KNO,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    K49,  K4A,  K4B,  KNO,  KNO,  K4E  }  \
-}

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
keyboards/cannonkeys/an_c/info.json


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
keyboards/cannonkeys/instant60/info.json


+ 0 - 47
keyboards/cannonkeys/instant60/instant60.h

@@ -1,47 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define KNO KC_NO
-
-#define LAYOUT_60_ansi( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
-  K40, K41,  K42,              K45,            K49, K4A, K4B,           K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  KNO}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  KNO,  KNO,  KNO  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    K49,  K4A,  K4B,  KNO,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,           K3E,\
-  K40, K41,  K42,              K45,            K49,      K4B,           K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  K0E}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  KNO,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    K49,  KNO,  K4B,  KNO,  KNO,  K4E  }  \
-}
-
-#define LAYOUT_all( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,          K2E, \
-  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,          K3E,\
-  K40, K41,  K42,              K45,            K49, K4A, K4B,          K4E \
-) { \
-  {  K00,  K01,  K02,  K03,  K04,    K05,    K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D,  K0E}, \
-  {  K10,  K11,  K12,  K13,  K14,    K15,    K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  KNO,  K1E   }, \
-  {  K20,  K21,  K22,  K23,  K24,    K25,    K26,    K27,    K28,    K29,  K2A,  K2B,  KNO,  KNO,  K2E  }, \
-  {  K30,  K31,  K32,  K33,  K34,    K35,    K36,    K37,    K38,    K39,  K3A,  K3B,  KNO,  KNO,  K3E  }, \
-  {  K40,  K41,  K42,  KNO,  KNO,    K45,    KNO,    KNO,    KNO,    K49,  K4A,  K4B,  KNO,  KNO,  K4E  }  \
-}

+ 0 - 81
keyboards/capsunlocked/cu65/cu65.h

@@ -1,81 +0,0 @@
-/*
-Copyright 2020 CapsUnlocked
-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( \
-	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, K213, K214, K215, \
-	K300, K301,       K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \
-	K400, K401, K402,                         K407,             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, K213, K214, K215 }, \
-	{ K300, K301, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \
-	{ K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 }  \
-}
-
-#define LAYOUT_65_ansi_blocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,       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,             K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \
-	K400, K401, K402,                         K407,             K410,       K412, K413, K414, K415  \
-) { \
-	{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO,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, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \
-	{ K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 }  \
-}
-
-#define LAYOUT_65_iso_blocker( \
-	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012,       K014, 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, K213, K214, K215, \
-	K300, K301,       K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \
-	K400, K401, K402,                         K407,             K410,       K412, K413, K414, K415  \
-) { \
-	{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO,K014, K015 }, \
-	{ K100, KC_NO,K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO,K115 }, \
-	{ K200, KC_NO,K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
-	{ K300, K301, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \
-	{ K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 }  \
-}
-
-#define LAYOUT_65_iso_blocker_split_bs( \
-	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,       K115, \
-	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
-	K300, K301,       K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \
-	K400, K401, K402,                         K407,             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, KC_NO,K115 }, \
-	{ K200, KC_NO,K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
-	{ K300, K301, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \
-	{ K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 }  \
-}

+ 4 - 0
keyboards/capsunlocked/cu65/info.json

@@ -90,6 +90,7 @@
                 {"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}
@@ -165,6 +166,7 @@
                 {"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}
@@ -241,6 +243,7 @@
                 {"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}
@@ -318,6 +321,7 @@
                 {"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}

+ 441 - 412
keyboards/charue/sunsetter/info.json

@@ -22,434 +22,463 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                {"label":"F1", "x":0, "y":0},
-                {"label":"F2", "x":1, "y":0},
-                {"label":"~", "x":2.25, "y":0},
-                {"label":"!", "x":3.25, "y":0},
-                {"label":"@", "x":4.25, "y":0},
-                {"label":"#", "x":5.25, "y":0},
-                {"label":"$", "x":6.25, "y":0},
-                {"label":"%", "x":7.25, "y":0},
-                {"label":"^", "x":8.25, "y":0},
-                {"label":"&", "x":9.25, "y":0},
-                {"label":"*", "x":10.25, "y":0},
-                {"label":"(", "x":11.25, "y":0},
-                {"label":")", "x":12.25, "y":0},
-                {"label":"_", "x":13.25, "y":0},
-                {"label":"+", "x":14.25, "y":0},
-                {"label":"Backspace", "x":15.25, "y":0},
-                {"label":"Backspace", "x":16.25, "y":0},
-                {"label":"<i class='kb kb-Multimedia-Volume-Up-1'></i>", "x":17.25, "y":0},
-
-                {"label":"F3", "x":0, "y":1},
-                {"label":"F4", "x":1, "y":1},
-                {"label":"Tab", "x":2.25, "y":1, "w":1.5},
-                {"label":"Q", "x":3.75, "y":1},
-                {"label":"W", "x":4.75, "y":1},
-                {"label":"E", "x":5.75, "y":1},
-                {"label":"R", "x":6.75, "y":1},
-                {"label":"T", "x":7.75, "y":1},
-                {"label":"Y", "x":8.75, "y":1},
-                {"label":"U", "x":9.75, "y":1},
-                {"label":"I", "x":10.75, "y":1},
-                {"label":"O", "x":11.75, "y":1},
-                {"label":"P", "x":12.75, "y":1},
-                {"label":"{", "x":13.75, "y":1},
-                {"label":"}", "x":14.75, "y":1},
-                {"label":"|", "x":15.75, "y":1, "w":1.5},
-                {"label":"<i class='kb kb-Multimedia-Volume-Down-1'></i>", "x":17.25, "y":1},
-
-                {"label":"F5", "x":0, "y":2},
-                {"label":"F6", "x":1, "y":2},
-                {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25},
-                {"label":"A", "x":4, "y":2},
-                {"label":"S", "x":5, "y":2},
-                {"label":"D", "x":6, "y":2},
-                {"label":"F", "x":7, "y":2},
-                {"label":"G", "x":8, "y":2},
-                {"label":"H", "x":9, "y":2},
-                {"label":"J", "x":10, "y":2},
-                {"label":"K", "x":11, "y":2},
-                {"label":"L", "x":12, "y":2},
-                {"label":":", "x":13, "y":2},
-                {"label":"\"", "x":14, "y":2},
-                {"label":"~", "x":18.5, "y":2},
-                {"label":"Enter", "x":15, "y":2, "w":2.25},
-                {"label":"Enter", "x":19.5, "y":1, "w":1.25, "h":2},
-                {"label":"<i class='kb kb-Multimedia-Mute-1'></i>", "x":17.25, "y":2},
-
-                {"label":"F7", "x":0, "y":3},
-                {"label":"F8", "x":1, "y":3},
-                {"label":"Shift", "x":2.25, "y":3, "w":1.25},
-                {"label":"|", "x":3.5, "y":3},
-                {"label":"Z", "x":4.5, "y":3},
-                {"label":"X", "x":5.5, "y":3},
-                {"label":"C", "x":6.5, "y":3},
-                {"label":"V", "x":7.5, "y":3},
-                {"label":"B", "x":8.5, "y":3},
-                {"label":"N", "x":9.5, "y":3},
-                {"label":"M", "x":10.5, "y":3},
-                {"label":"<", "x":11.5, "y":3},
-                {"label":">", "x":12.5, "y":3},
-                {"label":"?", "x":13.5, "y":3},
-                {"label":"Shift", "x":14.5, "y":3, "w":1.75},
-                {"label":"<i class='kb kb-Arrows-Up'></i>", "x":16.25, "y":3},
-                {"label":"<i class='kb kb-Multimedia-Play-Pause'></i>", "x":17.25, "y":3},
-
-                {"label":"F9/11", "x":0, "y":4},
-                {"label":"F10/12", "x":1, "y":4},
-                {"label":"Ctrl", "x":2.25, "y":4, "w":1.25},
-                {"label":"Win", "x":3.5, "y":4, "w":1.25},
-                {"label":"Alt", "x":4.75, "y":4, "w":1.25},
-                {"label":"2.25", "x":6, "y":4, "w":2.25},
-                {"label":"1.25", "x":8.25, "y":4, "w":1.25},
-                {"label":"2.75", "x":9.5, "y":4, "w":2.75},
-                {"label":"Fn", "x":12.25, "y":4},
-                {"label":"Win", "x":13.25, "y":4},
-                {"label":"Ctrl", "x":14.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Left'></i>", "x":15.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Down'></i>", "x":16.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Right'></i>", "x":17.25, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+                {"matrix": [0, 5], "x": 5.25, "y": 0},
+                {"matrix": [0, 6], "x": 6.25, "y": 0},
+                {"matrix": [0, 7], "x": 7.25, "y": 0},
+                {"matrix": [0, 8], "x": 8.25, "y": 0},
+                {"matrix": [0, 9], "x": 9.25, "y": 0},
+                {"matrix": [0, 10], "x": 10.25, "y": 0},
+                {"matrix": [0, 11], "x": 11.25, "y": 0},
+                {"matrix": [0, 12], "x": 12.25, "y": 0},
+                {"matrix": [0, 13], "x": 13.25, "y": 0},
+                {"matrix": [0, 14], "x": 14.25, "y": 0},
+                {"matrix": [0, 15], "x": 15.25, "y": 0},
+                {"matrix": [0, 16], "x": 16.25, "y": 0},
+                {"matrix": [0, 17], "x": 17.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+
+                {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1},
+                {"matrix": [1, 12], "x": 12.75, "y": 1},
+                {"matrix": [1, 13], "x": 13.75, "y": 1},
+                {"matrix": [1, 14], "x": 14.75, "y": 1},
+                {"matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5},
+                {"matrix": [1, 17], "x": 17.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+
+                {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 3], "x": 4, "y": 2},
+                {"matrix": [2, 4], "x": 5, "y": 2},
+                {"matrix": [2, 5], "x": 6, "y": 2},
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+                {"matrix": [2, 12], "x": 13, "y": 2},
+                {"matrix": [2, 13], "x": 14, "y": 2},
+                {"matrix": [2, 14], "x": 18.5, "y": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2, "w": 2.25},
+                {"matrix": [2, 16], "x": 19.5, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 17], "x": 17.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+
+                {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3},
+                {"matrix": [3, 13], "x": 13.5, "y": 3},
+                {"matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75},
+                {"matrix": [3, 16], "x": 16.25, "y": 3},
+                {"matrix": [3, 17], "x": 17.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4},
+                {"matrix": [4, 1], "x": 1, "y": 4},
+
+                {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 6, "y": 4, "w": 2.25},
+                {"matrix": [4, 8], "x": 8.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 10], "x": 9.5, "y": 4, "w": 2.75},
+                {"matrix": [4, 12], "x": 12.25, "y": 4},
+                {"matrix": [4, 13], "x": 13.25, "y": 4},
+                {"matrix": [4, 14], "x": 14.25, "y": 4},
+                {"matrix": [4, 15], "x": 15.25, "y": 4},
+                {"matrix": [4, 16], "x": 16.25, "y": 4},
+                {"matrix": [4, 17], "x": 17.25, "y": 4}
             ]
         },
         "LAYOUT_1065_ansi": {
             "layout": [
-                {"label":"F1", "x":0, "y":0},
-                {"label":"F2", "x":1, "y":0},
-                {"label":"~", "x":2.25, "y":0},
-                {"label":"!", "x":3.25, "y":0},
-                {"label":"@", "x":4.25, "y":0},
-                {"label":"#", "x":5.25, "y":0},
-                {"label":"$", "x":6.25, "y":0},
-                {"label":"%", "x":7.25, "y":0},
-                {"label":"^", "x":8.25, "y":0},
-                {"label":"&", "x":9.25, "y":0},
-                {"label":"*", "x":10.25, "y":0},
-                {"label":"(", "x":11.25, "y":0},
-                {"label":")", "x":12.25, "y":0},
-                {"label":"_", "x":13.25, "y":0},
-                {"label":"+", "x":14.25, "y":0},
-                {"label":"Backspace", "x":15.25, "y":0, "w":2},
-                {"label":"<i class='kb kb-Multimedia-Volume-Up-1'></i>", "x":17.25, "y":0},
-
-                {"label":"F3", "x":0, "y":1},
-                {"label":"F4", "x":1, "y":1},
-                {"label":"Tab", "x":2.25, "y":1, "w":1.5},
-                {"label":"Q", "x":3.75, "y":1},
-                {"label":"W", "x":4.75, "y":1},
-                {"label":"E", "x":5.75, "y":1},
-                {"label":"R", "x":6.75, "y":1},
-                {"label":"T", "x":7.75, "y":1},
-                {"label":"Y", "x":8.75, "y":1},
-                {"label":"U", "x":9.75, "y":1},
-                {"label":"I", "x":10.75, "y":1},
-                {"label":"O", "x":11.75, "y":1},
-                {"label":"P", "x":12.75, "y":1},
-                {"label":"{", "x":13.75, "y":1},
-                {"label":"}", "x":14.75, "y":1},
-                {"label":"|", "x":15.75, "y":1, "w":1.5},
-                {"label":"<i class='kb kb-Multimedia-Volume-Down-1'></i>", "x":17.25, "y":1},
-
-                {"label":"F5", "x":0, "y":2},
-                {"label":"F6", "x":1, "y":2},
-                {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25},
-                {"label":"A", "x":4, "y":2},
-                {"label":"S", "x":5, "y":2},
-                {"label":"D", "x":6, "y":2},
-                {"label":"F", "x":7, "y":2},
-                {"label":"G", "x":8, "y":2},
-                {"label":"H", "x":9, "y":2},
-                {"label":"J", "x":10, "y":2},
-                {"label":"K", "x":11, "y":2},
-                {"label":"L", "x":12, "y":2},
-                {"label":":", "x":13, "y":2},
-                {"label":"\"", "x":14, "y":2},
-                {"label":"Enter", "x":15, "y":2, "w":2.25},
-                {"label":"<i class='kb kb-Multimedia-Mute-1'></i>", "x":17.25, "y":2},
-
-                {"label":"F7", "x":0, "y":3},
-                {"label":"F8", "x":1, "y":3},
-                {"label":"Shift", "x":2.25, "y":3, "w":2.25},
-                {"label":"Z", "x":4.5, "y":3},
-                {"label":"X", "x":5.5, "y":3},
-                {"label":"C", "x":6.5, "y":3},
-                {"label":"V", "x":7.5, "y":3},
-                {"label":"B", "x":8.5, "y":3},
-                {"label":"N", "x":9.5, "y":3},
-                {"label":"M", "x":10.5, "y":3},
-                {"label":"<", "x":11.5, "y":3},
-                {"label":">", "x":12.5, "y":3},
-                {"label":"?", "x":13.5, "y":3},
-                {"label":"Shift", "x":14.5, "y":3, "w":1.75},
-                {"label":"<i class='kb kb-Arrows-Up'></i>", "x":16.25, "y":3},
-                {"label":"<i class='kb kb-Multimedia-Play-Pause'></i>", "x":17.25, "y":3},
-
-                {"label":"F9/11", "x":0, "y":4},
-                {"label":"F10/12", "x":1, "y":4},
-                {"label":"Ctrl", "x":2.25, "y":4, "w":1.25},
-                {"label":"Win", "x":3.5, "y":4, "w":1.25},
-                {"label":"Alt", "x":4.75, "y":4, "w":1.25},
-                {"label":"6.25", "x":6, "y":4, "w":6.25},
-                {"label":"Fn", "x":12.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Left'></i>", "x":15.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Down'></i>", "x":16.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Right'></i>", "x":17.25, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+                {"matrix": [0, 5], "x": 5.25, "y": 0},
+                {"matrix": [0, 6], "x": 6.25, "y": 0},
+                {"matrix": [0, 7], "x": 7.25, "y": 0},
+                {"matrix": [0, 8], "x": 8.25, "y": 0},
+                {"matrix": [0, 9], "x": 9.25, "y": 0},
+                {"matrix": [0, 10], "x": 10.25, "y": 0},
+                {"matrix": [0, 11], "x": 11.25, "y": 0},
+                {"matrix": [0, 12], "x": 12.25, "y": 0},
+                {"matrix": [0, 13], "x": 13.25, "y": 0},
+                {"matrix": [0, 14], "x": 14.25, "y": 0},
+                {"matrix": [0, 16], "x": 15.25, "y": 0, "w": 2},
+                {"matrix": [0, 17], "x": 17.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+
+                {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1},
+                {"matrix": [1, 12], "x": 12.75, "y": 1},
+                {"matrix": [1, 13], "x": 13.75, "y": 1},
+                {"matrix": [1, 14], "x": 14.75, "y": 1},
+                {"matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5},
+                {"matrix": [1, 17], "x": 17.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+
+                {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 3], "x": 4, "y": 2},
+                {"matrix": [2, 4], "x": 5, "y": 2},
+                {"matrix": [2, 5], "x": 6, "y": 2},
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+                {"matrix": [2, 12], "x": 13, "y": 2},
+                {"matrix": [2, 13], "x": 14, "y": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2, "w": 2.25},
+                {"matrix": [2, 17], "x": 17.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+
+                {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3},
+                {"matrix": [3, 13], "x": 13.5, "y": 3},
+                {"matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75},
+                {"matrix": [3, 16], "x": 16.25, "y": 3},
+                {"matrix": [3, 17], "x": 17.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4},
+                {"matrix": [4, 1], "x": 1, "y": 4},
+
+                {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 6, "y": 4, "w": 6.25},
+                {"matrix": [4, 12], "x": 12.25, "y": 4},
+
+                {"matrix": [4, 15], "x": 15.25, "y": 4},
+                {"matrix": [4, 16], "x": 16.25, "y": 4},
+                {"matrix": [4, 17], "x": 17.25, "y": 4}
             ]
         },
         "LAYOUT_1065_ansi_split_bs": {
             "layout": [
-                {"label":"F1", "x":0, "y":0},
-                {"label":"F2", "x":1, "y":0},
-                {"label":"~", "x":2.25, "y":0},
-                {"label":"!", "x":3.25, "y":0},
-                {"label":"@", "x":4.25, "y":0},
-                {"label":"#", "x":5.25, "y":0},
-                {"label":"$", "x":6.25, "y":0},
-                {"label":"%", "x":7.25, "y":0},
-                {"label":"^", "x":8.25, "y":0},
-                {"label":"&", "x":9.25, "y":0},
-                {"label":"*", "x":10.25, "y":0},
-                {"label":"(", "x":11.25, "y":0},
-                {"label":")", "x":12.25, "y":0},
-                {"label":"_", "x":13.25, "y":0},
-                {"label":"+", "x":14.25, "y":0},
-                {"label":"Backspace", "x":15.25, "y":0},
-                {"label":"Backspace", "x":16.25, "y":0},
-                {"label":"<i class='kb kb-Multimedia-Volume-Up-1'></i>", "x":17.25, "y":0},
-
-                {"label":"F3", "x":0, "y":1},
-                {"label":"F4", "x":1, "y":1},
-                {"label":"Tab", "x":2.25, "y":1, "w":1.5},
-                {"label":"Q", "x":3.75, "y":1},
-                {"label":"W", "x":4.75, "y":1},
-                {"label":"E", "x":5.75, "y":1},
-                {"label":"R", "x":6.75, "y":1},
-                {"label":"T", "x":7.75, "y":1},
-                {"label":"Y", "x":8.75, "y":1},
-                {"label":"U", "x":9.75, "y":1},
-                {"label":"I", "x":10.75, "y":1},
-                {"label":"O", "x":11.75, "y":1},
-                {"label":"P", "x":12.75, "y":1},
-                {"label":"{", "x":13.75, "y":1},
-                {"label":"}", "x":14.75, "y":1},
-                {"label":"|", "x":15.75, "y":1, "w":1.5},
-                {"label":"<i class='kb kb-Multimedia-Volume-Down-1'></i>", "x":17.25, "y":1},
-
-                {"label":"F5", "x":0, "y":2},
-                {"label":"F6", "x":1, "y":2},
-                {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25},
-                {"label":"A", "x":4, "y":2},
-                {"label":"S", "x":5, "y":2},
-                {"label":"D", "x":6, "y":2},
-                {"label":"F", "x":7, "y":2},
-                {"label":"G", "x":8, "y":2},
-                {"label":"H", "x":9, "y":2},
-                {"label":"J", "x":10, "y":2},
-                {"label":"K", "x":11, "y":2},
-                {"label":"L", "x":12, "y":2},
-                {"label":":", "x":13, "y":2},
-                {"label":"\"", "x":14, "y":2},
-                {"label":"Enter", "x":15, "y":2, "w":2.25},
-                {"label":"<i class='kb kb-Multimedia-Mute-1'></i>", "x":17.25, "y":2},
-
-                {"label":"F7", "x":0, "y":3},
-                {"label":"F8", "x":1, "y":3},
-                {"label":"Shift", "x":2.25, "y":3, "w":2.25},
-                {"label":"Z", "x":4.5, "y":3},
-                {"label":"X", "x":5.5, "y":3},
-                {"label":"C", "x":6.5, "y":3},
-                {"label":"V", "x":7.5, "y":3},
-                {"label":"B", "x":8.5, "y":3},
-                {"label":"N", "x":9.5, "y":3},
-                {"label":"M", "x":10.5, "y":3},
-                {"label":"<", "x":11.5, "y":3},
-                {"label":">", "x":12.5, "y":3},
-                {"label":"?", "x":13.5, "y":3},
-                {"label":"Shift", "x":14.5, "y":3, "w":1.75},
-                {"label":"<i class='kb kb-Arrows-Up'></i>", "x":16.25, "y":3},
-                {"label":"<i class='kb kb-Multimedia-Play-Pause'></i>", "x":17.25, "y":3},
-
-                {"label":"F9/11", "x":0, "y":4},
-                {"label":"F10/12", "x":1, "y":4},
-                {"label":"Ctrl", "x":2.25, "y":4, "w":1.25},
-                {"label":"Win", "x":3.5, "y":4, "w":1.25},
-                {"label":"Alt", "x":4.75, "y":4, "w":1.25},
-                {"label":"6.25", "x":6, "y":4, "w":6.25},
-                {"label":"Fn", "x":12.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Left'></i>", "x":15.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Down'></i>", "x":16.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Right'></i>", "x":17.25, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+                {"matrix": [0, 5], "x": 5.25, "y": 0},
+                {"matrix": [0, 6], "x": 6.25, "y": 0},
+                {"matrix": [0, 7], "x": 7.25, "y": 0},
+                {"matrix": [0, 8], "x": 8.25, "y": 0},
+                {"matrix": [0, 9], "x": 9.25, "y": 0},
+                {"matrix": [0, 10], "x": 10.25, "y": 0},
+                {"matrix": [0, 11], "x": 11.25, "y": 0},
+                {"matrix": [0, 12], "x": 12.25, "y": 0},
+                {"matrix": [0, 13], "x": 13.25, "y": 0},
+                {"matrix": [0, 14], "x": 14.25, "y": 0},
+                {"matrix": [0, 15], "x": 15.25, "y": 0},
+                {"matrix": [0, 16], "x": 16.25, "y": 0},
+                {"matrix": [0, 17], "x": 17.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+
+                {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1},
+                {"matrix": [1, 12], "x": 12.75, "y": 1},
+                {"matrix": [1, 13], "x": 13.75, "y": 1},
+                {"matrix": [1, 14], "x": 14.75, "y": 1},
+                {"matrix": [1, 16], "x": 15.75, "y": 1, "w": 1.5},
+                {"matrix": [1, 17], "x": 17.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+
+                {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 3], "x": 4, "y": 2},
+                {"matrix": [2, 4], "x": 5, "y": 2},
+                {"matrix": [2, 5], "x": 6, "y": 2},
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+                {"matrix": [2, 12], "x": 13, "y": 2},
+                {"matrix": [2, 13], "x": 14, "y": 2},
+                {"matrix": [2, 15], "x": 15, "y": 2, "w": 2.25},
+                {"matrix": [2, 17], "x": 17.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+
+                {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3},
+                {"matrix": [3, 13], "x": 13.5, "y": 3},
+                {"matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75},
+                {"matrix": [3, 16], "x": 16.25, "y": 3},
+                {"matrix": [3, 17], "x": 17.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4},
+                {"matrix": [4, 1], "x": 1, "y": 4},
+
+                {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 6, "y": 4, "w": 6.25},
+                {"matrix": [4, 12], "x": 12.25, "y": 4},
+
+                {"matrix": [4, 15], "x": 15.25, "y": 4},
+                {"matrix": [4, 16], "x": 16.25, "y": 4},
+                {"matrix": [4, 17], "x": 17.25, "y": 4}
             ]
         },
         "LAYOUT_1065_iso": {
             "layout": [
-                {"label":"F1", "x":0, "y":0},
-                {"label":"F2", "x":1, "y":0},
-                {"label":"~", "x":2.25, "y":0},
-                {"label":"!", "x":3.25, "y":0},
-                {"label":"@", "x":4.25, "y":0},
-                {"label":"#", "x":5.25, "y":0},
-                {"label":"$", "x":6.25, "y":0},
-                {"label":"%", "x":7.25, "y":0},
-                {"label":"^", "x":8.25, "y":0},
-                {"label":"&", "x":9.25, "y":0},
-                {"label":"*", "x":10.25, "y":0},
-                {"label":"(", "x":11.25, "y":0},
-                {"label":")", "x":12.25, "y":0},
-                {"label":"_", "x":13.25, "y":0},
-                {"label":"+", "x":14.25, "y":0},
-                {"label":"Backspace", "x":15.25, "y":0, "w":2},
-                {"label":"<i class='kb kb-Multimedia-Volume-Up-1'></i>", "x":17.25, "y":0},
-
-                {"label":"F3", "x":0, "y":1},
-                {"label":"F4", "x":1, "y":1},
-                {"label":"Tab", "x":2.25, "y":1, "w":1.5},
-                {"label":"Q", "x":3.75, "y":1},
-                {"label":"W", "x":4.75, "y":1},
-                {"label":"E", "x":5.75, "y":1},
-                {"label":"R", "x":6.75, "y":1},
-                {"label":"T", "x":7.75, "y":1},
-                {"label":"Y", "x":8.75, "y":1},
-                {"label":"U", "x":9.75, "y":1},
-                {"label":"I", "x":10.75, "y":1},
-                {"label":"O", "x":11.75, "y":1},
-                {"label":"P", "x":12.75, "y":1},
-                {"label":"{", "x":13.75, "y":1},
-                {"label":"}", "x":14.75, "y":1},
-                {"label":"<i class='kb kb-Multimedia-Volume-Down-1'></i>", "x":17.25, "y":1},
-
-                {"label":"F5", "x":0, "y":2},
-                {"label":"F6", "x":1, "y":2},
-                {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25},
-                {"label":"A", "x":4, "y":2},
-                {"label":"S", "x":5, "y":2},
-                {"label":"D", "x":6, "y":2},
-                {"label":"F", "x":7, "y":2},
-                {"label":"G", "x":8, "y":2},
-                {"label":"H", "x":9, "y":2},
-                {"label":"J", "x":10, "y":2},
-                {"label":"K", "x":11, "y":2},
-                {"label":"L", "x":12, "y":2},
-                {"label":":", "x":13, "y":2},
-                {"label":"\"", "x":14, "y":2},
-                {"label":"~", "x":15, "y":2},
-                {"label":"Enter", "x":16, "y":1, "w":1.25, "h":2},
-                {"label":"<i class='kb kb-Multimedia-Mute-1'></i>", "x":17.25, "y":2},
-
-                {"label":"F7", "x":0, "y":3},
-                {"label":"F8", "x":1, "y":3},
-                {"label":"Shift", "x":2.25, "y":3, "w":1.25},
-                {"label":"|", "x":3.5, "y":3},
-                {"label":"Z", "x":4.5, "y":3},
-                {"label":"X", "x":5.5, "y":3},
-                {"label":"C", "x":6.5, "y":3},
-                {"label":"V", "x":7.5, "y":3},
-                {"label":"B", "x":8.5, "y":3},
-                {"label":"N", "x":9.5, "y":3},
-                {"label":"M", "x":10.5, "y":3},
-                {"label":"<", "x":11.5, "y":3},
-                {"label":">", "x":12.5, "y":3},
-                {"label":"?", "x":13.5, "y":3},
-                {"label":"Shift", "x":14.5, "y":3, "w":1.75},
-                {"label":"<i class='kb kb-Arrows-Up'></i>", "x":16.25, "y":3},
-                {"label":"<i class='kb kb-Multimedia-Play-Pause'></i>", "x":17.25, "y":3},
-
-                {"label":"F9/11", "x":0, "y":4},
-                {"label":"F10/12", "x":1, "y":4},
-                {"label":"Ctrl", "x":2.25, "y":4, "w":1.25},
-                {"label":"Win", "x":3.5, "y":4, "w":1.25},
-                {"label":"Alt", "x":4.75, "y":4, "w":1.25},
-                {"label":"6.25", "x":6, "y":4, "w":6.25},
-                {"label":"Fn", "x":12.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Left'></i>", "x":15.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Down'></i>", "x":16.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Right'></i>", "x":17.25, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+                {"matrix": [0, 5], "x": 5.25, "y": 0},
+                {"matrix": [0, 6], "x": 6.25, "y": 0},
+                {"matrix": [0, 7], "x": 7.25, "y": 0},
+                {"matrix": [0, 8], "x": 8.25, "y": 0},
+                {"matrix": [0, 9], "x": 9.25, "y": 0},
+                {"matrix": [0, 10], "x": 10.25, "y": 0},
+                {"matrix": [0, 11], "x": 11.25, "y": 0},
+                {"matrix": [0, 12], "x": 12.25, "y": 0},
+                {"matrix": [0, 13], "x": 13.25, "y": 0},
+                {"matrix": [0, 14], "x": 14.25, "y": 0},
+                {"matrix": [0, 16], "x": 15.25, "y": 0, "w": 2},
+                {"matrix": [0, 17], "x": 17.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+
+                {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1},
+                {"matrix": [1, 12], "x": 12.75, "y": 1},
+                {"matrix": [1, 13], "x": 13.75, "y": 1},
+                {"matrix": [1, 14], "x": 14.75, "y": 1},
+                {"matrix": [1, 17], "x": 17.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+
+                {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 3], "x": 4, "y": 2},
+                {"matrix": [2, 4], "x": 5, "y": 2},
+                {"matrix": [2, 5], "x": 6, "y": 2},
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+                {"matrix": [2, 12], "x": 13, "y": 2},
+                {"matrix": [2, 13], "x": 14, "y": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+                {"matrix": [2, 16], "x": 16, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 17], "x": 17.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+
+                {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3},
+                {"matrix": [3, 13], "x": 13.5, "y": 3},
+                {"matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75},
+                {"matrix": [3, 16], "x": 16.25, "y": 3},
+                {"matrix": [3, 17], "x": 17.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4},
+                {"matrix": [4, 1], "x": 1, "y": 4},
+
+                {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 6, "y": 4, "w": 6.25},
+                {"matrix": [4, 12], "x": 12.25, "y": 4},
+
+                {"matrix": [4, 15], "x": 15.25, "y": 4},
+                {"matrix": [4, 16], "x": 16.25, "y": 4},
+                {"matrix": [4, 17], "x": 17.25, "y": 4}
             ]
         },
         "LAYOUT_1065_iso_split_bs": {
             "layout": [
-                {"label":"F1", "x":0, "y":0},
-                {"label":"F2", "x":1, "y":0},
-                {"label":"~", "x":2.25, "y":0},
-                {"label":"!", "x":3.25, "y":0},
-                {"label":"@", "x":4.25, "y":0},
-                {"label":"#", "x":5.25, "y":0},
-                {"label":"$", "x":6.25, "y":0},
-                {"label":"%", "x":7.25, "y":0},
-                {"label":"^", "x":8.25, "y":0},
-                {"label":"&", "x":9.25, "y":0},
-                {"label":"*", "x":10.25, "y":0},
-                {"label":"(", "x":11.25, "y":0},
-                {"label":")", "x":12.25, "y":0},
-                {"label":"_", "x":13.25, "y":0},
-                {"label":"+", "x":14.25, "y":0},
-                {"label":"Backspace", "x":15.25, "y":0},
-                {"label":"Backspace", "x":16.25, "y":0},
-                {"label":"<i class='kb kb-Multimedia-Volume-Up-1'></i>", "x":17.25, "y":0},
-
-                {"label":"F3", "x":0, "y":1},
-                {"label":"F4", "x":1, "y":1},
-                {"label":"Tab", "x":2.25, "y":1, "w":1.5},
-                {"label":"Q", "x":3.75, "y":1},
-                {"label":"W", "x":4.75, "y":1},
-                {"label":"E", "x":5.75, "y":1},
-                {"label":"R", "x":6.75, "y":1},
-                {"label":"T", "x":7.75, "y":1},
-                {"label":"Y", "x":8.75, "y":1},
-                {"label":"U", "x":9.75, "y":1},
-                {"label":"I", "x":10.75, "y":1},
-                {"label":"O", "x":11.75, "y":1},
-                {"label":"P", "x":12.75, "y":1},
-                {"label":"{", "x":13.75, "y":1},
-                {"label":"}", "x":14.75, "y":1},
-                {"label":"<i class='kb kb-Multimedia-Volume-Down-1'></i>", "x":17.25, "y":1},
-
-                {"label":"F5", "x":0, "y":2},
-                {"label":"F6", "x":1, "y":2},
-                {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25},
-                {"label":"A", "x":4, "y":2},
-                {"label":"S", "x":5, "y":2},
-                {"label":"D", "x":6, "y":2},
-                {"label":"F", "x":7, "y":2},
-                {"label":"G", "x":8, "y":2},
-                {"label":"H", "x":9, "y":2},
-                {"label":"J", "x":10, "y":2},
-                {"label":"K", "x":11, "y":2},
-                {"label":"L", "x":12, "y":2},
-                {"label":":", "x":13, "y":2},
-                {"label":"\"", "x":14, "y":2},
-                {"label":"~", "x":15, "y":2},
-                {"label":"Enter", "x":16, "y":1, "w":1.25, "h":2},
-                {"label":"<i class='kb kb-Multimedia-Mute-1'></i>", "x":17.25, "y":2},
-
-                {"label":"F7", "x":0, "y":3},
-                {"label":"F8", "x":1, "y":3},
-                {"label":"Shift", "x":2.25, "y":3, "w":1.25},
-                {"label":"|", "x":3.5, "y":3},
-                {"label":"Z", "x":4.5, "y":3},
-                {"label":"X", "x":5.5, "y":3},
-                {"label":"C", "x":6.5, "y":3},
-                {"label":"V", "x":7.5, "y":3},
-                {"label":"B", "x":8.5, "y":3},
-                {"label":"N", "x":9.5, "y":3},
-                {"label":"M", "x":10.5, "y":3},
-                {"label":"<", "x":11.5, "y":3},
-                {"label":">", "x":12.5, "y":3},
-                {"label":"?", "x":13.5, "y":3},
-                {"label":"Shift", "x":14.5, "y":3, "w":1.75},
-                {"label":"<i class='kb kb-Arrows-Up'></i>", "x":16.25, "y":3},
-                {"label":"<i class='kb kb-Multimedia-Play-Pause'></i>", "x":17.25, "y":3},
-
-                {"label":"F9/11", "x":0, "y":4},
-                {"label":"F10/12", "x":1, "y":4},
-                {"label":"Ctrl", "x":2.25, "y":4, "w":1.25},
-                {"label":"Win", "x":3.5, "y":4, "w":1.25},
-                {"label":"Alt", "x":4.75, "y":4, "w":1.25},
-                {"label":"6.25", "x":6, "y":4, "w":6.25},
-                {"label":"Fn", "x":12.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Left'></i>", "x":15.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Down'></i>", "x":16.25, "y":4},
-                {"label":"<i class='kb kb-Arrows-Right'></i>", "x":17.25, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+                {"matrix": [0, 5], "x": 5.25, "y": 0},
+                {"matrix": [0, 6], "x": 6.25, "y": 0},
+                {"matrix": [0, 7], "x": 7.25, "y": 0},
+                {"matrix": [0, 8], "x": 8.25, "y": 0},
+                {"matrix": [0, 9], "x": 9.25, "y": 0},
+                {"matrix": [0, 10], "x": 10.25, "y": 0},
+                {"matrix": [0, 11], "x": 11.25, "y": 0},
+                {"matrix": [0, 12], "x": 12.25, "y": 0},
+                {"matrix": [0, 13], "x": 13.25, "y": 0},
+                {"matrix": [0, 14], "x": 14.25, "y": 0},
+                {"matrix": [0, 15], "x": 15.25, "y": 0},
+                {"matrix": [0, 16], "x": 16.25, "y": 0},
+                {"matrix": [0, 17], "x": 17.25, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+
+                {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 10], "x": 10.75, "y": 1},
+                {"matrix": [1, 11], "x": 11.75, "y": 1},
+                {"matrix": [1, 12], "x": 12.75, "y": 1},
+                {"matrix": [1, 13], "x": 13.75, "y": 1},
+                {"matrix": [1, 14], "x": 14.75, "y": 1},
+                {"matrix": [1, 17], "x": 17.25, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+
+                {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.25},
+                {"matrix": [2, 3], "x": 4, "y": 2},
+                {"matrix": [2, 4], "x": 5, "y": 2},
+                {"matrix": [2, 5], "x": 6, "y": 2},
+                {"matrix": [2, 6], "x": 7, "y": 2},
+                {"matrix": [2, 7], "x": 8, "y": 2},
+                {"matrix": [2, 8], "x": 9, "y": 2},
+                {"matrix": [2, 9], "x": 10, "y": 2},
+                {"matrix": [2, 10], "x": 11, "y": 2},
+                {"matrix": [2, 11], "x": 12, "y": 2},
+                {"matrix": [2, 12], "x": 13, "y": 2},
+                {"matrix": [2, 13], "x": 14, "y": 2},
+                {"matrix": [2, 14], "x": 15, "y": 2},
+                {"matrix": [2, 16], "x": 16, "y": 1, "w": 1.25, "h": 2},
+                {"matrix": [2, 17], "x": 17.25, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+
+                {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 3], "x": 3.5, "y": 3},
+                {"matrix": [3, 4], "x": 4.5, "y": 3},
+                {"matrix": [3, 5], "x": 5.5, "y": 3},
+                {"matrix": [3, 6], "x": 6.5, "y": 3},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+                {"matrix": [3, 8], "x": 8.5, "y": 3},
+                {"matrix": [3, 9], "x": 9.5, "y": 3},
+                {"matrix": [3, 10], "x": 10.5, "y": 3},
+                {"matrix": [3, 11], "x": 11.5, "y": 3},
+                {"matrix": [3, 12], "x": 12.5, "y": 3},
+                {"matrix": [3, 13], "x": 13.5, "y": 3},
+                {"matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75},
+                {"matrix": [3, 16], "x": 16.25, "y": 3},
+                {"matrix": [3, 17], "x": 17.25, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4},
+                {"matrix": [4, 1], "x": 1, "y": 4},
+
+                {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 6, "y": 4, "w": 6.25},
+                {"matrix": [4, 12], "x": 12.25, "y": 4},
+
+                {"matrix": [4, 15], "x": 15.25, "y": 4},
+                {"matrix": [4, 16], "x": 16.25, "y": 4},
+                {"matrix": [4, 17], "x": 17.25, "y": 4}
             ]
         }
     }

+ 0 - 114
keyboards/charue/sunsetter/sunsetter.h

@@ -1,114 +0,0 @@
-/*
-Copyright 2020 Michael Pio "Coarse" Mayol  <mfmayol@up.edu.ph>
-
-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
-
-/* LAYOUT_all
- *                                                                           ┌───────┐
- *                                                                           │016    │2u Backspace
- *                                                                           └───────┘
- *              ┌───┬───┐┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- *              │000│001││002│003│004│005│006│007│008│009│010│011│012│013│014│015│016│017│
- *              ├───┼───┤├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤      ┌─────┐
- *              │100│101││102  │103│104│105│106│107│108│109│110│111│112│113│114│116  │117│      │     │ISO
- *  2.25u       ├───┼───┤├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤   ┌──┴┐216 │Enter
- *  LShift      │200│201││202   │203│204│205│206│207│208│209│210│211│212│213│215     │217│   │214│    │
- * ┌────────┐   ├───┼───┤├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤   └───┴────┘
- * │302     │   │300│301││302 │303│304│305│306│307│308│309│310│311│312│313│314   │316│317│
- * └────────┘   ├───┼───┤├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- *              │400│401││402 │403 │404 │406     │408 │410       │412│413│414│415│416│417│
- *              └───┴───┘└────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘
- *                                      ┌────────────────────────┐   └───┬───┘
- *                                      │          408           │      (a)
- *                                      └────────────────────────┘
- *
- * (a) Positions 413 and 414 are present on the PCB, but inaccessible when using the standard Sunsetter top case.
- */
-
-#define LAYOUT_all( \
-    K000, K001,   K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \
-    K100, K101,   K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116,       K117, \
-    K200, K201,   K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, \
-    K300, K301,   K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314,       K316, K317, \
-    K400, K401,   K402, K403, K404,             K406, K408, K410,             K412, K413, K414, K415, K416, K417  \
-) { \
-    { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \
-    { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \
-    { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217 }, \
-    { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \
-    { K400, K401, K402, K403, K404, ____, K406, ____, K408, ____, K410, ____, K412, K413, K414, K415, K416, K417 } \
-}
-
-#define LAYOUT_1065_ansi( \
-    K000, K001,   K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K016, K017, \
-    K100, K101,   K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \
-    K200, K201,   K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,       K215, K217, \
-    K300, K301,   K302,       K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \
-    K400, K401,   K402, K403, K404,                   K408,                   K412,       K415, K416, K417 \
-) { \
-    { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, ____, K016, K017 }, \
-    { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \
-    { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, K215, ____, K217 }, \
-    { K300, K301, K302, ____, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \
-    { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \
-}
-
-#define LAYOUT_1065_ansi_split_bs( \
-    K000, K001,   K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \
-    K100, K101,   K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \
-    K200, K201,   K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,       K215, K217, \
-    K300, K301,   K302,       K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \
-    K400, K401,   K402, K403, K404,                   K408,                   K412,       K415, K416, K417 \
-) { \
-    { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \
-    { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \
-    { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, K215, ____, K217 }, \
-    { K300, K301, K302, ____, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \
-    { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \
-}
-
-#define LAYOUT_1065_iso( \
-    K000, K001,   K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K016, K017, \
-    K100, K101,   K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114,       K117, \
-    K200, K201,   K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K216, K217, \
-    K300, K301,   K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \
-    K400, K401,   K402, K403, K404,                   K408,                   K412,       K415, K416, K417 \
-) { \
-    { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, ____, K016, K017 }, \
-    { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, ____, K117 }, \
-    { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, ____, K216, K217 }, \
-    { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \
-    { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \
-}
-
-#define LAYOUT_1065_iso_split_bs( \
-    K000, K001,   K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \
-    K100, K101,   K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114,       K117, \
-    K200, K201,   K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K216, K217, \
-    K300, K301,   K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \
-    K400, K401,   K402, K403, K404,                   K408,                   K412,       K415, K416, K417 \
-) { \
-    { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \
-    { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, ____, K117 }, \
-    { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, ____, K216, K217 }, \
-    { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \
-    { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \
-}

+ 437 - 437
keyboards/chlx/merro60/info.json

@@ -25,495 +25,495 @@
     "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},
+                {"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},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x": 0,      "y": 2, "w": 1.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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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": 12.5,   "y": 4, "w": 1.25},
-                {"x": 13.75,  "y": 4, "w": 1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_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},
+                {"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},
 
-                {"x":0,       "y":1, "w":1.5},
-                {"x":1.5,     "y":1},
-                {"x":2.5,     "y":1},
-                {"x":3.5,     "y":1},
-                {"x":4.5,     "y":1},
-                {"x":5.5,     "y":1},
-                {"x":6.5,     "y":1},
-                {"x":7.5,     "y":1},
-                {"x":8.5,     "y":1},
-                {"x":9.5,     "y":1},
-                {"x":10.5,    "y":1},
-                {"x":11.5,    "y":1},
-                {"x":12.5,    "y":1},
-                {"x":13.5,    "y":1, "w":1.5},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x":0,       "y":2, "w":1.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},
+                {"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},
 
-                {"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":2.75},
+                {"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": 2.75},
 
-                {"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":12.5,    "y":4, "w":1.25},
-                {"x":13.75,   "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
             "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},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x": 0,      "y": 2, "w": 1.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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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": 12.5,   "y": 4, "w": 1.25},
-                {"x": 13.75,  "y": 4, "w": 1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_hhkb": {
             "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},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x": 0,      "y": 2, "w": 1.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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x": 1.5,    "y": 4},
-                {"x": 2.5,    "y": 4, "w": 1.5},
-                {"x": 4,      "y": 4, "w": 7},
-                {"x": 11,     "y": 4, "w": 1.5},
-                {"x": 12.5,   "y": 4}
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4}
             ]
         },
         "LAYOUT_60_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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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": 2.75},
+                {"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": 2.75},
 
-                {"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": 12.5,   "y": 4, "w": 1.25},
-                {"x": 13.75,  "y": 4, "w": 1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso_split_bs_rshift": {
             "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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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": 12.5,   "y": 4, "w": 1.25},
-                {"x": 13.75,  "y": 4, "w": 1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_tsangan_hhkb": {
             "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},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x": 0,      "y": 2, "w": 1.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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x": 0,      "y": 4, "w": 1.5},
-                {"x": 1.5,    "y": 4},
-                {"x": 2.5,    "y": 4, "w": 1.5},
-                {"x": 4,      "y": 4, "w": 7},
-                {"x": 11,     "y": 4, "w": 1.5},
-                {"x": 12.5,   "y": 4},
-                {"x": 13.5,   "y": 4, "w": 1.5}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 0 - 214
keyboards/chlx/merro60/merro60.h

@@ -1,214 +0,0 @@
-/* 
-Copyright 2021 Alexander Lee <chlx.bsmt@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"
-
-// Corresponding changes to the layout names and/or definitions must also be made to info.json
-
-#define XXX KC_NO
-
-/* //////////////////// LAYOUT_all ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │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   │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
- * │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 (6.25u)              │4a  │4b  │4c  │4d  │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, 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,           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, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
-}
-
-/* //////////////////// LAYOUT_60_ansi ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d     │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c        │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │40  │41  │42  │45                      │4a  │4b  │4c  │4d  │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-#define LAYOUT_60_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
-    k31,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3c, \
-    k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
-    { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
-}
-
-/* //////////////////// LAYOUT_60_ansi_split_bs_rshift ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │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   │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │40  │41  │42  │45                      │4a  │4b  │4d  │4e  │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    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,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d,      \
-    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, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
-    { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
-}
-
-/* //////////////////// LAYOUT_60_hhkb ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │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   │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │▓▓▓▓▓│41 │42   │45 (7u)                    │4b   │4c │▓▓▓▓▓│
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
-*/
-#define LAYOUT_60_hhkb( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d,      \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,      \
-         k41, k42,           k45,                          k4b, k4c            \
-) { \
-    { 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, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
-    { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
-    { XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, XXX, XXX }  \
-}
-
-/* //////////////////// LAYOUT_60_iso ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d     │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2d  │
- * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │    │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
- * │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c        │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │40  │41  │42  │45                      │4a  │4b  │4c  │4d  │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-#define LAYOUT_60_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3c, \
-    k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
-}
-
-/* //////////////////// LAYOUT_60_iso_split_bs_rshift ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │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 │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2d  │
- * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │    │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
- * │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │40  │41  │42  │45                      │4a  │4b  │4c  │4d  │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-#define LAYOUT_60_iso_split_bs_rshift( \
-    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,           \
-    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, XXX, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
-}
-
-/* //////////////////// LAYOUT_60_tsangan_hhkb ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │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   │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │40   │41 │42   │45 (7u)                    │4b   │4c │4d   │
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
-*/
-#define LAYOUT_60_tsangan_hhkb( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d,      \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,      \
-    k40, k41, k42,           k45,                          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, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
-    { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, k4d, XXX }  \
-}

+ 437 - 437
keyboards/chlx/str_merro60/info.json

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

+ 0 - 249
keyboards/chlx/str_merro60/str_merro60.h

@@ -1,249 +0,0 @@
-/* 
-Copyright 2022 Alexander Lee <chlx.bsmt@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"
-
-// Corresponding changes to the layout names and/or definitions must also be made to info.json
-
-#define XXX KC_NO
-
-/* //////////////////// LAYOUT_all ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
- * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
- * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │    │    │    │    (6.25u)             │    │    │    │    │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-
-#define LAYOUT_all( \
-    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,      \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
-    k80, k90,           k82, k92,                k94, k85, k95, k86            \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06 }, \
-    { k10, k11, k12, k13, k14, k15, k16 }, \
-    { k20, k21, k22, k23, k24, k25, k26 }, \
-    { k30, k31, k32, k33, k34, k35, k36 }, \
-    { k40, k41, k42, k43, k44, k45, k46 }, \
-    { k50, k51, k52, k53, k54, k55, k56 }, \
-    { k60, k61, k62, k63, k64, k65, k66 }, \
-    { k70, k71, k72, k73, k74, k75, k76 }, \
-    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
-    { k90, XXX, k92, XXX, k94, k95, k96 }  \
-}
-
-/* //////////////////// LAYOUT_60_ansi ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │      │   │   │   │   │   │   │   │   │   │   │   │        │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
- * │        │   │   │   │   │   │   │   │   │   │   │          │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │    │    │    │    (6.25u)             │    │    │    │    │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-#define LAYOUT_60_ansi( \
-    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16,      \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55,      k56,      \
-    k60,      k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66,           \
-    k80, k90,           k82, k92,                k94, k85, k95, k86            \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06 }, \
-    { k10, k11, k12, k13, k14, k15, k16 }, \
-    { k20, k21, k22, k23, k24, k25, k26 }, \
-    { k30, k31, k32, k33, k34, k35, k36 }, \
-    { k40, k41, k42, k43, k44, k45, XXX }, \
-    { k50, k51, k52, k53, k54, k55, k56 }, \
-    { k60, k61, k62, k63, k64, k65, k66 }, \
-    { XXX, k71, k72, k73, k74, k75, XXX }, \
-    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
-    { k90, XXX, k92, XXX, k94, k95, XXX }  \
-}
-
-/* //////////////////// LAYOUT_60_ansi_split_bs_rshift ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │      │   │   │   │   │   │   │   │   │   │   │   │        │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │        │   │   │   │   │   │   │   │   │   │   │      │   │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │    │    │    │    (6.25u)             │    │    │    │    │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55,      k56,      \
-    k60,      k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
-    k80, k90,           k82, k92,                k94, k85, k95, k86            \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06 }, \
-    { k10, k11, k12, k13, k14, k15, k16 }, \
-    { k20, k21, k22, k23, k24, k25, k26 }, \
-    { k30, k31, k32, k33, k34, k35, k36 }, \
-    { k40, k41, k42, k43, k44, k45, XXX }, \
-    { k50, k51, k52, k53, k54, k55, k56 }, \
-    { k60, k61, k62, k63, k64, k65, k66 }, \
-    { XXX, k71, k72, k73, k74, k75, k76 }, \
-    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
-    { k90, XXX, k92, XXX, k94, k95, k96 }  \
-}
-
-/* //////////////////// LAYOUT_60_hhkb ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │      │   │   │   │   │   │   │   │   │   │   │   │        │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │        │   │   │   │   │   │   │   │   │   │   │      │   │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │▓▓▓▓▓│   │     │   (7u)                    │     │   │▓▓▓▓▓│
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
-*/
-#define LAYOUT_60_hhkb( \
-    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55,      k56,      \
-    k60,      k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
-         k90,           k82, k92,                     k85, k95                 \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06 }, \
-    { k10, k11, k12, k13, k14, k15, k16 }, \
-    { k20, k21, k22, k23, k24, k25, k26 }, \
-    { k30, k31, k32, k33, k34, k35, k36 }, \
-    { k40, k41, k42, k43, k44, k45, XXX }, \
-    { k50, k51, k52, k53, k54, k55, k56 }, \
-    { k60, k61, k62, k63, k64, k65, k66 }, \
-    { XXX, k71, k72, k73, k74, k75, k76 }, \
-    { XXX, XXX, k82, XXX, XXX, k85, XXX }, \
-    { k90, XXX, k92, XXX, XXX, k95, k96 }  \
-}
-
-/* //////////////////// LAYOUT_60_iso ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
- * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
- * │    │   │   │   │   │   │   │   │   │   │   │   │          │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │    │    │    │    (6.25u)             │    │    │    │    │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-#define LAYOUT_60_iso( \
-    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16,      \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26,           \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,      \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66,           \
-    k80, k90,           k82, k92,                k94, k85, k95, k86            \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06 }, \
-    { k10, k11, k12, k13, k14, k15, k16 }, \
-    { k20, k21, k22, k23, k24, k25, k26 }, \
-    { k30, k31, k32, k33, k34, k35, XXX }, \
-    { k40, k41, k42, k43, k44, k45, k46 }, \
-    { k50, k51, k52, k53, k54, k55, k56 }, \
-    { k60, k61, k62, k63, k64, k65, k66 }, \
-    { k70, k71, k72, k73, k74, k75, XXX }, \
-    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
-    { k90, XXX, k92, XXX, k94, k95, XXX }  \
-}
-
-/* //////////////////// LAYOUT_60_iso_split_bs_rshift ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
- * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
- * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │    │    │    │    (6.25u)             │    │    │    │    │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-*/
-#define LAYOUT_60_iso_split_bs_rshift( \
-    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26,           \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,      \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
-    k80, k90,           k82, k92,                k94, k85, k95, k86            \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06 }, \
-    { k10, k11, k12, k13, k14, k15, k16 }, \
-    { k20, k21, k22, k23, k24, k25, k26 }, \
-    { k30, k31, k32, k33, k34, k35, XXX }, \
-    { k40, k41, k42, k43, k44, k45, k46 }, \
-    { k50, k51, k52, k53, k54, k55, k56 }, \
-    { k60, k61, k62, k63, k64, k65, k66 }, \
-    { k70, k71, k72, k73, k74, k75, k76 }, \
-    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
-    { k90, XXX, k92, XXX, k94, k95, k96 }  \
-}
-
-/* //////////////////// LAYOUT_60_tsangan_hhkb ////////////////////
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │      │   │   │   │   │   │   │   │   │   │   │   │        │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │        │   │   │   │   │   │   │   │   │   │   │      │   │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │     │   │     │   (7u)                    │     │   │     │
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
-*/
-#define LAYOUT_60_tsangan_hhkb( \
-    k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k96, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,      \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55,      k56,      \
-    k60,      k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,      \
-    k80, k90,           k82, k92,                     k85, k95, k86            \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06 }, \
-    { k10, k11, k12, k13, k14, k15, k16 }, \
-    { k20, k21, k22, k23, k24, k25, k26 }, \
-    { k30, k31, k32, k33, k34, k35, k36 }, \
-    { k40, k41, k42, k43, k44, k45, XXX }, \
-    { k50, k51, k52, k53, k54, k55, k56 }, \
-    { k60, k61, k62, k63, k64, k65, k66 }, \
-    { XXX, k71, k72, k73, k74, k75, k76 }, \
-    { k80, XXX, k82, XXX, XXX, k85, k86 }, \
-    { k90, XXX, k92, XXX, XXX, k95, k96 }  \
-}

+ 190 - 4
keyboards/coseyfannitutti/romeo/info.json

@@ -17,16 +17,202 @@
     "bootloader": "usbasploader",
     "layouts": {
         "LAYOUT_all": {
-            "layout": [{"label":"1.5u", "x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"label":"1.5u", "x":11.5, "y":0, "w":1.5}, {"label":"1.75u", "x":0, "y":1, "w":1.75}, {"x":1.75, "y":1}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"label":"2.25u", "x":10.75, "y":1, "w":2.25}, {"label":"1.25u", "x":0, "y":2, "w":1.25}, {"x":1.25, "y":2}, {"x":2.25, "y":2}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"label":"1.75u", "x":11.25, "y":2, "w":1.75}, {"label":"1.25u", "x":0, "y":3, "w":1.25}, {"label":"1u", "x":1.25, "y":3}, {"label":"1.25u", "x":2.25, "y":3, "w":1.25}, {"label":"2.25u", "x":3.5, "y":3, "w":2.25}, {"label":"1u", "x":5.75, "y":3}, {"label":"2.75u", "x":6.75, "y":3, "w":2.75}, {"label":"1.25u", "x":9.5, "y":3, "w":1.25}, {"label":"1u", "x":10.75, "y":3}, {"label":"1.25u", "x":11.75, "y":3, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+                {"matrix": [1, 1], "x": 1.75, "y": 1},
+                {"matrix": [1, 2], "x": 2.75, "y": 1},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
+                {"matrix": [2, 1], "x": 1.25, "y": 2},
+                {"matrix": [2, 2], "x": 2.25, "y": 2},
+                {"matrix": [2, 3], "x": 3.25, "y": 2},
+                {"matrix": [2, 4], "x": 4.25, "y": 2},
+                {"matrix": [2, 5], "x": 5.25, "y": 2},
+                {"matrix": [2, 6], "x": 6.25, "y": 2},
+                {"matrix": [2, 7], "x": 7.25, "y": 2},
+                {"matrix": [2, 8], "x": 8.25, "y": 2},
+                {"matrix": [2, 9], "x": 9.25, "y": 2},
+                {"matrix": [2, 10], "x": 10.25, "y": 2},
+                {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25},
+                {"matrix": [3, 6], "x": 5.75, "y": 3},
+                {"matrix": [3, 7], "x": 6.75, "y": 3, "w": 2.75},
+                {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25}
+            ]
         },
         "LAYOUT_ansi_split_lshift": {
-            "layout": [{"label":"1.5u", "x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"label":"1.5u", "x":11.5, "y":0, "w":1.5}, {"label":"1.75u", "x":0, "y":1, "w":1.75}, {"x":1.75, "y":1}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"label":"2.25u", "x":10.75, "y":1, "w":2.25}, {"label":"1.25u", "x":0, "y":2, "w":1.25}, {"x":1.25, "y":2}, {"x":2.25, "y":2}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"label":"1.75u", "x":11.25, "y":2, "w":1.75}, {"label":"1.25u", "x":0, "y":3, "w":1.25}, {"label":"1u", "x":1.25, "y":3}, {"label":"1u", "x":2.25, "y":3}, {"label":"6.25u", "x":3.25, "y":3, "w":6.25}, {"label":"1.25u", "x":9.5, "y":3, "w":1.25}, {"label":"1u", "x":10.75, "y":3}, {"label":"1.25u", "x":11.75, "y":3, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+                {"matrix": [1, 1], "x": 1.75, "y": 1},
+                {"matrix": [1, 2], "x": 2.75, "y": 1},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
+                {"matrix": [2, 1], "x": 1.25, "y": 2},
+                {"matrix": [2, 2], "x": 2.25, "y": 2},
+                {"matrix": [2, 3], "x": 3.25, "y": 2},
+                {"matrix": [2, 4], "x": 4.25, "y": 2},
+                {"matrix": [2, 5], "x": 5.25, "y": 2},
+                {"matrix": [2, 6], "x": 6.25, "y": 2},
+                {"matrix": [2, 7], "x": 7.25, "y": 2},
+                {"matrix": [2, 8], "x": 8.25, "y": 2},
+                {"matrix": [2, 9], "x": 9.25, "y": 2},
+                {"matrix": [2, 10], "x": 10.25, "y": 2},
+                {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75},
+
+                {"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, 6], "x": 3.25, "y": 3, "w": 6.25},
+                {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25}
+            ]
         },
         "LAYOUT_ansi_split_space": {
-            "layout": [{"label":"1.5u", "x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"label":"1.5u", "x":11.5, "y":0, "w":1.5}, {"label":"1.75u", "x":0, "y":1, "w":1.75}, {"x":1.75, "y":1}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"label":"2.25u", "x":10.75, "y":1, "w":2.25}, {"label":"2.25u", "x":0, "y":2, "w":2.25}, {"x":2.25, "y":2}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"label":"1.75u", "x":11.25, "y":2, "w":1.75}, {"label":"1.25u", "x":0, "y":3, "w":1.25}, {"label":"1u", "x":1.25, "y":3}, {"label":"1.25u", "x":2.25, "y":3, "w":1.25}, {"label":"2.25u", "x":3.5, "y":3, "w":2.25}, {"label":"1u", "x":5.75, "y":3}, {"label":"2.75u", "x":6.75, "y":3, "w":2.75}, {"label":"1.25u", "x":9.5, "y":3, "w":1.25}, {"label":"1u", "x":10.75, "y":3}, {"label":"1.25u", "x":11.75, "y":3, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+                {"matrix": [1, 1], "x": 1.75, "y": 1},
+                {"matrix": [1, 2], "x": 2.75, "y": 1},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25},
+                {"matrix": [2, 2], "x": 2.25, "y": 2},
+                {"matrix": [2, 3], "x": 3.25, "y": 2},
+                {"matrix": [2, 4], "x": 4.25, "y": 2},
+                {"matrix": [2, 5], "x": 5.25, "y": 2},
+                {"matrix": [2, 6], "x": 6.25, "y": 2},
+                {"matrix": [2, 7], "x": 7.25, "y": 2},
+                {"matrix": [2, 8], "x": 8.25, "y": 2},
+                {"matrix": [2, 9], "x": 9.25, "y": 2},
+                {"matrix": [2, 10], "x": 10.25, "y": 2},
+                {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25},
+                {"matrix": [3, 6], "x": 5.75, "y": 3},
+                {"matrix": [3, 7], "x": 6.75, "y": 3, "w": 2.75},
+                {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25}
+            ]
         },
         "LAYOUT_ansi_40": {
-            "layout": [{"label":"1.5u", "x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"label":"1.5u", "x":11.5, "y":0, "w":1.5}, {"label":"1.75u", "x":0, "y":1, "w":1.75}, {"x":1.75, "y":1}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"label":"2.25u", "x":10.75, "y":1, "w":2.25}, {"label":"2.25u", "x":0, "y":2, "w":2.25}, {"x":2.25, "y":2}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"label":"1.75u", "x":11.25, "y":2, "w":1.75}, {"label":"1.25u", "x":0, "y":3, "w":1.25}, {"label":"1u", "x":1.25, "y":3}, {"label":"1u", "x":2.25, "y":3}, {"label":"6.25u", "x":3.25, "y":3, "w":6.25}, {"label":"1.25u", "x":9.5, "y":3, "w":1.25}, {"label":"1u", "x":10.75, "y":3}, {"label":"1.25u", "x":11.75, "y":3, "w":1.25}]        
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+                {"matrix": [0, 9], "x": 9.5, "y": 0},
+                {"matrix": [0, 10], "x": 10.5, "y": 0},
+                {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5},
+
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
+                {"matrix": [1, 1], "x": 1.75, "y": 1},
+                {"matrix": [1, 2], "x": 2.75, "y": 1},
+                {"matrix": [1, 3], "x": 3.75, "y": 1},
+                {"matrix": [1, 4], "x": 4.75, "y": 1},
+                {"matrix": [1, 5], "x": 5.75, "y": 1},
+                {"matrix": [1, 6], "x": 6.75, "y": 1},
+                {"matrix": [1, 7], "x": 7.75, "y": 1},
+                {"matrix": [1, 8], "x": 8.75, "y": 1},
+                {"matrix": [1, 9], "x": 9.75, "y": 1},
+                {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25},
+
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25},
+                {"matrix": [2, 2], "x": 2.25, "y": 2},
+                {"matrix": [2, 3], "x": 3.25, "y": 2},
+                {"matrix": [2, 4], "x": 4.25, "y": 2},
+                {"matrix": [2, 5], "x": 5.25, "y": 2},
+                {"matrix": [2, 6], "x": 6.25, "y": 2},
+                {"matrix": [2, 7], "x": 7.25, "y": 2},
+                {"matrix": [2, 8], "x": 8.25, "y": 2},
+                {"matrix": [2, 9], "x": 9.25, "y": 2},
+                {"matrix": [2, 10], "x": 10.25, "y": 2},
+                {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75},
+
+                {"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, 6], "x": 3.25, "y": 3, "w": 6.25},
+                {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
+                {"matrix": [3, 10], "x": 10.75, "y": 3},
+                {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25}
+            ]
         }
     }
 }

+ 0 - 76
keyboards/coseyfannitutti/romeo/romeo.h

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

+ 861 - 780
keyboards/creatkeebs/thera/info.json

@@ -21,818 +21,899 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`~", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2@", "x":2, "y":1.5},
-                {"label":"3#", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5},
-                {"label":"Backspace", "x":14, "y":1.5},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"\\|", "x":13.5, "y":2.5, "w":1.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'\"", "x":11.75, "y":3.5},
-                {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":4.5},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
-                {"label":"Alt", "x":10, "y":5.5},
-                {"label":"GUI", "x":11, "y":5.5},
-                {"label":"Ctrl", "x":12, "y":5.5},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [0, 14], "x": 13, "y": 1.5},
+                {"matrix": [1, 13], "x": 14, "y": 1.5},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+                {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5.5},
+                {"matrix": [5, 10], "x": 11, "y": 5.5},
+                {"matrix": [5, 11], "x": 12, "y": 5.5},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         },
         "LAYOUT_ansi": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`~", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2@", "x":2, "y":1.5},
-                {"label":"3#", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5, "w":2},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"\\|", "x":13.5, "y":2.5, "w":1.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'\"", "x":11.75, "y":3.5},
-                {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":2.25},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
-                {"label":"Alt", "x":10, "y":5.5},
-                {"label":"GUI", "x":11, "y":5.5},
-                {"label":"Ctrl", "x":12, "y":5.5},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+                {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5.5},
+                {"matrix": [5, 10], "x": 11, "y": 5.5},
+                {"matrix": [5, 11], "x": 12, "y": 5.5},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         },
         "LAYOUT_ansi_split_bs": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`~", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2@", "x":2, "y":1.5},
-                {"label":"3#", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5},
-                {"label":"Backspace", "x":14, "y":1.5},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"\\|", "x":13.5, "y":2.5, "w":1.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'\"", "x":11.75, "y":3.5},
-                {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":2.25},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
-                {"label":"Alt", "x":10, "y":5.5},
-                {"label":"GUI", "x":11, "y":5.5},
-                {"label":"Ctrl", "x":12, "y":5.5},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [0, 14], "x": 13, "y": 1.5},
+                {"matrix": [1, 13], "x": 14, "y": 1.5},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+                {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5.5},
+                {"matrix": [5, 10], "x": 11, "y": 5.5},
+                {"matrix": [5, 11], "x": 12, "y": 5.5},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         },
         "LAYOUT_ansi_rwkl": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`~", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2@", "x":2, "y":1.5},
-                {"label":"3#", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5, "w":2},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"\\|", "x":13.5, "y":2.5, "w":1.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'\"", "x":11.75, "y":3.5},
-                {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":2.25},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5},
-                {"label":"Alt", "x":2.25, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.5, "y":5.5, "w":7},
-                {"label":"Alt", "x":10.5, "y":5.5, "w":1.25},
-                {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+                {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5},
+                {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.5, "y": 5.5, "w": 7},
+                {"matrix": [5, 9], "x": 10.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 11], "x": 11.75, "y": 5.5, "w": 1.25},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         },
         "LAYOUT_ansi_rwkl_split_bs": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`~", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2@", "x":2, "y":1.5},
-                {"label":"3#", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5},
-                {"label":"Backspace", "x":14, "y":1.5},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"\\|", "x":13.5, "y":2.5, "w":1.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'\"", "x":11.75, "y":3.5},
-                {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":2.25},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5},
-                {"label":"Alt", "x":2.25, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.5, "y":5.5, "w":7},
-                {"label":"Alt", "x":10.5, "y":5.5, "w":1.25},
-                {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [0, 14], "x": 13, "y": 1.5},
+                {"matrix": [1, 13], "x": 14, "y": 1.5},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+                {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5},
+                {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.5, "y": 5.5, "w": 7},
+                {"matrix": [5, 9], "x": 10.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 11], "x": 11.75, "y": 5.5, "w": 1.25},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         },
         "LAYOUT_iso": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`\u00ac", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2\"", "x":2, "y":1.5},
-                {"label":"3\u00a3", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5, "w":2},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'@", "x":11.75, "y":3.5},
-                {"label":"#~", "x":12.75, "y":3.5},
-                {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":4.5},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
-                {"label":"AltGr", "x":10, "y":5.5},
-                {"label":"GUI", "x":11, "y":5.5},
-                {"label":"Ctrl", "x":12, "y":5.5},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [2, 13], "x": 12.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5.5},
+                {"matrix": [5, 10], "x": 11, "y": 5.5},
+                {"matrix": [5, 11], "x": 12, "y": 5.5},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         },
         "LAYOUT_iso_split_bs": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`\u00ac", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2\"", "x":2, "y":1.5},
-                {"label":"3\u00a3", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5},
-                {"label":"Backspace", "x":14, "y":1.5},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'@", "x":11.75, "y":3.5},
-                {"label":"#~", "x":12.75, "y":3.5},
-                {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":4.5},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
-                {"label":"AltGr", "x":10, "y":5.5},
-                {"label":"GUI", "x":11, "y":5.5},
-                {"label":"Ctrl", "x":12, "y":5.5},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [0, 14], "x": 13, "y": 1.5},
+                {"matrix": [1, 13], "x": 14, "y": 1.5},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [2, 13], "x": 12.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+                {"matrix": [5, 9], "x": 10, "y": 5.5},
+                {"matrix": [5, 10], "x": 11, "y": 5.5},
+                {"matrix": [5, 11], "x": 12, "y": 5.5},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         },
         "LAYOUT_iso_rwkl": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`\u00ac", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2\"", "x":2, "y":1.5},
-                {"label":"3\u00a3", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5, "w":2},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'@", "x":11.75, "y":3.5},
-                {"label":"#~", "x":12.75, "y":3.5},
-                {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":4.5},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5},
-                {"label":"Alt", "x":2.25, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.5, "y":5.5, "w":7},
-                {"label":"AltGr", "x":10.5, "y":5.5, "w":1.25},
-                {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [2, 13], "x": 12.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5},
+                {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.5, "y": 5.5, "w": 7},
+                {"matrix": [5, 9], "x": 10.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 11], "x": 11.75, "y": 5.5, "w": 1.25},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         },
         "LAYOUT_iso_rwkl_split_bs": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"PrtSc", "x":14, "y":0},
-
-                {"label":"`\u00ac", "x":0, "y":1.5},
-                {"label":"1!", "x":1, "y":1.5},
-                {"label":"2\"", "x":2, "y":1.5},
-                {"label":"3\u00a3", "x":3, "y":1.5},
-                {"label":"4$", "x":4, "y":1.5},
-                {"label":"5%", "x":5, "y":1.5},
-                {"label":"6^", "x":6, "y":1.5},
-                {"label":"7&", "x":7, "y":1.5},
-                {"label":"8*", "x":8, "y":1.5},
-                {"label":"9(", "x":9, "y":1.5},
-                {"label":"0)", "x":10, "y":1.5},
-                {"label":"-_", "x":11, "y":1.5},
-                {"label":"=+", "x":12, "y":1.5},
-                {"label":"Backspace", "x":13, "y":1.5},
-                {"label":"Backspace", "x":14, "y":1.5},
-                {"label":"Insert", "x":15.5, "y":1.5},
-
-                {"label":"Tab", "x":0, "y":2.5, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2.5},
-                {"label":"W", "x":2.5, "y":2.5},
-                {"label":"E", "x":3.5, "y":2.5},
-                {"label":"R", "x":4.5, "y":2.5},
-                {"label":"T", "x":5.5, "y":2.5},
-                {"label":"Y", "x":6.5, "y":2.5},
-                {"label":"U", "x":7.5, "y":2.5},
-                {"label":"I", "x":8.5, "y":2.5},
-                {"label":"O", "x":9.5, "y":2.5},
-                {"label":"P", "x":10.5, "y":2.5},
-                {"label":"[{", "x":11.5, "y":2.5},
-                {"label":"]}", "x":12.5, "y":2.5},
-                {"label":"Page Up", "x":15.5, "y":2.5},
-
-                {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
-                {"label":"A", "x":1.75, "y":3.5},
-                {"label":"S", "x":2.75, "y":3.5},
-                {"label":"D", "x":3.75, "y":3.5},
-                {"label":"F", "x":4.75, "y":3.5},
-                {"label":"G", "x":5.75, "y":3.5},
-                {"label":"H", "x":6.75, "y":3.5},
-                {"label":"J", "x":7.75, "y":3.5},
-                {"label":"K", "x":8.75, "y":3.5},
-                {"label":"L", "x":9.75, "y":3.5},
-                {"label":";:", "x":10.75, "y":3.5},
-                {"label":"'@", "x":11.75, "y":3.5},
-                {"label":"#~", "x":12.75, "y":3.5},
-                {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
-                {"label":"Page Down", "x":15.5, "y":3.5},
-
-                {"label":"Shift", "x":0, "y":4.5, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":4.5},
-                {"label":"Z", "x":2.25, "y":4.5},
-                {"label":"X", "x":3.25, "y":4.5},
-                {"label":"C", "x":4.25, "y":4.5},
-                {"label":"V", "x":5.25, "y":4.5},
-                {"label":"B", "x":6.25, "y":4.5},
-                {"label":"N", "x":7.25, "y":4.5},
-                {"label":"M", "x":8.25, "y":4.5},
-                {"label":",<", "x":9.25, "y":4.5},
-                {"label":".>", "x":10.25, "y":4.5},
-                {"label":"/?", "x":11.25, "y":4.5},
-                {"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
-                {"label":"\u2191", "x":14.25, "y":4.75},
-
-                {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
-                {"label":"GUI", "x":1.25, "y":5.5},
-                {"label":"Alt", "x":2.25, "y":5.5, "w":1.25},
-                {"label":"Space", "x":3.5, "y":5.5, "w":7},
-                {"label":"AltGr", "x":10.5, "y":5.5, "w":1.25},
-                {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25},
-                {"label":"\u2190", "x":13.25, "y":5.75},
-                {"label":"\u2193", "x":14.25, "y":5.75},
-                {"label":"\u2192", "x":15.25, "y":5.75}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [0, 1], "x": 1.25, "y": 0},
+                {"matrix": [0, 2], "x": 2.25, "y": 0},
+                {"matrix": [0, 3], "x": 3.25, "y": 0},
+                {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+                {"matrix": [0, 6], "x": 6.5, "y": 0},
+                {"matrix": [0, 7], "x": 7.5, "y": 0},
+                {"matrix": [0, 8], "x": 8.5, "y": 0},
+
+                {"matrix": [0, 9], "x": 9.75, "y": 0},
+                {"matrix": [0, 10], "x": 10.75, "y": 0},
+                {"matrix": [0, 11], "x": 11.75, "y": 0},
+                {"matrix": [0, 12], "x": 12.75, "y": 0},
+
+                {"matrix": [0, 13], "x": 14, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1.5},
+                {"matrix": [1, 1], "x": 1, "y": 1.5},
+                {"matrix": [1, 2], "x": 2, "y": 1.5},
+                {"matrix": [1, 3], "x": 3, "y": 1.5},
+                {"matrix": [1, 4], "x": 4, "y": 1.5},
+                {"matrix": [1, 5], "x": 5, "y": 1.5},
+                {"matrix": [1, 6], "x": 6, "y": 1.5},
+                {"matrix": [1, 7], "x": 7, "y": 1.5},
+                {"matrix": [1, 8], "x": 8, "y": 1.5},
+                {"matrix": [1, 9], "x": 9, "y": 1.5},
+                {"matrix": [1, 10], "x": 10, "y": 1.5},
+                {"matrix": [1, 11], "x": 11, "y": 1.5},
+                {"matrix": [1, 12], "x": 12, "y": 1.5},
+                {"matrix": [0, 14], "x": 13, "y": 1.5},
+                {"matrix": [1, 13], "x": 14, "y": 1.5},
+
+                {"matrix": [1, 14], "x": 15.5, "y": 1.5},
+
+                {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+                {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+                {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+                {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+                {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+                {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+                {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+                {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+                {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+                {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+                {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+                {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+                {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+
+                {"matrix": [2, 14], "x": 15.5, "y": 2.5},
+
+                {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+                {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+                {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+                {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+                {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+                {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+                {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+                {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+                {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+                {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+                {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+                {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+                {"matrix": [2, 13], "x": 12.75, "y": 3.5},
+                {"matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 14], "x": 15.5, "y": 3.5},
+
+                {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+                {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+                {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+                {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+                {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+                {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+                {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+                {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+                {"matrix": [4, 9], "x": 9.25, "y": 4.5},
+                {"matrix": [4, 10], "x": 10.25, "y": 4.5},
+                {"matrix": [4, 11], "x": 11.25, "y": 4.5},
+                {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
+
+                {"matrix": [4, 13], "x": 14.25, "y": 4.75},
+
+                {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 1], "x": 1.25, "y": 5.5},
+                {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 6], "x": 3.5, "y": 5.5, "w": 7},
+                {"matrix": [5, 9], "x": 10.5, "y": 5.5, "w": 1.25},
+                {"matrix": [5, 11], "x": 11.75, "y": 5.5, "w": 1.25},
+
+                {"matrix": [5, 12], "x": 13.25, "y": 5.75},
+                {"matrix": [5, 13], "x": 14.25, "y": 5.75},
+                {"matrix": [5, 14], "x": 15.25, "y": 5.75}
             ]
         }
     }

+ 0 - 190
keyboards/creatkeebs/thera/thera.h

@@ -1,190 +0,0 @@
-/* Copyright 2022 Tim (https://github.com/Timliuzhaolu)
-  *
-  * 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 │
- *              └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘
- *              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐    ┌───────┐
- *              │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │0E │1D │ │1E │    │1D     │ 2u Backspace
- *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤    └─┬─────┤
- *              │20   │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D   │ │2E │      │     │
- *  2.25u       ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┤   ┌──┴┐3D  │ ISO Enter
- *  LShift      │30    │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D      │ │3E │   │2D │    │
- * ┌────────┐   ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ └───┘   └───┴────┘
- * │40      │   │40  │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C    │┌───┐
- * └────────┘   ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│4D │
- *              │50  │51  │52  │56                      │59 │5A │5B │┌───┼───┼───┐
- *              └────┴────┴────┴────────────────────────┴───┴───┴───┘│5C │5D │5E │
- *                                                                   └───┴───┴───┘
- *
- *              ┌────┬────┬────┬────────────────────────┬─────┬─────┐
- *              │50  │51  │52  │56                      │59   │5B   │ RWKL
- *              └────┴────┴────┴────────────────────────┴─────┴─────┘   both layouts
- *              ┌────┬───┬────┬───────────────────────────┬────┬────┐   use same matrix
- *              │50  │51 │52  │56                         │59  │5B  │
- *              └────┴───┴────┴───────────────────────────┴────┴────┘
- */
-
-#define LAYOUT_all( \
-    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, K0E, 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,      K3D,      K3E, \
-    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,           \
-    K50, K51, K52,                K56,           K59, K5A, K5B, K5C, K5D, K5E       \
-) { \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  K5A,  K5B,  K5C,  K5D,  K5E }  \
-}
-
-#define LAYOUT_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,      \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    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,      K3D, K3E, \
-    K40,      K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,      \
-    K50, K51, K52,                K56,           K59, K5A, K5B, K5C, K5D, K5E  \
-) { \
-    { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  ___ }, \
-    { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1D,  K1E }, \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  ___,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  K5A,  K5B,  K5C,  K5D,  K5E }  \
-}
-
-#define LAYOUT_ansi_split_bs( \
-    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, K0E, 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,      K3D,      K3E, \
-    K40,      K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,           \
-    K50, K51, K52,                K56,           K59, K5A, K5B, K5C, K5D, K5E       \
-) { \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  ___,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  K5A,  K5B,  K5C,  K5D,  K5E }  \
-}
-
-#define LAYOUT_ansi_rwkl( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,      \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    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,      K3D, K3E, \
-    K40,      K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,      \
-    K50, K51, K52,                K56,           K59, K5B,      K5C, K5D, K5E  \
-) { \
-    { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  ___ }, \
-    { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1D,  K1E }, \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  ___,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  ___,  K5B,  K5C,  K5D,  K5E }  \
-}
-
-#define LAYOUT_ansi_rwkl_split_bs( \
-    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, K0E, 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,      K3D,      K3E, \
-    K40,      K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,           \
-    K50, K51, K52,                K56,           K59, K5B,      K5C, K5D, K5E       \
-) { \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  ___,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  ___,  K5B,  K5C,  K5D,  K5E }  \
-}
-
-#define LAYOUT_iso( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,      \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    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, K2D, K3D, K3E, \
-    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,      \
-    K50, K51, K52,                K56,           K59, K5A, K5B, K5C, K5D, K5E  \
-) { \
-    { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  ___ }, \
-    { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1D,  K1E }, \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  K5A,  K5B,  K5C,  K5D,  K5E }  \
-}
-
-#define LAYOUT_iso_split_bs( \
-    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, K0E, 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, K2D, K3D,      K3E, \
-    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,           \
-    K50, K51, K52,                K56,           K59, K5A, K5B, K5C, K5D, K5E       \
-) { \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  K5A,  K5B,  K5C,  K5D,  K5E }  \
-}
-
-#define LAYOUT_iso_rwkl( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,      \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
-    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, K2D, K3D, K3E, \
-    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,      \
-    K50, K51, K52,                K56,           K59, K5B,      K5C, K5D, K5E  \
-) { \
-    { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  ___ }, \
-    { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1D,  K1E }, \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  ___,  K5B,  K5C,  K5D,  K5E }  \
-}
-
-#define LAYOUT_iso_rwkl_split_bs( \
-    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, K0E, 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, K2D, K3D,      K3E, \
-    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D,           \
-    K50, K51, K52,                K56,           K59, K5B,      K5C, K5D, K5E       \
-) { \
-    { 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,  ___,  K3D,  K3E }, \
-    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  K4C,  K4D,  ___ }, \
-    { K50,  K51,  K52,  ___,  ___,  ___,  K56,  ___,  ___,  K59,  ___,  K5B,  K5C,  K5D,  K5E }  \
-}

+ 0 - 112
keyboards/crin/crin.h

@@ -1,112 +0,0 @@
-/*
-Copyright 2020 KnoblesseOblige
-
-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 kxx KC_NO
-
-/*
- *                                                                  ┌───────┐
- *                                                     2u Backspace │0d     │
- *                                                                  └───────┘
- *              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐
- *              │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ │0e │0f │0g │
- *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤        ┌─────┐
- *              │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │ │1e │1f │1g │        │     │ ISO
- *  2.25u       ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘     ┌──┴┐2c  │ Enter
- *  LShift      │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c      │                   │1d │    │
- * ┌────────┐   ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤     ┌───┐       ┌─┴───┴────┤
- * │30      │   │30  │41 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b    │3d │     │3f │       │3b        │ 2.75u RShift
- * └────────┘   ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐   └──────────┘
- *              │40  │42  │43  │           45           │49  │4a  │4b  │4d  │ │4e │4f │4g │
- *              └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
- *              ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
- *              │40   │42 │43   │            45             │4a   │4b │4d   │ Tsangan
- *              └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- */
-
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d,   k0e, k0f, k0g, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,        k1e, k1f, k1g, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2c,                       \
-    k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d,             k3f,      \
-    k40, k42, k43,                k45,                k49, k4a, k4b, k4d,        k4e, k4f, k4g  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, kxx, kxx, kxx }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, k3d, kxx, k3f, kxx }, \
-    { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
-}
-
-#define LAYOUT_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,   k0e, k0f, k0g, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,   k1e, k1f, k1g, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2c,                  \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a,      k3b,        k3f,      \
-    k40, k42, k43,                k45,                k49, k4a, k4b, k4d,   k4e, k4f, k4g  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
-    { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
-}
-
-#define LAYOUT_ansi_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,   k0e, k0f, k0g, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,   k1e, k1f, k1g, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2c,                  \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a,      k3b,        k3f,      \
-    k40, k42, k43,                k45,                     k4a, k4b, k4d,   k4e, k4f, k4g  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
-    { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
-}
-
-#define LAYOUT_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,   k0e, k0f, k0g, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,        k1e, k1f, k1g, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, k2c,                  \
-    k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a,      k3b,        k3f,      \
-    k40, k42, k43,                k45,                k49, k4a, k4b, k4d,   k4e, k4f, k4g  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
-    { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
-}
-
-#define LAYOUT_iso_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,   k0e, k0f, k0g, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,        k1e, k1f, k1g, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, k2c,                  \
-    k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a,      k3b,        k3f,      \
-    k40, k42, k43,                k45,                     k4a, k4b, k4d,   k4e, k4f, k4g  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \
-    { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \
-}

+ 398 - 378
keyboards/crin/info.json

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

+ 0 - 57
keyboards/cutie_club/borsdorf/borsdorf.h

@@ -1,57 +0,0 @@
-/* Copyright 2020 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"
-
-/* 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_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,      k0D,  k0E, \
-    k10,      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,       \
-    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,   KC_NO, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1A,   k1B,   k1C,   k1D,          k1E},   \
-  {k20,   KC_NO, 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, KC_NO, k46,   KC_NO, KC_NO, KC_NO, k4A,   k4B,          k4C,   k4D,   k4E}    \
-}
-
-#define LAYOUT_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C,      k0D,  k0E, \
-    k10,      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,       \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C,      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,   KC_NO, k12,   k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1A,   k1B,   k1C,   k1D,          k1E},   \
-  {k20,   KC_NO, 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,   KC_NO, k3E       },   \
-  {k40,   k41,   k42,   KC_NO, KC_NO, KC_NO, k46,   KC_NO, KC_NO, KC_NO, k4A,   k4B,          k4C,   k4D,   k4E}    \
-}

+ 137 - 133
keyboards/cutie_club/borsdorf/info.json

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

+ 0 - 157
keyboards/cutie_club/keebcats/denis/denis.h

@@ -1,157 +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
-
-#define LAYOUT_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, 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,           k44, k46, k48,           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, ___ }, \
-    { 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, ___, k44, ___, k46, ___, k48, ___, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_60_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,      k2D, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, \
-    k40, k41, k42,                k46,                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, ___ }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___ }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, ___ }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    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,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,      k2D,      \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D,      \
-    k40, k41, k42,                k46,                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, ___ }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___ }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_60_ansi_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, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,      k2D, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3C, \
-    k40, k41, k42,                k46,                     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, ___ }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___ }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, ___ }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_60_hhkb( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,      k2D,      \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D,      \
-         k41, k42,                k46,                     k4B, k4C            \
-) \
-{ \
-    { 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, ___ }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___ }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { ___, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, ___, ___ }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,      k2D,      \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D,      \
-    k40, k41, k42,                k46,                     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, ___ }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, ___ }, \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, ___ }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, k4D, ___ }  \
-}
-
-
-#define LAYOUT_60_iso( \
-    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,      \
-    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,      \
-    k40, k41, k42,                k46,                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, ___, ___ }, \
-    { 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, ___, ___ }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_60_iso_split_bs_rshift( \
-    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,           \
-    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,                k46,                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, ___, ___ }, \
-    { 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, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, ___ }  \
-}
-
-#define LAYOUT_60_iso_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,      \
-    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,      \
-    k40, k41, k42,                k46,                     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, ___, ___ }, \
-    { 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, ___, ___ }, \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, ___, k4B, k4C, k4D, ___ }  \
-}

+ 596 - 596
keyboards/cutie_club/keebcats/denis/info.json

@@ -22,634 +22,634 @@
     "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":"`~", "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":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"#~", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":2, "w":1.25},
-
-                {"label":"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":"Fn", "x":14, "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":2.25},
-                {"label":"Space", "x":6, "y":4, "w":1.25},
-                {"label":"Space", "x":7.25, "y":4, "w":2.75},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"GUI", "x":11.25, "y":4, "w":1.25},
-                {"label":"App", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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": [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": [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": [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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_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":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"[{", "x":11.5, "y":1},
-                {"label":"]}", "x":12.5, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'@", "x":11.75, "y":2},
-                {"label":"#~", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"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":"App", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso_split_bs_rshift": {
             "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":"`~", "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":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'@", "x":11.75, "y":2},
-                {"label":"#~", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Fn", "x":14, "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":"App", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_iso_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":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"[{", "x":11.5, "y":1},
-                {"label":"]}", "x":12.5, "y":1},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'@", "x":11.75, "y":2},
-                {"label":"#~", "x":12.75, "y":2},
-                {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
-
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"\\|", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.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":"GUI", "x":12.5, "y":4},
-                {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"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": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_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":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"[{", "x":11.5, "y":1},
-                {"label":"]}", "x":12.5, "y":1},
-                {"label":"\\|", "x":13.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"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":"App", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
             "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":"`~", "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":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Fn", "x":14, "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":"App", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_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":"Tab", "x":0, "y":1, "w":1.5},
-                {"label":"Q", "x":1.5, "y":1},
-                {"label":"W", "x":2.5, "y":1},
-                {"label":"E", "x":3.5, "y":1},
-                {"label":"R", "x":4.5, "y":1},
-                {"label":"T", "x":5.5, "y":1},
-                {"label":"Y", "x":6.5, "y":1},
-                {"label":"U", "x":7.5, "y":1},
-                {"label":"I", "x":8.5, "y":1},
-                {"label":"O", "x":9.5, "y":1},
-                {"label":"P", "x":10.5, "y":1},
-                {"label":"[{", "x":11.5, "y":1},
-                {"label":"]}", "x":12.5, "y":1},
-                {"label":"\\|", "x":13.5, "y":1, "w":1.5},
-
-                {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
-
-                {"label":"Ctrl", "x":0, "y":4, "w":1.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":"GUI", "x":12.5, "y":4},
-                {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 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": 2.75},
+
+                {"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": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_hhkb": {
             "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":"`~", "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":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Fn", "x":14, "y":3},
-
-                {"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":"GUI", "x":12.5, "y":4}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0},
+                {"matrix": [0, 14], "x": 14, "y": 0},
+
+                {"matrix": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4}
             ]
         },
         "LAYOUT_60_tsangan_hhkb": {
             "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":"`~", "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":"Caps Lock", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":";:", "x":10.75, "y":2},
-                {"label":"'\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
-
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":",<", "x":9.25, "y":3},
-                {"label":".>", "x":10.25, "y":3},
-                {"label":"/?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":1.75},
-                {"label":"Fn", "x":14, "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":"GUI", "x":12.5, "y":4},
-                {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 266 - 161
keyboards/cutie_club/wraith/info.json

@@ -20,173 +20,278 @@
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
     "layouts": {
+        "LAYOUT_all": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [1, 0], "x": 1, "y": 0},
+                {"matrix": [0, 1], "x": 2, "y": 0},
+                {"matrix": [1, 1], "x": 3, "y": 0},
+                {"matrix": [0, 2], "x": 4, "y": 0},
+                {"matrix": [1, 2], "x": 5, "y": 0},
+                {"matrix": [0, 3], "x": 6, "y": 0},
+                {"matrix": [1, 3], "x": 7, "y": 0},
+                {"matrix": [0, 4], "x": 8, "y": 0},
+                {"matrix": [1, 4], "x": 9, "y": 0},
+                {"matrix": [0, 5], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "y": 0},
+                {"matrix": [0, 6], "x": 12, "y": 0},
+                {"matrix": [1, 6], "x": 13, "y": 0},
+                {"matrix": [0, 7], "x": 14, "y": 0},
+                {"matrix": [2, 0], "x": 15, "y": 0},
+                {"matrix": [3, 0], "x": 16, "y": 0},
+                {"matrix": [2, 1], "x": 17, "y": 0},
+                {"matrix": [3, 1], "x": 18, "y": 0},
+                {"matrix": [2, 2], "x": 19, "y": 0},
+                {"matrix": [3, 2], "x": 20, "y": 0},
+                {"matrix": [2, 3], "x": 21, "y": 0},
+                {"matrix": [3, 3], "x": 22, "y": 0},
+                {"matrix": [2, 4], "x": 23, "y": 0},
+                {"matrix": [3, 4], "x": 24, "y": 0},
+                {"matrix": [2, 5], "x": 25, "y": 0},
+                {"matrix": [3, 5], "x": 26, "y": 0},
+                {"matrix": [2, 6], "x": 27, "y": 0},
+                {"matrix": [3, 6], "x": 28, "y": 0},
+                {"matrix": [2, 7], "x": 29, "y": 0},
+                {"matrix": [4, 0], "x": 30, "y": 0},
+                {"matrix": [5, 0], "x": 31, "y": 0},
+                {"matrix": [4, 1], "x": 32, "y": 0},
+                {"matrix": [5, 1], "x": 33, "y": 0},
+                {"matrix": [4, 2], "x": 34, "y": 0},
+                {"matrix": [5, 2], "x": 35, "y": 0},
+                {"matrix": [4, 3], "x": 36, "y": 0},
+                {"matrix": [5, 3], "x": 37, "y": 0},
+                {"matrix": [4, 4], "x": 38, "y": 0},
+                {"matrix": [5, 4], "x": 39, "y": 0},
+                {"matrix": [4, 5], "x": 40, "y": 0},
+                {"matrix": [5, 5], "x": 41, "y": 0},
+                {"matrix": [4, 6], "x": 42, "y": 0},
+                {"matrix": [4, 7], "x": 43, "y": 0},
+                {"matrix": [6, 0], "x": 44, "y": 0},
+                {"matrix": [7, 0], "x": 45, "y": 0},
+                {"matrix": [6, 1], "x": 46, "y": 0},
+                {"matrix": [7, 1], "x": 47, "y": 0},
+                {"matrix": [6, 2], "x": 48, "y": 0},
+                {"matrix": [7, 2], "x": 49, "y": 0},
+                {"matrix": [6, 3], "x": 50, "y": 0},
+                {"matrix": [7, 3], "x": 51, "y": 0},
+                {"matrix": [6, 4], "x": 52, "y": 0},
+                {"matrix": [7, 4], "x": 53, "y": 0},
+                {"matrix": [6, 5], "x": 54, "y": 0},
+                {"matrix": [7, 5], "x": 55, "y": 0},
+                {"matrix": [6, 6], "x": 56, "y": 0},
+                {"matrix": [7, 6], "x": 57, "y": 0},
+                {"matrix": [6, 7], "x": 58, "y": 0},
+                {"matrix": [8, 0], "x": 59, "y": 0},
+                {"matrix": [9, 0], "x": 60, "y": 0},
+                {"matrix": [8, 1], "x": 61, "y": 0},
+                {"matrix": [9, 1], "x": 62, "y": 0},
+                {"matrix": [8, 2], "x": 63, "y": 0},
+                {"matrix": [9, 2], "x": 64, "y": 0},
+                {"matrix": [8, 3], "x": 65, "y": 0},
+                {"matrix": [9, 3], "x": 66, "y": 0},
+                {"matrix": [8, 4], "x": 67, "y": 0},
+                {"matrix": [9, 4], "x": 68, "y": 0},
+                {"matrix": [8, 5], "x": 69, "y": 0},
+                {"matrix": [9, 5], "x": 70, "y": 0},
+                {"matrix": [8, 6], "x": 71, "y": 0},
+                {"matrix": [9, 6], "x": 72, "y": 0},
+                {"matrix": [8, 7], "x": 73, "y": 0},
+                {"matrix": [10, 0], "x": 74, "y": 0},
+                {"matrix": [10, 1], "x": 75, "y": 0},
+                {"matrix": [10, 3], "x": 76, "y": 0},
+                {"matrix": [11, 5], "x": 77, "y": 0},
+                {"matrix": [10, 6], "x": 78, "y": 0},
+                {"matrix": [11, 6], "x": 79, "y": 0},
+                {"matrix": [10, 7], "x": 80, "y": 0}
+            ]
+        },
         "LAYOUT_ansi": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"Prt Sc", "x":14, "y":0},
-                {"label":"Fn", "x":15, "y":0},
-                {"label":"~", "x":0, "y":1},
-                {"label":"!", "x":1, "y":1},
-                {"label":"@", "x":2, "y":1},
-                {"label":"#", "x":3, "y":1},
-                {"label":"$", "x":4, "y":1},
-                {"label":"%", "x":5, "y":1},
-                {"label":"^", "x":6, "y":1},
-                {"label":"&", "x":7, "y":1},
-                {"label":"*", "x":8, "y":1},
-                {"label":"(", "x":9, "y":1},
-                {"label":")", "x":10, "y":1},
-                {"label":"_", "x":11, "y":1},
-                {"label":"+", "x":12, "y":1},
-                {"label":"Backspace", "x":13, "y":1, "w":2},
-                {"label":"Insert", "x":15, "y":1},
-                {"label":"Tab", "x":0, "y":2, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2},
-                {"label":"W", "x":2.5, "y":2},
-                {"label":"E", "x":3.5, "y":2},
-                {"label":"R", "x":4.5, "y":2},
-                {"label":"T", "x":5.5, "y":2},
-                {"label":"Y", "x":6.5, "y":2},
-                {"label":"U", "x":7.5, "y":2},
-                {"label":"I", "x":8.5, "y":2},
-                {"label":"O", "x":9.5, "y":2},
-                {"label":"P", "x":10.5, "y":2},
-                {"label":"{", "x":11.5, "y":2},
-                {"label":"}", "x":12.5, "y":2},
-                {"label":"|", "x":13.5, "y":2, "w":1.5},
-                {"label":"Delete", "x":15, "y":2},
-                {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
-                {"label":"A", "x":1.75, "y":3},
-                {"label":"S", "x":2.75, "y":3},
-                {"label":"D", "x":3.75, "y":3},
-                {"label":"F", "x":4.75, "y":3},
-                {"label":"G", "x":5.75, "y":3},
-                {"label":"H", "x":6.75, "y":3},
-                {"label":"J", "x":7.75, "y":3},
-                {"label":"K", "x":8.75, "y":3},
-                {"label":"L", "x":9.75, "y":3},
-                {"label":":", "x":10.75, "y":3},
-                {"label":"\"", "x":11.75, "y":3},
-                {"label":"Enter", "x":12.75, "y":3, "w":2.25},
-                {"label":"Pg Up", "x":15, "y":3},
-                {"label":"Shift", "x":0, "y":4, "w":2.25},
-                {"label":"Z", "x":2.25, "y":4},
-                {"label":"X", "x":3.25, "y":4},
-                {"label":"C", "x":4.25, "y":4},
-                {"label":"V", "x":5.25, "y":4},
-                {"label":"B", "x":6.25, "y":4},
-                {"label":"N", "x":7.25, "y":4},
-                {"label":"M", "x":8.25, "y":4},
-                {"label":"<", "x":9.25, "y":4},
-                {"label":">", "x":10.25, "y":4},
-                {"label":"?", "x":11.25, "y":4},
-                {"label":"Shift", "x":12.25, "y":4, "w":1.75},
-                {"label":"\u2191", "x":14, "y":4},
-                {"label":"Pg Dn", "x":15, "y":4},
-                {"label":"Ctrl", "x":0, "y":5, "w":1.5},
-                {"label":"Alt", "x":2.25, "y":5, "w":1.5},
-                {"x":3.75, "y":5, "w":7},
-                {"label":"Alt", "x":10.75, "y":5, "w":1.5},
-                {"label":"\u2190", "x":13, "y":5},
-                {"label":"\u2193", "x":14, "y":5},
-                {"label":"\u2192", "x":15, "y":5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [1, 0], "x": 1.25, "y": 0},
+                {"matrix": [0, 1], "x": 2.25, "y": 0},
+                {"matrix": [1, 1], "x": 3.25, "y": 0},
+                {"matrix": [0, 2], "x": 4.25, "y": 0},
+
+                {"matrix": [1, 2], "x": 5.5, "y": 0},
+                {"matrix": [0, 3], "x": 6.5, "y": 0},
+                {"matrix": [1, 3], "x": 7.5, "y": 0},
+                {"matrix": [0, 4], "x": 8.5, "y": 0},
+
+                {"matrix": [1, 4], "x": 9.75, "y": 0},
+                {"matrix": [0, 5], "x": 10.75, "y": 0},
+                {"matrix": [1, 5], "x": 11.75, "y": 0},
+                {"matrix": [0, 6], "x": 12.75, "y": 0},
+
+                {"matrix": [1, 6], "x": 14, "y": 0},
+                {"matrix": [0, 7], "x": 15, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [2, 1], "x": 2, "y": 1},
+                {"matrix": [3, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [2, 3], "x": 6, "y": 1},
+                {"matrix": [3, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [2, 5], "x": 10, "y": 1},
+                {"matrix": [3, 5], "x": 11, "y": 1},
+                {"matrix": [2, 6], "x": 12, "y": 1},
+                {"matrix": [3, 6], "x": 13, "y": 1, "w": 2},
+                {"matrix": [2, 7], "x": 15, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.5},
+                {"matrix": [5, 0], "x": 1.5, "y": 2},
+                {"matrix": [4, 1], "x": 2.5, "y": 2},
+                {"matrix": [5, 1], "x": 3.5, "y": 2},
+                {"matrix": [4, 2], "x": 4.5, "y": 2},
+                {"matrix": [5, 2], "x": 5.5, "y": 2},
+                {"matrix": [4, 3], "x": 6.5, "y": 2},
+                {"matrix": [5, 3], "x": 7.5, "y": 2},
+                {"matrix": [4, 4], "x": 8.5, "y": 2},
+                {"matrix": [5, 4], "x": 9.5, "y": 2},
+                {"matrix": [4, 5], "x": 10.5, "y": 2},
+                {"matrix": [5, 5], "x": 11.5, "y": 2},
+                {"matrix": [4, 6], "x": 12.5, "y": 2},
+                {"matrix": [6, 6], "x": 13.5, "y": 2, "w": 1.5},
+                {"matrix": [4, 7], "x": 15, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.75},
+                {"matrix": [7, 0], "x": 1.75, "y": 3},
+                {"matrix": [6, 1], "x": 2.75, "y": 3},
+                {"matrix": [7, 1], "x": 3.75, "y": 3},
+                {"matrix": [6, 2], "x": 4.75, "y": 3},
+                {"matrix": [7, 2], "x": 5.75, "y": 3},
+                {"matrix": [6, 3], "x": 6.75, "y": 3},
+                {"matrix": [7, 3], "x": 7.75, "y": 3},
+                {"matrix": [6, 4], "x": 8.75, "y": 3},
+                {"matrix": [7, 4], "x": 9.75, "y": 3},
+                {"matrix": [6, 5], "x": 10.75, "y": 3},
+                {"matrix": [7, 5], "x": 11.75, "y": 3},
+                {"matrix": [7, 6], "x": 12.75, "y": 3, "w": 2.25},
+                {"matrix": [6, 7], "x": 15, "y": 3},
+
+                {"matrix": [8, 0], "x": 0, "y": 4, "w": 2.25},
+                {"matrix": [8, 1], "x": 2.25, "y": 4},
+                {"matrix": [9, 1], "x": 3.25, "y": 4},
+                {"matrix": [8, 2], "x": 4.25, "y": 4},
+                {"matrix": [9, 2], "x": 5.25, "y": 4},
+                {"matrix": [8, 3], "x": 6.25, "y": 4},
+                {"matrix": [9, 3], "x": 7.25, "y": 4},
+                {"matrix": [8, 4], "x": 8.25, "y": 4},
+                {"matrix": [9, 4], "x": 9.25, "y": 4},
+                {"matrix": [8, 5], "x": 10.25, "y": 4},
+                {"matrix": [9, 5], "x": 11.25, "y": 4},
+                {"matrix": [8, 6], "x": 12.25, "y": 4, "w": 1.75},
+                {"matrix": [9, 6], "x": 14, "y": 4},
+                {"matrix": [8, 7], "x": 15, "y": 4},
+
+                {"matrix": [10, 0], "x": 0, "y": 5, "w": 1.5},
+                {"matrix": [10, 1], "x": 2.25, "y": 5, "w": 1.5},
+                {"matrix": [10, 3], "x": 3.75, "y": 5, "w": 7},
+                {"matrix": [11, 5], "x": 10.75, "y": 5, "w": 1.5},
+
+                {"matrix": [10, 6], "x": 13, "y": 5},
+                {"matrix": [11, 6], "x": 14, "y": 5},
+                {"matrix": [10, 7], "x": 15, "y": 5}
             ]
         },
         "LAYOUT_iso": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"F1", "x":1.25, "y":0},
-                {"label":"F2", "x":2.25, "y":0},
-                {"label":"F3", "x":3.25, "y":0},
-                {"label":"F4", "x":4.25, "y":0},
-                {"label":"F5", "x":5.5, "y":0},
-                {"label":"F6", "x":6.5, "y":0},
-                {"label":"F7", "x":7.5, "y":0},
-                {"label":"F8", "x":8.5, "y":0},
-                {"label":"F9", "x":9.75, "y":0},
-                {"label":"F10", "x":10.75, "y":0},
-                {"label":"F11", "x":11.75, "y":0},
-                {"label":"F12", "x":12.75, "y":0},
-                {"label":"Prt Sc", "x":14, "y":0},
-                {"label":"Fn", "x":15, "y":0},
-                {"label":"~", "x":0, "y":1},
-                {"label":"!", "x":1, "y":1},
-                {"label":"\"", "x":2, "y":1},
-                {"label":"\u00a3", "x":3, "y":1},
-                {"label":"$", "x":4, "y":1},
-                {"label":"%", "x":5, "y":1},
-                {"label":"^", "x":6, "y":1},
-                {"label":"&", "x":7, "y":1},
-                {"label":"*", "x":8, "y":1},
-                {"label":"(", "x":9, "y":1},
-                {"label":")", "x":10, "y":1},
-                {"label":"_", "x":11, "y":1},
-                {"label":"+", "x":12, "y":1},
-                {"label":"Backspace", "x":13, "y":1, "w":2},
-                {"label":"Insert", "x":15, "y":1},
-                {"label":"Tab", "x":0, "y":2, "w":1.5},
-                {"label":"Q", "x":1.5, "y":2},
-                {"label":"W", "x":2.5, "y":2},
-                {"label":"E", "x":3.5, "y":2},
-                {"label":"R", "x":4.5, "y":2},
-                {"label":"T", "x":5.5, "y":2},
-                {"label":"Y", "x":6.5, "y":2},
-                {"label":"U", "x":7.5, "y":2},
-                {"label":"I", "x":8.5, "y":2},
-                {"label":"O", "x":9.5, "y":2},
-                {"label":"P", "x":10.5, "y":2},
-                {"label":"{", "x":11.5, "y":2},
-                {"label":"}", "x":12.5, "y":2},
-                {"label":"Delete", "x":15, "y":2},
-                {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
-                {"label":"A", "x":1.75, "y":3},
-                {"label":"S", "x":2.75, "y":3},
-                {"label":"D", "x":3.75, "y":3},
-                {"label":"F", "x":4.75, "y":3},
-                {"label":"G", "x":5.75, "y":3},
-                {"label":"H", "x":6.75, "y":3},
-                {"label":"J", "x":7.75, "y":3},
-                {"label":"K", "x":8.75, "y":3},
-                {"label":"L", "x":9.75, "y":3},
-                {"label":":", "x":10.75, "y":3},
-                {"label":"@", "x":11.75, "y":3},
-                {"label":"~", "x":12.75, "y":3},
-                {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2},
-                {"label":"Pg Up", "x":15, "y":3},
-                {"label":"Shift", "x":0, "y":4, "w":1.25},
-                {"label":"|", "x":1.25, "y":4},
-                {"label":"Z", "x":2.25, "y":4},
-                {"label":"X", "x":3.25, "y":4},
-                {"label":"C", "x":4.25, "y":4},
-                {"label":"V", "x":5.25, "y":4},
-                {"label":"B", "x":6.25, "y":4},
-                {"label":"N", "x":7.25, "y":4},
-                {"label":"M", "x":8.25, "y":4},
-                {"label":"<", "x":9.25, "y":4},
-                {"label":">", "x":10.25, "y":4},
-                {"label":"?", "x":11.25, "y":4},
-                {"label":"Shift", "x":12.25, "y":4, "w":1.75},
-                {"label":"\u2191", "x":14, "y":4},
-                {"label":"Pg Dn", "x":15, "y":4},
-                {"label":"Ctrl", "x":0, "y":5, "w":1.5},
-                {"label":"Alt", "x":2.25, "y":5, "w":1.5},
-                {"x":3.75, "y":5, "w":7},
-                {"label":"Alt", "x":10.75, "y":5, "w":1.5},
-                {"label":"\u2190", "x":13, "y":5},
-                {"label":"\u2193", "x":14, "y":5},
-                {"label":"\u2192", "x":15, "y":5}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [1, 0], "x": 1.25, "y": 0},
+                {"matrix": [0, 1], "x": 2.25, "y": 0},
+                {"matrix": [1, 1], "x": 3.25, "y": 0},
+                {"matrix": [0, 2], "x": 4.25, "y": 0},
+
+                {"matrix": [1, 2], "x": 5.5, "y": 0},
+                {"matrix": [0, 3], "x": 6.5, "y": 0},
+                {"matrix": [1, 3], "x": 7.5, "y": 0},
+                {"matrix": [0, 4], "x": 8.5, "y": 0},
+
+                {"matrix": [1, 4], "x": 9.75, "y": 0},
+                {"matrix": [0, 5], "x": 10.75, "y": 0},
+                {"matrix": [1, 5], "x": 11.75, "y": 0},
+                {"matrix": [0, 6], "x": 12.75, "y": 0},
+
+                {"matrix": [1, 6], "x": 14, "y": 0},
+                {"matrix": [0, 7], "x": 15, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1},
+                {"matrix": [3, 0], "x": 1, "y": 1},
+                {"matrix": [2, 1], "x": 2, "y": 1},
+                {"matrix": [3, 1], "x": 3, "y": 1},
+                {"matrix": [2, 2], "x": 4, "y": 1},
+                {"matrix": [3, 2], "x": 5, "y": 1},
+                {"matrix": [2, 3], "x": 6, "y": 1},
+                {"matrix": [3, 3], "x": 7, "y": 1},
+                {"matrix": [2, 4], "x": 8, "y": 1},
+                {"matrix": [3, 4], "x": 9, "y": 1},
+                {"matrix": [2, 5], "x": 10, "y": 1},
+                {"matrix": [3, 5], "x": 11, "y": 1},
+                {"matrix": [2, 6], "x": 12, "y": 1},
+                {"matrix": [3, 6], "x": 13, "y": 1, "w": 2},
+                {"matrix": [2, 7], "x": 15, "y": 1},
+
+                {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.5},
+                {"matrix": [5, 0], "x": 1.5, "y": 2},
+                {"matrix": [4, 1], "x": 2.5, "y": 2},
+                {"matrix": [5, 1], "x": 3.5, "y": 2},
+                {"matrix": [4, 2], "x": 4.5, "y": 2},
+                {"matrix": [5, 2], "x": 5.5, "y": 2},
+                {"matrix": [4, 3], "x": 6.5, "y": 2},
+                {"matrix": [5, 3], "x": 7.5, "y": 2},
+                {"matrix": [4, 4], "x": 8.5, "y": 2},
+                {"matrix": [5, 4], "x": 9.5, "y": 2},
+                {"matrix": [4, 5], "x": 10.5, "y": 2},
+                {"matrix": [5, 5], "x": 11.5, "y": 2},
+                {"matrix": [4, 6], "x": 12.5, "y": 2},
+                {"matrix": [4, 7], "x": 15, "y": 2},
+
+                {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.75},
+                {"matrix": [7, 0], "x": 1.75, "y": 3},
+                {"matrix": [6, 1], "x": 2.75, "y": 3},
+                {"matrix": [7, 1], "x": 3.75, "y": 3},
+                {"matrix": [6, 2], "x": 4.75, "y": 3},
+                {"matrix": [7, 2], "x": 5.75, "y": 3},
+                {"matrix": [6, 3], "x": 6.75, "y": 3},
+                {"matrix": [7, 3], "x": 7.75, "y": 3},
+                {"matrix": [6, 4], "x": 8.75, "y": 3},
+                {"matrix": [7, 4], "x": 9.75, "y": 3},
+                {"matrix": [6, 5], "x": 10.75, "y": 3},
+                {"matrix": [7, 5], "x": 11.75, "y": 3},
+                {"matrix": [6, 6], "x": 12.75, "y": 3},
+                {"matrix": [7, 6], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+                {"matrix": [6, 7], "x": 15, "y": 3},
+
+                {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [9, 0], "x": 1.25, "y": 4},
+                {"matrix": [8, 1], "x": 2.25, "y": 4},
+                {"matrix": [9, 1], "x": 3.25, "y": 4},
+                {"matrix": [8, 2], "x": 4.25, "y": 4},
+                {"matrix": [9, 2], "x": 5.25, "y": 4},
+                {"matrix": [8, 3], "x": 6.25, "y": 4},
+                {"matrix": [9, 3], "x": 7.25, "y": 4},
+                {"matrix": [8, 4], "x": 8.25, "y": 4},
+                {"matrix": [9, 4], "x": 9.25, "y": 4},
+                {"matrix": [8, 5], "x": 10.25, "y": 4},
+                {"matrix": [9, 5], "x": 11.25, "y": 4},
+                {"matrix": [8, 6], "x": 12.25, "y": 4, "w": 1.75},
+                {"matrix": [9, 6], "x": 14, "y": 4},
+                {"matrix": [8, 7], "x": 15, "y": 4},
+
+                {"matrix": [10, 0], "x": 0, "y": 5, "w": 1.5},
+                {"matrix": [10, 1], "x": 2.25, "y": 5, "w": 1.5},
+                {"matrix": [10, 3], "x": 3.75, "y": 5, "w": 7},
+                {"matrix": [11, 5], "x": 10.75, "y": 5, "w": 1.5},
+
+                {"matrix": [10, 6], "x": 13, "y": 5},
+                {"matrix": [11, 6], "x": 14, "y": 5},
+                {"matrix": [10, 7], "x": 15, "y": 5}
             ]
         }
     }

+ 1 - 1
keyboards/cutie_club/wraith/wraith.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 "wraith.h"
+#include "quantum.h"
 
 void matrix_init_kb(void) {
     setPinOutput(B0);

+ 0 - 84
keyboards/cutie_club/wraith/wraith.h

@@ -1,84 +0,0 @@
-/* Copyright 2019 Amber Holly
- *
- * 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, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07,\
-     K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27,\
-     K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46,      K47,\
-     K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67,\
-     K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K96, K87,\
-     KA0,      KA1,                KA3,                     KB5, KA6, KB6, KA7\
- ) { \
-     { K00, K01, K02, K03, K04, K05, K06, K07 }, \
-     { K10, K11, K12, K13, K14, K15, K16 }, \
-     { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-     { K30, K31, K32, K33, K34, K35, K36 }, \
-     { K40, K41, K42, K43, K44, K45, K46, K47}, \
-     { K50, K51, K52, K53, K54, K55, KC_NO }, \
-     { K60, K61, K62, K63, K64, K65, K66, K67 }, \
-     { K70, K71, K72, K73, K74, K75, K76 }, \
-     { K80, K81, K82, K83, K84, K85, K86, K87 }, \
-     { K90, K91, K92, K93, K94, K95, K96 }, \
-     { KA0, KA1, KC_NO, KA3, KC_NO, KC_NO, KA6, KA7 }, \
-     { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KB6 } \
-}
-
- #define LAYOUT_iso( \
-    K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07,\
-    K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27,\
-    K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46,      K47,\
-    K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67,\
-    K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K96, K87,\
-    KA0,      KA1,                KA3,                     KB5, KA6, KB6, KA7\
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K10, K11, K12, K13, K14, K15, K16 }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K30, K31, K32, K33, K34, K35, K36 }, \
-    { K40, K41, K42, K43, K44, K45, K46, K47}, \
-    { K50, K51, K52, K53, K54, K55, KC_NO }, \
-    { K60, K61, K62, K63, K64, K65, K66, K67 }, \
-    { K70, K71, K72, K73, K74, K75, K76 }, \
-    { K80, K81, K82, K83, K84, K85, K86, K87 }, \
-    { K90, K91, K92, K93, K94, K95, K96 }, \
-    { KA0, KA1, KC_NO, KA3, KC_NO, KC_NO, KA6, KA7 }, \
-    { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KB6 } \
-}
-
-#define LAYOUT_ansi( \
-    K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07,\
-    K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27,\
-    K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K66, K47,\
-    K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76,      K67,\
-    K80,      K81, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K96, K87,\
-    KA0,      KA1,                KA3,                     KB5, KA6, KB6, KA7\
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K10, K11, K12, K13, K14, K15, K16 }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K30, K31, K32, K33, K34, K35, K36 }, \
-    { K40, K41, K42, K43, K44, K45, K46, K47}, \
-    { K50, K51, K52, K53, K54, K55, KC_NO }, \
-    { K60, K61, K62, K63, K64, K65, K66, K67 }, \
-    { K70, K71, K72, K73, K74, K75, K76 }, \
-    { K80, K81, K82, K83, K84, K85, K86, K87 }, \
-    { KC_NO, K91, K92, K93, K94, K95, K96 }, \
-    { KA0, KA1, KC_NO, KA3, KC_NO, KC_NO, KA6, KA7 }, \
-    { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KB6 } \
-}

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
keyboards/dc01/left/info.json


+ 0 - 48
keyboards/dc01/left/left.h

@@ -1,48 +0,0 @@
-/* Copyright 2018 Yiancar
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_all( \
-    K00, K01, K02, K03, K04, K05, K45,        K07, K08, K09, K0A, K0B, K0C, K0D, K06,   K0E, K0F, K0G,   K0H, K0J, K0K, K0L, \
-    K10, K11, K12, K13, K14, K15,        K16, K17, K18, K19, K1A, K1B, K1C, K1D,        K1E, K1F, K1G,   K1H, K1J, K1K, K1L, \
-    K20, K21, K22, K23, K24, K25,        K26, K27, K28, K29, K2A, K2B, K2C, K2D,                         K2H, K2J, K2K, K2L, \
-    K30, K44, K31, K32, K33, K34, K35,   K36, K37, K38, K39, K3A,      K3C, K3D,             K3F,        K3H, K3J, K3K, K3L, \
-    K40, K41, K42, K43,                  K46, K47, K48, K49, K4A, K4B,                  K4E, K4F, K4G,   K4H, K4J, K4K, K4L  \
-) { \
-    { K00, K01, K02, K03, K04, K05,   K06, K07, K08, K09, K0A, K0B, K0C, K0D,   K0E, K0F, K0G,   K0H, K0J, K0K, K0L }, \
-    { K10, K11, K12, K13, K14, K15,   K16, K17, K18, K19, K1A, K1B, K1C, K1D,   K1E, K1F, K1G,   K1H, K1J, K1K, K1L }, \
-    { K20, K21, K22, K23, K24, K25,   K26, K27, K28, K29, K2A, K2B, K2C, K2D,   XXX, XXX, XXX,   K2H, K2J, K2K, K2L }, \
-    { K30, K31, K32, K33, K34, K35,   K36, K37, K38, K39, K3A, XXX, K3C, K3D,   XXX, K3F, XXX,   K3H, K3J, K3K, K3L }, \
-    { K40, K41, K42, K43, K44, K45,   K46, K47, K48, K49, K4A, K4B, XXX, XXX,   K4E, K4F, K4G,   K4H, K4J, K4K, K4L }  \
-}
-
-#define LAYOUT_ansi( \
-    K00, K01, K02, K03, K04, K05, K45,        K07, K08, K09, K0A, K0B, K0C, K0D, K06,   K0E, K0F, K0G,   K0H, K0J, K0K, K0L, \
-    K10, K11, K12, K13, K14, K15,        K16, K17, K18, K19, K1A, K1B, K1C, K1D,        K1E, K1F, K1G,   K1H, K1J, K1K, K1L, \
-    K20, K21, K22, K23, K24, K25,        K26, K27, K28, K29, K2A, K2B,      K2D,                         K2H, K2J, K2K, K2L, \
-    K30, K31, K32, K33, K34, K35,        K36, K37, K38, K39, K3A,      K3C, K3D,             K3F,        K3H, K3J, K3K, K3L, \
-    K40, K41, K42, K43,                  K46, K47, K48, K49, K4A, K4B,                  K4E, K4F, K4G,   K4H, K4J, K4K, K4L  \
-) { \
-    { K00, K01, K02, K03, K04, K05,   K06, K07, K08, K09, K0A, K0B, K0C, K0D,   K0E, K0F, K0G,   K0H, K0J, K0K, K0L }, \
-    { K10, K11, K12, K13, K14, K15,   K16, K17, K18, K19, K1A, K1B, K1C, K1D,   K1E, K1F, K1G,   K1H, K1J, K1K, K1L }, \
-    { K20, K21, K22, K23, K24, K25,   K26, K27, K28, K29, K2A, K2B, XXX, K2D,   XXX, XXX, XXX,   K2H, K2J, K2K, K2L }, \
-    { K30, K31, K32, K33, K34, K35,   K36, K37, K38, K39, K3A, XXX, K3C, K3D,   XXX, K3F, XXX,   K3H, K3J, K3K, K3L }, \
-    { K40, K41, K42, K43, XXX, K45,   K46, K47, K48, K49, K4A, K4B, XXX, XXX,   K4E, K4F, K4G,   K4H, K4J, K4K, K4L }  \
-}

+ 86 - 3
keyboards/dc01/right/info.json

@@ -12,10 +12,93 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "LAYOUT_all": {
-            "layout": [{"label":"&", "x":0.5, "y":0}, {"label":"*", "x":1.5, "y":0}, {"label":"(", "x":2.5, "y":0}, {"label":")", "x":3.5, "y":0}, {"label":"_", "x":4.5, "y":0}, {"label":"+", "x":5.5, "y":0}, {"label":"Back", "x":6.5, "y":0}, {"label":"Del", "x":7.5, "y":0}, {"label":"Y", "x":0, "y":1}, {"label":"U", "x":1, "y":1}, {"label":"I", "x":2, "y":1}, {"label":"O", "x":3, "y":1}, {"label":"P", "x":4, "y":1}, {"label":"{", "x":5, "y":1}, {"label":"}", "x":6, "y":1}, {"label":"|", "x":7, "y":1, "w":1.5}, {"label":"H", "x":0.25, "y":2}, {"label":"J", "x":1.25, "y":2}, {"label":"K", "x":2.25, "y":2}, {"label":"L", "x":3.25, "y":2}, {"label":":", "x":4.25, "y":2}, {"label":"@", "x":5.25, "y":2}, {"label":"~", "x":6.25, "y":2}, {"label":"Enter", "x":7.25, "y":2, "w":1.25}, {"label":"N", "x":0.75, "y":3}, {"label":"M", "x":1.75, "y":3}, {"label":"<", "x":2.75, "y":3}, {"label":">", "x":3.75, "y":3}, {"label":"?", "x":4.75, "y":3}, {"label":"Shift", "x":5.75, "y":3, "w":1.75}, {"label":"Shift", "x":7.5, "y":3}, {"label":"Fn", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":2.25}, {"label":"AltGr", "x":3.5, "y":4, "w":1.25}, {"label":"Win", "x":4.75, "y":4, "w":1.25}, {"label":"Menu", "x":6, "y":4, "w":1.25}, {"label":"Ctrl", "x":7.25, "y":4, "w":1.25}]
+            "layout": [
+                {"matrix": [0, 1], "x": 0.5, "y": 0},
+                {"matrix": [0, 2], "x": 1.5, "y": 0},
+                {"matrix": [0, 3], "x": 2.5, "y": 0},
+                {"matrix": [0, 4], "x": 3.5, "y": 0},
+                {"matrix": [0, 5], "x": 4.5, "y": 0},
+                {"matrix": [0, 6], "x": 5.5, "y": 0},
+                {"matrix": [0, 7], "x": 6.5, "y": 0},
+                {"matrix": [0, 0], "x": 7.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.25, "y": 2},
+                {"matrix": [2, 1], "x": 1.25, "y": 2},
+                {"matrix": [2, 2], "x": 2.25, "y": 2},
+                {"matrix": [2, 3], "x": 3.25, "y": 2},
+                {"matrix": [2, 4], "x": 4.25, "y": 2},
+                {"matrix": [2, 5], "x": 5.25, "y": 2},
+                {"matrix": [2, 6], "x": 6.25, "y": 2},
+                {"matrix": [2, 7], "x": 7.25, "y": 2, "w": 1.25},
+
+                {"matrix": [3, 0], "x": 0.75, "y": 3},
+                {"matrix": [3, 1], "x": 1.75, "y": 3},
+                {"matrix": [3, 2], "x": 2.75, "y": 3},
+                {"matrix": [3, 3], "x": 3.75, "y": 3},
+                {"matrix": [3, 4], "x": 4.75, "y": 3},
+                {"matrix": [3, 6], "x": 5.75, "y": 3, "w": 1.75},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 2.25},
+                {"matrix": [4, 2], "x": 3.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 6, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 7.25, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_ansi": {
-            "layout": [{"label":"&", "x":0.5, "y":0}, {"label":"*", "x":1.5, "y":0}, {"label":"(", "x":2.5, "y":0}, {"label":")", "x":3.5, "y":0}, {"label":"_", "x":4.5, "y":0}, {"label":"+", "x":5.5, "y":0}, {"label":"Back", "x":6.5, "y":0}, {"label":"Del", "x":7.5, "y":0}, {"label":"Y", "x":0, "y":1}, {"label":"U", "x":1, "y":1}, {"label":"I", "x":2, "y":1}, {"label":"O", "x":3, "y":1}, {"label":"P", "x":4, "y":1}, {"label":"{", "x":5, "y":1}, {"label":"}", "x":6, "y":1}, {"label":"|", "x":7, "y":1, "w":1.5}, {"label":"H", "x":0.25, "y":2}, {"label":"J", "x":1.25, "y":2}, {"label":"K", "x":2.25, "y":2}, {"label":"L", "x":3.25, "y":2}, {"label":":", "x":4.25, "y":2}, {"label":"@", "x":5.25, "y":2}, {"label":"Enter", "x":6.25, "y":2, "w":2.25}, {"label":"N", "x":0.75, "y":3}, {"label":"M", "x":1.75, "y":3}, {"label":"<", "x":2.75, "y":3}, {"label":">", "x":3.75, "y":3}, {"label":"?", "x":4.75, "y":3}, {"label":"Shift", "x":5.75, "y":3, "w":1.75}, {"label":"Shift", "x":7.5, "y":3}, {"label":"Fn", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":2.25}, {"label":"AltGr", "x":3.5, "y":4, "w":1.25}, {"label":"Win", "x":4.75, "y":4, "w":1.25}, {"label":"Menu", "x":6, "y":4, "w":1.25}, {"label":"Ctrl", "x":7.25, "y":4, "w":1.25}]
-       }
+            "layout": [
+                {"matrix": [0, 1], "x": 0.5, "y": 0},
+                {"matrix": [0, 2], "x": 1.5, "y": 0},
+                {"matrix": [0, 3], "x": 2.5, "y": 0},
+                {"matrix": [0, 4], "x": 3.5, "y": 0},
+                {"matrix": [0, 5], "x": 4.5, "y": 0},
+                {"matrix": [0, 6], "x": 5.5, "y": 0},
+                {"matrix": [0, 7], "x": 6.5, "y": 0},
+                {"matrix": [0, 0], "x": 7.5, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+                {"matrix": [1, 6], "x": 6, "y": 1},
+                {"matrix": [1, 7], "x": 7, "y": 1, "w": 1.5},
+
+                {"matrix": [2, 0], "x": 0.25, "y": 2},
+                {"matrix": [2, 1], "x": 1.25, "y": 2},
+                {"matrix": [2, 2], "x": 2.25, "y": 2},
+                {"matrix": [2, 3], "x": 3.25, "y": 2},
+                {"matrix": [2, 4], "x": 4.25, "y": 2},
+                {"matrix": [2, 5], "x": 5.25, "y": 2},
+                {"matrix": [2, 7], "x": 6.25, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0.75, "y": 3},
+                {"matrix": [3, 1], "x": 1.75, "y": 3},
+                {"matrix": [3, 2], "x": 2.75, "y": 3},
+                {"matrix": [3, 3], "x": 3.75, "y": 3},
+                {"matrix": [3, 4], "x": 4.75, "y": 3},
+                {"matrix": [3, 6], "x": 5.75, "y": 3, "w": 1.75},
+                {"matrix": [3, 7], "x": 7.5, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 2.25},
+                {"matrix": [4, 2], "x": 3.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 4.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 4], "x": 6, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 7.25, "y": 4, "w": 1.25}
+            ]
+        }
     }
 }

+ 0 - 48
keyboards/dc01/right/right.h

@@ -1,48 +0,0 @@
-/* Copyright 2018 Yiancar
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_all( \
-         K01, K02, K03, K04, K05, K06, K07, K00, \
-    K10, K11, K12, K13, K14, K15, K16, K17,      \
-    K20, K21, K22, K23, K24, K25, K26, K27,      \
-    K30, K31, K32, K33, K34,      K36, K37,      \
-    K40, K41, K42, K43, K44, K45                 \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17 }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27 }, \
-    { K30, K31, K32, K33, K34, XXX, K36, K37 }, \
-    { K40, K41, K42, K43, K44, K45, XXX, XXX }  \
-}
-
-#define LAYOUT_ansi( \
-         K01, K02, K03, K04, K05, K06, K07, K00, \
-    K10, K11, K12, K13, K14, K15, K16, K17,      \
-    K20, K21, K22, K23, K24, K25,      K27,      \
-    K30, K31, K32, K33, K34,      K36, K37,      \
-    K40, K41, K42, K43, K44, K45                 \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07 }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17 }, \
-    { K20, K21, K22, K23, K24, K25, XXX, K27 }, \
-    { K30, K31, K32, K33, K34, XXX, K36, K37 }, \
-    { K40, K41, K42, K43, K44, K45, XXX, XXX }  \
-}

+ 145 - 2
keyboards/delikeeb/vaguettelite/info.json

@@ -26,10 +26,153 @@
     "bootloader": "atmel-dfu",
     "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":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, "w":1.5}, {"x":13, "y":1}, {"x":14, "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, "w":1.25}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3, "w":1.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":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4}, {"x":4.5, "y":4, "w":1.25}, {"x":5.75, "y":4, "w":2}, {"x":7.75, "y":4, "w":1.25}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "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": [5, 6], "x": 12, "y": 0},
+                {"matrix": [5, 7], "x": 13, "y": 0},
+                {"matrix": [5, 10], "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, "w": 1.5},
+                {"matrix": [5, 8], "x": 13, "y": 1},
+                {"matrix": [5, 9], "x": 14, "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, "w": 1.25},
+                {"matrix": [5, 2], "x": 13, "y": 2},
+                {"matrix": [5, 11], "x": 14, "y": 2},
+
+                {"matrix": [5, 0], "x": 0, "y": 3},
+                {"matrix": [3, 0], "x": 1, "y": 3, "w": 1.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": [5, 3], "x": 14, "y": 3},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4},
+                {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 3.5, "y": 4},
+                {"matrix": [4, 4], "x": 4.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
+                {"matrix": [4, 7], "x": 7.75, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 9, "y": 4},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [5, 4], "x": 13, "y": 4},
+                {"matrix": [5, 5], "x": 14, "y": 4}
+            ]
         },
         "LAYOUT_625u_universal": {
-            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "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, "w":1.5}, {"x":13, "y":1}, {"x":14, "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, "w":2.25}, {"x":14, "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":2.75}, {"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}]
+            "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": [5, 6], "x": 12, "y": 0},
+                {"matrix": [5, 7], "x": 13, "y": 0},
+                {"matrix": [5, 10], "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, "w": 1.5},
+                {"matrix": [5, 8], "x": 13, "y": 1},
+                {"matrix": [5, 9], "x": 14, "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, "w": 2.25},
+                {"matrix": [5, 11], "x": 14, "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": 2.75},
+
+                {"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": [5, 4], "x": 13, "y": 4},
+                {"matrix": [5, 5], "x": 14, "y": 4}
+            ]
         }
     }
 }

+ 0 - 57
keyboards/delikeeb/vaguettelite/vaguettelite.h

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

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 3 - 0
keyboards/dm9records/tartan/info.json


+ 0 - 111
keyboards/dm9records/tartan/tartan.h

@@ -1,111 +0,0 @@
-/* Copyright 2019 Takuya Urakawa (dm9records.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 LAYOUT_60_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k4b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
-    k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
-    k40, k41, k42, k43, k44, k45, k46, k47 \
-) \
-{ \
-    { k00, k01,   k02, k03, k04, k05, k06, k07, k08,   k09, k0a,   k0b, k0c   }, \
-    { k10, k11,   k12, k13, k14, k15, k16, k17, k18,   k19, k1a,   k1b, k1c   }, \
-    { k20, k21,   k22, k23, k24, k25, k26, k27, k28,   k29, k2a,   k2b, k2c   }, \
-    { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38,   k39, k3a,   k3b, k3c   }, \
-    { k40, k41,   k42, k43, k44, k45, k46, k47, KC_NO, k49, KC_NO, k4b, KC_NO } \
-}
-
-#define LAYOUT_60_ansi_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, k4a, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k4b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
-    k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
-    k40, k41, k42, k43, k44, k45, k46, k47 \
-) \
-{ \
-    { k00, k01,   k02, k03, k04, k05, k06, k07, k08,   k09, k0a, k0b, k0c   }, \
-    { k10, k11,   k12, k13, k14, k15, k16, k17, k18,   k19, k1a, k1b, k1c   }, \
-    { k20, k21,   k22, k23, k24, k25, k26, k27, k28,   k29, k2a, k2b, k2c   }, \
-    { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38,   k39, k3a, k3b, k3c   }, \
-    { k40, k41,   k42, k43, k44, k45, k46, k47, KC_NO, k49, k4a, k4b, KC_NO } \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, k4a, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k4b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
-    k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4c, \
-    k40, k41, k42, k43, k44, k45, k46, k47 \
-) \
-{ \
-    { k00, k01,   k02, k03, k04, k05, k06, k07, k08,   k09, k0a, k0b, k0c }, \
-    { k10, k11,   k12, k13, k14, k15, k16, k17, k18,   k19, k1a, k1b, k1c }, \
-    { k20, k21,   k22, k23, k24, k25, k26, k27, k28,   k29, k2a, k2b, k2c }, \
-    { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38,   k39, k3a, k3b, k3c }, \
-    { k40, k41,   k42, k43, k44, k45, k46, k47, KC_NO, k49, k4a, k4b, k4c } \
-}
-
-#define LAYOUT_60_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k4b, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
-    k40, k41, k42, k43, k44, k45, k46, k47 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08,   k09, k0a,   k0b, k0c   }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18,   k19, k1a,   k1b, k1c   }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28,   k29, k2a,   k2b, k2c   }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38,   k39, k3a,   k3b, k3c   }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, KC_NO, k4b, KC_NO } \
-}
-
-#define LAYOUT_60_iso_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, k4a, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k4b, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
-    k40, k41, k42, k43, k44, k45, k46, k47 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08,   k09, k0a, k0b, k0c   }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18,   k19, k1a, k1b, k1c   }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28,   k29, k2a, k2b, k2c   }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38,   k39, k3a, k3b, k3c   }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, k4a, k4b, KC_NO } \
-}
-
-#define LAYOUT_60_iso_split_bs_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, k4a, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k4b, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4c, \
-    k40, k41, k42, k43, k44, k45, k46, k47 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08,   k09, k0a, k0b, k0c }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18,   k19, k1a, k1b, k1c }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28,   k29, k2a, k2b, k2c }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38,   k39, k3a, k3b, k3c }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, k4a, k4b, k4c } \
-}
-
-#define LAYOUT_all LAYOUT_60_iso_split_bs_rshift

+ 0 - 71
keyboards/do60/do60.h

@@ -21,74 +21,3 @@ inline void do60_bl_led_off(void)   	{ DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
 */
 
 inline void setdefaultrgb(void){ rgblight_sethsv(100,100,100); }
-
-/* Do60 Keymap Definition Macro */
-#define LAYOUT_all( \
-      K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E, \
-      K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,        K1E, \
-      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,        K2E, \
-      K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K3D,  K3E, \
-      K40,  K41,  K42,              K45,  K46,  K47,              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,  KC_NO, 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,  K46,  K47,  KC_NO,KC_NO,K4A,  K4B,  K4C,  K4D,   K4E }  \
-}
-
-#define LAYOUT_60_hhkb( \
-      K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E, \
-      K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,        K1E, \
-      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,              K2E, \
-      K30,        K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,        K3D,  K3E, \
-            K41,  K42,                    K46,                    K4A,  K4B                    \
-) { \
-    { 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,   KC_NO, K1E },  \
-    { K20,   K21,   K22,  K23,   K24,   K25,   K26, K27,   K28,   K29,   K2A, K2B, KC_NO, KC_NO, K2E },  \
-    { K30,   KC_NO, K32,  K33,   K34,   K35,   K36, K37,   K38,   K39,   K3A, K3B, KC_NO, K3D,   K3E },  \
-    { KC_NO, K41,   K42,  KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, KC_NO, KC_NO, KC_NO } \
-}
-
-#define LAYOUT_60_ansi( \
-      K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,      K0E, \
-      K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C,      K1E, \
-      K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           K2E, \
-      K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D,      \
-      K40, K41, K42,                K46,                K4A, K4B, K4C,      K4E  \
-) { \
-    { K00, K01,   K02, K03,   K04,   K05,   K06, K07,   K08,   K09,   K0A, K0B, K0C,   KC_NO, K0E },   \
-    { K10, K11,   K12, K13,   K14,   K15,   K16, K17,   K18,   K19,   K1A, K1B, K1C,   KC_NO, K1E },   \
-    { K20, K21,   K22, K23,   K24,   K25,   K26, K27,   K28,   K29,   K2A, K2B, KC_NO, KC_NO, K2E },   \
-    { K30, KC_NO, K32, K33,   K34,   K35,   K36, K37,   K38,   K39,   K3A, K3B, KC_NO, K3D,   KC_NO }, \
-    { K40, K41,   K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C,   KC_NO, K4E }    \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-      K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E, \
-      K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,        K1E, \
-      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,              K2E, \
-      K30,        K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,        K3D,  K3E, \
-      K40,  K41,  K42,                    K46,                    K4A,  K4B,  K4C,        K4E  \
-) { \
-    { K00,  K01,   K02,  K03,   K04,   K05,   K06, K07,   K08,   K09,   K0A,  K0B,  K0C,   K0D,   K0E }, \
-    { K10,  K11,   K12,  K13,   K14,   K15,   K16, K17,   K18,   K19,   K1A,  K1B,  K1C,   KC_NO, K1E }, \
-    { K20,  K21,   K22,  K23,   K24,   K25,   K26, K27,   K28,   K29,   K2A,  K2B,  KC_NO, KC_NO, K2E }, \
-    { K30,  KC_NO, K32,  K33,   K34,   K35,   K36, K37,   K38,   K39,   K3A,  K3B,  KC_NO, K3D,   K3E }, \
-    { K40,  K41,   K42,  KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A,  K4B,  K4C,   KC_NO, K4E }  \
-}
-
-#define LAYOUT_chiwi60_default( \
-      K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E, \
-      K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,        K1E, \
-      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,              K2E, \
-      K30,        K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,        K3D,  K3E, \
-      K40,  K41,  K42,              K45,        K47,              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,   KC_NO, K1E }, \
-    { K20, K21,   K22, K23,   K24,   K25, K26,   K27, K28,   K29,   K2A, K2B, KC_NO, KC_NO, K2E }, \
-    { K30, KC_NO, K32, K33,   K34,   K35, K36,   K37, K38,   K39,   K3A, K3B, KC_NO, K3D,   K3E }, \
-    { K40, K41,   K42, KC_NO, KC_NO, K45, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C,   K4D,   K4E }  \
-}

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
keyboards/do60/info.json


+ 1 - 1
keyboards/dp60/dp60.c

@@ -14,7 +14,7 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "dp60.h"
+#include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
 const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {

+ 0 - 152
keyboards/dp60/dp60.h

@@ -1,152 +0,0 @@
-/**
-  * dp60.h
-  *
-  Copyright 2020 astro <yuleiz@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"
-
-// This a shortcut to help you visually see your layout.
-// The first section contains all of the arguements
-// The second converts the arguments into a two-dimensional array
-    // Matrix layout to accomodate all layouts. Good for VIA mapping correctly, and it doesnt exist yet
-    //
-    //┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐  ┌──────┐
-    //│0A││0B││0C││0D││0E││0F││0G││4H││0H││0I││0J││0K││0L││0M││0N│  │  0N  │      split backspace support
-    //└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘  └──────┘
-    // 00  01  02  03  04  05  06  07  08  09  0a  0b  0c  0d  0e      0e
-    //┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐    ┌────┐
-    //│1A  ││1B││1C││1D││1E││1F││1G││1H││1I││1J││1K││1L││1M││1N  │    │    │      iso enter - see below
-    //└────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└────┘    └────┘
-    //  10   11  12  13  14  15  16  17  18  19  1a  1b  1c   1e
-    //┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌───────┐  ┌──┐┌──┐
-    //│ 2A  ││2B││2C││2D││2E││2F││2G││2H││2I││2J││2K││2L││  2N   │  │2M││2N│      iso enter
-    //└─────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└───────┘  └──┘└──┘
-    // 20     22  23  24  25  26  27  28  29  2a  2b  2c    2e       2d  2e
-    //┌───────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌─────────┐
-    //│3A │ 3B││3C││3D││3E││3F││3G││3H││3I││3J││3K││3L││  3M  │3N│                split shifts (left and right)
-    //└───────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└─────────┘
-    // 30   31  32  33  34  35  36  37  38  39  3a  3b    3c   3d
-    //┌───┐┌───┐┌───┐┌───────────────────────┐┌───┐┌───┐┌───┐┌───┐
-    //│4A ││4B ││4C ││         4G            ││4K ││4L ││4M ││4N │                wkl/hhkb use 4L (k49), 4M (k4a) , 4N (k4b)
-    //└───┘└───┘└───┘└───────────────────────┘└───┘└───┘└───┘└───┘
-    // 40   42   43            47              48   49   4a   4b
-    //end of mapping
-//
-//added k0d
-//added k2d KC_NUMS for iso
-//added k31 split l-shift, k3d split r-shift
-
-#define LAYOUT_all( \
-  k00,  k01,  k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-k10,    k11,  k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      k1e, \
-k20,          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,          k42, k43,                k47, k48, k49, k4a, k4b       \
-) \
-{ \
-  {k00,   k01,  k02, k03,   k04,   k05,   k06,                          k08, k09, k0a, k0b, k0c, k0d, k0e}, \
-  {k10,   k11,  k12, k13,   k14,   k15,   k16, k17,                     k18, k19, k1a, k1b, k1c,      k1e}, \
-  {k20,         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,         k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO,  k48, k49, k4a, k4b}  \
-}
-
-#define LAYOUT_60_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
-	k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
-	k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
-	k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
-	k40,      k42, k43,                k47, k48, k49, k4a, k4b       \
-) \
-{ \
-    {k00,   k01, k02,   k03,   k04,   k05, k06, k08,   k09,   k0a, k0b, k0c, KC_NO, k0e}, \
-    {k10,   k11, k12,   k13,   k14,   k15, k16, k17,   k18,   k19, k1a, k1b,   k1c, k1e}, \
-    {k20,   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, KC_NO}, \
-    {k40,   k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, k48, k49,   k4a, k4b}  \
-}
-
-#define LAYOUT_60_iso( \
-    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, \
-	k20,      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, \
-	k40,      k42, k43,                k47, k48, k49, k4a, k4b       \
-) \
-{ \
-    {k00,   k01, k02,   k03,   k04,   k05, k06, k08,   k09,   k0a, k0b, k0c, KC_NO, k0e}, \
-    {k10,   k11, k12,   k13,   k14,   k15, k16, k17,   k18,   k19, k1a, k1b,   k1c, KC_NO}, \
-    {k20,   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, KC_NO}, \
-    {k40,   k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, k48, k49,   k4a, k4b}  \
-}
-
-#define LAYOUT_60_ansi_tsangan_split_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
-	k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
-	k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
-	k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-	k40,      k42, k43,                k47,      k49, k4a, k4b       \
-) \
-{ \
-    {k00,   k01, k02,   k03,   k04,   k05, k06, k08,   k09,   k0a,   k0b, k0c, KC_NO, k0e}, \
-    {k10,   k11, k12,   k13,   k14,   k15, k16, k17,   k18,   k19,   k1a, k1b,   k1c, k1e}, \
-    {k20,   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}, \
-    {k40,   k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, KC_NO, k49,   k4a, k4b}  \
-}
-
-#define LAYOUT_60_hhkb( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-	k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
-	k20,      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, \
-       k42, k43,                     k47,                k49, k4a \
-) \
-{ \
-    {k00,   k01, k02,   k03,   k04,   k05, k06, k08,   k09,   k0a, k0b, k0c,   k0d, k0e}, \
-    {k10,   k11, k12,   k13,   k14,   k15, k16, k17,   k18,   k19, k1a, k1b,   k1c, k1e}, \
-    {k20,   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}, \
-    {KC_NO, k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, KC_NO, k49,   k4a, KC_NO}  \
-}
-#define LAYOUT_60_tsangan_hhkb( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-	k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
-	k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
-	k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-	k40,      k42, k43,                k47,      k49, k4a, k4b       \
-) \
-{ \
-    {k00,   k01, k02,   k03,   k04,   k05, k06, k08,   k09,   k0a,   k0b, k0c,   k0d, k0e}, \
-    {k10,   k11, k12,   k13,   k14,   k15, k16, k17,   k18,   k19,   k1a, k1b,   k1c, k1e}, \
-    {k20,   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}, \
-    {k40,   k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, KC_NO, k49,   k4a, k4b}  \
-}
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    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,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \
-	k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
-	k40,      k42, k43,                k47,      k48,  k49, k4a, k4b       \
-) \
-{ \
-    {k00,   k01, k02,   k03,   k04,   k05, k06, k08,   k09,   k0a, k0b, k0c,   k0d, k0e}, \
-    {k10,   k11, k12,   k13,   k14,   k15, k16, k17,   k18,   k19, k1a, k1b,   k1c, k1e}, \
-    {k20,   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}, \
-    {k40,   k42, k43, KC_NO, KC_NO, KC_NO, k47, k07, KC_NO, KC_NO, k48, k49,   k4a, k4b}  \
-}

+ 438 - 369
keyboards/dp60/info.json

@@ -24,419 +24,488 @@
     "layouts": {
         "LAYOUT_60_ansi_tsangan_split_rshift": {
             "layout": [
-                {"label":"~", "x":0, "y":0},
-                {"label":"!", "x":1, "y":0},
-                {"label":"@", "x":2, "y":0},
-                {"label":"#", "x":3, "y":0},
-                {"label":"$", "x":4, "y":0},
-                {"label":"%", "x":5, "y":0},
-                {"label":"^", "x":6, "y":0},
-                {"label":"&", "x":7, "y":0},
-                {"label":"*", "x":8, "y":0},
-                {"label":"(", "x":9, "y":0},
-                {"label":")", "x":10, "y":0},
-                {"label":"_", "x":11, "y":0},
-                {"label":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
+                {"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": [4, 7], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+                {"matrix": [0, 13], "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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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":"Fn", "x":14, "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},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"Win", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Win", "x":12.5, "y":4},
-                {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"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": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_ansi": {
             "layout": [
-                {"label":"~", "x":0, "y":0},
-                {"label":"!", "x":1, "y":0},
-                {"label":"@", "x":2, "y":0},
-                {"label":"#", "x":3, "y":0},
-                {"label":"$", "x":4, "y":0},
-                {"label":"%", "x":5, "y":0},
-                {"label":"^", "x":6, "y":0},
-                {"label":"&", "x":7, "y":0},
-                {"label":"*", "x":8, "y":0},
-                {"label":"(", "x":9, "y":0},
-                {"label":")", "x":10, "y":0},
-                {"label":"_", "x":11, "y":0},
-                {"label":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
+                {"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": [4, 7], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+                {"matrix": [0, 13], "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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"label":"Shift", "x":0, "y":3, "w":2.25},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":2.75},
+                {"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": 2.75},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.25},
-                {"label":"Win", "x":1.25, "y":4, "w":1.25},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"label":"Alt", "x":10, "y":4, "w":1.25},
-                {"label":"Win", "x":11.25, "y":4, "w":1.25},
-                {"label":"Menu", "x":12.5, "y":4, "w":1.25},
-                {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_hhkb": {
             "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":"~", "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": [4, 7], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+                {"matrix": [0, 12], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
 
-                {"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":"Backspace", "x":13.5, "y":1, "w":1.5},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"label":"Control", "x":0, "y":2, "w":1.75},
-                {"label":"A", "x":1.75, "y":2},
-                {"label":"S", "x":2.75, "y":2},
-                {"label":"D", "x":3.75, "y":2},
-                {"label":"F", "x":4.75, "y":2},
-                {"label":"G", "x":5.75, "y":2},
-                {"label":"H", "x":6.75, "y":2},
-                {"label":"J", "x":7.75, "y":2},
-                {"label":"K", "x":8.75, "y":2},
-                {"label":"L", "x":9.75, "y":2},
-                {"label":":", "x":10.75, "y":2},
-                {"label":"\"", "x":11.75, "y":2},
-                {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 1], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [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},
 
-                {"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":"Fn", "x":14, "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},
 
-                {"label":"Win", "x":1.5, "y":4},
-                {"label":"Alt", "x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"label":"Alt", "x":11, "y":4, "w":1.5},
-                {"label":"Win", "x":12.5, "y":4}
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4}
             ]
         },
         "LAYOUT_60_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},
+                {"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": [4, 7], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
 
-                {"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.75, "y":1, "w":1.25, "h":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": [2, 0], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
 
-                {"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},
+                {"matrix": [2, 1], "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},
 
-                {"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":2.75},
+                {"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": 2.75},
 
-                {"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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_ansi_split_bs_rshift": {
             "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": [4, 7], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+                {"matrix": [0, 12], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
 
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x":0, "y":2, "w":1.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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"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":12.5, "y":4, "w":1.25},
-                {"x":13.75, "y":4, "w":1.25}
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
         "LAYOUT_60_tsangan_hhkb": {
             "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": [4, 7], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+                {"matrix": [0, 12], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
 
-                {"x":0, "y":1, "w":1.5},
-                {"x":1.5, "y":1},
-                {"x":2.5, "y":1},
-                {"x":3.5, "y":1},
-                {"x":4.5, "y":1},
-                {"x":5.5, "y":1},
-                {"x":6.5, "y":1},
-                {"x":7.5, "y":1},
-                {"x":8.5, "y":1},
-                {"x":9.5, "y":1},
-                {"x":10.5, "y":1},
-                {"x":11.5, "y":1},
-                {"x":12.5, "y":1},
-                {"x":13.5, "y":1, "w":1.5},
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                {"x":0, "y":2, "w":1.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},
+                {"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},
 
-                {"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},
+                {"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},
 
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"x":11, "y":4, "w":1.5},
-                {"x":12.5, "y":4},
-                {"x":13.5, "y":4, "w":1.5}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 12], "x": 12.5, "y": 4},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+            ]
+        },
+        "LAYOUT_all": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [4, 7], "x": 7, "y": 0},
+                {"matrix": [0, 7], "x": 8, "y": 0},
+                {"matrix": [0, 8], "x": 9, "y": 0},
+                {"matrix": [0, 9], "x": 10, "y": 0},
+                {"matrix": [0, 10], "x": 11, "y": 0},
+                {"matrix": [0, 11], "x": 12, "y": 0},
+                {"matrix": [0, 12], "x": 13, "y": 0},
+                {"matrix": [0, 13], "x": 14, "y": 0},
+                {"matrix": [1, 0], "x": 15, "y": 0},
+                {"matrix": [1, 1], "x": 16, "y": 0},
+                {"matrix": [1, 2], "x": 17, "y": 0},
+                {"matrix": [1, 3], "x": 18, "y": 0},
+                {"matrix": [1, 4], "x": 19, "y": 0},
+                {"matrix": [1, 5], "x": 20, "y": 0},
+                {"matrix": [1, 6], "x": 21, "y": 0},
+                {"matrix": [1, 7], "x": 22, "y": 0},
+                {"matrix": [1, 8], "x": 23, "y": 0},
+                {"matrix": [1, 9], "x": 24, "y": 0},
+                {"matrix": [1, 10], "x": 25, "y": 0},
+                {"matrix": [1, 11], "x": 26, "y": 0},
+                {"matrix": [1, 12], "x": 27, "y": 0},
+                {"matrix": [1, 13], "x": 28, "y": 0},
+                {"matrix": [2, 0], "x": 29, "y": 0},
+                {"matrix": [2, 1], "x": 30, "y": 0},
+                {"matrix": [2, 2], "x": 31, "y": 0},
+                {"matrix": [2, 3], "x": 32, "y": 0},
+                {"matrix": [2, 4], "x": 33, "y": 0},
+                {"matrix": [2, 5], "x": 34, "y": 0},
+                {"matrix": [2, 6], "x": 35, "y": 0},
+                {"matrix": [2, 7], "x": 36, "y": 0},
+                {"matrix": [2, 8], "x": 37, "y": 0},
+                {"matrix": [2, 9], "x": 38, "y": 0},
+                {"matrix": [2, 10], "x": 39, "y": 0},
+                {"matrix": [2, 11], "x": 40, "y": 0},
+                {"matrix": [2, 12], "x": 41, "y": 0},
+                {"matrix": [2, 13], "x": 42, "y": 0},
+                {"matrix": [3, 0], "x": 43, "y": 0},
+                {"matrix": [3, 1], "x": 44, "y": 0},
+                {"matrix": [3, 2], "x": 45, "y": 0},
+                {"matrix": [3, 3], "x": 46, "y": 0},
+                {"matrix": [3, 4], "x": 47, "y": 0},
+                {"matrix": [3, 5], "x": 48, "y": 0},
+                {"matrix": [3, 6], "x": 49, "y": 0},
+                {"matrix": [3, 7], "x": 50, "y": 0},
+                {"matrix": [3, 8], "x": 51, "y": 0},
+                {"matrix": [3, 9], "x": 52, "y": 0},
+                {"matrix": [3, 10], "x": 53, "y": 0},
+                {"matrix": [3, 11], "x": 54, "y": 0},
+                {"matrix": [3, 12], "x": 55, "y": 0},
+                {"matrix": [3, 13], "x": 56, "y": 0},
+                {"matrix": [4, 0], "x": 57, "y": 0},
+                {"matrix": [4, 1], "x": 58, "y": 0},
+                {"matrix": [4, 2], "x": 59, "y": 0},
+                {"matrix": [4, 6], "x": 60, "y": 0},
+                {"matrix": [4, 10], "x": 61, "y": 0},
+                {"matrix": [4, 11], "x": 62, "y": 0},
+                {"matrix": [4, 12], "x": 63, "y": 0},
+                {"matrix": [4, 13], "x": 64, "y": 0}
             ]
         }
     }

+ 314 - 313
keyboards/duck/eagle_viper/v2/info.json

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

+ 1 - 1
keyboards/duck/eagle_viper/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"
 #include "indicator_leds.h"
 
 enum BACKLIGHT_AREAS {

+ 0 - 90
keyboards/duck/eagle_viper/v2/v2.h

@@ -1,90 +0,0 @@
-/* Copyright 2017 MechMerlin <mechmerlin@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 ___ KC_NO
-
-#define LAYOUT_all( \
-    K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \
-    K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M,      K3O, \
-    K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M,      K2O, \
-    K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K,      K1M, K1N, K1O, \
-    K0A, K0B, K0C,                          K0I,      K0K,      K0M, K0N, K0O \
-) { \
-  { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O }, \
-  { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, ___, K3O }, \
-  { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, ___, K2O }, \
-  { K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, ___, K1M, K1N, K1O }, \
-  { K0A, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, K0K, ___, K0M, K0N, K0O }  \
-}
-
-#define LAYOUT_60_ansi( \
-    K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M,      K4O, \
-    K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M,      K3O, \
-    K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L,           K2O, \
-    K1A,      K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K,      K1M, K1N,  \
-    K0A, K0B, K0C,                          K0I,      K0K,      K0M, K0N, K0O \
-) { \
-  { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, ___, K4O }, \
-  { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, ___, K3O }, \
-  { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, ___, ___, K2O }, \
-  { K1A, ___, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, ___, K1M, K1N, ___ }, \
-  { K0A, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, K0K, ___, K0M, K0N, K0O }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \
-    K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M,      K3O, \
-    K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L,           K2O, \
-    K1A,      K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K,      K1M, K1N, K1O, \
-    K0A, K0B, K0C,                          K0I,      K0K,      K0M, K0N, K0O \
-) { \
-  { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O }, \
-  { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, ___, K3O }, \
-  { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, ___, ___, K2O }, \
-  { K1A, ___, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, ___, K1M, K1N, K1O }, \
-  { K0A, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, K0K, ___, K0M, K0N, K0O }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_lshift_rshift( \
-    K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \
-    K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M,      K3O, \
-    K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L,           K2O, \
-    K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K,      K1M, K1N, K1O, \
-    K0A, K0B, K0C,                          K0I,      K0K,      K0M, K0N, K0O \
-) { \
-  { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O }, \
-  { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, ___, K3O }, \
-  { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, ___, ___, K2O }, \
-  { K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, ___, K1M, K1N, K1O }, \
-  { K0A, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, K0K, ___, K0M, K0N, K0O }  \
-}
-
-#define LAYOUT_60_hhkb( \
-    K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, \
-    K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M,      K3O, \
-    K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L,           K2O, \
-    K1A,      K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K,      K1M, K1N, K1O, \
-         K0B, K0C,                          K0I,                K0M, K0N       \
-) { \
-  { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O }, \
-  { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, ___, K3O }, \
-  { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, ___, ___, K2O }, \
-  { K1A, ___, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, ___, K1M, K1N, K1O }, \
-  { ___, K0B, K0C, ___, ___, ___, ___, ___, K0I, ___, ___, ___, K0M, K0N, ___ }  \
-}

+ 1 - 1
keyboards/ducky/one2mini/1861st/1861st.c

@@ -1,6 +1,6 @@
 // Copyright 2022 Nick Brassel (@tzarc)
 // SPDX-License-Identifier: GPL-2.0-or-later
-#include "1861st.h"
+#include "quantum.h"
 
 void bootloader_jump(void) {
     // TODO: Work out how to jump to LDROM, for now just reset the board.

+ 0 - 70
keyboards/ducky/one2mini/1861st/1861st.h

@@ -1,70 +0,0 @@
-/* Copyright 2019 /u/KeepItUnder
- *
- * 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, 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,      k3d, \
-    k40, k41, k42,                k45,                k4a, k4b, k4c, k4d  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
-}
-
-#define LAYOUT_60_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, \
-    k40, k41, k42,                k45,                k4a, k4b, k4c, k4d  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
-    { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
-}
-
-#define LAYOUT_60_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, \
-    k40, k41, k42,                k45,                k4a, k4b, k4c, k4d  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \
-    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
-}

+ 186 - 188
keyboards/ducky/one2mini/1861st/info.json

@@ -17,214 +17,212 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                { "x": 0, "y": 0, "label": "ESC" },
-                { "x": 1, "y": 0, "label": "1" },
-                { "x": 2, "y": 0, "label": "2" },
-                { "x": 3, "y": 0, "label": "3" },
-                { "x": 4, "y": 0, "label": "4" },
-                { "x": 5, "y": 0, "label": "5" },
-                { "x": 6, "y": 0, "label": "6" },
-                { "x": 7, "y": 0, "label": "7" },
-                { "x": 8, "y": 0, "label": "8" },
-                { "x": 9, "y": 0, "label": "9" },
-                { "x": 10, "y": 0, "label": "0" },
-                { "x": 11, "y": 0, "label": "DASH" },
-                { "x": 12, "y": 0, "label": "EQUALSIGN" },
-                { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" },
+                {"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},
 
-                { "x": 0, "y": 1, "w": 1.5, "label": "TAB" },
-                { "x": 1.5, "y": 1, "label": "Q" },
-                { "x": 2.5, "y": 1, "label": "W" },
-                { "x": 3.5, "y": 1, "label": "E" },
-                { "x": 4.5, "y": 1, "label": "R" },
-                { "x": 5.5, "y": 1, "label": "T" },
-                { "x": 6.5, "y": 1, "label": "Y" },
-                { "x": 7.5, "y": 1, "label": "U" },
-                { "x": 8.5, "y": 1, "label": "I" },
-                { "x": 9.5, "y": 1, "label": "O" },
-                { "x": 10.5, "y": 1, "label": "P" },
-                { "x": 11.5, "y": 1, "label": "LBRACKET" },
-                { "x": 12.5, "y": 1, "label": "RBRACKET" },
-                { "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" },
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" },
-                { "x": 1.75, "y": 2, "label": "A" },
-                { "x": 2.75, "y": 2, "label": "S" },
-                { "x": 3.75, "y": 2, "label": "D" },
-                { "x": 4.75, "y": 2, "label": "F" },
-                { "x": 5.75, "y": 2, "label": "G" },
-                { "x": 6.75, "y": 2, "label": "H" },
-                { "x": 7.75, "y": 2, "label": "J" },
-                { "x": 8.75, "y": 2, "label": "K" },
-                { "x": 9.75, "y": 2, "label": "L" },
-                { "x": 10.75, "y": 2, "label": "SEMICOLON" },
-                { "x": 11.75, "y": 2, "label": "QUOTE" },
-                { "x": 12.75, "y": 2, "label": "ISOHASH" },
-                { "x": 13.75, "y": 2, "w": 1.25, "label": "ENTER" },
+                {"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},
 
-                { "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" },
-                { "x": 1.25, "y": 3, "label": "ISOBACKSLASH" },
-                { "x": 2.25, "y": 3, "label": "Z" },
-                { "x": 3.25, "y": 3, "label": "X" },
-                { "x": 4.25, "y": 3, "label": "C" },
-                { "x": 5.25, "y": 3, "label": "V" },
-                { "x": 6.25, "y": 3, "label": "B" },
-                { "x": 7.25, "y": 3, "label": "N" },
-                { "x": 8.25, "y": 3, "label": "M" },
-                { "x": 9.25, "y": 3, "label": "COMMA" },
-                { "x": 10.25, "y": 3, "label": "PERIOD" },
-                { "x": 11.25, "y": 3, "label": "SLASH" },
-                { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" },
+                {"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": 2.75},
 
-                { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" },
-                { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" },
-                { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" },
-                { "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" },
-                { "x": 10, "y": 4, "w": 1.25, "label": "RALT" },
-                { "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" },
-                { "x": 12.5, "y": 4, "w": 1.25, "label": "FN" },
-                { "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" }
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
-
         "LAYOUT_60_ansi": {
             "layout": [
-                { "x": 0, "y": 0, "label": "ESC" },
-                { "x": 1, "y": 0, "label": "1" },
-                { "x": 2, "y": 0, "label": "2" },
-                { "x": 3, "y": 0, "label": "3" },
-                { "x": 4, "y": 0, "label": "4" },
-                { "x": 5, "y": 0, "label": "5" },
-                { "x": 6, "y": 0, "label": "6" },
-                { "x": 7, "y": 0, "label": "7" },
-                { "x": 8, "y": 0, "label": "8" },
-                { "x": 9, "y": 0, "label": "9" },
-                { "x": 10, "y": 0, "label": "0" },
-                { "x": 11, "y": 0, "label": "DASH" },
-                { "x": 12, "y": 0, "label": "EQUALSIGN" },
-                { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" },
+                {"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},
 
-                { "x": 0, "y": 1, "w": 1.5, "label": "TAB" },
-                { "x": 1.5, "y": 1, "label": "Q" },
-                { "x": 2.5, "y": 1, "label": "W" },
-                { "x": 3.5, "y": 1, "label": "E" },
-                { "x": 4.5, "y": 1, "label": "R" },
-                { "x": 5.5, "y": 1, "label": "T" },
-                { "x": 6.5, "y": 1, "label": "Y" },
-                { "x": 7.5, "y": 1, "label": "U" },
-                { "x": 8.5, "y": 1, "label": "I" },
-                { "x": 9.5, "y": 1, "label": "O" },
-                { "x": 10.5, "y": 1, "label": "P" },
-                { "x": 11.5, "y": 1, "label": "LBRACKET" },
-                { "x": 12.5, "y": 1, "label": "RBRACKET" },
-                { "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" },
+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [1, 1], "x": 1.5, "y": 1},
+                {"matrix": [1, 2], "x": 2.5, "y": 1},
+                {"matrix": [1, 3], "x": 3.5, "y": 1},
+                {"matrix": [1, 4], "x": 4.5, "y": 1},
+                {"matrix": [1, 5], "x": 5.5, "y": 1},
+                {"matrix": [1, 6], "x": 6.5, "y": 1},
+                {"matrix": [1, 7], "x": 7.5, "y": 1},
+                {"matrix": [1, 8], "x": 8.5, "y": 1},
+                {"matrix": [1, 9], "x": 9.5, "y": 1},
+                {"matrix": [1, 10], "x": 10.5, "y": 1},
+                {"matrix": [1, 11], "x": 11.5, "y": 1},
+                {"matrix": [1, 12], "x": 12.5, "y": 1},
+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 
-                { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" },
-                { "x": 1.75, "y": 2, "label": "A" },
-                { "x": 2.75, "y": 2, "label": "S" },
-                { "x": 3.75, "y": 2, "label": "D" },
-                { "x": 4.75, "y": 2, "label": "F" },
-                { "x": 5.75, "y": 2, "label": "G" },
-                { "x": 6.75, "y": 2, "label": "H" },
-                { "x": 7.75, "y": 2, "label": "J" },
-                { "x": 8.75, "y": 2, "label": "K" },
-                { "x": 9.75, "y": 2, "label": "L" },
-                { "x": 10.75, "y": 2, "label": "SEMICOLON" },
-                { "x": 11.75, "y": 2, "label": "QUOTE" },
-                { "x": 12.75, "y": 2, "w": 2.25, "label": "ENTER" },
+                {"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},
 
-                { "x": 0, "y": 3, "w": 2.25, "label": "LSHIFT" },
-                { "x": 2.25, "y": 3, "label": "Z" },
-                { "x": 3.25, "y": 3, "label": "X" },
-                { "x": 4.25, "y": 3, "label": "C" },
-                { "x": 5.25, "y": 3, "label": "V" },
-                { "x": 6.25, "y": 3, "label": "B" },
-                { "x": 7.25, "y": 3, "label": "N" },
-                { "x": 8.25, "y": 3, "label": "M" },
-                { "x": 9.25, "y": 3, "label": "COMMA" },
-                { "x": 10.25, "y": 3, "label": "PERIOD" },
-                { "x": 11.25, "y": 3, "label": "SLASH" },
-                { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" },
+                {"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": 2.75},
 
-                { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" },
-                { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" },
-                { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" },
-                { "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" },
-                { "x": 10, "y": 4, "w": 1.25, "label": "RALT" },
-                { "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" },
-                { "x": 12.5, "y": 4, "w": 1.25, "label": "FN" },
-                { "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" }
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         },
-
         "LAYOUT_60_iso": {
             "layout": [
-                { "x": 0, "y": 0, "label": "ESC" },
-                { "x": 1, "y": 0, "label": "1" },
-                { "x": 2, "y": 0, "label": "2" },
-                { "x": 3, "y": 0, "label": "3" },
-                { "x": 4, "y": 0, "label": "4" },
-                { "x": 5, "y": 0, "label": "5" },
-                { "x": 6, "y": 0, "label": "6" },
-                { "x": 7, "y": 0, "label": "7" },
-                { "x": 8, "y": 0, "label": "8" },
-                { "x": 9, "y": 0, "label": "9" },
-                { "x": 10, "y": 0, "label": "0" },
-                { "x": 11, "y": 0, "label": "DASH" },
-                { "x": 12, "y": 0, "label": "EQUALSIGN" },
-                { "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" },
+                {"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},
 
-                { "x": 0, "y": 1, "w": 1.5, "label": "TAB" },
-                { "x": 1.5, "y": 1, "label": "Q" },
-                { "x": 2.5, "y": 1, "label": "W" },
-                { "x": 3.5, "y": 1, "label": "E" },
-                { "x": 4.5, "y": 1, "label": "R" },
-                { "x": 5.5, "y": 1, "label": "T" },
-                { "x": 6.5, "y": 1, "label": "Y" },
-                { "x": 7.5, "y": 1, "label": "U" },
-                { "x": 8.5, "y": 1, "label": "I" },
-                { "x": 9.5, "y": 1, "label": "O" },
-                { "x": 10.5, "y": 1, "label": "P" },
-                { "x": 11.5, "y": 1, "label": "LBRACKET" },
-                { "x": 12.5, "y": 1, "label": "RBRACKET" },
+                {"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},
 
-                { "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" },
-                { "x": 1.75, "y": 2, "label": "A" },
-                { "x": 2.75, "y": 2, "label": "S" },
-                { "x": 3.75, "y": 2, "label": "D" },
-                { "x": 4.75, "y": 2, "label": "F" },
-                { "x": 5.75, "y": 2, "label": "G" },
-                { "x": 6.75, "y": 2, "label": "H" },
-                { "x": 7.75, "y": 2, "label": "J" },
-                { "x": 8.75, "y": 2, "label": "K" },
-                { "x": 9.75, "y": 2, "label": "L" },
-                { "x": 10.75, "y": 2, "label": "SEMICOLON" },
-                { "x": 11.75, "y": 2, "label": "QUOTE" },
-                { "x": 12.75, "y": 2, "label": "ISOHASH" },
-                { "x": 13.75, "y": 1, "w": 1.25, "h": 2, "label": "ENTER" },
+                {"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},
 
-                { "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" },
-                { "x": 1.25, "y": 3, "label": "ISOBACKSLASH" },
-                { "x": 2.25, "y": 3, "label": "Z" },
-                { "x": 3.25, "y": 3, "label": "X" },
-                { "x": 4.25, "y": 3, "label": "C" },
-                { "x": 5.25, "y": 3, "label": "V" },
-                { "x": 6.25, "y": 3, "label": "B" },
-                { "x": 7.25, "y": 3, "label": "N" },
-                { "x": 8.25, "y": 3, "label": "M" },
-                { "x": 9.25, "y": 3, "label": "COMMA" },
-                { "x": 10.25, "y": 3, "label": "PERIOD" },
-                { "x": 11.25, "y": 3, "label": "SLASH" },
-                { "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" },
+                {"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": 2.75},
 
-                { "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" },
-                { "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" },
-                { "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" },
-                { "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" },
-                { "x": 10, "y": 4, "w": 1.25, "label": "RALT" },
-                { "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" },
-                { "x": 12.5, "y": 4, "w": 1.25, "label": "FN" },
-                { "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" }
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
             ]
         }
     }

+ 0 - 106
keyboards/dyz/dyz60/dyz60.h

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

+ 315 - 315
keyboards/dyz/dyz60/info.json

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

+ 0 - 120
keyboards/dyz/dyz60_hs/dyz60_hs.h

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

+ 377 - 377
keyboards/dyz/dyz60_hs/info.json

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

+ 99 - 91
keyboards/dyz/selka40/info.json

@@ -50,107 +50,115 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                {"label":"Esc", "x":0.5, "y":0},
-                {"label":"Q", "x":1.5, "y":0},
-                {"label":"W", "x":2.5, "y":0},
-                {"label":"E", "x":3.5, "y":0},
-                {"label":"R", "x":4.5, "y":0},
-                {"label":"T", "x":5.5, "y":0},
-                {"label":"Y", "x":7.5, "y":0},
-                {"label":"U", "x":8.5, "y":0},
-                {"label":"I", "x":9.5, "y":0},
-                {"label":"O", "x":10.5, "y":0},
-                {"label":"P", "x":11.5, "y":0},
-                {"label":"{", "x":12.5, "y":0},
-                {"label":"}", "x":13.5, "y":0},
+                {"matrix": [0, 0], "x": 0.5, "y": 0},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
 
-                {"label":"Tab", "x":0.25, "y":1, "w":1.25},
-                {"label":"A", "x":1.5, "y":1},
-                {"label":"S", "x":2.5, "y":1},
-                {"label":"D", "x":3.5, "y":1},
-                {"label":"F", "x":4.5, "y":1},
-                {"label":"G", "x":5.5, "y":1},
-                {"label":"H", "x":8, "y":1},
-                {"label":"J", "x":9, "y":1},
-                {"label":"K", "x":10, "y":1},
-                {"label":"L", "x":11, "y":1},
-                {"label":"\"", "x":12, "y":1},
-                {"label":"Enter", "x":13, "y":1, "w":1.75},
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0},
+                {"matrix": [0, 12], "x": 13.5, "y": 0},
 
-                {"label":"Shift", "x":0, "y":2, "w":1.75},
-                {"label":"Z", "x":1.75, "y":2},
-                {"label":"X", "x":2.75, "y":2},
-                {"label":"C", "x":3.75, "y":2},
-                {"label":"V", "x":4.75, "y":2},
-                {"label":"B", "x":5.75, "y":2},
-                {"label":"B", "x":7.75, "y":2},
-                {"label":"N", "x":8.75, "y":2},
-                {"label":"M", "x":9.75, "y":2},
-                {"label":"<", "x":10.75, "y":2},
-                {"label":">", "x":11.75, "y":2},
-                {"label":"?", "x":12.75, "y":2},
-                {"label":"Shift", "x":13.75, "y":2, "w":1.25},
+                {"matrix": [1, 0], "x": 0.25, "y": 1, "w": 1.25},
+                {"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},
 
-                {"label":"Ctrl", "x":0.25, "y":3, "w":1.25},
-                {"label":"Win", "x":1.5, "y":3},
-                {"label":"Alt", "x":3.75, "y":3},
-                {"label":"Space", "x":4.75, "y":3, "w":2},
-                {"label":"Space", "x":7.75, "y":3, "w":2.25},
-                {"label":"Fn", "x":10, "y":3},
-                {"label":"Fn2", "x":12.5, "y":3},
-                {"label":"Ctrl", "x":13.5, "y":3, "w":1.25}
+                {"matrix": [1, 6], "x": 8, "y": 1},
+                {"matrix": [1, 7], "x": 9, "y": 1},
+                {"matrix": [1, 8], "x": 10, "y": 1},
+                {"matrix": [1, 9], "x": 11, "y": 1},
+                {"matrix": [1, 10], "x": 12, "y": 1},
+                {"matrix": [1, 11], "x": 13, "y": 1, "w": 1.75},
+
+                {"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": 7.75, "y": 2},
+                {"matrix": [2, 7], "x": 8.75, "y": 2},
+                {"matrix": [2, 8], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 10], "x": 11.75, "y": 2},
+                {"matrix": [2, 11], "x": 12.75, "y": 2},
+                {"matrix": [2, 12], "x": 13.75, "y": 2, "w": 1.25},
+
+                {"matrix": [3, 0], "x": 0.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.5, "y": 3},
+                {"matrix": [3, 4], "x": 3.75, "y": 3},
+                {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 2},
+
+                {"matrix": [3, 6], "x": 7.75, "y": 3, "w": 2.25},
+                {"matrix": [3, 7], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 12.5, "y": 3},
+                {"matrix": [3, 12], "x": 13.5, "y": 3, "w": 1.25}
             ]
         },
         "LAYOUT_2u_bs": {
             "layout": [
-                {"label":"Esc", "x":0.5, "y":0},
-                {"label":"Q", "x":1.5, "y":0},
-                {"label":"W", "x":2.5, "y":0},
-                {"label":"E", "x":3.5, "y":0},
-                {"label":"R", "x":4.5, "y":0},
-                {"label":"T", "x":5.5, "y":0},
-                {"label":"Y", "x":7.5, "y":0},
-                {"label":"U", "x":8.5, "y":0},
-                {"label":"I", "x":9.5, "y":0},
-                {"label":"O", "x":10.5, "y":0},
-                {"label":"P", "x":11.5, "y":0},
-                {"label":"Backspace", "x":12.5, "y":0, "w":2},
+                {"matrix": [0, 0], "x": 0.5, "y": 0},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [0, 2], "x": 2.5, "y": 0},
+                {"matrix": [0, 3], "x": 3.5, "y": 0},
+                {"matrix": [0, 4], "x": 4.5, "y": 0},
+                {"matrix": [0, 5], "x": 5.5, "y": 0},
+
+                {"matrix": [0, 6], "x": 7.5, "y": 0},
+                {"matrix": [0, 7], "x": 8.5, "y": 0},
+                {"matrix": [0, 8], "x": 9.5, "y": 0},
+                {"matrix": [0, 9], "x": 10.5, "y": 0},
+                {"matrix": [0, 10], "x": 11.5, "y": 0},
+                {"matrix": [0, 11], "x": 12.5, "y": 0, "w": 2},
+
+                {"matrix": [1, 0], "x": 0.25, "y": 1, "w": 1.25},
+                {"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": 8, "y": 1},
+                {"matrix": [1, 7], "x": 9, "y": 1},
+                {"matrix": [1, 8], "x": 10, "y": 1},
+                {"matrix": [1, 9], "x": 11, "y": 1},
+                {"matrix": [1, 10], "x": 12, "y": 1},
+                {"matrix": [1, 11], "x": 13, "y": 1, "w": 1.75},
+
+                {"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},
 
-                {"label":"Tab", "x":0.25, "y":1, "w":1.25},
-                {"label":"A", "x":1.5, "y":1},
-                {"label":"S", "x":2.5, "y":1},
-                {"label":"D", "x":3.5, "y":1},
-                {"label":"F", "x":4.5, "y":1},
-                {"label":"G", "x":5.5, "y":1},
-                {"label":"H", "x":8, "y":1},
-                {"label":"J", "x":9, "y":1},
-                {"label":"K", "x":10, "y":1},
-                {"label":"L", "x":11, "y":1},
-                {"label":"\"", "x":12, "y":1},
-                {"label":"Enter", "x":13, "y":1, "w":1.75},
+                {"matrix": [2, 6], "x": 7.75, "y": 2},
+                {"matrix": [2, 7], "x": 8.75, "y": 2},
+                {"matrix": [2, 8], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 10], "x": 11.75, "y": 2},
+                {"matrix": [2, 11], "x": 12.75, "y": 2},
+                {"matrix": [2, 12], "x": 13.75, "y": 2, "w": 1.25},
 
-                {"label":"Shift", "x":0, "y":2, "w":1.75},
-                {"label":"Z", "x":1.75, "y":2},
-                {"label":"X", "x":2.75, "y":2},
-                {"label":"C", "x":3.75, "y":2},
-                {"label":"V", "x":4.75, "y":2},
-                {"label":"B", "x":5.75, "y":2},
-                {"label":"B", "x":7.75, "y":2},
-                {"label":"N", "x":8.75, "y":2},
-                {"label":"M", "x":9.75, "y":2},
-                {"label":"<", "x":10.75, "y":2},
-                {"label":">", "x":11.75, "y":2},
-                {"label":"?", "x":12.75, "y":2},
-                {"label":"Shift", "x":13.75, "y":2, "w":1.25},
+                {"matrix": [3, 0], "x": 0.25, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.5, "y": 3},
+                {"matrix": [3, 4], "x": 3.75, "y": 3},
+                {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 2},
 
-                {"label":"Ctrl", "x":0.25, "y":3, "w":1.25},
-                {"label":"Win", "x":1.5, "y":3},
-                {"label":"Alt", "x":3.75, "y":3},
-                {"label":"Space", "x":4.75, "y":3, "w":2},
-                {"label":"Space", "x":7.75, "y":3, "w":2.25},
-                {"label":"Fn", "x":10, "y":3},
-                {"label":"Fn2", "x":12.5, "y":3},
-                {"label":"Ctrl", "x":13.5, "y":3, "w":1.25}
+                {"matrix": [3, 6], "x": 7.75, "y": 3, "w": 2.25},
+                {"matrix": [3, 7], "x": 10, "y": 3},
+                {"matrix": [3, 11], "x": 12.5, "y": 3},
+                {"matrix": [3, 12], "x": 13.5, "y": 3, "w": 1.25}
             ]
         }
     }

+ 0 - 58
keyboards/dyz/selka40/selka40.h

@@ -1,58 +0,0 @@
-/* Copyright 2021 dayatz
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-#define _X_ KC_NO
-
-/*
- *                                                     ┌───────┐
- *                                                     │0B     │ 2u Backspace
- *                                                     └───────┘
- *     ┌───┬───┬───┬───┬───┬───┐   ┌───┬───┬───┬───┬───┬───┬───┐
- *     │00 │01 │02 │03 │04 │05 │   │06 │07 │08 │09 │0A │0B │0C │
- *    ┌┴───┼───┼───┼───┼───┼───┤   └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐
- *    │10  │11 │12 │13 │14 │15 │     │16 │17 │18 │19 │1A │1B    │
- *   ┌┴────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐   ┌┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬───┴┐
- *   │20    │21 │22 │23 │24 │25 │   │26 │27 │28 │29 │2A │2B │2C  │
- *   └┬────┬┴──┬┴───┼───┼───┴───┤   ├───┴───┴┬──┴┬──┴──┬┴──┬┴───┬┘
- *    │30  │31 │    │34 │35     │   │36      │37 │     │3B │3C  │
- *    └────┴───┘    └───┴───────┘   └────────┴───┘     └───┴────┘
- */
-
-#define LAYOUT_all( \
-    K00, K01, K02, K03, K04, K05,           K06, K07, K08, K09, K0A, K0B, K0C, \
-    K10, K11, K12, K13, K14, K15,           K16, K17, K18, K19, K1A,      K1B, \
-    K20, K21, K22, K23, K24, K25,           K26, K27, K28, K29, K2A, K2B, K2C, \
-    K30, K31,           K34, K35,           K36, K37,                K3B, K3C  \
-) { \
-    { K00,  K01,  K02,  K03, K04, K05,      K06, K07, K08, K09, K0A, K0B, K0C }, \
-    { K10,  K11,  K12,  K13, K14, K15,      K16, K17, K18, K19, K1A, K1B, _X_ }, \
-    { K20,  K21,  K22,  K23, K24, K25,      K26, K27, K28, K29, K2A, K2B, K2C }, \
-    { K30,  K31,  _X_,  _X_, K34, K35,      K36, K37, _X_, _X_, _X_, K3B, K3C } \
-}
-
-#define LAYOUT_2u_bs( \
-    K00, K01, K02, K03, K04, K05,           K06, K07, K08, K09, K0A, K0B,      \
-    K10, K11, K12, K13, K14, K15,           K16, K17, K18, K19, K1A,      K1B, \
-    K20, K21, K22, K23, K24, K25,           K26, K27, K28, K29, K2A, K2B, K2C, \
-    K30, K31,           K34, K35,           K36, K37,                K3B, K3C  \
-) { \
-    { K00,  K01,  K02,  K03, K04, K05,      K06, K07, K08, K09, K0A, K0B, _X_ }, \
-    { K10,  K11,  K12,  K13, K14, K15,      K16, K17, K18, K19, K1A, K1B, _X_ }, \
-    { K20,  K21,  K22,  K23, K24, K25,      K26, K27, K28, K29, K2A, K2B, K2C }, \
-    { K30,  K31,  _X_,  _X_, K34, K35,      K36, K37, _X_, _X_, _X_, K3B, K3C }  \
-}

+ 0 - 135
keyboards/eniigmakeyboards/ek60/ek60.h

@@ -1,135 +0,0 @@
-/* Copyright 2021 adamws
- *
- * 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 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_all( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-    k10,      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,      \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, k3e, \
-    k40, k41,      k43,           k46,                k4a, k4b,      k4d, k4e  \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-  { k10, XXX, 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, XXX }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \
-  { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e }  \
-}
-
-#define LAYOUT_60_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,      \
-    k10,      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,      \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d,      \
-    k40, k41,      k43,           k46,                k4a, k4b,      k4d, k4e  \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-  { k10, XXX, 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, XXX }, \
-  { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \
-  { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e }  \
-}
-
-#define LAYOUT_60_ansi_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,      \
-    k10,      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,      \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d,      \
-    k40, k41,      k43,           k46,                     k4b,      k4d, k4e  \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-  { k10, XXX, 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, XXX }, \
-  { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \
-  { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, XXX, k4d, k4e }  \
-}
-
-#define LAYOUT_60_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,      \
-    k10,      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,      \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d,      \
-    k40, k41,      k43,           k46,                k4a, k4b,      k4d, k4e  \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-  { k10, XXX, 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, XXX }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \
-  { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e }  \
-}
-
-#define LAYOUT_60_iso_tsangan( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,      \
-    k10,      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,      \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d,      \
-    k40, k41,      k43,           k46,                     k4b,      k4d, k4e  \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-  { k10, XXX, 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, XXX }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \
-  { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4b, XXX, k4d, k4e }  \
-}
-
-#define LAYOUT_60_iso_split_bs( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
-    k10,      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,      \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d,      \
-    k40, k41,      k43,           k46,                k4a, k4b,      k4d, k4e  \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
-  { k10, XXX, 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, XXX }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX }, \
-  { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e }  \
-}
-
-#define LAYOUT_60_iso_split_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d,      \
-    k10,      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,      \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, k3e, \
-    k40, k41,      k43,           k46,                k4a, k4b,      k4d, k4e  \
-) \
-{ \
-  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
-  { k10, XXX, 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, XXX }, \
-  { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e }, \
-  { k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, XXX, k4d, k4e }  \
-}
-

+ 476 - 49
keyboards/eniigmakeyboards/ek60/info.json

@@ -18,67 +18,494 @@
     "community_layouts": ["60_ansi", "60_iso"],
     "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":"k0d","x":13,"y":0},{"label":"k0e","x":14,"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":"k1e","x":13.5,"y":1,"w":1.5},
-            {"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":"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":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25}
-        ]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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, 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": [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": [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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_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":"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":"k1e","x":13.5,"y":1,"w":1.5},
-            {"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":"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":"k3d","x":12.25,"y":3,"w":2.75},
-            {"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":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25}
-        ]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 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": [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": [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": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_ansi_tsangan": {
-            "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":"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":"k1e","x":13.5,"y":1,"w":1.5},
-            {"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":"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":"k3d","x":12.25,"y":3,"w":2.75},
-            {"label":"k40","x":0,"y":4,"w":1.5},{"label":"k41","x":1.5,"y":4},{"label":"k43","x":2.5,"y":4,"w":1.5},{"label":"k46","x":4,"y":4,"w":7},{"label":"k4b","x":11,"y":4,"w":1.5},{"label":"k4d","x":12.5,"y":4},{"label":"k4e","x":13.5,"y":4,"w":1.5}
-        ]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [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": [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": [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": [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": 2.75},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 12.5, "y": 4},
+                {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
+            ]
         },
         "LAYOUT_60_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":"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":"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},{"label":"k1e","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":2.75},
-            {"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":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25}
-        ]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 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": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 0], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_iso_tsangan": {
-            "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":"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":"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},{"label":"k1e","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":2.75},
-            {"label":"k40","x":0,"y":4,"w":1.5},{"label":"k41","x":1.5,"y":4},{"label":"k43","x":2.5,"y":4,"w":1.5},{"label":"k46","x":4,"y":4,"w":7},{"label":"k4b","x":11,"y":4,"w":1.5},{"label":"k4d","x":12.5,"y":4},{"label":"k4e","x":13.5,"y":4,"w":1.5}
-        ]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [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": [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": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 0], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 1], "x": 1.5, "y": 4},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 12.5, "y": 4},
+                {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
+            ]
         },
         "LAYOUT_60_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":"k0d","x":13,"y":0},{"label":"k0e","x":14,"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":"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},{"label":"k1e","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":2.75},
-            {"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":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25}
-        ]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [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, 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": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 0], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
         "LAYOUT_60_iso_split_rshift": {
-            "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":"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":"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},{"label":"k1e","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":12.5,"y":4,"w":1.25},{"label":"k4e","x":13.75,"y":4,"w":1.25}
-        ]
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 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": 0, "y": 2, "w": 1.75},
+                {"matrix": [2, 0], "x": 1.75, "y": 2},
+                {"matrix": [2, 2], "x": 2.75, "y": 2},
+                {"matrix": [2, 3], "x": 3.75, "y": 2},
+                {"matrix": [2, 4], "x": 4.75, "y": 2},
+                {"matrix": [2, 5], "x": 5.75, "y": 2},
+                {"matrix": [2, 6], "x": 6.75, "y": 2},
+                {"matrix": [2, 7], "x": 7.75, "y": 2},
+                {"matrix": [2, 8], "x": 8.75, "y": 2},
+                {"matrix": [2, 9], "x": 9.75, "y": 2},
+                {"matrix": [2, 10], "x": 10.75, "y": 2},
+                {"matrix": [2, 11], "x": 11.75, "y": 2},
+                {"matrix": [2, 12], "x": 12.75, "y": 2},
+                {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [3, 1], "x": 1.25, "y": 3},
+                {"matrix": [3, 2], "x": 2.25, "y": 3},
+                {"matrix": [3, 3], "x": 3.25, "y": 3},
+                {"matrix": [3, 4], "x": 4.25, "y": 3},
+                {"matrix": [3, 5], "x": 5.25, "y": 3},
+                {"matrix": [3, 6], "x": 6.25, "y": 3},
+                {"matrix": [3, 7], "x": 7.25, "y": 3},
+                {"matrix": [3, 8], "x": 8.25, "y": 3},
+                {"matrix": [3, 9], "x": 9.25, "y": 3},
+                {"matrix": [3, 10], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3},
+                {"matrix": [3, 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": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         }
     }
 }

+ 0 - 74
keyboards/eniigmakeyboards/ek65/ek65.h

@@ -1,74 +0,0 @@
-/* Copyright 2020 adamws
- *
- * 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 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_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, \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, k3e, k3f, \
-    k40,           k43,                k47,                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, XXX, k2f }, \
-  { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e, k3f }, \
-  { k40, XXX, XXX, k43, XXX, XXX, XXX, k47, XXX, XXX, XXX, k4b, XXX, k4d, k4e, k4f }  \
-}
-
-#define LAYOUT_ansi( \
-    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, \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, k3e, k3f, \
-    k40,           k43,                k47,                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, k2d, XXX, k2f }, \
-  { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e, k3f }, \
-  { k40, XXX, XXX, k43, XXX, XXX, XXX, k47, XXX, XXX, XXX, k4b, XXX, k4d, k4e, k4f }  \
-}
-
-#define LAYOUT_iso( \
-    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, k1e, k2f, \
-         k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d, k3e, k3f, \
-    k40,           k43,                k47,                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, k2d, XXX, k2f }, \
-  { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, k3e, k3f }, \
-  { k40, XXX, XXX, k43, XXX, XXX, XXX, k47, XXX, XXX, XXX, k4b, XXX, k4d, k4e, k4f }  \
-}

+ 217 - 21
keyboards/eniigmakeyboards/ek65/info.json

@@ -17,31 +17,227 @@
     "bootloader": "atmel-dfu",
     "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":"k0d","x":13,"y":0},{"label":"k0e","x":14,"y":0},{"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":"k1e","x":13.5,"y":1,"w":1.5},{"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":"k2d","x":12.75,"y":2,"w":2.25},{"label":"k2f","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":"k3d","x":12.25,"y":3,"w":1.75},{"label":"k3e","x":14,"y":3},{"label":"k3f","x":15,"y":3},
-		    {"label":"k40","x":0,"y":4,"w":1.5},{"label":"k43","x":2.25,"y":4,"w":1.5},{"label":"k47","x":3.75,"y":4,"w":7},{"label":"k4b","x":10.75,"y":4,"w":1.5},{"label":"k4d","x":13,"y":4},{"label":"k4e","x":14,"y":4},{"label":"k4f","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},
+                {"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, 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.5},
+                {"matrix": [4, 3], "x": 2.25, "y": 4, "w": 1.5},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 10.75, "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_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":"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":"k1e","x":13.5,"y":1,"w":1.5},{"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":"k2d","x":12.75,"y":2,"w":2.25},{"label":"k2f","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":"k3d","x":12.25,"y":3,"w":1.75},{"label":"k3e","x":14,"y":3},{"label":"k3f","x":15,"y":3},
-		    {"label":"k40","x":0,"y":4,"w":1.5},{"label":"k43","x":2.25,"y":4,"w":1.5},{"label":"k47","x":3.75,"y":4,"w":7},{"label":"k4b","x":10.75,"y":4,"w":1.5},{"label":"k4d","x":13,"y":4},{"label":"k4e","x":14,"y":4},{"label":"k4f","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, 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.5},
+                {"matrix": [4, 3], "x": 2.25, "y": 4, "w": 1.5},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 10.75, "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_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":"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":"k2d","x":12.75,"y":2},{"label":"k1e","x":13.75,"y":1,"w":1.25,"h":2},{"label":"k2f","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":"k3d","x":12.25,"y":3,"w":1.75},{"label":"k3e","x":14,"y":3},{"label":"k3f","x":15,"y":3},
-		    {"label":"k40","x":0,"y":4,"w":1.5},{"label":"k43","x":2.25,"y":4,"w":1.5},{"label":"k47","x":3.75,"y":4,"w":7},{"label":"k4b","x":10.75,"y":4,"w":1.5},{"label":"k4d","x":13,"y":4},{"label":"k4e","x":14,"y":4},{"label":"k4f","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, 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": [2, 13], "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},
+
+                {"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.5},
+                {"matrix": [4, 3], "x": 2.25, "y": 4, "w": 1.5},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 10.75, "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 - 0
keyboards/ericrlau/numdiscipline/rev1/info.json


+ 0 - 77
keyboards/ericrlau/numdiscipline/rev1/rev1.h

@@ -1,77 +0,0 @@
-/* Copyright 2020 Eric Lau
- *
- * 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_all( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,             K0E, K0F, K0G, K0H, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,             K1E, K1F, K1G, K1H, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D,             K2E, K2F, K2G,      \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,        K3D,      K3E, K3F, K3G, K3H, \
-  K40, K41, K42,                K46,           K49, K4A, K4B,        K4C, K4D, K4E,      K4F, K4G      \
-){ \
-{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
-{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
-{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E, K2F, K2G, _x_ }, \
-{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
-{ K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, _x_}   \
-}
-
-#define LAYOUT_std_2_right_mods( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,             K0E, K0F, K0G, K0H, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,             K1E, K1F, K1G, K1H, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D,             K2E, K2F, K2G,      \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,        K3D,      K3E, K3F, K3G, K3H, \
-  K40, K41, K42,                K46,           K49, K4A,             K4C, K4D, K4E,      K4F, K4G      \
-){ \
-{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
-{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
-{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E, K2F, K2G, _x_ }, \
-{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
-{ K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E, K4F, K4G, _x_}   \
-}
-
-#define LAYOUT_wkl_2_right_mods( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,             K0E, K0F, K0G, K0H, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,             K1E, K1F, K1G, K1H, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D,             K2E, K2F, K2G,      \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,        K3D,      K3E, K3F, K3G, K3H, \
-  K40,      K42,                K46,           K49, K4A,             K4C, K4D, K4E,      K4F, K4G      \
-){ \
-{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
-{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
-{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E, K2F, K2G, _x_ }, \
-{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
-{ K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E, K4F, K4G, _x_}   \
-}
-
-#define LAYOUT_wkl_3_right_mods( \
-  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,             K0E, K0F, K0G, K0H, \
-  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,             K1E, K1F, K1G, K1H, \
-  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D,             K2E, K2F, K2G,      \
-  K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,        K3D,      K3E, K3F, K3G, K3H, \
-  K40,      K42,                K46,           K49, K4A, K4B,         K4C, K4D, K4E,      K4F, K4G      \
-){ \
-{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
-{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
-{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, _x_, K2D, K2E, K2F, K2G, _x_ }, \
-{ K30, _x_, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
-{ K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, _x_}   \
-}

+ 0 - 97
keyboards/evyd13/eon75/eon75.h

@@ -1,97 +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,      k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07,     k17, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27,     k37, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k47,          k57, \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,          k77, \
-    k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,        k87,   k97, \
-    ka0, kb0, ka1,                     kb3,           ka5, kb5, ka6,   kb6, ka7, kb7 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { k10, k11, XXX, k13, k14, k15, k16, k17 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37 }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47 }, \
-    { k50, k51, k52, k53, k54, k55, XXX, k57 }, \
-    { k60, k61, k62, k63, k64, k65, k66, XXX }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77 }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87 }, \
-    { k90, k91, k92, k93, k94, k95, XXX, k97 }, \
-    { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7 }, \
-    { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7 }  \
-}
-
-#define LAYOUT_ansi( \
-    k00,      k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07,     k17, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26,      k27,     k37, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k47,          k57, \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75,      k76,          k77, \
-    k80,      k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,        k87,   k97, \
-    ka0, kb0, ka1,                     kb3,           ka5, kb5, ka6,   kb6, ka7, kb7 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { k10, k11, XXX, k13, k14, k15, k16, k17 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { k30, k31, k32, k33, k34, k35, XXX, k37 }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47 }, \
-    { k50, k51, k52, k53, k54, k55, XXX, k57 }, \
-    { k60, k61, k62, k63, k64, k65, XXX, XXX }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77 }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87 }, \
-    { XXX, k91, k92, k93, k94, k95, XXX, k97 }, \
-    { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7 }, \
-    { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7 }  \
-}
-
-#define LAYOUT_iso( \
-    k00,      k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07,     k17, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26,      k27,     k37, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46,               k57, \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,          k77, \
-    k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,        k87,   k97, \
-    ka0, kb0, ka1,                     kb3,           ka5, kb5, ka6,   kb6, ka7, kb7 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07 }, \
-    { k10, k11, XXX, k13, k14, k15, k16, k17 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27 }, \
-    { k30, k31, k32, k33, k34, k35, XXX, k37 }, \
-    { k40, k41, k42, k43, k44, k45, k46, XXX }, \
-    { k50, k51, k52, k53, k54, k55, XXX, k57 }, \
-    { k60, k61, k62, k63, k64, k65, k66, XXX }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77 }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87 }, \
-    { k90, k91, k92, k93, k94, k95, XXX, k97 }, \
-    { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7 }, \
-    { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7 }  \
-}

+ 301 - 268
keyboards/evyd13/eon75/info.json

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

+ 0 - 96
keyboards/evyd13/eon95/eon95.h

@@ -1,96 +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,      k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07,     k17, k08, k18, k09, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27,     k37, k28, k38, k29, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k47,          k57, k48, k58, k49, \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,          k77, k68, k78, k69, \
-    k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,        k87,   k97, k88, k98, k89, \
-    ka0, kb0, ka1,                     kb3,           ka5, kb5, ka6,   kb6, ka7, kb7,   ka8, kb8 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
-    { k10, k11, XXX, k13, k14, k15, k16, k17, k18, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, XXX }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \
-    { k50, k51, k52, k53, k54, k55, XXX, k57, k58, XXX }, \
-    { k60, k61, k62, k63, k64, k65, k66, XXX, k68, k69 }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77, k78, XXX }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \
-    { k90, k91, k92, k93, k94, k95, XXX, k97, k98, XXX }, \
-    { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7, ka8, XXX }, \
-    { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7, kb8, XXX }  \
-}
-
-#define LAYOUT_ansi( \
-    k00,      k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07,     k17, k08, k18, k09, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26,      k27,     k37, k28, k38, k29, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k47,          k57, k48, k58,      \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75,      k76,          k77, k68, k78, k69, \
-    k80,      k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,        k87,   k97, k88, k98, k89, \
-    ka0, kb0, ka1,                     kb3,           ka5, kb5, ka6,   kb6, ka7, kb7,   ka8, kb8 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
-    { k10, k11, XXX, k13, k14, k15, k16, k17, k18, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
-    { k30, k31, k32, k33, k34, k35, XXX, k37, k38, XXX }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, k48, XXX }, \
-    { k50, k51, k52, k53, k54, k55, XXX, k57, k58, XXX }, \
-    { k60, k61, k62, k63, k64, k65, XXX, XXX, k68, k69 }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77, k78, XXX }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \
-    { XXX, k91, k92, k93, k94, k95, XXX, k97, k98, XXX }, \
-    { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7, ka8, XXX }, \
-    { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7, kb8, XXX }  \
-}
-#define LAYOUT_iso( \
-    k00,      k10, k01, k11, k02, k03, k13, k04, k14, k05, k15, k06, k16, k07,     k17, k08, k18, k09, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26,      k27,     k37, k28, k38, k29, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46,               k57, k48, k58,      \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,          k77, k68, k78, k69, \
-    k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,        k87,   k97, k88, k98, k89, \
-    ka0, kb0, ka1,                     kb3,           ka5, kb5, ka6,   kb6, ka7, kb7,   ka8, kb8 \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
-    { k10, k11, XXX, k13, k14, k15, k16, k17, k18, XXX }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
-    { k30, k31, k32, k33, k34, k35, XXX, k37, k38, XXX }, \
-    { k40, k41, k42, k43, k44, k45, k46, XXX, k48, XXX }, \
-    { k50, k51, k52, k53, k54, k55, XXX, k57, k58, XXX }, \
-    { k60, k61, k62, k63, k64, k65, k66, XXX, k68, k69 }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77, k78, XXX }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \
-    { k90, k91, k92, k93, k94, k95, XXX, k97, k98, XXX }, \
-    { ka0, ka1, XXX, XXX, XXX, ka5, ka6, ka7, ka8, XXX }, \
-    { kb0, XXX, XXX, kb3, XXX, kb5, kb6, kb7, kb8, XXX }  \
-}

+ 350 - 317
keyboards/evyd13/eon95/info.json

@@ -24,331 +24,364 @@
     "layouts": {
         "LAYOUT_all": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1.5, "y":0},
-                {"x":2.5, "y":0},
-                {"x":3.5, "y":0},
-                {"x":4.5, "y":0},
-                {"x":5.75, "y":0},
-                {"x":6.75, "y":0},
-                {"x":7.75, "y":0},
-                {"x":8.75, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14.5, "y":0},
-                {"x":15.5, "y":0},
-                {"x":16.5, "y":0},
-                {"x":17.5, "y":0},
-                {"x":18.5, "y":0},
-                
-                {"x":0, "y":1.25},
-                {"x":1, "y":1.25},
-                {"x":2, "y":1.25},
-                {"x":3, "y":1.25},
-                {"x":4, "y":1.25},
-                {"x":5, "y":1.25},
-                {"x":6, "y":1.25},
-                {"x":7, "y":1.25},
-                {"x":8, "y":1.25},
-                {"x":9, "y":1.25},
-                {"x":10, "y":1.25},
-                {"x":11, "y":1.25},
-                {"x":12, "y":1.25},
-                {"x":13, "y":1.25},
-                {"x":14, "y":1.25},
-                {"x":15.5, "y":1.25},
-                {"x":16.5, "y":1.25},
-                {"x":17.5, "y":1.25},
-                {"x":18.5, "y":1.25},
-                
-                {"x":0, "y":2.25, "w":1.5},
-                {"x":1.5, "y":2.25},
-                {"x":2.5, "y":2.25},
-                {"x":3.5, "y":2.25},
-                {"x":4.5, "y":2.25},
-                {"x":5.5, "y":2.25},
-                {"x":6.5, "y":2.25},
-                {"x":7.5, "y":2.25},
-                {"x":8.5, "y":2.25},
-                {"x":9.5, "y":2.25},
-                {"x":10.5, "y":2.25},
-                {"x":11.5, "y":2.25},
-                {"x":12.5, "y":2.25},
-                {"x":13.5, "y":2.25, "w":1.5},
-                {"x":15.5, "y":2.25},
-                {"x":16.5, "y":2.25},
-                {"x":17.5, "y":2.25},
-                {"x":18.5, "y":2.25},
-                
-                {"x":0, "y":3.25, "w":1.75},
-                {"x":1.75, "y":3.25},
-                {"x":2.75, "y":3.25},
-                {"x":3.75, "y":3.25},
-                {"x":4.75, "y":3.25},
-                {"x":5.75, "y":3.25},
-                {"x":6.75, "y":3.25},
-                {"x":7.75, "y":3.25},
-                {"x":8.75, "y":3.25},
-                {"x":9.75, "y":3.25},
-                {"x":10.75, "y":3.25},
-                {"x":11.75, "y":3.25},
-                {"x":12.75, "y":3.25},
-                {"x":13.75, "y":3.25, "w":1.25},
-                {"x":15.5, "y":3.25},
-                {"x":16.5, "y":3.25},
-                {"x":17.5, "y":3.25},
-                {"x":18.5, "y":3.25},
-                
-                {"x":0, "y":4.25, "w":1.25},
-                {"x":1.25, "y":4.25},
-                {"x":2.25, "y":4.25},
-                {"x":3.25, "y":4.25},
-                {"x":4.25, "y":4.25},
-                {"x":5.25, "y":4.25},
-                {"x":6.25, "y":4.25},
-                {"x":7.25, "y":4.25},
-                {"x":8.25, "y":4.25},
-                {"x":9.25, "y":4.25},
-                {"x":10.25, "y":4.25},
-                {"x":11.25, "y":4.25},
-                {"x":12.25, "y":4.25, "w":1.75},
-                {"x":14.25, "y":4.5},
-                {"x":15.5, "y":4.25},
-                {"x":16.5, "y":4.25},
-                {"x":17.5, "y":4.25},
-                {"x":18.5, "y":4.25, "h":2},
-                
-                {"x":0, "y":5.25, "w":1.25},
-                {"x":1.25, "y":5.25, "w":1.25},
-                {"x":2.5, "y":5.25, "w":1.25},
-                {"x":3.75, "y":5.25, "w":6.25},
-                {"x":10, "y":5.25},
-                {"x":11, "y":5.25},
-                {"x":12, "y":5.25},
-                {"x":13.25, "y":5.5},
-                {"x":14.25, "y":5.5},
-                {"x":15.25, "y":5.5},
-                {"x":16.5, "y":5.25},
-                {"x":17.5, "y":5.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [1, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [1, 1], "x": 3.5, "y": 0},
+                {"matrix": [0, 2], "x": 4.5, "y": 0},
+
+                {"matrix": [0, 3], "x": 5.75, "y": 0},
+                {"matrix": [1, 3], "x": 6.75, "y": 0},
+                {"matrix": [0, 4], "x": 7.75, "y": 0},
+                {"matrix": [1, 4], "x": 8.75, "y": 0},
+
+                {"matrix": [0, 5], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "y": 0},
+                {"matrix": [0, 6], "x": 12, "y": 0},
+                {"matrix": [1, 6], "x": 13, "y": 0},
+
+                {"matrix": [0, 7], "x": 14.5, "y": 0},
+                {"matrix": [1, 7], "x": 15.5, "y": 0},
+                {"matrix": [0, 8], "x": 16.5, "y": 0},
+                {"matrix": [1, 8], "x": 17.5, "y": 0},
+                {"matrix": [0, 9], "x": 18.5, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1.25},
+                {"matrix": [3, 0], "x": 1, "y": 1.25},
+                {"matrix": [2, 1], "x": 2, "y": 1.25},
+                {"matrix": [3, 1], "x": 3, "y": 1.25},
+                {"matrix": [2, 2], "x": 4, "y": 1.25},
+                {"matrix": [3, 2], "x": 5, "y": 1.25},
+                {"matrix": [2, 3], "x": 6, "y": 1.25},
+                {"matrix": [3, 3], "x": 7, "y": 1.25},
+                {"matrix": [2, 4], "x": 8, "y": 1.25},
+                {"matrix": [3, 4], "x": 9, "y": 1.25},
+                {"matrix": [2, 5], "x": 10, "y": 1.25},
+                {"matrix": [3, 5], "x": 11, "y": 1.25},
+                {"matrix": [2, 6], "x": 12, "y": 1.25},
+                {"matrix": [3, 6], "x": 13, "y": 1.25},
+                {"matrix": [2, 7], "x": 14, "y": 1.25},
+
+                {"matrix": [3, 7], "x": 15.5, "y": 1.25},
+                {"matrix": [2, 8], "x": 16.5, "y": 1.25},
+                {"matrix": [3, 8], "x": 17.5, "y": 1.25},
+                {"matrix": [2, 9], "x": 18.5, "y": 1.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5},
+                {"matrix": [5, 0], "x": 1.5, "y": 2.25},
+                {"matrix": [4, 1], "x": 2.5, "y": 2.25},
+                {"matrix": [5, 1], "x": 3.5, "y": 2.25},
+                {"matrix": [4, 2], "x": 4.5, "y": 2.25},
+                {"matrix": [5, 2], "x": 5.5, "y": 2.25},
+                {"matrix": [4, 3], "x": 6.5, "y": 2.25},
+                {"matrix": [5, 3], "x": 7.5, "y": 2.25},
+                {"matrix": [4, 4], "x": 8.5, "y": 2.25},
+                {"matrix": [5, 4], "x": 9.5, "y": 2.25},
+                {"matrix": [4, 5], "x": 10.5, "y": 2.25},
+                {"matrix": [5, 5], "x": 11.5, "y": 2.25},
+                {"matrix": [4, 6], "x": 12.5, "y": 2.25},
+                {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5},
+
+                {"matrix": [5, 7], "x": 15.5, "y": 2.25},
+                {"matrix": [4, 8], "x": 16.5, "y": 2.25},
+                {"matrix": [5, 8], "x": 17.5, "y": 2.25},
+                {"matrix": [4, 9], "x": 18.5, "y": 2.25},
+
+                {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75},
+                {"matrix": [7, 0], "x": 1.75, "y": 3.25},
+                {"matrix": [6, 1], "x": 2.75, "y": 3.25},
+                {"matrix": [7, 1], "x": 3.75, "y": 3.25},
+                {"matrix": [6, 2], "x": 4.75, "y": 3.25},
+                {"matrix": [7, 2], "x": 5.75, "y": 3.25},
+                {"matrix": [6, 3], "x": 6.75, "y": 3.25},
+                {"matrix": [7, 3], "x": 7.75, "y": 3.25},
+                {"matrix": [6, 4], "x": 8.75, "y": 3.25},
+                {"matrix": [7, 4], "x": 9.75, "y": 3.25},
+                {"matrix": [6, 5], "x": 10.75, "y": 3.25},
+                {"matrix": [7, 5], "x": 11.75, "y": 3.25},
+                {"matrix": [6, 6], "x": 12.75, "y": 3.25},
+                {"matrix": [7, 6], "x": 13.75, "y": 3.25, "w": 1.25},
+
+                {"matrix": [7, 7], "x": 15.5, "y": 3.25},
+                {"matrix": [6, 8], "x": 16.5, "y": 3.25},
+                {"matrix": [7, 8], "x": 17.5, "y": 3.25},
+                {"matrix": [6, 9], "x": 18.5, "y": 3.25},
+
+                {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 1.25},
+                {"matrix": [9, 0], "x": 1.25, "y": 4.25},
+                {"matrix": [8, 1], "x": 2.25, "y": 4.25},
+                {"matrix": [9, 1], "x": 3.25, "y": 4.25},
+                {"matrix": [8, 2], "x": 4.25, "y": 4.25},
+                {"matrix": [9, 2], "x": 5.25, "y": 4.25},
+                {"matrix": [8, 3], "x": 6.25, "y": 4.25},
+                {"matrix": [9, 3], "x": 7.25, "y": 4.25},
+                {"matrix": [8, 4], "x": 8.25, "y": 4.25},
+                {"matrix": [9, 4], "x": 9.25, "y": 4.25},
+                {"matrix": [8, 5], "x": 10.25, "y": 4.25},
+                {"matrix": [9, 5], "x": 11.25, "y": 4.25},
+                {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75},
+
+                {"matrix": [8, 7], "x": 14.25, "y": 4.5},
+
+                {"matrix": [9, 7], "x": 15.5, "y": 4.25},
+                {"matrix": [8, 8], "x": 16.5, "y": 4.25},
+                {"matrix": [9, 8], "x": 17.5, "y": 4.25},
+                {"matrix": [8, 9], "x": 18.5, "y": 4.25, "h": 2},
+
+                {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25},
+                {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25},
+                {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25},
+                {"matrix": [11, 3], "x": 3.75, "y": 5.25, "w": 6.25},
+                {"matrix": [10, 5], "x": 10, "y": 5.25},
+                {"matrix": [11, 5], "x": 11, "y": 5.25},
+                {"matrix": [10, 6], "x": 12, "y": 5.25},
+
+                {"matrix": [11, 6], "x": 13.25, "y": 5.5},
+                {"matrix": [10, 7], "x": 14.25, "y": 5.5},
+                {"matrix": [11, 7], "x": 15.25, "y": 5.5},
+
+                {"matrix": [10, 8], "x": 16.5, "y": 5.25},
+                {"matrix": [11, 8], "x": 17.5, "y": 5.25}
             ]
         },
         "LAYOUT_ansi": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1.5, "y":0},
-                {"x":2.5, "y":0},
-                {"x":3.5, "y":0},
-                {"x":4.5, "y":0},
-                {"x":5.75, "y":0},
-                {"x":6.75, "y":0},
-                {"x":7.75, "y":0},
-                {"x":8.75, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14.5, "y":0},
-                {"x":15.5, "y":0},
-                {"x":16.5, "y":0},
-                {"x":17.5, "y":0},
-                {"x":18.5, "y":0},
-                
-                {"x":0, "y":1.25},
-                {"x":1, "y":1.25},
-                {"x":2, "y":1.25},
-                {"x":3, "y":1.25},
-                {"x":4, "y":1.25},
-                {"x":5, "y":1.25},
-                {"x":6, "y":1.25},
-                {"x":7, "y":1.25},
-                {"x":8, "y":1.25},
-                {"x":9, "y":1.25},
-                {"x":10, "y":1.25},
-                {"x":11, "y":1.25},
-                {"x":12, "y":1.25},
-                {"x":13, "y":1.25, "w":2},
-                {"x":15.5, "y":1.25},
-                {"x":16.5, "y":1.25},
-                {"x":17.5, "y":1.25},
-                {"x":18.5, "y":1.25},
-                
-                {"x":0, "y":2.25, "w":1.5},
-                {"x":1.5, "y":2.25},
-                {"x":2.5, "y":2.25},
-                {"x":3.5, "y":2.25},
-                {"x":4.5, "y":2.25},
-                {"x":5.5, "y":2.25},
-                {"x":6.5, "y":2.25},
-                {"x":7.5, "y":2.25},
-                {"x":8.5, "y":2.25},
-                {"x":9.5, "y":2.25},
-                {"x":10.5, "y":2.25},
-                {"x":11.5, "y":2.25},
-                {"x":12.5, "y":2.25},
-                {"x":13.5, "y":2.25, "w":1.5},
-                {"x":15.5, "y":2.25},
-                {"x":16.5, "y":2.25},
-                {"x":17.5, "y":2.25},
-                
-                {"x":0, "y":3.25, "w":1.75},
-                {"x":1.75, "y":3.25},
-                {"x":2.75, "y":3.25},
-                {"x":3.75, "y":3.25},
-                {"x":4.75, "y":3.25},
-                {"x":5.75, "y":3.25},
-                {"x":6.75, "y":3.25},
-                {"x":7.75, "y":3.25},
-                {"x":8.75, "y":3.25},
-                {"x":9.75, "y":3.25},
-                {"x":10.75, "y":3.25},
-                {"x":11.75, "y":3.25},
-                {"x":12.75, "y":3.25, "w":2.25},
-                {"x":15.5, "y":3.25},
-                {"x":16.5, "y":3.25},
-                {"x":17.5, "y":3.25},
-                {"x":18.5, "y":2.25, "h":2},
-                
-                {"x":0, "y":4.25, "w":2.25},
-                {"x":2.25, "y":4.25},
-                {"x":3.25, "y":4.25},
-                {"x":4.25, "y":4.25},
-                {"x":5.25, "y":4.25},
-                {"x":6.25, "y":4.25},
-                {"x":7.25, "y":4.25},
-                {"x":8.25, "y":4.25},
-                {"x":9.25, "y":4.25},
-                {"x":10.25, "y":4.25},
-                {"x":11.25, "y":4.25},
-                {"x":12.25, "y":4.25, "w":1.75},
-                {"x":14.25, "y":4.5},
-                {"x":15.5, "y":4.25},
-                {"x":16.5, "y":4.25},
-                {"x":17.5, "y":4.25},
-                {"x":18.5, "y":4.25, "h":2},
-                
-                {"x":0, "y":5.25, "w":1.25},
-                {"x":1.25, "y":5.25, "w":1.25},
-                {"x":2.5, "y":5.25, "w":1.25},
-                {"x":3.75, "y":5.25, "w":6.25},
-                {"x":10, "y":5.25},
-                {"x":11, "y":5.25},
-                {"x":12, "y":5.25},
-                {"x":13.25, "y":5.5},
-                {"x":14.25, "y":5.5},
-                {"x":15.25, "y":5.5},
-                {"x":16.5, "y":5.25},
-                {"x":17.5, "y":5.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [1, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [1, 1], "x": 3.5, "y": 0},
+                {"matrix": [0, 2], "x": 4.5, "y": 0},
+
+                {"matrix": [0, 3], "x": 5.75, "y": 0},
+                {"matrix": [1, 3], "x": 6.75, "y": 0},
+                {"matrix": [0, 4], "x": 7.75, "y": 0},
+                {"matrix": [1, 4], "x": 8.75, "y": 0},
+
+                {"matrix": [0, 5], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "y": 0},
+                {"matrix": [0, 6], "x": 12, "y": 0},
+                {"matrix": [1, 6], "x": 13, "y": 0},
+
+                {"matrix": [0, 7], "x": 14.5, "y": 0},
+                {"matrix": [1, 7], "x": 15.5, "y": 0},
+                {"matrix": [0, 8], "x": 16.5, "y": 0},
+                {"matrix": [1, 8], "x": 17.5, "y": 0},
+                {"matrix": [0, 9], "x": 18.5, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1.25},
+                {"matrix": [3, 0], "x": 1, "y": 1.25},
+                {"matrix": [2, 1], "x": 2, "y": 1.25},
+                {"matrix": [3, 1], "x": 3, "y": 1.25},
+                {"matrix": [2, 2], "x": 4, "y": 1.25},
+                {"matrix": [3, 2], "x": 5, "y": 1.25},
+                {"matrix": [2, 3], "x": 6, "y": 1.25},
+                {"matrix": [3, 3], "x": 7, "y": 1.25},
+                {"matrix": [2, 4], "x": 8, "y": 1.25},
+                {"matrix": [3, 4], "x": 9, "y": 1.25},
+                {"matrix": [2, 5], "x": 10, "y": 1.25},
+                {"matrix": [3, 5], "x": 11, "y": 1.25},
+                {"matrix": [2, 6], "x": 12, "y": 1.25},
+                {"matrix": [2, 7], "x": 13, "y": 1.25, "w": 2},
+
+                {"matrix": [3, 7], "x": 15.5, "y": 1.25},
+                {"matrix": [2, 8], "x": 16.5, "y": 1.25},
+                {"matrix": [3, 8], "x": 17.5, "y": 1.25},
+                {"matrix": [2, 9], "x": 18.5, "y": 1.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5},
+                {"matrix": [5, 0], "x": 1.5, "y": 2.25},
+                {"matrix": [4, 1], "x": 2.5, "y": 2.25},
+                {"matrix": [5, 1], "x": 3.5, "y": 2.25},
+                {"matrix": [4, 2], "x": 4.5, "y": 2.25},
+                {"matrix": [5, 2], "x": 5.5, "y": 2.25},
+                {"matrix": [4, 3], "x": 6.5, "y": 2.25},
+                {"matrix": [5, 3], "x": 7.5, "y": 2.25},
+                {"matrix": [4, 4], "x": 8.5, "y": 2.25},
+                {"matrix": [5, 4], "x": 9.5, "y": 2.25},
+                {"matrix": [4, 5], "x": 10.5, "y": 2.25},
+                {"matrix": [5, 5], "x": 11.5, "y": 2.25},
+                {"matrix": [4, 6], "x": 12.5, "y": 2.25},
+                {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5},
+
+                {"matrix": [5, 7], "x": 15.5, "y": 2.25},
+                {"matrix": [4, 8], "x": 16.5, "y": 2.25},
+                {"matrix": [5, 8], "x": 17.5, "y": 2.25},
+
+                {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75},
+                {"matrix": [7, 0], "x": 1.75, "y": 3.25},
+                {"matrix": [6, 1], "x": 2.75, "y": 3.25},
+                {"matrix": [7, 1], "x": 3.75, "y": 3.25},
+                {"matrix": [6, 2], "x": 4.75, "y": 3.25},
+                {"matrix": [7, 2], "x": 5.75, "y": 3.25},
+                {"matrix": [6, 3], "x": 6.75, "y": 3.25},
+                {"matrix": [7, 3], "x": 7.75, "y": 3.25},
+                {"matrix": [6, 4], "x": 8.75, "y": 3.25},
+                {"matrix": [7, 4], "x": 9.75, "y": 3.25},
+                {"matrix": [6, 5], "x": 10.75, "y": 3.25},
+                {"matrix": [7, 5], "x": 11.75, "y": 3.25},
+                {"matrix": [7, 6], "x": 12.75, "y": 3.25, "w": 2.25},
+
+                {"matrix": [7, 7], "x": 15.5, "y": 3.25},
+                {"matrix": [6, 8], "x": 16.5, "y": 3.25},
+                {"matrix": [7, 8], "x": 17.5, "y": 3.25},
+                {"matrix": [6, 9], "x": 18.5, "y": 2.25, "h": 2},
+
+                {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25},
+                {"matrix": [8, 1], "x": 2.25, "y": 4.25},
+                {"matrix": [9, 1], "x": 3.25, "y": 4.25},
+                {"matrix": [8, 2], "x": 4.25, "y": 4.25},
+                {"matrix": [9, 2], "x": 5.25, "y": 4.25},
+                {"matrix": [8, 3], "x": 6.25, "y": 4.25},
+                {"matrix": [9, 3], "x": 7.25, "y": 4.25},
+                {"matrix": [8, 4], "x": 8.25, "y": 4.25},
+                {"matrix": [9, 4], "x": 9.25, "y": 4.25},
+                {"matrix": [8, 5], "x": 10.25, "y": 4.25},
+                {"matrix": [9, 5], "x": 11.25, "y": 4.25},
+                {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75},
+
+                {"matrix": [8, 7], "x": 14.25, "y": 4.5},
+
+                {"matrix": [9, 7], "x": 15.5, "y": 4.25},
+                {"matrix": [8, 8], "x": 16.5, "y": 4.25},
+                {"matrix": [9, 8], "x": 17.5, "y": 4.25},
+                {"matrix": [8, 9], "x": 18.5, "y": 4.25, "h": 2},
+
+                {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25},
+                {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25},
+                {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25},
+                {"matrix": [11, 3], "x": 3.75, "y": 5.25, "w": 6.25},
+                {"matrix": [10, 5], "x": 10, "y": 5.25},
+                {"matrix": [11, 5], "x": 11, "y": 5.25},
+                {"matrix": [10, 6], "x": 12, "y": 5.25},
+
+                {"matrix": [11, 6], "x": 13.25, "y": 5.5},
+                {"matrix": [10, 7], "x": 14.25, "y": 5.5},
+                {"matrix": [11, 7], "x": 15.25, "y": 5.5},
+
+                {"matrix": [10, 8], "x": 16.5, "y": 5.25},
+                {"matrix": [11, 8], "x": 17.5, "y": 5.25}
             ]
         },
         "LAYOUT_iso": {
             "layout": [
-                {"x":0, "y":0},
-                {"x":1.5, "y":0},
-                {"x":2.5, "y":0},
-                {"x":3.5, "y":0},
-                {"x":4.5, "y":0},
-                {"x":5.75, "y":0},
-                {"x":6.75, "y":0},
-                {"x":7.75, "y":0},
-                {"x":8.75, "y":0},
-                {"x":10, "y":0},
-                {"x":11, "y":0},
-                {"x":12, "y":0},
-                {"x":13, "y":0},
-                {"x":14.5, "y":0},
-                {"x":15.5, "y":0},
-                {"x":16.5, "y":0},
-                {"x":17.5, "y":0},
-                {"x":18.5, "y":0},
-                
-                {"x":0, "y":1.25},
-                {"x":1, "y":1.25},
-                {"x":2, "y":1.25},
-                {"x":3, "y":1.25},
-                {"x":4, "y":1.25},
-                {"x":5, "y":1.25},
-                {"x":6, "y":1.25},
-                {"x":7, "y":1.25},
-                {"x":8, "y":1.25},
-                {"x":9, "y":1.25},
-                {"x":10, "y":1.25},
-                {"x":11, "y":1.25},
-                {"x":12, "y":1.25},
-                {"x":13, "y":1.25, "w":2},
-                {"x":15.5, "y":1.25},
-                {"x":16.5, "y":1.25},
-                {"x":17.5, "y":1.25},
-                {"x":18.5, "y":1.25},
-                
-                {"x":0, "y":2.25, "w":1.5},
-                {"x":1.5, "y":2.25},
-                {"x":2.5, "y":2.25},
-                {"x":3.5, "y":2.25},
-                {"x":4.5, "y":2.25},
-                {"x":5.5, "y":2.25},
-                {"x":6.5, "y":2.25},
-                {"x":7.5, "y":2.25},
-                {"x":8.5, "y":2.25},
-                {"x":9.5, "y":2.25},
-                {"x":10.5, "y":2.25},
-                {"x":11.5, "y":2.25},
-                {"x":12.5, "y":2.25},
-                {"x":15.5, "y":2.25},
-                {"x":16.5, "y":2.25},
-                {"x":17.5, "y":2.25},
-                
-                {"x":0, "y":3.25, "w":1.75},
-                {"x":1.75, "y":3.25},
-                {"x":2.75, "y":3.25},
-                {"x":3.75, "y":3.25},
-                {"x":4.75, "y":3.25},
-                {"x":5.75, "y":3.25},
-                {"x":6.75, "y":3.25},
-                {"x":7.75, "y":3.25},
-                {"x":8.75, "y":3.25},
-                {"x":9.75, "y":3.25},
-                {"x":10.75, "y":3.25},
-                {"x":11.75, "y":3.25},
-                {"x":12.75, "y":3.25},
-                {"x":13.75, "y":2.25, "w":1.25, "h":2},
-                {"x":15.5, "y":3.25},
-                {"x":16.5, "y":3.25},
-                {"x":17.5, "y":3.25},
-                {"x":18.5, "y":2.25, "h":2},
-                
-                {"x":0, "y":4.25, "w":1.25},
-                {"x":1.25, "y":4.25},
-                {"x":2.25, "y":4.25},
-                {"x":3.25, "y":4.25},
-                {"x":4.25, "y":4.25},
-                {"x":5.25, "y":4.25},
-                {"x":6.25, "y":4.25},
-                {"x":7.25, "y":4.25},
-                {"x":8.25, "y":4.25},
-                {"x":9.25, "y":4.25},
-                {"x":10.25, "y":4.25},
-                {"x":11.25, "y":4.25},
-                {"x":12.25, "y":4.25, "w":1.75},
-                {"x":14.25, "y":4.5},
-                {"x":15.5, "y":4.25},
-                {"x":16.5, "y":4.25},
-                {"x":17.5, "y":4.25},
-                {"x":18.5, "y":4.25, "h":2},
-                
-                {"x":0, "y":5.25, "w":1.25},
-                {"x":1.25, "y":5.25, "w":1.25},
-                {"x":2.5, "y":5.25, "w":1.25},
-                {"x":3.75, "y":5.25, "w":6.25},
-                {"x":10, "y":5.25},
-                {"x":11, "y":5.25},
-                {"x":12, "y":5.25},
-                {"x":13.25, "y":5.5},
-                {"x":14.25, "y":5.5},
-                {"x":15.25, "y":5.5},
-                {"x":16.5, "y":5.25},
-                {"x":17.5, "y":5.25}
+                {"matrix": [0, 0], "x": 0, "y": 0},
+
+                {"matrix": [1, 0], "x": 1.5, "y": 0},
+                {"matrix": [0, 1], "x": 2.5, "y": 0},
+                {"matrix": [1, 1], "x": 3.5, "y": 0},
+                {"matrix": [0, 2], "x": 4.5, "y": 0},
+
+                {"matrix": [0, 3], "x": 5.75, "y": 0},
+                {"matrix": [1, 3], "x": 6.75, "y": 0},
+                {"matrix": [0, 4], "x": 7.75, "y": 0},
+                {"matrix": [1, 4], "x": 8.75, "y": 0},
+
+                {"matrix": [0, 5], "x": 10, "y": 0},
+                {"matrix": [1, 5], "x": 11, "y": 0},
+                {"matrix": [0, 6], "x": 12, "y": 0},
+                {"matrix": [1, 6], "x": 13, "y": 0},
+
+                {"matrix": [0, 7], "x": 14.5, "y": 0},
+                {"matrix": [1, 7], "x": 15.5, "y": 0},
+                {"matrix": [0, 8], "x": 16.5, "y": 0},
+                {"matrix": [1, 8], "x": 17.5, "y": 0},
+                {"matrix": [0, 9], "x": 18.5, "y": 0},
+
+                {"matrix": [2, 0], "x": 0, "y": 1.25},
+                {"matrix": [3, 0], "x": 1, "y": 1.25},
+                {"matrix": [2, 1], "x": 2, "y": 1.25},
+                {"matrix": [3, 1], "x": 3, "y": 1.25},
+                {"matrix": [2, 2], "x": 4, "y": 1.25},
+                {"matrix": [3, 2], "x": 5, "y": 1.25},
+                {"matrix": [2, 3], "x": 6, "y": 1.25},
+                {"matrix": [3, 3], "x": 7, "y": 1.25},
+                {"matrix": [2, 4], "x": 8, "y": 1.25},
+                {"matrix": [3, 4], "x": 9, "y": 1.25},
+                {"matrix": [2, 5], "x": 10, "y": 1.25},
+                {"matrix": [3, 5], "x": 11, "y": 1.25},
+                {"matrix": [2, 6], "x": 12, "y": 1.25},
+                {"matrix": [2, 7], "x": 13, "y": 1.25, "w": 2},
+
+                {"matrix": [3, 7], "x": 15.5, "y": 1.25},
+                {"matrix": [2, 8], "x": 16.5, "y": 1.25},
+                {"matrix": [3, 8], "x": 17.5, "y": 1.25},
+                {"matrix": [2, 9], "x": 18.5, "y": 1.25},
+
+                {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5},
+                {"matrix": [5, 0], "x": 1.5, "y": 2.25},
+                {"matrix": [4, 1], "x": 2.5, "y": 2.25},
+                {"matrix": [5, 1], "x": 3.5, "y": 2.25},
+                {"matrix": [4, 2], "x": 4.5, "y": 2.25},
+                {"matrix": [5, 2], "x": 5.5, "y": 2.25},
+                {"matrix": [4, 3], "x": 6.5, "y": 2.25},
+                {"matrix": [5, 3], "x": 7.5, "y": 2.25},
+                {"matrix": [4, 4], "x": 8.5, "y": 2.25},
+                {"matrix": [5, 4], "x": 9.5, "y": 2.25},
+                {"matrix": [4, 5], "x": 10.5, "y": 2.25},
+                {"matrix": [5, 5], "x": 11.5, "y": 2.25},
+                {"matrix": [4, 6], "x": 12.5, "y": 2.25},
+
+                {"matrix": [5, 7], "x": 15.5, "y": 2.25},
+                {"matrix": [4, 8], "x": 16.5, "y": 2.25},
+                {"matrix": [5, 8], "x": 17.5, "y": 2.25},
+
+                {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75},
+                {"matrix": [7, 0], "x": 1.75, "y": 3.25},
+                {"matrix": [6, 1], "x": 2.75, "y": 3.25},
+                {"matrix": [7, 1], "x": 3.75, "y": 3.25},
+                {"matrix": [6, 2], "x": 4.75, "y": 3.25},
+                {"matrix": [7, 2], "x": 5.75, "y": 3.25},
+                {"matrix": [6, 3], "x": 6.75, "y": 3.25},
+                {"matrix": [7, 3], "x": 7.75, "y": 3.25},
+                {"matrix": [6, 4], "x": 8.75, "y": 3.25},
+                {"matrix": [7, 4], "x": 9.75, "y": 3.25},
+                {"matrix": [6, 5], "x": 10.75, "y": 3.25},
+                {"matrix": [7, 5], "x": 11.75, "y": 3.25},
+                {"matrix": [6, 6], "x": 12.75, "y": 3.25},
+                {"matrix": [7, 6], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+                {"matrix": [7, 7], "x": 15.5, "y": 3.25},
+                {"matrix": [6, 8], "x": 16.5, "y": 3.25},
+                {"matrix": [7, 8], "x": 17.5, "y": 3.25},
+                {"matrix": [6, 9], "x": 18.5, "y": 2.25, "h": 2},
+
+                {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 1.25},
+                {"matrix": [9, 0], "x": 1.25, "y": 4.25},
+                {"matrix": [8, 1], "x": 2.25, "y": 4.25},
+                {"matrix": [9, 1], "x": 3.25, "y": 4.25},
+                {"matrix": [8, 2], "x": 4.25, "y": 4.25},
+                {"matrix": [9, 2], "x": 5.25, "y": 4.25},
+                {"matrix": [8, 3], "x": 6.25, "y": 4.25},
+                {"matrix": [9, 3], "x": 7.25, "y": 4.25},
+                {"matrix": [8, 4], "x": 8.25, "y": 4.25},
+                {"matrix": [9, 4], "x": 9.25, "y": 4.25},
+                {"matrix": [8, 5], "x": 10.25, "y": 4.25},
+                {"matrix": [9, 5], "x": 11.25, "y": 4.25},
+                {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75},
+
+                {"matrix": [8, 7], "x": 14.25, "y": 4.5},
+
+                {"matrix": [9, 7], "x": 15.5, "y": 4.25},
+                {"matrix": [8, 8], "x": 16.5, "y": 4.25},
+                {"matrix": [9, 8], "x": 17.5, "y": 4.25},
+                {"matrix": [8, 9], "x": 18.5, "y": 4.25, "h": 2},
+
+                {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.25},
+                {"matrix": [11, 0], "x": 1.25, "y": 5.25, "w": 1.25},
+                {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.25},
+                {"matrix": [11, 3], "x": 3.75, "y": 5.25, "w": 6.25},
+                {"matrix": [10, 5], "x": 10, "y": 5.25},
+                {"matrix": [11, 5], "x": 11, "y": 5.25},
+                {"matrix": [10, 6], "x": 12, "y": 5.25},
+
+                {"matrix": [11, 6], "x": 13.25, "y": 5.5},
+                {"matrix": [10, 7], "x": 14.25, "y": 5.5},
+                {"matrix": [11, 7], "x": 15.25, "y": 5.5},
+
+                {"matrix": [10, 8], "x": 16.5, "y": 5.25},
+                {"matrix": [11, 8], "x": 17.5, "y": 5.25}
             ]
         }
     }

+ 0 - 94
keyboards/evyd13/gh80_1800/gh80_1800.h

@@ -1,94 +0,0 @@
-/* Copyright 2020 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,      k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06,            k07, k08, k09, k0a, \
-	                                                                                 k17, k18, k19, k1a, \
-	k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k36, k26, k16,       k27, k28, k29, k2a, \
-	k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,            k37, k38, k39, k3a, \
-	k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k76, k66,            k47, k48, k49, k4a, \
-	k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95,      k86, k97,       k57, k58, k59, k5a, \
-	k77, k87, k78,           k88,           k79, k89, k7a, k8a,      k98, k99, k9a,       k68, k69, k6a  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a}, \
-    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a}, \
-    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a}, \
-    {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a}, \
-    {k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a}, \
-    {k60, k61, k62, k63, k64, k65, k66, XXX, k68, k69, k6a}, \
-    {k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a}, \
-    {k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a}, \
-    {k90, k91, k92, k93, k94, k95, XXX, k97, k98, k99, k9a}  \
-}
-
-#define LAYOUT_1800_ansi( \
-  k00,      k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06,            k07, k08, k09, k0a, \
-	                                                                                 k17, k18, k19, k1a, \
-	k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k36, k16,            k27, k28, k29, k2a, \
-	k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,            k37, k38, k39, k3a, \
-	k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75,      k66,            k47, k48, k49, k4a, \
-	k80,      k81, k91, k82, k92, k83, k93, k84, k94, k85, k95,      k86, k97,       k57, k58, k59,      \
-	k77, k87, k78,           k88,           k79, k89, k7a, k8a,      k98, k99, k9a,       k68, k69, k6a  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a}, \
-    {k20, k21, k22, k23, k24, k25, XXX, k27, k28, k29, k2a}, \
-    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a}, \
-    {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a}, \
-    {k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, XXX}, \
-    {k60, k61, k62, k63, k64, k65, k66, XXX, k68, k69, k6a}, \
-    {k70, k71, k72, k73, k74, k75, XXX, k77, k78, k79, k7a}, \
-    {k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a}, \
-    {XXX, k91, k92, k93, k94, k95, XXX, k97, k98, k99, k9a}  \
-}
-
-#define LAYOUT_1800_iso( \
-  k00,      k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06,            k07, k08, k09, k0a, \
-	                                                                                 k17, k18, k19, k1a, \
-	k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k36, k16,            k27, k28, k29, k2a, \
-	k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46,                 k37, k38, k39, k3a, \
-	k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k76, k66,            k47, k48, k49, k4a, \
-	k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95,      k86, k97,       k57, k58, k59,      \
-	k77, k87, k78,           k88,           k79, k89, k7a, k8a,      k98, k99, k9a,       k68, k69, k6a  \
-) \
-{ \
-    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a}, \
-    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a}, \
-    {k20, k21, k22, k23, k24, k25, XXX, k27, k28, k29, k2a}, \
-    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a}, \
-    {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a}, \
-    {k50, k51, k52, k53, k54, k55, XXX, k57, k58, k59, XXX}, \
-    {k60, k61, k62, k63, k64, k65, k66, XXX, k68, k69, k6a}, \
-    {k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a}, \
-    {k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a}, \
-    {k90, k91, k92, k93, k94, k95, XXX, k97, k98, k99, k9a}  \
-}

+ 368 - 335
keyboards/evyd13/gh80_1800/info.json

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

+ 1 - 1
keyboards/evyd13/gud70/gud70.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 "gud70.h"
+#include "quantum.h"
 
 void keyboard_pre_init_kb(void) {
   // Enable top LED

+ 0 - 73
keyboards/evyd13/gud70/gud70.h

@@ -1,73 +0,0 @@
-/* Copyright 2020 Evelien 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, k1d, 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, k3d, k3e, k3f, \
-    k40, k41, k42,                     k47,           k4a, k4b, k4c, k4d, k4e, k4f  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \
-    { k40, k41, k42, XXX, XXX, XXX, XXX, k47, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f }  \
-}
-
-#define LAYOUT_ansi( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, k1f, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, k2e, k2f, \
-    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, \
-    k40, k41, k42,                     k47,           k4a, k4b, k4c, k4d, k4e, k4f  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e, k1f }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f }, \
-    { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \
-    { k40, k41, k42, XXX, XXX, XXX, XXX, k47, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f }  \
-}
-
-#define LAYOUT_iso( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      k1e, k1f, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, \
-    k40, k41, k42,                     k47,           k4a, k4b, k4c, k4d, k4e, k4f  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, k1e, k1f }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \
-    { k40, k41, k42, XXX, XXX, XXX, XXX, k47, XXX, XXX, k4a, k4b, k4c, k4d, k4e, k4f }  \
-}

+ 231 - 231
keyboards/evyd13/gud70/info.json

@@ -24,245 +24,245 @@
     "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":16, "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":16, "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":16, "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":16, "y":3},
-                
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":6},
-                {"x":10, "y":4, "w":1.5},
-                {"x":11.5, "y":4},
-                {"x":12.5, "y":4, "w":1.5},
-                {"x":14, "y":4},
-                {"x":15, "y":4},
-                {"x":16, "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": [0, 15], "x": 16, "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": 13.5, "y": 1, "w": 1.5},
+                {"matrix": [1, 15], "x": 15, "y": 1},
+                {"matrix": [2, 0], "x": 16, "y": 1},
+
+                {"matrix": [2, 1], "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": [2, 15], "x": 16, "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": [3, 15], "x": 16, "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, 7], "x": 4, "y": 4, "w": 6},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4},
+                {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4},
+                {"matrix": [4, 15], "x": 16, "y": 4}
             ]
         },
         "LAYOUT_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":16, "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":16, "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":16, "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":16, "y":3},
-                
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":6},
-                {"x":10, "y":4, "w":1.5},
-                {"x":11.5, "y":4},
-                {"x":12.5, "y":4, "w":1.5},
-                {"x":14, "y":4},
-                {"x":15, "y":4},
-                {"x":16, "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": [0, 15], "x": 16, "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": [1, 15], "x": 16, "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": [2, 15], "x": 16, "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": [3, 15], "x": 16, "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, 7], "x": 4, "y": 4, "w": 6},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4},
+                {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4},
+                {"matrix": [4, 15], "x": 16, "y": 4}
             ]
         },
         "LAYOUT_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":16, "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":16, "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":16, "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":16, "y":3},
-                
-                {"x":0, "y":4, "w":1.5},
-                {"x":1.5, "y":4},
-                {"x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":6},
-                {"x":10, "y":4, "w":1.5},
-                {"x":11.5, "y":4},
-                {"x":12.5, "y":4, "w":1.5},
-                {"x":14, "y":4},
-                {"x":15, "y":4},
-                {"x":16, "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": [0, 15], "x": 16, "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": [1, 15], "x": 16, "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": [2, 15], "x": 16, "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": [3, 15], "x": 16, "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, 7], "x": 4, "y": 4, "w": 6},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 11.5, "y": 4},
+                {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 14, "y": 4},
+                {"matrix": [4, 14], "x": 15, "y": 4},
+                {"matrix": [4, 15], "x": 16, "y": 4}
             ]
         }
     }

+ 345 - 312
keyboards/evyd13/nt980/info.json

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

+ 0 - 97
keyboards/evyd13/nt980/nt980.h

@@ -1,97 +0,0 @@
-/* Copyright 2020 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 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_all( \
-    k00,      k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16,     k07, k17, k08, k18, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,     k27, k37, k28, k38, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,     k47, k57, k48, k58, \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,     k67, k77, k68,      \
-    k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,   k96,   k87, k97, k88, k98, \
-    ka0, kb0, ka1,                ka3,           kb4, ka5, kb5,   ka6, kb6, ka7,   kb7, ka8       \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
-    { XXX, k11, k12, k13, k14, k15, k16, k17, k18 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
-    { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \
-    { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77, XXX }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87, k88 }, \
-    { k90, k91, k92, k93, k94, k95, k96, k97, k98 }, \
-    { ka0, ka1, XXX, ka3, XXX, ka5, ka6, ka7, ka8 }, \
-    { kb0, XXX, XXX, XXX, kb4, kb5, kb6, kb7, XXX }  \
-}
-
-#define LAYOUT_ansi( \
-    k00,      k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16,     k07, k17, k08, k18, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,     k27, k37, k28, k38, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56,     k47, k57, k48, k58, \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75,      k76,     k67, k77, k68,      \
-    k80,      k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,   k96,   k87, k97, k88, k98, \
-    ka0, kb0, ka1,                ka3,           kb4, ka5, kb5,   ka6, kb6, ka7,   kb7, ka8       \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
-    { XXX, k11, k12, k13, k14, k15, k16, k17, k18 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
-    { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \
-    { k60, k61, k62, k63, k64, k65, XXX, k67, k68 }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77, XXX }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87, k88 }, \
-    { XXX, k91, k92, k93, k94, k95, k96, k97, k98 }, \
-    { ka0, ka1, XXX, ka3, XXX, ka5, ka6, ka7, ka8 }, \
-    { kb0, XXX, XXX, XXX, kb4, kb5, kb6, kb7, XXX }  \
-}
-
-#define LAYOUT_iso( \
-    k00,      k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16,     k07, k17, k08, k18, \
-    k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36,     k27, k37, k28, k38, \
-    k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46,          k47, k57, k48, k58, \
-    k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76,     k67, k77, k68,      \
-    k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86,   k96,   k87, k97, k88, k98, \
-    ka0, kb0, ka1,                ka3,           kb4, ka5, kb5,   ka6, kb6, ka7,   kb7, ka8       \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
-    { XXX, k11, k12, k13, k14, k15, k16, k17, k18 }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
-    { k50, k51, k52, k53, k54, k55, XXX, k57, k58 }, \
-    { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
-    { k70, k71, k72, k73, k74, k75, k76, k77, XXX }, \
-    { k80, k81, k82, k83, k84, k85, k86, k87, k88 }, \
-    { k90, k91, k92, k93, k94, k95, k96, k97, k98 }, \
-    { ka0, ka1, XXX, ka3, XXX, ka5, ka6, ka7, ka8 }, \
-    { kb0, XXX, XXX, XXX, kb4, kb5, kb6, kb7, XXX }  \
-}

+ 302 - 278
keyboards/evyd13/omrontkl/info.json

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

+ 0 - 79
keyboards/evyd13/omrontkl/omrontkl.h

@@ -1,79 +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,      k0e, k0f, k0g, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k0d, k1d, k1e, k1f, k1g, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,      k2e, k2f, k2g, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,                     \
-    k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d,           k4f,      \
-    k50, k51, k52,                k56,                     k5b, k5c, k5d,      k5e, k5f, k5g  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, XXX, k4f, XXX }, \
-    { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, XXX, k5b, k5c, k5d, k5e, k5f, k5g }  \
-}
-
-#define LAYOUT_ansi( \
-    k00,      k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c,      k0e, k0f, k0g, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      k1e, k1f, k1g, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,      k2e, k2f, k2g, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3d,                     \
-    k40,      k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b,      k4c,           k4f,      \
-    k50, k51, k52,                k56,                     k5b, k5c, k5d,      k5e, k5f, k5g  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, k0e, k0f, k0g }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX }, \
-    { k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX }, \
-    { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, XXX, k5b, k5c, k5d, k5e, k5f, k5g }  \
-}
-
-#define LAYOUT_iso( \
-    k00,      k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c,      k0e, k0f, k0g, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      k1e, k1f, k1g, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c,           k2e, k2f, k2g, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,                     \
-    k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b,      k4c,           k4f,      \
-    k50, k51, k52,                k56,                     k5b, k5c, k5d,      k5e, k5f, k5g  \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, k0e, k0f, k0g }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, XXX, k2e, k2f, k2g }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX, XXX, XXX }, \
-    { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, XXX, XXX, k4f, XXX }, \
-    { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, XXX, k5b, k5c, k5d, k5e, k5f, k5g }  \
-}

+ 271 - 7
keyboards/exclusive/e6v2/le_bmc/info.json

@@ -25,19 +25,283 @@
     "bootloader": "bootloadhid",
     "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":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":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":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":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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
-        },
+            "layout": [
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [6, 1], "x": 6, "y": 0},
+                {"matrix": [6, 8], "x": 7, "y": 0},
+                {"matrix": [7, 8], "x": 8, "y": 0},
+                {"matrix": [7, 1], "x": 9, "y": 0},
+                {"matrix": [4, 9], "x": 10, "y": 0},
+                {"matrix": [4, 8], "x": 11, "y": 0},
+                {"matrix": [4, 7], "x": 12, "y": 0},
+                {"matrix": [5, 2], "x": 13, "y": 0},
+                {"matrix": [4, 10], "x": 14, "y": 0},
 
-        "LAYOUT_60_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":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":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":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":2.75}, {"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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [6, 2], "x": 6.5, "y": 1},
+                {"matrix": [6, 7], "x": 7.5, "y": 1},
+                {"matrix": [7, 7], "x": 8.5, "y": 1},
+                {"matrix": [7, 2], "x": 9.5, "y": 1},
+                {"matrix": [3, 9], "x": 10.5, "y": 1},
+                {"matrix": [3, 8], "x": 11.5, "y": 1},
+                {"matrix": [3, 7], "x": 12.5, "y": 1},
+                {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"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": [6, 3], "x": 6.75, "y": 2},
+                {"matrix": [6, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 6], "x": 8.75, "y": 2},
+                {"matrix": [7, 3], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 8], "x": 11.75, "y": 2},
+                {"matrix": [2, 6], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [5, 3], "x": 1.25, "y": 3},
+                {"matrix": [1, 1], "x": 2.25, "y": 3},
+                {"matrix": [1, 2], "x": 3.25, "y": 3},
+                {"matrix": [1, 3], "x": 4.25, "y": 3},
+                {"matrix": [1, 4], "x": 5.25, "y": 3},
+                {"matrix": [1, 5], "x": 6.25, "y": 3},
+                {"matrix": [6, 4], "x": 7.25, "y": 3},
+                {"matrix": [6, 10], "x": 8.25, "y": 3},
+                {"matrix": [7, 10], "x": 9.25, "y": 3},
+                {"matrix": [7, 4], "x": 10.25, "y": 3},
+                {"matrix": [1, 9], "x": 11.25, "y": 3},
+                {"matrix": [1, 8], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [5, 4], "x": 14, "y": 3},
+
+                {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [6, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [0, 4], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [0, 8], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 9], "x": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [0, 5], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
+        "LAYOUT_60_ansi": {
+            "layout": [
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [6, 1], "x": 6, "y": 0},
+                {"matrix": [6, 8], "x": 7, "y": 0},
+                {"matrix": [7, 8], "x": 8, "y": 0},
+                {"matrix": [7, 1], "x": 9, "y": 0},
+                {"matrix": [4, 9], "x": 10, "y": 0},
+                {"matrix": [4, 8], "x": 11, "y": 0},
+                {"matrix": [4, 7], "x": 12, "y": 0},
+                {"matrix": [4, 10], "x": 13, "y": 0, "w": 2},
 
-        "LAYOUT_60_hhkb": {
-            "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":"~", "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":"Delete", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}]
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [6, 2], "x": 6.5, "y": 1},
+                {"matrix": [6, 7], "x": 7.5, "y": 1},
+                {"matrix": [7, 7], "x": 8.5, "y": 1},
+                {"matrix": [7, 2], "x": 9.5, "y": 1},
+                {"matrix": [3, 9], "x": 10.5, "y": 1},
+                {"matrix": [3, 8], "x": 11.5, "y": 1},
+                {"matrix": [3, 7], "x": 12.5, "y": 1},
+                {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"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": [6, 3], "x": 6.75, "y": 2},
+                {"matrix": [6, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 6], "x": 8.75, "y": 2},
+                {"matrix": [7, 3], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 8], "x": 11.75, "y": 2},
+                {"matrix": [2, 6], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [1, 1], "x": 2.25, "y": 3},
+                {"matrix": [1, 2], "x": 3.25, "y": 3},
+                {"matrix": [1, 3], "x": 4.25, "y": 3},
+                {"matrix": [1, 4], "x": 5.25, "y": 3},
+                {"matrix": [1, 5], "x": 6.25, "y": 3},
+                {"matrix": [6, 4], "x": 7.25, "y": 3},
+                {"matrix": [6, 10], "x": 8.25, "y": 3},
+                {"matrix": [7, 10], "x": 9.25, "y": 3},
+                {"matrix": [7, 4], "x": 10.25, "y": 3},
+                {"matrix": [1, 9], "x": 11.25, "y": 3},
+                {"matrix": [1, 8], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [6, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [0, 4], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [0, 8], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 9], "x": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [0, 5], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
+        "LAYOUT_60_hhkb": {
+            "layout": [
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [6, 1], "x": 6, "y": 0},
+                {"matrix": [6, 8], "x": 7, "y": 0},
+                {"matrix": [7, 8], "x": 8, "y": 0},
+                {"matrix": [7, 1], "x": 9, "y": 0},
+                {"matrix": [4, 9], "x": 10, "y": 0},
+                {"matrix": [4, 8], "x": 11, "y": 0},
+                {"matrix": [4, 7], "x": 12, "y": 0},
+                {"matrix": [5, 2], "x": 13, "y": 0},
+                {"matrix": [4, 10], "x": 14, "y": 0},
+
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [6, 2], "x": 6.5, "y": 1},
+                {"matrix": [6, 7], "x": 7.5, "y": 1},
+                {"matrix": [7, 7], "x": 8.5, "y": 1},
+                {"matrix": [7, 2], "x": 9.5, "y": 1},
+                {"matrix": [3, 9], "x": 10.5, "y": 1},
+                {"matrix": [3, 8], "x": 11.5, "y": 1},
+                {"matrix": [3, 7], "x": 12.5, "y": 1},
+                {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"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": [6, 3], "x": 6.75, "y": 2},
+                {"matrix": [6, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 6], "x": 8.75, "y": 2},
+                {"matrix": [7, 3], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 8], "x": 11.75, "y": 2},
+                {"matrix": [2, 6], "x": 12.75, "y": 2, "w": 2.25},
 
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [1, 1], "x": 2.25, "y": 3},
+                {"matrix": [1, 2], "x": 3.25, "y": 3},
+                {"matrix": [1, 3], "x": 4.25, "y": 3},
+                {"matrix": [1, 4], "x": 5.25, "y": 3},
+                {"matrix": [1, 5], "x": 6.25, "y": 3},
+                {"matrix": [6, 4], "x": 7.25, "y": 3},
+                {"matrix": [6, 10], "x": 8.25, "y": 3},
+                {"matrix": [7, 10], "x": 9.25, "y": 3},
+                {"matrix": [7, 4], "x": 10.25, "y": 3},
+                {"matrix": [1, 9], "x": 11.25, "y": 3},
+                {"matrix": [1, 8], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [5, 4], "x": 14, "y": 3},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 4},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [6, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [0, 8], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [0, 9], "x": 12.5, "y": 4}
+            ]
+        },
         "LAYOUT_60_tsangan": {
-            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "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":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":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":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+            "layout": [
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [6, 1], "x": 6, "y": 0},
+                {"matrix": [6, 8], "x": 7, "y": 0},
+                {"matrix": [7, 8], "x": 8, "y": 0},
+                {"matrix": [7, 1], "x": 9, "y": 0},
+                {"matrix": [4, 9], "x": 10, "y": 0},
+                {"matrix": [4, 8], "x": 11, "y": 0},
+                {"matrix": [4, 7], "x": 12, "y": 0},
+                {"matrix": [5, 2], "x": 13, "y": 0},
+                {"matrix": [4, 10], "x": 14, "y": 0},
+
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [6, 2], "x": 6.5, "y": 1},
+                {"matrix": [6, 7], "x": 7.5, "y": 1},
+                {"matrix": [7, 7], "x": 8.5, "y": 1},
+                {"matrix": [7, 2], "x": 9.5, "y": 1},
+                {"matrix": [3, 9], "x": 10.5, "y": 1},
+                {"matrix": [3, 8], "x": 11.5, "y": 1},
+                {"matrix": [3, 7], "x": 12.5, "y": 1},
+                {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"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": [6, 3], "x": 6.75, "y": 2},
+                {"matrix": [6, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 6], "x": 8.75, "y": 2},
+                {"matrix": [7, 3], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 8], "x": 11.75, "y": 2},
+                {"matrix": [2, 6], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [1, 1], "x": 2.25, "y": 3},
+                {"matrix": [1, 2], "x": 3.25, "y": 3},
+                {"matrix": [1, 3], "x": 4.25, "y": 3},
+                {"matrix": [1, 4], "x": 5.25, "y": 3},
+                {"matrix": [1, 5], "x": 6.25, "y": 3},
+                {"matrix": [6, 4], "x": 7.25, "y": 3},
+                {"matrix": [6, 10], "x": 8.25, "y": 3},
+                {"matrix": [7, 10], "x": 9.25, "y": 3},
+                {"matrix": [7, 4], "x": 10.25, "y": 3},
+                {"matrix": [1, 9], "x": 11.25, "y": 3},
+                {"matrix": [1, 8], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [5, 4], "x": 14, "y": 3},
+
+                {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 4},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [6, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [0, 8], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [0, 9], "x": 12.5, "y": 4},
+                {"matrix": [0, 5], "x": 13.5, "y": 4, "w": 1.5}
+            ]
         }
     }
 }

+ 0 - 103
keyboards/exclusive/e6v2/le_bmc/le_bmc.h

@@ -1,103 +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.
- */
-
-// LAYOUT_all ignores the key often coded as ~# to the left of Enter on ISO layouts. 
-// This is done as it shares the same row AND col as the pipe key. 
-
-#define LAYOUT_all( \
-    k50, k41, k42, k43, k44, k45, k61, k68, k78, k71, k49, k48, k47, k52, k4A, \
-    k30, k31, k32, k33, k34, k35, k62, k67, k77, k72, k39, k38, k37, k36,      \
-    k20, k21, k22, k23, k24, k25, k63, k66, k76, k73, k29, k28, k26,           \
-    k10, k53, k11, k12, k13, k14, k15, k64, k6A, k7A, k74, k19, k18, k54,      \
-    k00, k01, k02, k65, k04, k08, k09, k05                                     \
-) \
-{ \
-    { k00,   k01,   k02,   KC_NO, k04, k05,   KC_NO, KC_NO, k08,   k09,   KC_NO }, \
-    { k10,   k11,   k12,   k13,   k14, k15,   KC_NO, KC_NO, k18,   k19,   KC_NO }, \
-    { k20,   k21,   k22,   k23,   k24, k25,   k26,   KC_NO, k28,   k29,   KC_NO }, \
-    { k30,   k31,   k32,   k33,   k34, k35,   k36,   k37,   k38,   k39,   KC_NO }, \
-    { KC_NO, k41,   k42,   k43,   k44, k45,   KC_NO, k47,   k48,   k49,   k4A   }, \
-    { k50,   KC_NO, k52,   k53,   k54, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
-    { KC_NO, k61,   k62,   k63,   k64, k65,   k66,   k67,   k68,   KC_NO, k6A   }, \
-    { KC_NO, k71,   k72,   k73,   k74, KC_NO, k76,   k77,   k78,   KC_NO, k7A   }, \
-}
-
-
-#define LAYOUT_60_ansi( \
-    k50, k41, k42, k43, k44, k45, k61, k68, k78, k71, k49, k48, k47, k4A, \
-    k30, k31, k32, k33, k34, k35, k62, k67, k77, k72, k39, k38, k37, k36, \
-    k20, k21, k22, k23, k24, k25, k63, k66, k76, k73, k29, k28, k26,      \
-    k10, k11, k12, k13, k14, k15, k64, k6A, k7A, k74, k19, k18,           \
-    k00, k01, k02, k65, k04, k08, k09, k05                                \
-) \
-{ \
-    { k00,   k01,   k02,   KC_NO, k04,   k05,   KC_NO, KC_NO, k08,   k09,   KC_NO }, \
-    { k10,   k11,   k12,   k13,   k14,   k15,   KC_NO, KC_NO, k18,   k19,   KC_NO }, \
-    { k20,   k21,   k22,   k23,   k24,   k25,   k26,   KC_NO, k28,   k29,   KC_NO }, \
-    { k30,   k31,   k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   KC_NO }, \
-    { KC_NO, k41,   k42,   k43,   k44,   k45,   KC_NO, k47,   k48,   k49,   k4A   }, \
-    { k50,   KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
-    { KC_NO, k61,   k62,   k63,   k64,   k65,   k66,   k67,   k68,   KC_NO, k6A   }, \
-    { KC_NO, k71,   k72,   k73,   k74,   KC_NO, k76,   k77,   k78,   KC_NO, k7A   }, \
-}
-
-#define LAYOUT_60_hhkb( \
-    k50, k41, k42, k43, k44, k45, k61, k68, k78, k71, k49, k48, k47, k52, k4A, \
-    k30, k31, k32, k33, k34, k35, k62, k67, k77, k72, k39, k38, k37, k36,      \
-    k20, k21, k22, k23, k24, k25, k63, k66, k76, k73, k29, k28, k26,           \
-    k10, k11, k12, k13, k14, k15, k64, k6A, k7A, k74, k19, k18, k54,           \
-    k01, k02, k65, k08, k09                                                    \
-) \
-{ \
-    { KC_NO, k01,   k02,   KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k08,   k09,   KC_NO }, \
-    { k10,   k11,   k12,   k13,   k14,   k15,   KC_NO, KC_NO, k18,   k19,   KC_NO }, \
-    { k20,   k21,   k22,   k23,   k24,   k25,   k26,   KC_NO, k28,   k29,   KC_NO }, \
-    { k30,   k31,   k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   KC_NO }, \
-    { KC_NO, k41,   k42,   k43,   k44,   k45,   KC_NO, k47,   k48,   k49,   k4A   }, \
-    { k50,   KC_NO, k52,   KC_NO, k54,   KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
-    { KC_NO, k61,   k62,   k63,   k64,   k65,   k66,   k67,   k68,   KC_NO, k6A   }, \
-    { KC_NO, k71,   k72,   k73,   k74,   KC_NO, k76,   k77,   k78,   KC_NO, k7A   }, \
-}
-
-#define LAYOUT_60_tsangan( \
-    k50, k41, k42, k43, k44, k45, k61, k68, k78, k71, k49, k48, k47, k52, k4A, \
-    k30, k31, k32, k33, k34, k35, k62, k67, k77, k72, k39, k38, k37, k36,      \
-    k20, k21, k22, k23, k24, k25, k63, k66, k76, k73, k29, k28, k26,           \
-    k10, k11, k12, k13, k14, k15, k64, k6A, k7A, k74, k19, k18, k54,           \
-    k00, k01, k02, k65, k08, k09, k05                                          \
-) \
-{ \
-    { k00,   k01,   k02,   KC_NO, KC_NO, k05,   KC_NO, KC_NO, k08,   k09,   KC_NO }, \
-    { k10,   k11,   k12,   k13,   k14,   k15,   KC_NO, KC_NO, k18,   k19,   KC_NO }, \
-    { k20,   k21,   k22,   k23,   k24,   k25,   k26,   KC_NO, k28,   k29,   KC_NO }, \
-    { k30,   k31,   k32,   k33,   k34,   k35,   k36,   k37,   k38,   k39,   KC_NO }, \
-    { KC_NO, k41,   k42,   k43,   k44,   k45,   KC_NO, k47,   k48,   k49,   k4A   }, \
-    { k50,   KC_NO, k52,   KC_NO, k54,   KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
-    { KC_NO, k61,   k62,   k63,   k64,   k65,   k66,   k67,   k68,   KC_NO, k6A   }, \
-    { KC_NO, k71,   k72,   k73,   k74,   KC_NO, k76,   k77,   k78,   KC_NO, k7A   }, \
-}

+ 271 - 7
keyboards/exclusive/e6v2/oe_bmc/info.json

@@ -25,19 +25,283 @@
     "bootloader": "bootloadhid",
     "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":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":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":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":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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
-        },
+            "layout": [
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [6, 1], "x": 6, "y": 0},
+                {"matrix": [6, 8], "x": 7, "y": 0},
+                {"matrix": [7, 8], "x": 8, "y": 0},
+                {"matrix": [7, 1], "x": 9, "y": 0},
+                {"matrix": [4, 9], "x": 10, "y": 0},
+                {"matrix": [4, 8], "x": 11, "y": 0},
+                {"matrix": [4, 7], "x": 12, "y": 0},
+                {"matrix": [5, 2], "x": 13, "y": 0},
+                {"matrix": [4, 10], "x": 14, "y": 0},
 
-        "LAYOUT_60_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":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":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":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":2.75}, {"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":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [6, 2], "x": 6.5, "y": 1},
+                {"matrix": [6, 7], "x": 7.5, "y": 1},
+                {"matrix": [7, 7], "x": 8.5, "y": 1},
+                {"matrix": [7, 2], "x": 9.5, "y": 1},
+                {"matrix": [3, 9], "x": 10.5, "y": 1},
+                {"matrix": [3, 8], "x": 11.5, "y": 1},
+                {"matrix": [3, 7], "x": 12.5, "y": 1},
+                {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"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": [6, 3], "x": 6.75, "y": 2},
+                {"matrix": [6, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 6], "x": 8.75, "y": 2},
+                {"matrix": [7, 3], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 8], "x": 11.75, "y": 2},
+                {"matrix": [2, 6], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 1.25},
+                {"matrix": [5, 3], "x": 1.25, "y": 3},
+                {"matrix": [1, 1], "x": 2.25, "y": 3},
+                {"matrix": [1, 2], "x": 3.25, "y": 3},
+                {"matrix": [1, 3], "x": 4.25, "y": 3},
+                {"matrix": [1, 4], "x": 5.25, "y": 3},
+                {"matrix": [1, 5], "x": 6.25, "y": 3},
+                {"matrix": [6, 4], "x": 7.25, "y": 3},
+                {"matrix": [6, 10], "x": 8.25, "y": 3},
+                {"matrix": [7, 10], "x": 9.25, "y": 3},
+                {"matrix": [7, 4], "x": 10.25, "y": 3},
+                {"matrix": [1, 9], "x": 11.25, "y": 3},
+                {"matrix": [1, 8], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [5, 4], "x": 14, "y": 3},
+
+                {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [7, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [0, 4], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [0, 8], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 9], "x": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [0, 5], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
+        "LAYOUT_60_ansi": {
+            "layout": [
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [6, 1], "x": 6, "y": 0},
+                {"matrix": [6, 8], "x": 7, "y": 0},
+                {"matrix": [7, 8], "x": 8, "y": 0},
+                {"matrix": [7, 1], "x": 9, "y": 0},
+                {"matrix": [4, 9], "x": 10, "y": 0},
+                {"matrix": [4, 8], "x": 11, "y": 0},
+                {"matrix": [4, 7], "x": 12, "y": 0},
+                {"matrix": [4, 10], "x": 13, "y": 0, "w": 2},
 
-        "LAYOUT_60_hhkb": {
-            "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":"~", "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":"Delete", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}]
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [6, 2], "x": 6.5, "y": 1},
+                {"matrix": [6, 7], "x": 7.5, "y": 1},
+                {"matrix": [7, 7], "x": 8.5, "y": 1},
+                {"matrix": [7, 2], "x": 9.5, "y": 1},
+                {"matrix": [3, 9], "x": 10.5, "y": 1},
+                {"matrix": [3, 8], "x": 11.5, "y": 1},
+                {"matrix": [3, 7], "x": 12.5, "y": 1},
+                {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"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": [6, 3], "x": 6.75, "y": 2},
+                {"matrix": [6, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 6], "x": 8.75, "y": 2},
+                {"matrix": [7, 3], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 8], "x": 11.75, "y": 2},
+                {"matrix": [2, 6], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [1, 1], "x": 2.25, "y": 3},
+                {"matrix": [1, 2], "x": 3.25, "y": 3},
+                {"matrix": [1, 3], "x": 4.25, "y": 3},
+                {"matrix": [1, 4], "x": 5.25, "y": 3},
+                {"matrix": [1, 5], "x": 6.25, "y": 3},
+                {"matrix": [6, 4], "x": 7.25, "y": 3},
+                {"matrix": [6, 10], "x": 8.25, "y": 3},
+                {"matrix": [7, 10], "x": 9.25, "y": 3},
+                {"matrix": [7, 4], "x": 10.25, "y": 3},
+                {"matrix": [1, 9], "x": 11.25, "y": 3},
+                {"matrix": [1, 8], "x": 12.25, "y": 3, "w": 2.75},
+
+                {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [0, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [7, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [0, 4], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [0, 8], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [0, 9], "x": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [0, 5], "x": 13.75, "y": 4, "w": 1.25}
+            ]
         },
+        "LAYOUT_60_hhkb": {
+            "layout": [
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [6, 1], "x": 6, "y": 0},
+                {"matrix": [6, 8], "x": 7, "y": 0},
+                {"matrix": [7, 8], "x": 8, "y": 0},
+                {"matrix": [7, 1], "x": 9, "y": 0},
+                {"matrix": [4, 9], "x": 10, "y": 0},
+                {"matrix": [4, 8], "x": 11, "y": 0},
+                {"matrix": [4, 7], "x": 12, "y": 0},
+                {"matrix": [5, 2], "x": 13, "y": 0},
+                {"matrix": [4, 10], "x": 14, "y": 0},
+
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [6, 2], "x": 6.5, "y": 1},
+                {"matrix": [6, 7], "x": 7.5, "y": 1},
+                {"matrix": [7, 7], "x": 8.5, "y": 1},
+                {"matrix": [7, 2], "x": 9.5, "y": 1},
+                {"matrix": [3, 9], "x": 10.5, "y": 1},
+                {"matrix": [3, 8], "x": 11.5, "y": 1},
+                {"matrix": [3, 7], "x": 12.5, "y": 1},
+                {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"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": [6, 3], "x": 6.75, "y": 2},
+                {"matrix": [6, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 6], "x": 8.75, "y": 2},
+                {"matrix": [7, 3], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 8], "x": 11.75, "y": 2},
+                {"matrix": [2, 6], "x": 12.75, "y": 2, "w": 2.25},
 
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [1, 1], "x": 2.25, "y": 3},
+                {"matrix": [1, 2], "x": 3.25, "y": 3},
+                {"matrix": [1, 3], "x": 4.25, "y": 3},
+                {"matrix": [1, 4], "x": 5.25, "y": 3},
+                {"matrix": [1, 5], "x": 6.25, "y": 3},
+                {"matrix": [6, 4], "x": 7.25, "y": 3},
+                {"matrix": [6, 10], "x": 8.25, "y": 3},
+                {"matrix": [7, 10], "x": 9.25, "y": 3},
+                {"matrix": [7, 4], "x": 10.25, "y": 3},
+                {"matrix": [1, 9], "x": 11.25, "y": 3},
+                {"matrix": [1, 8], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [5, 4], "x": 14, "y": 3},
+
+                {"matrix": [0, 1], "x": 1.5, "y": 4},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [7, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [0, 8], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [0, 9], "x": 12.5, "y": 4}
+            ]
+        },
         "LAYOUT_60_tsangan": {
-            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "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":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":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":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+            "layout": [
+                {"matrix": [5, 0], "x": 0, "y": 0},
+                {"matrix": [4, 1], "x": 1, "y": 0},
+                {"matrix": [4, 2], "x": 2, "y": 0},
+                {"matrix": [4, 3], "x": 3, "y": 0},
+                {"matrix": [4, 4], "x": 4, "y": 0},
+                {"matrix": [4, 5], "x": 5, "y": 0},
+                {"matrix": [6, 1], "x": 6, "y": 0},
+                {"matrix": [6, 8], "x": 7, "y": 0},
+                {"matrix": [7, 8], "x": 8, "y": 0},
+                {"matrix": [7, 1], "x": 9, "y": 0},
+                {"matrix": [4, 9], "x": 10, "y": 0},
+                {"matrix": [4, 8], "x": 11, "y": 0},
+                {"matrix": [4, 7], "x": 12, "y": 0},
+                {"matrix": [5, 2], "x": 13, "y": 0},
+                {"matrix": [4, 10], "x": 14, "y": 0},
+
+                {"matrix": [3, 0], "x": 0, "y": 1, "w": 1.5},
+                {"matrix": [3, 1], "x": 1.5, "y": 1},
+                {"matrix": [3, 2], "x": 2.5, "y": 1},
+                {"matrix": [3, 3], "x": 3.5, "y": 1},
+                {"matrix": [3, 4], "x": 4.5, "y": 1},
+                {"matrix": [3, 5], "x": 5.5, "y": 1},
+                {"matrix": [6, 2], "x": 6.5, "y": 1},
+                {"matrix": [6, 7], "x": 7.5, "y": 1},
+                {"matrix": [7, 7], "x": 8.5, "y": 1},
+                {"matrix": [7, 2], "x": 9.5, "y": 1},
+                {"matrix": [3, 9], "x": 10.5, "y": 1},
+                {"matrix": [3, 8], "x": 11.5, "y": 1},
+                {"matrix": [3, 7], "x": 12.5, "y": 1},
+                {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+
+                {"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": [6, 3], "x": 6.75, "y": 2},
+                {"matrix": [6, 6], "x": 7.75, "y": 2},
+                {"matrix": [7, 6], "x": 8.75, "y": 2},
+                {"matrix": [7, 3], "x": 9.75, "y": 2},
+                {"matrix": [2, 9], "x": 10.75, "y": 2},
+                {"matrix": [2, 8], "x": 11.75, "y": 2},
+                {"matrix": [2, 6], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [1, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [1, 1], "x": 2.25, "y": 3},
+                {"matrix": [1, 2], "x": 3.25, "y": 3},
+                {"matrix": [1, 3], "x": 4.25, "y": 3},
+                {"matrix": [1, 4], "x": 5.25, "y": 3},
+                {"matrix": [1, 5], "x": 6.25, "y": 3},
+                {"matrix": [6, 4], "x": 7.25, "y": 3},
+                {"matrix": [6, 10], "x": 8.25, "y": 3},
+                {"matrix": [7, 10], "x": 9.25, "y": 3},
+                {"matrix": [7, 4], "x": 10.25, "y": 3},
+                {"matrix": [1, 9], "x": 11.25, "y": 3},
+                {"matrix": [1, 8], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [5, 4], "x": 14, "y": 3},
+
+                {"matrix": [0, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [0, 1], "x": 1.5, "y": 4},
+                {"matrix": [0, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [7, 5], "x": 4, "y": 4, "w": 7},
+                {"matrix": [0, 8], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [0, 9], "x": 12.5, "y": 4},
+                {"matrix": [0, 5], "x": 13.5, "y": 4, "w": 1.5}
+            ]
         }
     }
 }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно