Browse Source

Move 60% layouts to data driven (#20477)

Ryan 3 years ago
parent
commit
4d8dd55bf9
100 changed files with 4779 additions and 6126 deletions
  1. 0 49
      keyboards/1upkeyboards/1up60hte/1up60hte.h
  2. 122 122
      keyboards/1upkeyboards/1up60hte/info.json
  3. 646 27
      keyboards/acekeyboard/titan60/info.json
  4. 0 154
      keyboards/acekeyboard/titan60/titan60.h
  5. 0 50
      keyboards/acheron/arctic/arctic.h
  6. 122 122
      keyboards/acheron/arctic/info.json
  7. 0 0
      keyboards/acheron/keebspcb/info.json
  8. 0 19
      keyboards/acheron/keebspcb/keebspcb.h
  9. 0 59
      keyboards/akegata_denki/device_one/device_one.h
  10. 0 0
      keyboards/akegata_denki/device_one/info.json
  11. 0 32
      keyboards/annepro2/annepro2.h
  12. 123 123
      keyboards/annepro2/info.json
  13. 0 84
      keyboards/blank/blank01/blank01.h
  14. 122 123
      keyboards/blank/blank01/info.json
  15. 126 126
      keyboards/checkerboards/nop60/info.json
  16. 0 49
      keyboards/checkerboards/nop60/nop60.h
  17. 126 126
      keyboards/checkerboards/snop60/info.json
  18. 1 1
      keyboards/checkerboards/snop60/snop60.c
  19. 0 49
      keyboards/checkerboards/snop60/snop60.h
  20. 0 61
      keyboards/chickenman/ciel/ciel.h
  21. 186 186
      keyboards/chickenman/ciel/info.json
  22. 246 246
      keyboards/cutie_club/novus/info.json
  23. 0 94
      keyboards/cutie_club/novus/novus.h
  24. 1 1
      keyboards/dztech/dz64rgb/dz64rgb.c
  25. 0 35
      keyboards/dztech/dz64rgb/dz64rgb.h
  26. 64 64
      keyboards/dztech/dz64rgb/info.json
  27. 1 5
      keyboards/exclusive/e6_rgb/e6_rgb.c
  28. 0 72
      keyboards/exclusive/e6_rgb/e6_rgb.h
  29. 247 246
      keyboards/exclusive/e6_rgb/info.json
  30. 64 64
      keyboards/fjlabs/ready100/info.json
  31. 0 32
      keyboards/fjlabs/ready100/ready100.h
  32. 118 118
      keyboards/fjlabs/sinanju/info.json
  33. 0 59
      keyboards/fjlabs/sinanju/sinanju.h
  34. 64 64
      keyboards/fjlabs/tf60v2/info.json
  35. 0 32
      keyboards/fjlabs/tf60v2/tf60v2.h
  36. 63 63
      keyboards/flygone60/rev3/info.json
  37. 0 41
      keyboards/flygone60/rev3/rev3.h
  38. 0 120
      keyboards/geonworks/frogmini/fmh/fmh.h
  39. 300 300
      keyboards/geonworks/frogmini/fmh/info.json
  40. 0 0
      keyboards/handwired/swiftrax/nodu/info.json
  41. 0 35
      keyboards/handwired/swiftrax/nodu/nodu.h
  42. 246 246
      keyboards/horrortroll/paws60/info.json
  43. 0 129
      keyboards/horrortroll/paws60/paws60.h
  44. 0 1
      keyboards/hs60/v1/info.json
  45. 1 1
      keyboards/hs60/v1/v1.c
  46. 0 51
      keyboards/hs60/v1/v1.h
  47. 62 61
      keyboards/ilumkb/simpler61/info.json
  48. 1 1
      keyboards/ilumkb/simpler61/simpler61.c
  49. 0 35
      keyboards/ilumkb/simpler61/simpler61.h
  50. 64 64
      keyboards/ilumkb/simpler64/info.json
  51. 1 1
      keyboards/ilumkb/simpler64/simpler64.c
  52. 0 35
      keyboards/ilumkb/simpler64/simpler64.h
  53. 0 0
      keyboards/inett_studio/sqx/universal/info.json
  54. 0 93
      keyboards/inett_studio/sqx/universal/universal.h
  55. 0 36
      keyboards/input_club/infinity60/infinity60.h
  56. 63 63
      keyboards/input_club/infinity60/info.json
  57. 1 1
      keyboards/keebio/wtf60/info.json
  58. 0 49
      keyboards/keebio/wtf60/wtf60.h
  59. 0 61
      keyboards/kkatano/bakeneko60/bakeneko60.h
  60. 194 194
      keyboards/kkatano/bakeneko60/info.json
  61. 67 63
      keyboards/kprepublic/bm60hsrgb/rev1/info.json
  62. 1 1
      keyboards/kprepublic/bm60hsrgb/rev1/rev1.c
  63. 0 32
      keyboards/kprepublic/bm60hsrgb/rev1/rev1.h
  64. 63 63
      keyboards/kprepublic/bm60hsrgb/rev2/info.json
  65. 1 1
      keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
  66. 0 32
      keyboards/kprepublic/bm60hsrgb/rev2/rev2.h
  67. 64 64
      keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json
  68. 1 1
      keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c
  69. 0 32
      keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.h
  70. 64 60
      keyboards/latincompass/latin60rgb/info.json
  71. 1 1
      keyboards/latincompass/latin60rgb/latin60rgb.c
  72. 0 34
      keyboards/latincompass/latin60rgb/latin60rgb.h
  73. 0 35
      keyboards/longnald/corin/corin.h
  74. 68 64
      keyboards/longnald/corin/info.json
  75. 126 128
      keyboards/mechlovin/zed60/info.json
  76. 0 65
      keyboards/mechlovin/zed60/zed60.h
  77. 63 63
      keyboards/melgeek/mj63/info.json
  78. 0 35
      keyboards/melgeek/mj63/mj63.h
  79. 1 1
      keyboards/melgeek/mj63/rev1/rev1.c
  80. 1 1
      keyboards/melgeek/mj63/rev2/rev2.c
  81. 65 64
      keyboards/melgeek/mj64/info.json
  82. 0 36
      keyboards/melgeek/mj64/mj64.h
  83. 1 1
      keyboards/melgeek/mj64/rev1/rev1.c
  84. 1 1
      keyboards/melgeek/mj64/rev2/rev2.c
  85. 1 1
      keyboards/melgeek/mj64/rev3/rev3.c
  86. 63 63
      keyboards/mss_studio/m63_rgb/info.json
  87. 1 1
      keyboards/mss_studio/m63_rgb/m63_rgb.c
  88. 0 49
      keyboards/mss_studio/m63_rgb/m63_rgb.h
  89. 64 64
      keyboards/mss_studio/m64_rgb/info.json
  90. 1 1
      keyboards/mss_studio/m64_rgb/m64_rgb.c
  91. 0 49
      keyboards/mss_studio/m64_rgb/m64_rgb.h
  92. 70 1
      keyboards/mt/mt64rgb/info.json
  93. 1 1
      keyboards/mt/mt64rgb/mt64rgb.c
  94. 0 33
      keyboards/mt/mt64rgb/mt64rgb.h
  95. 281 279
      keyboards/nightly_boards/n60_s/info.json
  96. 0 68
      keyboards/nightly_boards/n60_s/n60_s.h
  97. 130 130
      keyboards/nightly_boards/paraluman/info.json
  98. 0 55
      keyboards/nightly_boards/paraluman/paraluman.h
  99. 204 3
      keyboards/ok60/info.json
  100. 0 75
      keyboards/ok60/ok60.h

+ 0 - 49
keyboards/1upkeyboards/1up60hte/1up60hte.h

@@ -1,49 +0,0 @@
-/*
-Copyright 2019 Bubnick
-
-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_tsangan_hhkb( \
-    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
-    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,       \
-    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,       \
-    K400, K401, K402,                   K406,                   K410, 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,  K212,  KC_NO }, \
-    { K300,  K301,  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 }  \
-}
-
-/* HHKB Variant */
-#define LAYOUT_60_hhkb( \
-    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \
-    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,       \
-    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,       \
-          K401, K402,                  K406,                    K410, K411              \
-) { \
-    { 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,  KC_NO }, \
-    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO }, \
-    { KC_NO, K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413 }  \
-}

+ 122 - 122
keyboards/1upkeyboards/1up60hte/info.json

@@ -32,140 +32,140 @@
     "layouts": {
         "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, 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":"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, 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, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 10], "x": 11.25, "y": 3},
+                {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "x": 14, "y": 3},
 
-                {"label":"Ctrl", "x":0, "y":4, "w":1.5},
-                {"label":"Alt", "x":1.5, "y":4},
-                {"label":"Meta", "x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"label":"Meta", "x":11, "y":4, "w":1.5},
-                {"label":"Alt", "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, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "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": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, 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":"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, 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, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 10], "x": 11.25, "y": 3},
+                {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "x": 14, "y": 3},
 
-                {"label":"Alt", "x":1.5, "y":4},
-                {"label":"Meta", "x":2.5, "y":4, "w":1.5},
-                {"x":4, "y":4, "w":7},
-                {"label":"Meta", "x":11, "y":4, "w":1.5},
-                {"label":"Alt", "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, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4}
             ]
         }
     }

+ 646 - 27
keyboards/acekeyboard/titan60/info.json

@@ -23,32 +23,651 @@
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
     "layouts": {
-      "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_60_ansi_split": {
-        "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_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_60_iso_split": {
-        "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_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_60_tsangan_split": {
-        "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.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_60_utilitarian": {
-        "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}, {"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}]
-      },
-      "LAYOUT_60_utilitarian_split": {
-        "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}, {"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":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
-      },
-      "LAYOUT_60_utilitarian_iso_split": {
-        "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":2}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"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}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
-      }
+        "LAYOUT_60_ansi": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+                {"matrix": [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": {
+            "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": [4, 3], "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": {
+            "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, 13], "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": [1, 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": {
+            "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, 13], "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": [1, 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": [4, 3], "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": {
+            "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": [4, 3], "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}
+            ]
+        },
+        "LAYOUT_60_tsangan_split": {
+            "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": [4, 3], "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}
+            ]
+        },
+        "LAYOUT_60_utilitarian": {
+            "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},
+                {"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": [3, 12], "x": 13, "y": 3},
+                {"matrix": [4, 3], "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},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 9], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
+            ]
+        },
+        "LAYOUT_60_utilitarian_split": {
+            "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},
+                {"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": [3, 12], "x": 13, "y": 3},
+                {"matrix": [4, 3], "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.75},
+                {"matrix": [4, 6], "x": 6.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.25},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 9], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
+            ]
+        },
+        "LAYOUT_60_utilitarian_iso_split": {
+            "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, 13], "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": [1, 13], "x": 12.75, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2},
+                {"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": [3, 12], "x": 13, "y": 3},
+                {"matrix": [4, 3], "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.75},
+                {"matrix": [4, 6], "x": 6.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.25},
+                {"matrix": [4, 10], "x": 10, "y": 4},
+                {"matrix": [4, 11], "x": 11, "y": 4},
+                {"matrix": [4, 9], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
+            ]
+        }
     }
 }

+ 0 - 154
keyboards/acekeyboard/titan60/titan60.h

@@ -1,154 +0,0 @@
-/*
-Copyright 2021 keebnewb
-
-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_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, ___, k2d },  \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ },  \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d }   \
-}
-
-// ANSI with all split options
-#define LAYOUT_60_ansi_split( \
-    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, k43,      \
-    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, ___ },  \
-    { k40, k41, k42, k43, ___, ___, k46, ___, ___, ___, 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, k2d,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d,           \
-    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, ___, k2d },  \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ },  \
-    { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d }   \
-}
-
-// ISO with all split options
-#define LAYOUT_60_iso_split( \
-    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, k2d,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d,           \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k43,      \
-    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, ___ },  \
-    { k40, k41, k42, k43, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d }   \
-}
-
-// Tsangan
-#define LAYOUT_60_tsangan( \
-    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, k43,           \
-    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, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ },  \
-    { k40, k41, k42, k43, ___, ___, k46, ___, ___, ___, ___, k4b, k4c, k4d }   \
-}
-
-// Tsangan with split left shift
-#define LAYOUT_60_tsangan_split( \
-    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, k43,      \
-    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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ },  \
-    { k40, k41, k42, k43, ___, ___, k46, ___, ___, ___, ___, k4b, k4c, k4d }   \
-}
-
-#define LAYOUT_60_utilitarian( \
-    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, k3c, k43,      \
-    k40, k41, k42, k46, k4a, k4b, k49, 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, ___, k2d },  \
-    { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d },  \
-    { k40, k41, k42, k43, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d }   \
-}
-
-// Utilitarian with split spacebar and split backspace
-#define LAYOUT_60_utilitarian_split( \
-    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, k3d, k3c, k43,       \
-    k40, k41, k42, k44, k46, k48, k4a, k4b, k49, 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, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d },  \
-    { k40, k41, k42, k43, k44, ___, k46, ___, k48, k49, k4a, k4b, k4c, k4d }   \
-}
-
-// Utilitarian with ISO enter, split spacebar and split backspace
-#define LAYOUT_60_utilitarian_iso_split( \
-    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, k2d,      \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d,           \
-    k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, k43,      \
-    k40, k41, k42, k44, k46, k48, k4a, k4b, k49, 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, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d },  \
-    { k40, k41, k42, k43, k44, ___, k46, ___, k48, k49, k4a, k4b, k4c, k4d }   \
-}

+ 0 - 50
keyboards/acheron/arctic/arctic.h

@@ -1,50 +0,0 @@
-/*
-Copyright 2015 Álvaro "Gondolindrim" Volpato  <gondolindrim@acheronproject.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_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, K2C,      \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,           \
-    K40, K41, K42,                K46,           K49, K4A, K4B            \
-) { \
-    {  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, ___}, \
-    {  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, ___}, \
-    {  K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, ___, ___} \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D,\
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,     \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,          \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,          \
-    K40, K41, K42,                K46,           K49, K4A, K4B                \
-) { \
-    {  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, ___}, \
-    {  K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, ___, ___} \
-}

+ 122 - 122
keyboards/acheron/arctic/info.json

@@ -18,140 +18,140 @@
     "layouts": {
         "LAYOUT_60_ansi_tsangan": {
             "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, 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, 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, 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},
 
-                {"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":"Fn", "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, 9], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 10], "x": 12.5, "y": 4},
+                {"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "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":"|", "x":13, "y":0},
-                {"label":"Del", "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": [2, 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":13.25, "y":3, "w":1.75},
-                {"label":"Fn", "x":12.25, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 10], "x": 11.25, "y": 3},
+                {"matrix": [3, 11], "x": 13.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "x": 12.25, "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, 9], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 10], "x": 12.5, "y": 4},
+                {"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

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


+ 0 - 19
keyboards/acheron/keebspcb/keebspcb.h

@@ -1,19 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-#define LAYOUT_60_ansi_tsangan( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K3C, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K4C, \
-    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,           \
-    K40, K41, K42,                K46,           K49, K4A, K4B            \
-) { \
-    {  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, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C} \
-}

+ 0 - 59
keyboards/akegata_denki/device_one/device_one.h

@@ -1,59 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_60_ansi(\
-     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
-     k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
-     k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2e, \
-     k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,           k3c, \
-     k40, k41, k42,                k47,                k4a, k4b, k4c, k4e  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, KC_NO }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, KC_NO }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2e, }, \
-    { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, KC_NO, }, \
-    { k40, k41, k42, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, KC_NO, k4e }, \
-}
-
-#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, k2e, k1e, \
-     k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3c, \
-     k40, k41, k42,                k47,                k4a, k4b, k4c, k4e  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, KC_NO }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, KC_NO }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2e, }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, KC_NO, k3c, }, \
-    { k40, k41, k42, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, KC_NO, k4e }, \
-}
-
-#define LAYOUT_60_ansi_arrow(\
-     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
-     k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
-     k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2e, \
-     k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,           k3c, k3d, \
-     k40, k41, k42,                k47,                k4a, k4b, k4c, k4e, k4f  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, KC_NO }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, KC_NO }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2e, }, \
-    { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, k3d, }, \
-    { k40, k41, k42, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, k4f, }, \
-}
-
-#define LAYOUT_60_ansi_split_bs(\
-     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f, \
-     k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
-     k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2e, \
-     k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,           k3c, \
-     k40, k41, k42,                k47,                k4a, k4b, k4c, k4e  \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, k0f }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, KC_NO }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2e, }, \
-    { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3c, KC_NO }, \
-    { k40, k41, k42, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, KC_NO, k4e, }, \
-}

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


+ 0 - 32
keyboards/annepro2/annepro2.h

@@ -26,38 +26,6 @@ typedef struct __attribute__((__packed__)) {
 } ble_capslock_t;
 extern ble_capslock_t ble_capslock;
 
-// Matrix keymap
-// clang-format off
-#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, K2C,      \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,      \
-    K40, K42, K43,                K46,           K49, K4A, K4B, K4C       \
-) { \
-    /*            COL1   COL2   COL3   COL4   COL5   COL6   COL7   COL8   COL9   COL10  COL11  COL12  COL13  COL14*/ \
-    /* ROW1  */ { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D  }, \
-    /* ROW2  */ { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D  }, \
-    /* ROW3  */ { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   KC_NO}, \
-    /* ROW4  */ { K30,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   KC_NO}, \
-    /* ROW5  */ { K40,   KC_NO, K42,   K43,   KC_NO, KC_NO, K46,   KC_NO, KC_NO, K49,   K4A,   K4B,   K4C,   KC_NO}, \
-}
-#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, K42, K43,                K46,           K49, K4A, K4B, K4C       \
-) { \
-    /*            COL1   COL2   COL3   COL4   COL5   COL6   COL7   COL8   COL9   COL10  COL11  COL12  COL13  COL14*/ \
-    /* ROW1  */ { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D  }, \
-    /* ROW2  */ { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K2D  }, \
-    /* ROW3  */ { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   KC_NO}, \
-    /* ROW4  */ { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   KC_NO}, \
-    /* ROW5  */ { K40,   KC_NO, K42,   K43,   KC_NO, KC_NO, K46,   KC_NO, KC_NO, K49,   K4A,   K4B,   K4C,   KC_NO}, \
-}
-// clang-format on
-
 enum AP2KeyCodes {
     KC_AP2_BT1 = QK_KB_0,
     KC_AP2_BT2,

+ 123 - 123
keyboards/annepro2/info.json

@@ -9,141 +9,141 @@
     "layouts": {
         "LAYOUT_60_ansi": {
             "layout": [
-                {"label":"~", "x":0, "y":0},
-                {"label":"!", "x":1, "y":0},
-                {"label":"@", "x":2, "y":0},
-                {"label":"#", "x":3, "y":0},
-                {"label":"$", "x":4, "y":0},
-                {"label":"%", "x":5, "y":0},
-                {"label":"^", "x":6, "y":0},
-                {"label":"&", "x":7, "y":0},
-                {"label":"*", "x":8, "y":0},
-                {"label":"(", "x":9, "y":0},
-                {"label":")", "x":10, "y":0},
-                {"label":"_", "x":11, "y":0},
-                {"label":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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":"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},
-                {"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, 2], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 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, 12], "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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":"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":"Enter", "x":13.5, "y":1, "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},
 
-                {"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},
+                {"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": [1, 13], "x": 12.75, "y": 2},
 
-                {"label":"Shift", "x":0, "y":3, "w":1.25},
-                {"label":"<", "x":1.25, "y":3},
-                {"label":"Z", "x":2.25, "y":3},
-                {"label":"X", "x":3.25, "y":3},
-                {"label":"C", "x":4.25, "y":3},
-                {"label":"V", "x":5.25, "y":3},
-                {"label":"B", "x":6.25, "y":3},
-                {"label":"N", "x":7.25, "y":3},
-                {"label":"M", "x":8.25, "y":3},
-                {"label":"<", "x":9.25, "y":3},
-                {"label":">", "x":10.25, "y":3},
-                {"label":"?", "x":11.25, "y":3},
-                {"label":"Shift", "x":12.25, "y":3, "w":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},
-                {"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, 2], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 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, 12], "x": 13.75, "y": 4, "w": 1.25}
             ]
         }
     }

+ 0 - 84
keyboards/blank/blank01/blank01.h

@@ -1,84 +0,0 @@
-/* Copyright 2021 gkeyboard
- *
- * 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.
- */
-
-/* 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 │2c      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │30      │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b    │3c │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │40   │41 │42   │46                         │4a   │4b │4c   │
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
-*/
-#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, k2c,           \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c,           \
-    k40, k41, k42,                k46,                k4a, 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, k2c, XXX, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, XXX, XXX }  \
-}
-
-/* LAYOUT_60_ansi_tsangan
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
- * │30      │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b        │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤
- * │40   │41 │42   │46                         │4a   │4b │4c   │
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
-*/
-#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, k2c,           \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,                \
-    k40, k41, k42,                k46,                k4a, k4b, k4c            \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, XXX, 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, XXX, XXX }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, XXX, XXX }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, XXX, XXX }  \
-}

+ 122 - 123
keyboards/blank/blank01/info.json

@@ -21,141 +21,140 @@
     "layouts": {
         "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, 12], "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, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 10], "x": 11.25, "y": 3},
+                {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "x": 14, "y": 3},
 
-                {"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, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
-
         "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "y": 0},
+                {"matrix": [0, 9], "x": 9, "y": 0},
+                {"matrix": [0, 10], "x": 10, "y": 0},
+                {"matrix": [0, 11], "x": 11, "y": 0},
+                {"matrix": [0, 12], "x": 12, "y": 0},
+                {"matrix": [0, 14], "x": 13, "y": 0, "w": 2},
 
-                {"x":0, "y":1, "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, 12], "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, 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},
 
-                {"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, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 126 - 126
keyboards/checkerboards/nop60/info.json

@@ -30,144 +30,144 @@
     "layouts": {
         "LAYOUT_60_tsangan_hhkb_split_space": {
             "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":"Bksp", "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, 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, 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},
 
-                {"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":3},
-                {"x":7, "y":4},
-                {"x":8, "y":4, "w":3},
-                {"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, 4], "x": 4, "y": 4, "w": 3},
+                {"matrix": [4, 6], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4, "w": 3},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "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":"Bksp", "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, 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, 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},
 
-                {"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, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 0 - 49
keyboards/checkerboards/nop60/nop60.h

@@ -1,49 +0,0 @@
- /*
- Copyright 2021 Nathan Spears
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define xxx KC_NO
-
-#define LAYOUT_60_tsangan_hhkb_split_space( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \
-    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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D,      \
-    k40, k41, k42,      k44,      k46,      k48,      k4A, 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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, xxx, k3D }, \
-    { k40, k41, k42, xxx, k44, xxx, k46, xxx, k48, xxx, k4A, k4B, k4C, k4D }  \
-}
-#define LAYOUT_60_tsangan_hhkb( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \
-    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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D,      \
-    k40, k41, k42,                k46,                k4A, 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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, xxx, k3D }, \
-  { k40, k41, k42, xxx, xxx, xxx, k46, xxx, xxx, xxx, k4A, k4B, k4C, k4D }  \
-}

+ 126 - 126
keyboards/checkerboards/snop60/info.json

@@ -35,144 +35,144 @@
     "layouts": {
         "LAYOUT_60_ansi_tsangan_split_bs_rshift_space": {
             "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":"Bksp", "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, 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, 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},
 
-                {"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":3},
-                {"x":7, "y":4},
-                {"x":8, "y":4, "w":3},
-                {"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, 4], "x": 4, "y": 4, "w": 3},
+                {"matrix": [4, 6], "x": 7, "y": 4},
+                {"matrix": [4, 8], "x": 8, "y": 4, "w": 3},
+                {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_ansi_tsangan_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":"Bksp", "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, 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, 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},
 
-                {"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, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

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

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

+ 0 - 49
keyboards/checkerboards/snop60/snop60.h

@@ -1,49 +0,0 @@
- /*
- Copyright 2022 Nathan Spears
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define xxx KC_NO
-
-#define LAYOUT_60_ansi_tsangan_split_bs_rshift_space( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \
-    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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D,      \
-    k40, k41, k42,      k44,      k46,      k48,      k4A, 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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, xxx, k3D }, \
-    { k40, k41, k42, xxx, k44, xxx, k46, xxx, k48, xxx, k4A, k4B, k4C, k4D }  \
-}
-#define LAYOUT_60_ansi_tsangan_split_bs_rshift( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \
-    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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D,      \
-    k40, k41, k42,                k46,                k4A, 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, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, xxx, k3D }, \
-  { k40, k41, k42, xxx, xxx, xxx, k46, xxx, xxx, xxx, k4A, k4B, k4C, k4D }  \
-}

+ 0 - 61
keyboards/chickenman/ciel/ciel.h

@@ -1,61 +0,0 @@
-/* Copyright 2020 Koichi Katano
- *
- * 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_split_bs_rshift( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,       k114, \
-    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, k314, \
-    k400, k401, k402,                   k407,                         k410, k411, k413, k414  \
-) { \
-    { k000,  k001,  k002,  k003,  k004,  k005,  k006,  k007,  k008,  k009,  k010,  k011,  k012,  k013,  k014 }, \
-    { k100,  k101,  k102,  k103,  k104,  k105,  k106,  k107,  k108,  k109,  k110,  k111,  k112,  KC_NO, k114 }, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO}, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  KC_NO, k313,  k314 }, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, KC_NO, k407,  KC_NO, KC_NO, k410,  k411,  KC_NO, k413,  k414 }  \
-}
-
-#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,       k114, \
-    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,                   k407,                         k410, k411, k413, k414  \
-) { \
-    { k000,  k001,  k002,  k003,  k004,  k005,  k006,  k007,  k008,  k009,  k010,  k011,  k012,  k013,  KC_NO}, \
-    { k100,  k101,  k102,  k103,  k104,  k105,  k106,  k107,  k108,  k109,  k110,  k111,  k112,  KC_NO, k114 }, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO}, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  KC_NO, k313,  KC_NO}, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, KC_NO, k407,  KC_NO, KC_NO, k410,  k411,  KC_NO, k413,  k414 }  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,       k114, \
-    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, k314, \
-    k400, k401, k402,                   k407,                               k411, k413, k414  \
-) { \
-    { k000,  k001,  k002,  k003,  k004,  k005,  k006,  k007,  k008,  k009,  k010,  k011,  k012,  k013,  k014 }, \
-    { k100,  k101,  k102,  k103,  k104,  k105,  k106,  k107,  k108,  k109,  k110,  k111,  k112,  KC_NO, k114 }, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO}, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  KC_NO, k313,  k314 }, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, KC_NO, k407,  KC_NO, KC_NO, KC_NO, k411,  KC_NO, k413,  k414 }  \
-}

+ 186 - 186
keyboards/chickenman/ciel/info.json

@@ -19,212 +19,212 @@
     "layouts": {
         "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, 14], "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, 13], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "x": 14, "y": 3},
 
-                { "x":0, "y":4, "w":1.25 },
-                { "x":1.25, "y":4, "w":1.25 },
-                { "x":2.5, "y":4, "w":1.25 },
-                { "x":3.75, "y":4, "w":6.25 },
-                { "x":10, "y":4, "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, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 14], "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, 14], "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, 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 },
-                { "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, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 14], "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, 14], "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, 13], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 14], "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, 7], "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}
             ]
         }
     }

+ 246 - 246
keyboards/cutie_club/novus/info.json

@@ -22,280 +22,280 @@
     "layouts": {
         "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, 12], "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, 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},
 
-                {"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, 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, 12], "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, 12], "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, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 10], "x": 11.25, "y": 3},
+                {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "x": 14, "y": 3},
 
-                {"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, 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, 12], "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, 12], "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, 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},
 
-                {"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, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_ansi_tsangan_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, 12], "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, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 10], "x": 11.25, "y": 3},
+                {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "x": 14, "y": 3},
 
-                {"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, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 11], "x": 12.5, "y": 4},
+                {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 0 - 94
keyboards/cutie_club/novus/novus.h

@@ -1,94 +0,0 @@
-/* Copyright 2022 Cutie Club
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-/*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐      ┌───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │      │0D     │ 2u Backspace
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤      └───────┘
- * │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤   ┌──────────┐
- * │30      │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B    │3C │   │3B        │ 2.75u RShift
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤   └──────────┘
- * │40  │41  │42  │45                      │49  │4A  │4B  │4C  │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
- * │40   │41 │42   │45                         │4A   │4B │4C   │ Tsangan/WKL
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- */
-
-#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,      k2C, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A,      k3B, \
-    k40, k41, k42,                k45,                k49, k4A, 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, ___, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, ___, ___, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, k49, k4A, k4B, k4C, ___, ___ }  \
-}
-
-#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,      k2C,      \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C,      \
-    k40, k41, k42,                k45,                k49, k4A, 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, k2C, ___, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, k49, k4A, k4B, k4C, ___, ___ }  \
-}
-
-#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,      k2C, \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A,      k3B, \
-    k40, k41, k42,                k45,                     k4A, 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, ___, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, ___, ___, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, ___, k4A, k4B, k4C, ___, ___ }  \
-}
-
-#define LAYOUT_60_ansi_tsangan_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,      k2C,      \
-    k30,      k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C,      \
-    k40, k41, k42,                k45,                     k4A, 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, k2C, ___, ___ }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, ___ }, \
-    { k40, k41, k42, ___, ___, k45, ___, ___, ___, ___, k4A, k4B, k4C, ___, ___ }  \
-}

+ 1 - 1
keyboards/dztech/dz64rgb/dz64rgb.c

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

+ 0 - 35
keyboards/dztech/dz64rgb/dz64rgb.h

@@ -1,35 +0,0 @@
-/* Copyright 2021 DZTECH <moyi4681@Live.cn>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
- 
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT_64_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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
-    K40, K41, K42,                K45,      K48, K49, K4A, K4B,      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, K3D }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D }  \
-}

+ 64 - 64
keyboards/dztech/dz64rgb/info.json

@@ -21,74 +21,74 @@
     "layouts": {
         "LAYOUT_64_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": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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":"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},
-                {"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":"Shift", "x":12, "y":3},
-                {"label":"\u2191", "x":13, "y":3},
-                {"label":"Delete", "x":14, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2},
+                {"matrix": [3, 1], "x": 2, "y": 3},
+                {"matrix": [3, 2], "x": 3, "y": 3},
+                {"matrix": [3, 3], "x": 4, "y": 3},
+                {"matrix": [3, 4], "x": 5, "y": 3},
+                {"matrix": [3, 5], "x": 6, "y": 3},
+                {"matrix": [3, 6], "x": 7, "y": 3},
+                {"matrix": [3, 7], "x": 8, "y": 3},
+                {"matrix": [3, 8], "x": 9, "y": 3},
+                {"matrix": [3, 9], "x": 10, "y": 3},
+                {"matrix": [3, 10], "x": 11, "y": 3},
+                {"matrix": [3, 11], "x": 12, "y": 3},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"matrix": [3, 13], "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},
-                {"label":"Ctrl", "x":11, "y":4},
-                {"label":"\u2190", "x":12, "y":4},
-                {"label":"\u2193", "x":13, "y":4},
-                {"label":"\u2192", "x":14, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 8], "x": 10, "y": 4},
+                {"matrix": [4, 9], "x": 11, "y": 4},
+                {"matrix": [4, 10], "x": 12, "y": 4},
+                {"matrix": [4, 11], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         }
     }

+ 1 - 5
keyboards/exclusive/e6_rgb/e6_rgb.c

@@ -1,8 +1,4 @@
-/**
- * e6_rgb.c
- */
-
-#include "e6_rgb.h"
+#include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
 void matrix_init_kb(void) {

+ 0 - 72
keyboards/exclusive/e6_rgb/e6_rgb.h

@@ -1,72 +0,0 @@
- /**
-  * e6_rgb.h
-  *
-  */
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-// This a shortcut to help you visually see your layout.
-// The first section contains all of the arguements
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT_60_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K2D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2C, \
-    K30,      K31, K32, K33, K34, K35, K36, K37, 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, ___ }, \
-    { 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, ___, K39, K3A, K3B, K3C, ___ }, \
-    { K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_hhkb( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2C, \
-    K30,      K31, K32, K33, K34, K35, K36, K37, K39, K3A, K3B, K3C, K3D, \
-         K41, K42,                K46,                     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, K2D }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, ___, 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, K2D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2C, \
-    K30,      K31, K32, K33, K34, K35, K36, K37, 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, K31, K32, K33, K34, K35, K36, K37, ___, K39, K3A, K3B, K3C, K3D }, \
-    { K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, ___, K4B, K4C, K4D }  \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2C, \
-    K30,      K31, K32, K33, K34, K35, K36, K37, 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, ___, K39, K3A, K3B, K3C, K3D }, \
-    { K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D }  \
-}

+ 247 - 246
keyboards/exclusive/e6_rgb/info.json

@@ -28,279 +28,280 @@
     "layouts": {
         "LAYOUT_60_ansi": {
             "layout": [
-                {"label":"~", "x":0, "y":0},
-                {"label":"!", "x":1, "y":0},
-                {"label":"@", "x":2, "y":0},
-                {"label":"#", "x":3, "y":0},
-                {"label":"$", "x":4, "y":0},
-                {"label":"%", "x":5, "y":0},
-                {"label":"^", "x":6, "y":0},
-                {"label":"&", "x":7, "y":0},
-                {"label":"*", "x":8, "y":0},
-                {"label":"(", "x":9, "y":0},
-                {"label":")", "x":10, "y":0},
-                {"label":"_", "x":11, "y":0},
-                {"label":"+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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": [2, 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, 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, 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, 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": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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},
 
-                {"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, 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},
-                {"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": [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, 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":"!", "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": [2, 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, 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, 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, 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":"Caps Lock", "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":"Fn", "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_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": [2, 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, 12], "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, 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, 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}
             ]
         }
     }

+ 64 - 64
keyboards/fjlabs/ready100/info.json

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

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

@@ -1,32 +0,0 @@
-/*
-Copyright 2021 <me@fjlaboratories.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-/* Ready100 Keymap Definitions */
-#define LAYOUT_64_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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D  \
-) { \
-    { K00, K01, K02, K03,   K04,     K05,   K06,   K07,   K08,   K09, K0A, K0B, K0C,   K0D }, \
-    { 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, KC_NO, K2D }, \
-    { K30, K31, K32, K33,   K34,     K35,   K36,   K37,   K38,   K39, K3A, K3B, K3C,   K3D }, \
-    { K40, K41, K42, KC_NO, KC_NO,   K45,   KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C,   K4D }  \
-}

+ 118 - 118
keyboards/fjlabs/sinanju/info.json

@@ -21,136 +21,136 @@
     "layouts": {
         "LAYOUT_60_ansi_wkl": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0, "w":2},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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":"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.5},
-                {"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":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_ansi_wkl_split_bs_rshift": {
             "layout": [
-                {"label":"`~", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Backspace", "x":13, "y":0},
-                {"label":"Delete", "x":14, "y":0},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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},
 
-                {"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":"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":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+                {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

+ 0 - 59
keyboards/fjlabs/sinanju/sinanju.h

@@ -1,59 +0,0 @@
-/*
-Copyright 2022 <felix@fjlaboratories.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-/*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐      ┌───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │      │0D     │ 2u Backspace
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤      └───────┘
- * │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤   ┌──────────┐
- * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C    │3D │   │3C        │ 2.75u RShift
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬────┴┬───┬─┴───┤   └──────────┘
- * │40   │   │42   │47                         │4B   │   │4D   │ WKL
- * └─────┘   └─────┴───────────────────────────┴─────┘   └─────┘
- */
-
-#define LAYOUT_60_ansi_wkl( \
-    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, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3C, \
-    K40,      K42,                     K47,                K4B,      K4D  \
-) { \
-    { K00, K01,   K02, K03,   K04,     K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D   }, \
-    { K10, K11,   K12, K13,   K14,     K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D   }, \
-    { K20, K21,   K22, K23,   K24,     K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   KC_NO }, \
-    { K30, KC_NO, K32, K33,   K34,     K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   KC_NO }, \
-    { K40, KC_NO, K42, KC_NO, KC_NO,   KC_NO, KC_NO, K47,   KC_NO, KC_NO, KC_NO, K4B,   KC_NO, K4D   }  \
-}
-
-#define LAYOUT_60_ansi_wkl_split_bs_rshift( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2C, \
-    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
-    K40,      K42,                     K47,                K4B,      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, KC_NO, K32, K33,   K34,     K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D }, \
-    { K40, KC_NO, K42, KC_NO, KC_NO,   KC_NO, KC_NO, K47,   KC_NO, KC_NO, KC_NO, K4B,   KC_NO, K4D }  \
-}

+ 64 - 64
keyboards/fjlabs/tf60v2/info.json

@@ -22,73 +22,73 @@
     "layouts": {
         "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, "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": [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, "w": 1.75},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"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, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         }
     }

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

@@ -1,32 +0,0 @@
-/*
-Copyright 2021 <me@fjlaboratories.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include "quantum.h"
-
-/* TF60 ANSI Keymap Definitions */
-#define LAYOUT_60_ansi_arrow( \
-    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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A,      K3C, K3D, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D  \
-) { \
-    { K00, K01, K02, K03,   K04,     K05,   K06,   K07,   K08,   K09, K0A, K0B,   K0C,   K0D   }, \
-    { 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,   KC_NO, K2D   }, \
-    { K30, K31, K32, K33,   K34,     K35,   K36,   K37,   K38,   K39, K3A, KC_NO, K3C,   K3D   }, \
-    { K40, K41, K42, KC_NO, KC_NO,   K45,   KC_NO, KC_NO, KC_NO, K49, K4A, K4B,   K4C,   K4D   }  \
-}

+ 63 - 63
keyboards/flygone60/rev3/info.json

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

+ 0 - 41
keyboards/flygone60/rev3/rev3.h

@@ -1,41 +0,0 @@
-/* Copyright 2021 ShandonCodes
- *
- * 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_60_ansi_arrow( \
-    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, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
-    k40, k41, k42,           k45,           k48, k49, k4a, 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, KC_NO}, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO}, \
-    { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, k48, k49, k4a, k4b, k4c, KC_NO} \
-}

+ 0 - 120
keyboards/geonworks/frogmini/fmh/fmh.h

@@ -1,120 +0,0 @@
-/* Copyright 2022 Gondolindrim
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#define ___ KC_NO
-
-#include "quantum.h"
-
-/*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐   ┌───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │5D │   │0D     │ 2u Backspace
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤   └───────┘
- * │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤   ┌──────────┐
- * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C    │3D │   │3C        │ 2.75u RShift
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤   └──────────┘
- * │40   │41 │42   │56                         │5A   │5B │5C   │ Tsangan
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- *       ┌───┬─────┬───────────────────────────┬─────┬───┐
- *       │41 │42   │56                         │5A   │5B │ HHKB
- *       └───┴─────┴───────────────────────────┴─────┴───┘
- * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
- * │40   │   │42   │56                         │5A   │   │5C   │ WKL
- * └─────┘   └─────┴───────────────────────────┴─────┘   └─────┘
- */
-
-#define LAYOUT_60_tsangan_hhkb( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \
-    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,                K56,                     K5A, K5B, K5C  \
-)\
-{\
-    { 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, K3D }, \
-    { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
-    { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D }  \
-}
-
-#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,                K56,                     K5A, K5B, K5C  \
-)\
-{\
-    { 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, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
-    { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, ___ }  \
-}
-
-#define LAYOUT_60_hhkb( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \
-    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,                K56,                     K5A, K5B       \
-)\
-{\
-    { 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, K3D }, \
-    { ___, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
-    { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, K5A, K5B, ___, K5D }  \
-}
-
-#define LAYOUT_60_ansi_wkl( \
-    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,      K42,                K56,                     K5A,      K5C  \
-)\
-{\
-    { 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, ___, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
-    { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, K5A, ___, K5C, ___ }  \
-}
-
-#define LAYOUT_60_ansi_wkl_split_bs_rshift( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \
-    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,      K42,                K56,                     K5A,      K5C  \
-)\
-{\
-    { 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, K3D }, \
-    { K40, ___, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \
-    { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, K5A, ___, K5C, K5D }  \
-}

+ 300 - 300
keyboards/geonworks/frogmini/fmh/info.json

@@ -22,342 +22,342 @@
     "layouts": {
         "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":"Bksp", "x":13, "y":0},
-                {"label":"Bksp", "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": [5, 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, 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},
-                {"label":"Space", "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": [5, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [5, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [5, 11], "x": 12.5, "y": 4},
+                {"matrix": [5, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "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":"Bksp", "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":"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.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":"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": [5, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [5, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [5, 11], "x": 12.5, "y": 4},
+                {"matrix": [5, 12], "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":"Bksp", "x":13, "y":0},
-                {"label":"Bksp", "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": [5, 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, 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},
-                {"label":"Space", "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": [5, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [5, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [5, 11], "x": 12.5, "y": 4}
             ]
         },
         "LAYOUT_60_ansi_wkl": {
             "layout": [
-                {"label":"Esc", "x":0, "y":0},
-                {"label":"1!", "x":1, "y":0},
-                {"label":"2@", "x":2, "y":0},
-                {"label":"3#", "x":3, "y":0},
-                {"label":"4$", "x":4, "y":0},
-                {"label":"5%", "x":5, "y":0},
-                {"label":"6^", "x":6, "y":0},
-                {"label":"7&", "x":7, "y":0},
-                {"label":"8*", "x":8, "y":0},
-                {"label":"9(", "x":9, "y":0},
-                {"label":"0)", "x":10, "y":0},
-                {"label":"-_", "x":11, "y":0},
-                {"label":"=+", "x":12, "y":0},
-                {"label":"Bksp", "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":"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.5},
-                {"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":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [5, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [5, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [5, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         },
         "LAYOUT_60_ansi_wkl_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":"Bksp", "x":13, "y":0},
-                {"label":"Bksp", "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": [5, 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, 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":"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":"Ctrl", "x":13.5, "y":4, "w":1.5}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [5, 6], "x": 4, "y": 4, "w": 7},
+                {"matrix": [5, 10], "x": 11, "y": 4, "w": 1.5},
+                {"matrix": [5, 12], "x": 13.5, "y": 4, "w": 1.5}
             ]
         }
     }

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


+ 0 - 35
keyboards/handwired/swiftrax/nodu/nodu.h

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

+ 246 - 246
keyboards/horrortroll/paws60/info.json

@@ -22,280 +22,280 @@
     "layouts": {
         "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, 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":"Shift", "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":"Fn", "x":11.25, "y":4, "w":1.25},
-                {"label":"Win", "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": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, 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, 13], "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":"Fn", "x":11.25, "y":4, "w":1.25},
-                {"label":"Win", "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_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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, 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, 13], "x": 12.25, "y": 3, "w": 2.75},
 
-                {"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":"Fn", "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_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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, 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":"Shift", "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":"Fn", "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}
             ]
         }
     }

+ 0 - 129
keyboards/horrortroll/paws60/paws60.h

@@ -1,129 +0,0 @@
-/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C    │3D │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │40  │41  │42  │46                      │4A  │4B  │4C  │4D  │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-
-#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, 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, K3C, K3D, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, XXX }  \
-}
-
-/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
- * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D        │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │40  │41  │42  │46                      │4A  │4B  │4C  │4D  │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-
-#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,      K3D,       \
-    K40,  K41,  K42,                K46,                K4A,  K4B,  K4C,  K4D   \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, 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 }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, XXX }  \
-}
-
-/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
- * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D        │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤
- * │40   │41 │42   │46                         │4B   │4C │4D   │
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- */
-
-#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,      K3D,       \
-    K40,   K41, K42,                K46,                      K4B,   K4C, K4D   \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, 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 }, \
-    { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, XXX }  \
-}
-
-/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C    │3D │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │40   │41 │42   │46                         │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,     \
-       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, 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, K3C, K3D, XXX }, \
-    { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, XXX }  \
-}

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


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

@@ -13,7 +13,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-#include "v1.h"
+#include "quantum.h"
 
 // Please ignore this is for upcoming features
 /*#ifdef RAW_ENABLE

+ 0 - 51
keyboards/hs60/v1/v1.h

@@ -1,51 +0,0 @@
-/* Copyright 2018 Yiancar
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-// This a shortcut to help you visually see your layout.
-
-#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,                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, XXX, 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, 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,      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, XXX, k3D }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, k4C, k4D } \
-}

+ 62 - 61
keyboards/ilumkb/simpler61/info.json

@@ -22,72 +22,73 @@
     "layouts": {
         "LAYOUT_61_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":1.75},
-                {"x":14, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 10], "x": 11.25, "y": 3},
+                {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
 
-                {"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, 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}
             ]
         }
     }
+
 }

+ 1 - 1
keyboards/ilumkb/simpler61/simpler61.c

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

+ 0 - 35
keyboards/ilumkb/simpler61/simpler61.h

@@ -1,35 +0,0 @@
-/* Copyright 2021 Equalz
- *
- * 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_61_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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, \
-    K40, K41, K42,           K45,                     K4A, K4B,      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, XXX, K3D }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, XXX, K4D }  \
-}

+ 64 - 64
keyboards/ilumkb/simpler64/info.json

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

+ 1 - 1
keyboards/ilumkb/simpler64/simpler64.c

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

+ 0 - 35
keyboards/ilumkb/simpler64/simpler64.h

@@ -1,35 +0,0 @@
-/* Copyright 2021 Equalz
- *
- * 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_64_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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
-    { 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, K3D }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D }  \
-}

File diff suppressed because it is too large
+ 0 - 0
keyboards/inett_studio/sqx/universal/info.json


+ 0 - 93
keyboards/inett_studio/sqx/universal/universal.h

@@ -20,99 +20,6 @@
 
 #include "quantum.h"
 
-// This a shortcut to help you visually see your layout.
-// The first section contains all of the arguements
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT_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}  \
-}
-
-
 #if defined(RGB_MATRIX_DISABLE_KEYCODES)
 #    ifndef RGB_MATRIX_TOGGLE
 #        define RGB_MATRIX_TOGGLE   KC_F16

+ 0 - 36
keyboards/input_club/infinity60/infinity60.h

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

+ 63 - 63
keyboards/input_club/infinity60/info.json

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

File diff suppressed because it is too large
+ 1 - 1
keyboards/keebio/wtf60/info.json


+ 0 - 49
keyboards/keebio/wtf60/wtf60.h

@@ -1,49 +0,0 @@
-/* Copyright 2021 Danny Nguyen <danny@keeb.io>
-
-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_full_wtf( \
-    kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kA10, kA11, kA12, kA13, kA14, kA15, \
-    kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kB10, kB11, kB12, kB13, kB14, \
-    kC1, kC2, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kC10, kC11, kC12, kC13, kC14, \
-    kD1, kD2, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kD10, kD11, kD12, kD13, kD14, \
-    kE1, kE2, kE3, kE4,           kE7,                       kE12, kE13, kE14 \
-) \
-{ \
-    { kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kA10, kA11, kA12, kA13, kA14 }, \
-    { kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kB10, kB11, kB12, kB13, kB14 }, \
-    { kC1, kC2, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kC10, kC11, kC12, kC13, kC14 }, \
-    { kD1, kD2, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kD10, kD11, kD12, kD13, kD14 }, \
-    { kE1, kE2, kE3, kE4, KC_NO, KC_NO, kE7, KC_NO, KC_NO, KC_NO, kA15, kE12, kE13, kE14 } \
-}
-
-#define LAYOUT_60_ansi( \
-    kA15, kA14, kA13, kA12, kA11, kA10, kA9, kA8, kA7, kA6, kA5, kA4, kA3, kA1, \
-    kB14, kB13, kB12, kB11, kB10, kB9,  kB8, kB7, kB6, kB5, kB4, kB3, kB2, kB1, \
-    kC14, kC13, kC12, kC11, kC10, kC9,  kC8, kC7, kC6, kC5, kC4, kC3, kC1, \
-    kD14, kD12, kD11, kD10, kD9,  kD8,  kD7, kD6, kD5, kD4, kD3, kD1, \
-    kE14, kE13, kE12,             kE7,                      kE4, kE3, kE2, kE1 \
-) \
-{ \
-    { kA1, KC_NO, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kA10, kA11, kA12, kA13, kA14 }, \
-    { kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kB10, kB11, kB12, kB13, kB14 }, \
-    { kC1, KC_NO, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kC10, kC11, kC12, kC13, kC14 }, \
-    { kD1, KC_NO, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kD10, kD11, kD12, KC_NO, kD14 }, \
-    { kE1, kE2, kE3, kE4, KC_NO, KC_NO, kE7, KC_NO, KC_NO, KC_NO, kA15, kE12, kE13, kE14 } \
-}

+ 0 - 61
keyboards/kkatano/bakeneko60/bakeneko60.h

@@ -1,61 +0,0 @@
-/* Copyright 2020 Koichi Katano
- *
- * 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_split_bs_rshift( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,       k113, \
-    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,  k014 }, \
-    { k100,  k101,  k102,  k103,  k104,  k105,  k106,  k107,  k108,  k109,  k110,  k111,  k112,  k113,  KC_NO}, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO}, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  k312,  k313,  KC_NO}, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, k406,  KC_NO, KC_NO, KC_NO, k410,  k411,  k412,  k413,  KC_NO}  \
-}
-
-#define LAYOUT_60_ansi( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012,       k014, \
-    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,  KC_NO, k014 }, \
-    { k100,  k101,  k102,  k103,  k104,  k105,  k106,  k107,  k108,  k109,  k110,  k111,  k112,  k113,  KC_NO}, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO}, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  k312,  KC_NO, KC_NO}, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, k406,  KC_NO, KC_NO, KC_NO, k410,  k411,  k412,  k413,  KC_NO}  \
-}
-
-#define LAYOUT_60_tsangan_hhkb( \
-    k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
-    k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112,       k113, \
-    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,  k014 }, \
-    { k100,  k101,  k102,  k103,  k104,  k105,  k106,  k107,  k108,  k109,  k110,  k111,  k112,  k113,  KC_NO}, \
-    { k200,  k201,  k202,  k203,  k204,  k205,  k206,  k207,  k208,  k209,  k210,  k211,  KC_NO, k213,  KC_NO}, \
-    { k300,  KC_NO, k302,  k303,  k304,  k305,  k306,  k307,  k308,  k309,  k310,  k311,  k312,  k313,  KC_NO}, \
-    { k400,  k401,  k402,  KC_NO, KC_NO, KC_NO, k406,  KC_NO, KC_NO, KC_NO, KC_NO, k411,  k412,  k413,  KC_NO}  \
-}

+ 194 - 194
keyboards/kkatano/bakeneko60/info.json

@@ -19,212 +19,212 @@
     "layouts": {
         "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": [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": {
             "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, 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_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, 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}
             ]
         }
     }

+ 67 - 63
keyboards/kprepublic/bm60hsrgb/rev1/info.json

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

+ 1 - 1
keyboards/kprepublic/bm60hsrgb/rev1/rev1.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 "rev1.h"
+#include "quantum.h"
 
 led_config_t g_led_config = { {
   { 0,      1,      2,      3,      4,      5,      6,      7,      8,      9,      10,     11,     12,     13 },

+ 0 - 32
keyboards/kprepublic/bm60hsrgb/rev1/rev1.h

@@ -1,32 +0,0 @@
-/* Copyright 2020 MechMerlin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_60_ansi_arrow( \
-    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,    K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D,          \
-    K31,       K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,     K3C, K3D,   \
-    K40,  K41,  K42,              K46,                K49, 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,   KC_NO, K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   K2D   }, \
-    { KC_NO, K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D   }, \
-    { K40,   K41,   K42,   KC_NO, KC_NO, KC_NO, K46,   KC_NO, KC_NO, K49,   K4A,   K4B,   K4C,   K4D   }, \
-}

+ 63 - 63
keyboards/kprepublic/bm60hsrgb/rev2/info.json

@@ -25,73 +25,73 @@
     "layouts": {
         "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},
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+                {"matrix": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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, "w":1.75},
-                {"x":13, "y":3},
-                {"x":14, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"matrix": [3, 13], "x": 14, "y": 3},
 
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         }
     }

+ 1 - 1
keyboards/kprepublic/bm60hsrgb/rev2/rev2.c

@@ -14,7 +14,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 "rev2.h"
+#include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
 

+ 0 - 32
keyboards/kprepublic/bm60hsrgb/rev2/rev2.h

@@ -1,32 +0,0 @@
-/* Copyright 2021 bdtc123
- *
- * 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_arrow( \
-    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,       K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B,     K3C, K3D,   \
-    K40,  K41,  K42,              K45,                K49, K4A, K4B, K4C, K4D    \
-) { \
-    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D   }, \
-    { 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,   KC_NO, K2D   }, \
-    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   KC_NO, K3B,   K3C,   K3D   }, \
-    { K40,   K41,   K42,   KC_NO, KC_NO, K45,   KC_NO, KC_NO, KC_NO, K49,   K4A,   K4B,   K4C,   K4D   }, \
-}

+ 64 - 64
keyboards/kprepublic/bm60hsrgb_iso/rev2/info.json

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

+ 1 - 1
keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c

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

+ 0 - 32
keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.h

@@ -1,32 +0,0 @@
-/* Copyright 2021 bdtc123
- *
- * 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_iso_arrow( \
-    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,   K1D,   \
-    K30,  K43, K31, K32, K33, K34, K35, K36, K37, K38, K39,  K3B,    K3C, K3D,   \
-    K40,  K41,  K42,              K45,                K49, K4A, K4B, K4C, K4D    \
-) { \
-    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D   }, \
-    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D   }, \
-    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C, KC_NO   }, \
-    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39, KC_NO,   K3B,   K3C,   K3D   }, \
-    { K40,   K41,   K42,   K43,   KC_NO, K45, KC_NO,   KC_NO, KC_NO, K49,   K4A,   K4B,   K4C,   K4D   }, \
-}

+ 64 - 60
keyboards/latincompass/latin60rgb/info.json

@@ -22,66 +22,70 @@
   "layouts": {
     "LAYOUT_60_latin_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 , "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": "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": "Return", "x": 12.75, "y": 2, "w": 2.25 },
-        { "label": "Shift", "x": 0, "y": 3, "w": 2 },
-        { "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": "Shift", "x": 12, "y": 3, "w": 1 },
-		{ "label": "Shift", "x": 13, "y": 3, "w": 1 },
-	    { "label": "Fn", "x": 14, "y": 3, "w": 1 },
-        { "label": "L", "x": 1.25, "y": 4 , "w": 1.25},
-        { "label": "L", "x": 2.5, "y": 4, "w": 1.25 },
-        { "x": 3.75, "y": 4, "w": 6.25 },
-        { "label": "L", "x": 10, "y": 4, "w": 1.25 },
-        { "label": "L", "x": 11.25, "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, 12], "x": 12.75, "y": 2, "w": 2.25},
+
+        {"matrix": [3, 0], "x": 0, "y": 3, "w": 2},
+        {"matrix": [3, 1], "x": 2, "y": 3},
+        {"matrix": [3, 2], "x": 3, "y": 3},
+        {"matrix": [3, 3], "x": 4, "y": 3},
+        {"matrix": [3, 4], "x": 5, "y": 3},
+        {"matrix": [3, 5], "x": 6, "y": 3},
+        {"matrix": [3, 6], "x": 7, "y": 3},
+        {"matrix": [3, 7], "x": 8, "y": 3},
+        {"matrix": [3, 8], "x": 9, "y": 3},
+        {"matrix": [3, 9], "x": 10, "y": 3},
+        {"matrix": [3, 10], "x": 11, "y": 3},
+        {"matrix": [3, 11], "x": 12, "y": 3, "w": 1},
+        {"matrix": [3, 12], "x": 13, "y": 3, "w": 1},
+        {"matrix": [3, 13], "x": 14, "y": 3, "w": 1},
+
+        {"matrix": [4, 0], "x": 1.25, "y": 4, "w": 1.25},
+        {"matrix": [4, 1], "x": 2.5, "y": 4, "w": 1.25},
+        {"matrix": [4, 2], "x": 3.75, "y": 4, "w": 6.25},
+        {"matrix": [4, 3], "x": 10, "y": 4, "w": 1.25},
+        {"matrix": [4, 4], "x": 11.25, "y": 4}
       ]
     }
   }

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

+ 0 - 34
keyboards/latincompass/latin60rgb/latin60rgb.h

@@ -1,34 +0,0 @@
- /* Copyright 2021 latincompass
-  * 
-  * 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_60_latin_hhkb( \
-    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, \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
-    K40, K41, K42, K4A, K4B       \
-) { \
-    { 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 }, \
-    { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
-    { K40, K41, K42, K4A, K4B, XXX, XXX, XXX, XXX,  XXX, XXX, XXX, XXX, XXX  }  \
-}

+ 0 - 35
keyboards/longnald/corin/corin.h

@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2020 Longnald <support@longnald.com>
- * Copyright (C) 2020 Seaton Jiang <seaton@vtrois.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 3 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 <https://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-#define LAYOUT_64_ansi( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C,      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,      \
-         K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
-    K40, K41,      K43,           K46,                K4A, K4B, K4C, K4D, K4E  \
-) \
-{ \
-    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   KC_NO, K0E   }, \
-    { K10,   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,   KC_NO }, \
-    { KC_NO, K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D,   K3E   }, \
-    { K40,   K41,   KC_NO, K43,   KC_NO, KC_NO, K46,   KC_NO, KC_NO, KC_NO, K4A,   K4B,   K4C,   K4D,   K4E   }  \
-}

+ 68 - 64
keyboards/longnald/corin/info.json

@@ -21,70 +21,74 @@
   "layouts": {
     "LAYOUT_64_ansi": {
       "layout": [
-        { "label": "K00 (F4,F7)", "x": 0, "y": 0 },
-        { "label": "K01 (F4,F6)", "x": 1, "y": 0 },
-        { "label": "K02 (F4,F1)", "x": 2, "y": 0 },
-        { "label": "K03 (F4,F5)", "x": 3, "y": 0 },
-        { "label": "K04 (F4,B1)", "x": 4, "y": 0 },
-        { "label": "K05 (F4,E6)", "x": 5, "y": 0 },
-        { "label": "K06 (F4,D6)", "x": 6, "y": 0 },
-        { "label": "K07 (F4,B7)", "x": 7, "y": 0 },
-        { "label": "K08 (F4,D1)", "x": 8, "y": 0 },
-        { "label": "K09 (F4,D2)", "x": 9, "y": 0 },
-        { "label": "K0A (F4,D0)", "x": 10, "y": 0 },
-        { "label": "K0B (F4,B4)", "x": 11, "y": 0 },
-        { "label": "K0C (F4,B6)", "x": 12, "y": 0 },
-        { "label": "K0E (F4,C7)", "x": 13, "y": 0, "w": 2 },
-        { "label": "K10 (F0,F7)", "x": 0, "y": 1, "w": 1.5 },
-        { "label": "K12 (F0,F1)", "x": 1.5, "y": 1 },
-        { "label": "K13 (F0,F5)", "x": 2.5, "y": 1 },
-        { "label": "K14 (F0,B1)", "x": 3.5, "y": 1 },
-        { "label": "K15 (F0,E6)", "x": 4.5, "y": 1 },
-        { "label": "K16 (F0,D6)", "x": 5.5, "y": 1 },
-        { "label": "K17 (F0,B7)", "x": 6.5, "y": 1 },
-        { "label": "K18 (F0,D1)", "x": 7.5, "y": 1 },
-        { "label": "K19 (F0,D2)", "x": 8.5, "y": 1 },
-        { "label": "K1A (F0,D0)", "x": 9.5, "y": 1 },
-        { "label": "K1B (F0,B4)", "x": 10.5, "y": 1 },
-        { "label": "K1C (F0,B6)", "x": 11.5, "y": 1 },
-        { "label": "K1D (F0,C6)", "x": 12.5, "y": 1 },
-        { "label": "K1E (F0,C7)", "x": 13.5, "y": 1, "w": 1.5 },
-        { "label": "K20 (B2,F7)", "x": 0, "y": 2, "w": 1.75 },
-        { "label": "K22 (B2,F1)", "x": 1.75, "y": 2 },
-        { "label": "K23 (B2,F5)", "x": 2.75, "y": 2 },
-        { "label": "K24 (B2,B1)", "x": 3.75, "y": 2 },
-        { "label": "K25 (B2,E6)", "x": 4.75, "y": 2 },
-        { "label": "K26 (B2,D6)", "x": 5.75, "y": 2 },
-        { "label": "K27 (B2,B7)", "x": 6.75, "y": 2 },
-        { "label": "K28 (B2,D1)", "x": 7.75, "y": 2 },
-        { "label": "K29 (B2,D2)", "x": 8.75, "y": 2 },
-        { "label": "K2A (B2,D0)", "x": 9.75, "y": 2 },
-        { "label": "K2B (B2,B4)", "x": 10.75, "y": 2 },
-        { "label": "K2C (B2,B6)", "x": 11.75, "y": 2 },
-        { "label": "K2D (B2,C6)", "x": 12.75, "y": 2, "w": 2.25 },
-        { "label": "K31 (B3,F6)", "x": 0, "y": 3, "w": 2 },
-        { "label": "K32 (B3,F1)", "x": 2, "y": 3 },
-        { "label": "K33 (B3,F5)", "x": 3, "y": 3 },
-        { "label": "K34 (B3,B1)", "x": 4, "y": 3 },
-        { "label": "K35 (B3,E6)", "x": 5, "y": 3 },
-        { "label": "K36 (B3,D6)", "x": 6, "y": 3 },
-        { "label": "K37 (B3,B7)", "x": 7, "y": 3 },
-        { "label": "K38 (B3,D1)", "x": 8, "y": 3 },
-        { "label": "K39 (B3,D2)", "x": 9, "y": 3 },
-        { "label": "K3A (B3,D0)", "x": 10, "y": 3 },
-        { "label": "K3B (B3,B4)", "x": 11, "y": 3 },
-        { "label": "K3C (B3,B6)", "x": 12, "y": 3 },
-        { "label": "K3D (B3,C6)", "x": 13, "y": 3 },
-        { "label": "K3E (B3,C7)", "x": 14, "y": 3 },
-        { "label": "K40 (D5,F7)", "x": 0, "y": 4, "w": 1.25 },
-        { "label": "K41 (D5,F6)", "x": 1.25, "y": 4, "w": 1.25 },
-        { "label": "K43 (D5,F5)", "x": 2.5, "y": 4, "w": 1.25 },
-        { "label": "K46 (D5,D6)", "x": 3.75, "y": 4, "w": 6.25 },
-        { "label": "K4A (D5,D0)", "x": 10, "y": 4 },
-        { "label": "K4B (D5,B4)", "x": 11, "y": 4 },
-        { "label": "K4C (D5,B6)", "x": 12, "y": 4 },
-        { "label": "K4D (D5,C6)", "x": 13, "y": 4 },
-        { "label": "K4E (D5,C7)", "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, 14], "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, 1], "x": 0, "y": 3, "w": 2},
+        {"matrix": [3, 2], "x": 2, "y": 3},
+        {"matrix": [3, 3], "x": 3, "y": 3},
+        {"matrix": [3, 4], "x": 4, "y": 3},
+        {"matrix": [3, 5], "x": 5, "y": 3},
+        {"matrix": [3, 6], "x": 6, "y": 3},
+        {"matrix": [3, 7], "x": 7, "y": 3},
+        {"matrix": [3, 8], "x": 8, "y": 3},
+        {"matrix": [3, 9], "x": 9, "y": 3},
+        {"matrix": [3, 10], "x": 10, "y": 3},
+        {"matrix": [3, 11], "x": 11, "y": 3},
+        {"matrix": [3, 12], "x": 12, "y": 3},
+        {"matrix": [3, 13], "x": 13, "y": 3},
+        {"matrix": [3, 14], "x": 14, "y": 3},
+        {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+
+        {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+        {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+        {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+        {"matrix": [4, 10], "x": 10, "y": 4},
+        {"matrix": [4, 11], "x": 11, "y": 4},
+        {"matrix": [4, 12], "x": 12, "y": 4},
+        {"matrix": [4, 13], "x": 13, "y": 4},
+        {"matrix": [4, 14], "x": 14, "y": 4}
       ]
     }
   }

+ 126 - 128
keyboards/mechlovin/zed60/info.json

@@ -28,142 +28,142 @@
     "layouts": {
         "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": [2, 12], "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_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, 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},
 
-                {"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": {
@@ -181,8 +181,7 @@
                 {"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, 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},
@@ -225,8 +224,7 @@
                 {"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, 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},

+ 0 - 65
keyboards/mechlovin/zed60/zed60.h

@@ -1,65 +0,0 @@
-/* Copyright 2022 Mechlovin'
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-#define XXX KC_NO
-
-/*
- *              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐      ┌───────┐
- *              │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │      │0D     │ 2u Backspace
- *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤      └─┬─────┤
- *              │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D   │        │     │  
- *              ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤     ┌──┴┐1D  │ ISO Enter
- *              │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D      │     │2D │    │
-   ┌────────┐   ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤   ┌─┴───┴────┤
-   │30  │31 │   │30      │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C    │3D │   │3C        │ 2.75u RShift
- * └────────┘   ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤   └──────────┘
- *              │40  │41  │42  │46                      │4A  │4B  │4C  │4D  │ Standard
- *              └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- *              ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
- *              │40   │41 │42   │46                         │4B   │4C │4D   │ Tsangan/WKL
- *              └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- */
-
-#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( \
-    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 }, \
-}

+ 63 - 63
keyboards/melgeek/mj63/info.json

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

+ 0 - 35
keyboards/melgeek/mj63/mj63.h

@@ -1,35 +0,0 @@
-/* Copyright 2020 MelGeek <melgeek001365@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_60_ansi_arrow( \
-    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,      \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39,      K3B, K3C, K3D, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
-    { 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D }  \
-}

+ 1 - 1
keyboards/melgeek/mj63/rev1/rev1.c

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

+ 1 - 1
keyboards/melgeek/mj63/rev2/rev2.c

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

+ 65 - 64
keyboards/melgeek/mj64/info.json

@@ -16,75 +16,76 @@
     "layouts": {
         "LAYOUT_64_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, 12], "x": 12.75, "y": 2, "w": 2.25},
 
-                {"x":0, "y":3, "w":2},
-                {"x":2, "y":3},
-                {"x":3, "y":3},
-                {"x":4, "y":3},
-                {"x":5, "y":3},
-                {"x":6, "y":3},
-                {"x":7, "y":3},
-                {"x":8, "y":3},
-                {"x":9, "y":3},
-                {"x":10, "y":3},
-                {"x":11, "y":3},
-                {"x":12, "y":3},
-                {"x":13, "y":3},
-                {"x":14, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2},
+                {"matrix": [3, 1], "x": 2, "y": 3},
+                {"matrix": [3, 2], "x": 3, "y": 3},
+                {"matrix": [3, 3], "x": 4, "y": 3},
+                {"matrix": [3, 4], "x": 5, "y": 3},
+                {"matrix": [3, 5], "x": 6, "y": 3},
+                {"matrix": [3, 6], "x": 7, "y": 3},
+                {"matrix": [3, 7], "x": 8, "y": 3},
+                {"matrix": [3, 8], "x": 9, "y": 3},
+                {"matrix": [3, 9], "x": 10, "y": 3},
+                {"matrix": [3, 10], "x": 11, "y": 3},
+                {"matrix": [3, 11], "x": 12, "y": 3},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"matrix": [3, 13], "x": 14, "y": 3},
 
-                {"x":0, "y":4, "w":1.25},
-                {"x":1.25, "y":4, "w":1.25},
-                {"x":2.5, "y":4, "w":1.25},
-                {"x":3.75, "y":4, "w":6.25},
-                {"x":10, "y":4},
-                {"x":11, "y":4},
-                {"x":12, "y":4},
-                {"x":13, "y":4},
-                {"x":14, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         }
     }
+
 }

+ 0 - 36
keyboards/melgeek/mj64/mj64.h

@@ -1,36 +0,0 @@
-
-/* Copyright 2020 MelGeek <melgeek001365@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_64_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, K2C,      \
-    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
-    K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
-    { 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, 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 }  \
-}

+ 1 - 1
keyboards/melgeek/mj64/rev1/rev1.c

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

+ 1 - 1
keyboards/melgeek/mj64/rev2/rev2.c

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

+ 1 - 1
keyboards/melgeek/mj64/rev3/rev3.c

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

+ 63 - 63
keyboards/mss_studio/m63_rgb/info.json

@@ -24,73 +24,73 @@
     "layouts": {
         "LAYOUT_60_ansi_arrow": {
             "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": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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":"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":"Shift", "x":11.25, "y":3, "w":1.75},
-                {"label":"\u2191", "x":13, "y":3},
-                {"label":"/?", "x":14, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+                {"matrix": [3, 1], "x": 2.25, "y": 3},
+                {"matrix": [3, 2], "x": 3.25, "y": 3},
+                {"matrix": [3, 3], "x": 4.25, "y": 3},
+                {"matrix": [3, 4], "x": 5.25, "y": 3},
+                {"matrix": [3, 5], "x": 6.25, "y": 3},
+                {"matrix": [3, 6], "x": 7.25, "y": 3},
+                {"matrix": [3, 7], "x": 8.25, "y": 3},
+                {"matrix": [3, 8], "x": 9.25, "y": 3},
+                {"matrix": [3, 9], "x": 10.25, "y": 3},
+                {"matrix": [3, 10], "x": 11.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"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},
-                {"label":"Fn", "x":11, "y":4},
-                {"label":"\u2190", "x":12, "y":4},
-                {"label":"\u2193", "x":13, "y":4},
-                {"label":"\u2192", "x":14, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         }
     }

+ 1 - 1
keyboards/mss_studio/m63_rgb/m63_rgb.c

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

+ 0 - 49
keyboards/mss_studio/m63_rgb/m63_rgb.h

@@ -1,49 +0,0 @@
-/* Copyright 2021 Mss Studio
- * Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D     │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │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      │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │30      │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A    │3C │3D │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤
- * │40  │41  │42  │45                      │49 │4A │4B │4C │4D │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
- */
-
-#define LAYOUT_60_ansi_arrow( \
-    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,   K31, K32, K33, K34, K35, K36, K37, K38, K39,    K3A,     K3C, K3D, \
-    K40,  K41,  K42,                K45,                K49, K4A, K4B, K4C, K4D  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
-    { 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, XXX, K3C, K3D }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D }  \
-}

+ 64 - 64
keyboards/mss_studio/m64_rgb/info.json

@@ -24,74 +24,74 @@
     "layouts": {
         "LAYOUT_64_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": [0, 6], "x": 6, "y": 0},
+                {"matrix": [0, 7], "x": 7, "y": 0},
+                {"matrix": [0, 8], "x": 8, "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":"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},
-                {"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":"Shift", "x":12, "y":3},
-                {"label":"\u2191", "x":13, "y":3},
-                {"label":"Delete", "x":14, "y":3},
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2},
+                {"matrix": [3, 1], "x": 2, "y": 3},
+                {"matrix": [3, 2], "x": 3, "y": 3},
+                {"matrix": [3, 3], "x": 4, "y": 3},
+                {"matrix": [3, 4], "x": 5, "y": 3},
+                {"matrix": [3, 5], "x": 6, "y": 3},
+                {"matrix": [3, 6], "x": 7, "y": 3},
+                {"matrix": [3, 7], "x": 8, "y": 3},
+                {"matrix": [3, 8], "x": 9, "y": 3},
+                {"matrix": [3, 9], "x": 10, "y": 3},
+                {"matrix": [3, 10], "x": 11, "y": 3},
+                {"matrix": [3, 11], "x": 12, "y": 3},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"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},
-                {"label":"Fn", "x":11, "y":4},
-                {"label":"\u2190", "x":12, "y":4},
-                {"label":"\u2193", "x":13, "y":4},
-                {"label":"\u2192", "x":14, "y":4}
+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
             ]
         }
     }

+ 1 - 1
keyboards/mss_studio/m64_rgb/m64_rgb.c

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

+ 0 - 49
keyboards/mss_studio/m64_rgb/m64_rgb.h

@@ -1,49 +0,0 @@
-/* Copyright 2021 Mss Studio
- * Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D     │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │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      │
- * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤
- * │30     │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │
- * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤
- * │40  │41  │42  │45                      │49 │4A │4B │4C │4D │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
- */
-
-#define LAYOUT_64_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,   K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
-    K40,  K41,  K42,               K45,               K49, K4A, K4B, K4C, K4D  \
-) { \
-    { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
-    { 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, K3D }, \
-    { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D }  \
-}

+ 70 - 1
keyboards/mt/mt64rgb/info.json

@@ -24,7 +24,76 @@
     "community_layouts": ["64_ansi"],
     "layouts": {
         "LAYOUT_64_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}, {"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":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"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}, {"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": [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, 12], "x": 12.75, "y": 2, "w": 2.25},
+
+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2},
+                {"matrix": [3, 1], "x": 2, "y": 3},
+                {"matrix": [3, 2], "x": 3, "y": 3},
+                {"matrix": [3, 3], "x": 4, "y": 3},
+                {"matrix": [3, 4], "x": 5, "y": 3},
+                {"matrix": [3, 5], "x": 6, "y": 3},
+                {"matrix": [3, 6], "x": 7, "y": 3},
+                {"matrix": [3, 7], "x": 8, "y": 3},
+                {"matrix": [3, 8], "x": 9, "y": 3},
+                {"matrix": [3, 9], "x": 10, "y": 3},
+                {"matrix": [3, 10], "x": 11, "y": 3},
+                {"matrix": [3, 11], "x": 12, "y": 3},
+                {"matrix": [3, 12], "x": 13, "y": 3},
+                {"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, 5], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 9], "x": 10, "y": 4},
+                {"matrix": [4, 10], "x": 11, "y": 4},
+                {"matrix": [4, 11], "x": 12, "y": 4},
+                {"matrix": [4, 12], "x": 13, "y": 4},
+                {"matrix": [4, 13], "x": 14, "y": 4}
+            ]
         }
     }
 }

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

+ 0 - 33
keyboards/mt/mt64rgb/mt64rgb.h

@@ -1,33 +0,0 @@
- /* Copyright 2020 MT
-  * 
-  * 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_64_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, k2C,      \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
-    k40, k41, k42,         k45,                             k48, 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,  KC_NO}, \
-    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D}, \
-    {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO,KC_NO, k48,  k4A, k4B, k4C, k4D} \
-}

+ 281 - 279
keyboards/nightly_boards/n60_s/info.json

@@ -25,290 +25,292 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "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": [1, 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, 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, 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, 2], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 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_encoder": {
-			"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":15.25, "y":3}, 
-				{"x":16.25, "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": [1, 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, 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, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [5, 0], "x": 15.25, "y": 3},
+                {"matrix": [5, 1], "x": 16.25, "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, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 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_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_60_ansi_split_bs_rshift_tsangan": {
+            "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": [1, 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, 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, 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, 2], "x": 1.5, "y": 4},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 7], "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_tsangan_encoder": {
-			"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":15.25, "y":3}, 
-				{"x":16.25, "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": [1, 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, 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, 12], "x": 12.25, "y": 3, "w": 1.75},
+                {"matrix": [3, 13], "x": 14, "y": 3},
+
+                {"matrix": [5, 0], "x": 15.25, "y": 3},
+                {"matrix": [5, 1], "x": 16.25, "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, 7], "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 - 68
keyboards/nightly_boards/n60_s/n60_s.h

@@ -18,71 +18,3 @@
 
 #include "quantum.h"
 #include "encoder_action.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_60_ansi_split_bs_rshift( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D,   \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D,      \
-    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,  K42,  K43,              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,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D   }, \
-    { K40,   KC_NO, K42,   K43,   KC_NO, KC_NO, KC_NO, K47,   KC_NO,  KC_NO, K4A,   K4B,   K4C,   K4D   }, \
-	{ KC_NO,  KC_NO } \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift_encoder( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D,   \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D,      \
-    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, E00A,  E00B,  \
-    K40,  K42,  K43,              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,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D   }, \
-    { K40,   KC_NO, K42,   K43,   KC_NO, KC_NO, KC_NO, K47,   KC_NO,  KC_NO, K4A,   K4B,   K4C,   K4D   }, \
-	{ E00A,  E00B } \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift_tsangan( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D,   \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D,      \
-    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,  K42,  K43,                K47,                    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,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D   }, \
-    { K40,   KC_NO, K42,   K43,   KC_NO, KC_NO, KC_NO, K47,   KC_NO,  KC_NO, KC_NO, K4B,   K4C,   K4D   }, \
-	{ KC_NO,  KC_NO } \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift_tsangan_encoder( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D,   \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D,      \
-    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, E00A,  E00B,   \
-    K40,  K42,  K43,                K47,                    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,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D   }, \
-    { K40,   KC_NO, K42,   K43,   KC_NO, KC_NO, KC_NO, K47,   KC_NO,  KC_NO, KC_NO, K4B,   K4C,   K4D   }, \
-	{ E00A,  E00B } \
-}

+ 130 - 130
keyboards/nightly_boards/paraluman/info.json

@@ -17,145 +17,145 @@
     "bootloader": "atmel-dfu",
     "layouts": {
         "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},
+            "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": [1, 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, 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, 12], "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, 2], "x": 1.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+                {"matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+                {"matrix": [4, 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_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},
+        "LAYOUT_60_ansi_split_bs_rshift_tsangan": {
+            "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": [1, 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, 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, 12], "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, 2], "x": 1.5, "y": 4},
+                {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
+                {"matrix": [4, 7], "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 - 55
keyboards/nightly_boards/paraluman/paraluman.h

@@ -1,55 +0,0 @@
-/* Copyright 2020 DeskDaily
- *
- * 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_60_ansi_split_bs_rshift( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D,   \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D,      \
-    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,  K42,  K43,              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,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D   }, \
-    { K40,   KC_NO, K42,   K43,   KC_NO, KC_NO, KC_NO, K47,   KC_NO, KC_NO, K4A,   K4B,   K4C,   K4D   } \
-}
-
-#define LAYOUT_60_ansi_split_bs_rshift_tsangan( \
-    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D,   \
-    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D,      \
-    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,  K42,  K43,                K47,                    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,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D   }, \
-    { K40,   KC_NO, K42,   K43,   KC_NO, KC_NO, KC_NO, K47,   KC_NO, KC_NO, KC_NO, K4B,   K4C,   K4D   } \
-}

File diff suppressed because it is too large
+ 204 - 3
keyboards/ok60/info.json


+ 0 - 75
keyboards/ok60/ok60.h

@@ -1,75 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define XXX 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, 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,                k46,                k4A, k4B, k4C, k4D \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, XXX, 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 }, \
-    { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, XXX }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, k4C, k4D, XXX } \
-}
-
-#define LAYOUT_60_ansi_split_bksp_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,      k3D, k3E, \
-    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, 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, k3E }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, 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,      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,      k3D, \
-    k40, k41, k42,                k46,                k4A, k4B, k4C, k4D \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, XXX, 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, XXX, k3D, XXX }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, k4C, k4D, XXX } \
-}
-
-#define LAYOUT_60_iso_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, \
-    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, k3E, \
-    k40, k41, k42,                k46,                k4A, k4B, k4C, k4D \
-) { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, XXX, 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, XXX, k3D, k3E }, \
-    { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4A, k4B, k4C, k4D, XXX } \
-}
-
-#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,      k3D, k3E, \
-         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, 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, k3E }, \
-    { XXX, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4B, k4C, XXX, XXX } \
-}

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