Browse Source

Migrate `g_led_config` to DD (M3) (#25620)

Jack Sangdahl 10 months ago
parent
commit
7186a63172

+ 85 - 0
keyboards/merge/um70/keyboard.json

@@ -38,6 +38,91 @@
     },
     "rgb_matrix": {
         "driver": "ws2812",
+        "layout": [
+            {"x": 224, "y": 0, "flags": 2},
+            {"x": 224, "y": 13, "flags": 2},
+            {"x": 224, "y": 26, "flags": 2},
+            {"x": 148, "y": 39, "flags": 2},
+            {"x": 185, "y": 52, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2},
+            {"matrix": [0, 0], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 32, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [4, 5], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 0], "x": 32, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [4, 6], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 32, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [4, 7], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 32, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 64, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 96, "y": 64, "flags": 1},
+            {"matrix": [4, 3], "x": 128, "y": 64, "flags": 1},
+            {"matrix": [4, 4], "x": 160, "y": 64, "flags": 1},
+            {"x": 224, "y": 0, "flags": 2},
+            {"x": 224, "y": 13, "flags": 2},
+            {"x": 224, "y": 26, "flags": 2},
+            {"x": 148, "y": 39, "flags": 2},
+            {"x": 185, "y": 52, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2},
+            {"matrix": [5, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [5, 1], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [5, 2], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [5, 3], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [5, 4], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [5, 5], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [5, 6], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [5, 7], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [6, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [6, 1], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [6, 2], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [6, 3], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [6, 4], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [6, 5], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [6, 6], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [6, 7], "x": 223, "y": 16, "flags": 1},
+            {"matrix": [8, 7], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [7, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [7, 1], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [7, 2], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [7, 3], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [7, 4], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [7, 5], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [7, 6], "x": 192, "y": 32, "flags": 1},
+            {"matrix": [9, 7], "x": 223, "y": 32, "flags": 4},
+            {"matrix": [8, 0], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [8, 1], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [8, 2], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [8, 3], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [8, 4], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [8, 5], "x": 160, "y": 48, "flags": 1},
+            {"matrix": [8, 6], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [9, 0], "x": 0, "y": 46, "flags": 1},
+            {"matrix": [9, 1], "x": 32, "y": 46, "flags": 1},
+            {"matrix": [9, 2], "x": 64, "y": 64, "flags": 1},
+            {"matrix": [9, 3], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [9, 4], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [9, 5], "x": 160, "y": 64, "flags": 4}
+        ],
         "split_count": [39, 44]
     },
     "rgblight": {

+ 0 - 77
keyboards/merge/um70/um70.c

@@ -1,77 +0,0 @@
-/* Copyright 2021 duoshock 
- * 
- * This program is free software: you can redistribute it and/or modify 
- * it under the terms of the GNU General Public License as published by 
- * the Free Software Foundation, either version 2 of the License, or 
- * (at your option) any later version. 
- * 
- * This program is distributed in the hope that it will be useful, 
- * but WITHOUT ANY WARRANTY; without even the implied warranty of 
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
- * GNU General Public License for more details. 
- * 
- * You should have received a copy of the GNU General Public License 
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-/*
-                          Underglow      Underglow             13,14 = split bksp, 14 = 2u bksp
-    07 08 09 10 11 12 13     01             01        07 08 09 10 11 12 13 14
-     14  15 16 17 18 19      02             02      15 16 17 18 19 20 21  22     23
-20    21  22 23 24 25 26     03             03       24 25 26 27 28 29   30      31
-27     28   29 30 31 32 33   04             04        32 33 34 35 36   37     38
-34   35  36  37  38   39     05             05            39    40   41    42 43 44
-                             06             06
-*/
-
-#define XX NO_LED
-
-led_config_t g_led_config = { {
-    {  6,  7,  8,  9, 10, 11, 12, XX },
-    { 13, 14, 15, 16, 17, 18, XX, XX },
-    { 20, 21, 22, 23, 24, 25, XX, XX },
-    { 27, 28, 29, 30, 31, 32, XX, XX },
-    { 34, 35, 36, 37, 38, 19, 26, 33 },
-
-    { 45, 46, 47, 48, 49, 50, 51, 52 },
-    { 53, 54, 55, 56, 57, 58, 59, 60 },
-    { 62, 63, 64, 65, 66, 67, 68, XX },
-    { 70, 71, 72, 73, 74, 75, 76, 61 },
-    { 77, 78, 79, 80, 81, 82, XX, 69 },
-}, {
-    { 224, 0  }, { 224, 13 }, { 224, 26 }, { 148, 39 }, { 185, 52 }, {  224,  64 },
-
-                 {  32,  0 }, {  64, 0  }, {  96, 0  }, { 128, 0  }, { 160, 0  }, {  192,  0  }, {  224,  0  }, 
-                 {  32, 16 }, {  64, 16 }, {  96, 16 }, { 128, 16 }, { 160, 16 }, {  192,  16 },
-    {   0, 32 }, {  32, 32 }, {  64, 32 }, {  96, 32 }, { 128, 32 }, { 160, 32 }, {  192,  32 },
-    {   0, 48 }, {  32, 48 }, {  64, 48 }, {  96, 48 }, { 128, 48 }, { 160, 48 }, {  192,  48 },
-    {   0, 64 }, {  32, 64 }, {  64, 64 }, {  96, 64 }, { 128, 64 }, { 160, 64 },
-
-    { 224, 0  }, { 224, 13 }, { 224, 26 }, { 148, 39 }, { 185, 52 }, {  224,  64 },
-    
-    {   0,  0  }, {  32,  0 }, {  64, 0  }, {  96, 0  }, { 128, 0  }, { 160, 0  }, {  192,  0  }, {  224,  0  },
-    {   0,  16 }, {  32, 16 }, {  64, 16 }, {  96, 16 }, { 128, 16 }, { 160, 16 }, {  192,  16 }, {  223,  16  }, {  224,  16  },
-    {   0,  32 }, {  32, 32 }, {  64, 32 }, {  96, 32 }, { 128, 32 }, { 160, 32 }, {  192,  32 }, {  223,  32  },
-    {   0,  48 }, {  32, 48 }, {  64, 48 }, {  96, 48 }, { 128, 48 }, { 160, 48 }, {  192,  48 },
-    {   0,  46 }, {  32, 46 }, {  64, 64 }, {  96, 64 }, { 128, 64 }, { 160, 64 }
-
-}, {
-    2, 2, 2, 2, 2, 2,
-    4, 4, 4, 4, 4, 4, 4,
-    1, 4, 4, 4, 4, 4,
-    4, 1, 4, 4, 4, 4, 4,
-    4, 1, 4, 4, 4, 4, 4,
-    4, 1, 1, 1, 1, 1,
-
-    2, 2, 2, 2, 2, 2,
-    4, 4, 4, 4, 4, 4, 4, 1,
-    4, 4, 4, 4, 4, 4, 4, 1, 4,
-    4, 4, 4, 4, 4, 4, 1, 4,
-    4, 4, 4, 4, 4, 1, 4,
-    1, 1, 1, 4, 4, 4
-} };
-
-#endif

+ 0 - 20
keyboards/miller/gm862/gm862.c

@@ -64,26 +64,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
     {0, SW11_CS13,   SW10_CS13,   SW12_CS13},
     {0, SW8_CS14,   SW7_CS14,   SW9_CS14},
 };
-
-led_config_t g_led_config = { {
-    {  0,   1,   2,   3,      4,       5,   6,      7,      8,      9,   10,  11,    12,     13 },
-    {  14,  15,  16,  17,     18,      19,  20,     21,     22,     23,  24,  25,    26,     27 },
-    {  28,  29,  30,  31,     32,      33,  34,     35,     36,     37,  38,  39,    NO_LED, 40 },
-    {  41,  42,  43,  44,     45,      46,  47,     48,     49,     50,  51,  NO_LED,NO_LED, 52 },
-    {  53,  54,  55,  NO_LED, NO_LED,  56,  NO_LED, NO_LED, NO_LED, 57,  58,  NO_LED,59,     60 }
-}, {
-    {   0,   0 }, {  16,   0 }, {  32,   0 }, {  48,   0 }, {  64,   0 }, {  80,   0 }, {  96,   0 }, { 112,   0 },  { 128,   0 },  { 144,   0 }, { 160,   0 }, { 176,   0 }, { 192,   0 }, { 216,   0 },
-    {   4,  16 }, {  24,  16 }, {  40,  16 }, {  56,  16 }, {  72,  16 }, {  88,  16 }, { 104,  16 }, { 120,  16 },  { 136,  16 },  { 152,  16 }, { 168,  16 }, { 184,  16 }, { 200,  16 }, { 220,  16 },
-    {   6,  32 }, {  28,  32 }, {  44,  32 }, {  60,  32 }, {  76,  32 }, {  92,  32 }, { 108,  32 }, { 124,  32 },  { 140,  32 },  { 156,  32 }, { 172,  32 }, { 188,  32 }, { 204,  32 },
-    {  10,  48 }, {  20,  48 }, {  52,  48 }, {  68,  48 }, {  84,  48 }, { 100,  48 }, { 116,  48 }, { 132,  48 },  { 148,  48 },  { 164,  48 }, { 180,  48 }, { 210,  48 },
-    {   2,  64 }, {  22,  64 }, {  42,  64 }, { 102,  64 }, { 162,  64 }, { 182,  64 }, { 202,  64 }, { 222,  64 },
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 4, 1, 1, 1, 1
-} };
 #endif
 
 bool rgb_matrix_indicators_kb(void) {

+ 63 - 0
keyboards/miller/gm862/keyboard.json

@@ -39,6 +39,69 @@
             "solid_reactive": true
         },
         "driver": "is31fl3733",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 204, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 202, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 222, "y": 64, "flags": 1}
+        ],
         "sleep": true
     },
     "features": {

+ 0 - 34
keyboards/ml/gas75/gas75.c

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

+ 5 - 0
keyboards/ml/gas75/keyboard.json

@@ -58,6 +58,11 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"x": 224, "y": 0, "flags": 4},
+            {"x": 0, "y": 0, "flags": 1},
+            {"x": 6, "y": 38, "flags": 8}
+        ],
         "max_brightness": 200
     },
     "features": {

+ 6 - 0
keyboards/momokai/tap_duo/keyboard.json

@@ -42,6 +42,12 @@
             "solid_splash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 168, "y": 0, "flags": 4},
+            {"x": 0, "y": 64, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2}
+        ],
         "max_brightness": 200,
         "sleep": true
     },

+ 0 - 31
keyboards/momokai/tap_duo/tap_duo.c

@@ -1,31 +0,0 @@
-/* Copyright 2022 Momokai
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    // Key Matrix to LED Index
-    { 0, 1, NO_LED, NO_LED, NO_LED}
-}, {
-    // LED Index to Physical Position
-    { 112,  0}, { 168,  0}, { 0,  64}, { 224,  64}
-}, {
-    // LED Index to Flag
-    4,4,2,2
-} };
-
-#endif

+ 7 - 0
keyboards/momokai/tap_trio/keyboard.json

@@ -42,6 +42,13 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 56, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 168, "y": 0, "flags": 4},
+            {"x": 0, "y": 64, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2}
+        ],
         "max_brightness": 200,
         "sleep": true
     },

+ 0 - 31
keyboards/momokai/tap_trio/tap_trio.c

@@ -1,31 +0,0 @@
-/* Copyright 2022 Momokai
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    // Key Matrix to LED Index
-    { 0, 1, 2, NO_LED, NO_LED, NO_LED}
-}, {
-    // LED Index to Physical Position
-    {  56,  0}, { 112,  0}, { 168,  0}, { 0,  64}, { 224,  64}
-}, {
-    // LED Index to Flag
-    4,4,4,2,2
-} };
-
-#endif

+ 112 - 0
keyboards/monstargear/xo87/rgb/keyboard.json

@@ -58,6 +58,118 @@
       "solid_multisplash": true
     },
     "driver": "ws2812",
+    "layout": [
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"x": 224, "y": 63, "flags": 2},
+        {"matrix": [5, 15], "x": 224, "y": 63, "flags": 1},
+        {"matrix": [5, 14], "x": 215, "y": 63, "flags": 1},
+        {"matrix": [5, 13], "x": 206, "y": 63, "flags": 1},
+        {"matrix": [4, 15], "x": 180, "y": 63, "flags": 1},
+        {"matrix": [5, 12], "x": 168, "y": 63, "flags": 1},
+        {"matrix": [5, 11], "x": 153, "y": 63, "flags": 1},
+        {"matrix": [5, 10], "x": 135, "y": 63, "flags": 1},
+        {"matrix": [5, 6], "x": 101, "y": 63, "flags": 4},
+        {"matrix": [5, 2], "x": 33, "y": 63, "flags": 1},
+        {"matrix": [5, 1], "x": 22, "y": 63, "flags": 1},
+        {"matrix": [5, 0], "x": 0, "y": 63, "flags": 1},
+        {"matrix": [4, 0], "x": 0, "y": 48, "flags": 1},
+        {"matrix": [4, 2], "x": 30, "y": 48, "flags": 4},
+        {"matrix": [4, 3], "x": 45, "y": 48, "flags": 4},
+        {"matrix": [4, 4], "x": 60, "y": 48, "flags": 4},
+        {"matrix": [4, 5], "x": 75, "y": 48, "flags": 4},
+        {"matrix": [4, 6], "x": 90, "y": 48, "flags": 4},
+        {"matrix": [4, 7], "x": 105, "y": 48, "flags": 4},
+        {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4},
+        {"matrix": [4, 9], "x": 135, "y": 48, "flags": 4},
+        {"matrix": [4, 10], "x": 150, "y": 48, "flags": 4},
+        {"matrix": [4, 11], "x": 165, "y": 48, "flags": 4},
+        {"matrix": [4, 12], "x": 198, "y": 48, "flags": 1},
+        {"matrix": [4, 14], "x": 215, "y": 48, "flags": 1},
+        {"matrix": [3, 12], "x": 198, "y": 36, "flags": 1},
+        {"matrix": [3, 11], "x": 180, "y": 36, "flags": 4},
+        {"matrix": [3, 10], "x": 176, "y": 36, "flags": 4},
+        {"matrix": [3, 9], "x": 161, "y": 36, "flags": 4},
+        {"matrix": [3, 8], "x": 146, "y": 36, "flags": 4},
+        {"matrix": [3, 7], "x": 131, "y": 36, "flags": 4},
+        {"matrix": [3, 6], "x": 116, "y": 36, "flags": 4},
+        {"matrix": [3, 5], "x": 101, "y": 36, "flags": 4},
+        {"matrix": [3, 4], "x": 86, "y": 36, "flags": 4},
+        {"matrix": [3, 3], "x": 71, "y": 36, "flags": 4},
+        {"matrix": [3, 2], "x": 56, "y": 36, "flags": 4},
+        {"matrix": [3, 1], "x": 41, "y": 36, "flags": 4},
+        {"matrix": [3, 0], "x": 0, "y": 36, "flags": 1},
+        {"matrix": [2, 0], "x": 0, "y": 24, "flags": 1},
+        {"matrix": [2, 1], "x": 22, "y": 24, "flags": 4},
+        {"matrix": [2, 2], "x": 37, "y": 24, "flags": 4},
+        {"matrix": [2, 3], "x": 52, "y": 24, "flags": 4},
+        {"matrix": [2, 4], "x": 67, "y": 24, "flags": 4},
+        {"matrix": [2, 5], "x": 82, "y": 24, "flags": 4},
+        {"matrix": [2, 6], "x": 97, "y": 24, "flags": 4},
+        {"matrix": [2, 7], "x": 112, "y": 24, "flags": 4},
+        {"matrix": [2, 8], "x": 127, "y": 24, "flags": 4},
+        {"matrix": [2, 9], "x": 142, "y": 24, "flags": 4},
+        {"matrix": [2, 10], "x": 157, "y": 24, "flags": 4},
+        {"matrix": [2, 11], "x": 172, "y": 24, "flags": 4},
+        {"matrix": [2, 12], "x": 187, "y": 24, "flags": 4},
+        {"matrix": [4, 13], "x": 202, "y": 24, "flags": 1},
+        {"matrix": [2, 13], "x": 206, "y": 24, "flags": 1},
+        {"matrix": [2, 14], "x": 215, "y": 24, "flags": 1},
+        {"matrix": [2, 15], "x": 224, "y": 24, "flags": 1},
+        {"matrix": [1, 15], "x": 224, "y": 12, "flags": 1},
+        {"matrix": [1, 14], "x": 215, "y": 12, "flags": 1},
+        {"matrix": [1, 13], "x": 206, "y": 12, "flags": 1},
+        {"matrix": [3, 13], "x": 202, "y": 12, "flags": 1},
+        {"matrix": [1, 12], "x": 187, "y": 12, "flags": 4},
+        {"matrix": [1, 11], "x": 172, "y": 12, "flags": 4},
+        {"matrix": [1, 10], "x": 157, "y": 12, "flags": 4},
+        {"matrix": [1, 9], "x": 142, "y": 12, "flags": 4},
+        {"matrix": [1, 8], "x": 127, "y": 12, "flags": 4},
+        {"matrix": [1, 7], "x": 112, "y": 12, "flags": 4},
+        {"matrix": [1, 6], "x": 97, "y": 12, "flags": 4},
+        {"matrix": [1, 5], "x": 82, "y": 12, "flags": 4},
+        {"matrix": [1, 4], "x": 67, "y": 12, "flags": 4},
+        {"matrix": [1, 3], "x": 52, "y": 12, "flags": 4},
+        {"matrix": [1, 2], "x": 37, "y": 12, "flags": 4},
+        {"matrix": [1, 1], "x": 22, "y": 12, "flags": 4},
+        {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
+        {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+        {"x": 0, "y": 0, "flags": 8},
+        {"x": 0, "y": 0, "flags": 8},
+        {"x": 0, "y": 0, "flags": 8},
+        {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4},
+        {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
+        {"matrix": [0, 3], "x": 55, "y": 0, "flags": 4},
+        {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4},
+        {"matrix": [0, 5], "x": 108, "y": 0, "flags": 1},
+        {"matrix": [0, 6], "x": 120, "y": 0, "flags": 1},
+        {"matrix": [0, 7], "x": 130, "y": 0, "flags": 1},
+        {"matrix": [0, 8], "x": 148, "y": 0, "flags": 1},
+        {"matrix": [0, 9], "x": 172, "y": 0, "flags": 4},
+        {"matrix": [0, 10], "x": 187, "y": 0, "flags": 4},
+        {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4},
+        {"matrix": [0, 12], "x": 195, "y": 0, "flags": 4},
+        {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1},
+        {"matrix": [0, 14], "x": 215, "y": 0, "flags": 1},
+        {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}
+    ],
     "max_brightness": 100,
     "sleep": true
   },

+ 0 - 50
keyboards/monstargear/xo87/rgb/rgb.c

@@ -15,56 +15,6 @@
  */
 #include "quantum.h"
 
-led_config_t g_led_config = { {
-  // esc  f1   f2   f3   f4   f5   f6   f7     f8    f9    f10   f11   f12   prtscr scrl  brk
-  {  91,  95,  96,  97,  98,  99,  100,  101,  102,  103,  104,  105,  106,  107,  108,  109 },
-  //tilde 1    2   3    4    5    6    7    8    9    0    -    =    ins  home  pgup
-  {  90,  89,  88, 87,  86,  85,  84,  83,  82,  81,  80,  79,  78,  76,  75,  74 },
-  //tab   q    w    e    r    t    y    u    i    o    p    [    ]    del   end  pgdn
-  {  57,  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  71,  72,  73 },
-  //caps  a    s    d    f    g    h    j    k   l     ;    '  return bspc
-  {  56,  55,  54,  53,  52,  51,  50,  49,  48,  47,  46,  45,  44,  77,  NO_LED,  NO_LED },
-  //lshift         z   x    c    v    b    n    m    ,    .    /   rshift  bsls  up  rctl
-  {  31,  NO_LED,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  70,  43,  23 },
-  //ctrl win  alt                             space                           alt  win  mod  left down right
-  {  30,  29,  28,  NO_LED,  NO_LED,  NO_LED,  27,  NO_LED,  NO_LED,  NO_LED,  26,  25,  24,  22,  21,  20 },
-  //underglow lights
-  //{ 10,  11,  12,  13,  14,  15,  16,  17,  18,  19 },
-  //{  0,   1,   2,   3,   4,   5,   6,   7,   8,   9 }
-
-}, {
-    // Underglow lights
-    { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 }, { 254,  63 },
-    // right         down         left            rctl         mod           rwin          ralt          space         lalt           lwin         lctl
-    { 225,  63 }, { 215,  63 }, { 206,  63 }, { 180,  63 }, { 168,  63}, { 153,  63 }, { 135,  63 }, { 101,  63 }, {  33,  63 }, {  22,  63 }, {  0,  63 },
-    // lshift          z             x            c              v            b            n              m              comma       period       question       rshift         up
-    {  0,  48 }, {  30,  48 }, {  45,  48 }, {  60,  48 }, {  75,  48 }, {  90,  48 }, { 105,  48 }, { 120,  48 }, { 135,  48 }, { 150,  48 }, { 165,  48 }, { 198,  48 }, { 215,  48},
-    // return         '              ;             l              k             j             h             g              f            d            s               a        capslock
-    { 198,  36 }, { 180,  36 }, { 176,  36 }, { 161,  36 }, { 146,  36 }, { 131,  36 }, { 116,  36 }, { 101,  36 }, {  86,  36 }, {  71,  36 }, {  56,  36 }, {  41,  36 }, {  0,  36 },
-    //   tab           q             w             e             r            t             y             u              i             o             p              [             ]         backslash      del          end         pgdn
-    {   0,  24 }, {  22,  24}, {  37,  24 }, {  52,  24 }, {  67,  24 }, {  82,  24 }, {  97,  24 }, { 112,  24 }, { 127,  24 }, { 142,  24 }, { 157,  24 }, { 172,  24 }, { 187,  24 }, { 202,  24}, { 206,  24 }, {215,  24}, { 225,  24 },
-    // pgup          home          ins        backspace        =            -             0              9             8             7            6               5              4             3             2            1         tilde
-    { 225,  12 }, {215,  12}, { 206,  12 }, { 202,  12}, { 187,  12 }, { 172,  12 }, { 157,  12 }, { 142,  12 }, { 127,  12 }, { 112,  12 }, {  97,  12 }, {  82,  12 }, {  67,  12 }, {  52,  12 }, {  37,  12 }, {  22,  12}, {   0,  12 },
-    //   esc          ind1         ind2         ind3           F1           F2           F3            F4            F5             F6             F7               F8            F9            F10          F11           F12        prtscr      scrlck         pause
-    {   0,   0 }, {  0,  0 }, {  0,   0 }, {   0,   0 }, {  25,   0 }, {  40,   0 }, {  55,   0 }, {  82,   0 }, {  108,   0 }, {  120,   0 }, {  130,   0 }, { 148,   0 }, { 172,   0 }, { 187,   0 }, { 190,   0 }, { 195,   0 }, { 206,   0 }, { 215,  0}, { 225,   0 }
-}, {
-    // underglow
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-    // bottom row
-    1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1,
-    // 2nd row up
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-    // 3rd row up
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // 4th row up
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
-    // 5th row up
-    1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    // top row
-    1, 8, 8, 8, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1
-} };
-
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 77 - 0
keyboards/mss_studio/m63_rgb/keyboard.json

@@ -61,6 +61,83 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
+            {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4},
+            {"x": 216, "y": 56, "flags": 2},
+            {"x": 181, "y": 57, "flags": 2},
+            {"x": 138, "y": 59, "flags": 2},
+            {"x": 105, "y": 58, "flags": 2},
+            {"x": 52, "y": 60, "flags": 2},
+            {"x": 10, "y": 60, "flags": 2},
+            {"x": 20, "y": 12, "flags": 2},
+            {"x": 54, "y": 12, "flags": 2},
+            {"x": 102, "y": 10, "flags": 2},
+            {"x": 145, "y": 13, "flags": 2},
+            {"x": 182, "y": 9, "flags": 2},
+            {"x": 211, "y": 10, "flags": 2}
+        ],
         "max_brightness": 200
     },
     "features": {

+ 0 - 50
keyboards/mss_studio/m63_rgb/m63_rgb.c

@@ -1,50 +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/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    {  0,      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13 },
-    { 14,     15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27 },
-    { 28,     29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39, NO_LED,     40 },
-    { 41,     42,     43,     44,     45,     46,     47,     48,     49,     50,     51, NO_LED,     52,     53 },
-    { 54,     55,     56, NO_LED, NO_LED,     57, NO_LED, NO_LED, NO_LED,     58,     59,     60,     61,     62 }
-}, {
-    // Key matrix (0 -> 62)
-    {0  ,  0}, {16 ,  0}, {32 ,  0}, {48 ,  0}, {64 ,  0}, {80 ,  0}, {96 ,  0}, {112,  0}, {128,  0}, {144,  0}, {160,  0}, {176,  0}, {192,  0}, {216,  0},
-    {4  , 16}, {24 , 16}, {40 , 16}, {56 , 16}, {72 , 16}, {88 , 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16},
-    {6  , 32}, {28 , 32}, {44 , 32}, {60 , 32}, {76 , 32}, {92 , 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32},            {214, 32},
-    {10 , 48}, {36 , 48}, {52 , 48}, {68 , 48}, {84 , 48}, {100, 48}, {116, 48}, {132, 48}, {148, 48}, {164, 48}, {186, 48},            {208, 48}, {224, 48},
-    {2  , 64}, {22 , 64}, {42 , 64},                       {102, 64},                                  {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64},
-
-    // Underglow (63 -> 74)
-    {216, 56}, {181, 57}, {138, 59}, {105, 58}, {52 , 60}, {10 , 60},
-    {20 , 12}, {54 , 12}, {102, 10}, {145, 13}, {182,  9}, {211, 10},
-}, {
-    // Key matrix (0 -> 62)
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    4, 4,
-    1, 1, 1,       4,          1, 1, 4, 4, 4,
-
-    // Underglow (63 -> 74)
-    2, 2, 2, 2, 2, 2,
-    2, 2, 2, 2, 2, 2
-} };
-#endif

+ 78 - 0
keyboards/mss_studio/m64_rgb/keyboard.json

@@ -61,6 +61,84 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
+            {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 192, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4},
+            {"x": 216, "y": 56, "flags": 2},
+            {"x": 181, "y": 57, "flags": 2},
+            {"x": 138, "y": 59, "flags": 2},
+            {"x": 105, "y": 58, "flags": 2},
+            {"x": 52, "y": 60, "flags": 2},
+            {"x": 10, "y": 60, "flags": 2},
+            {"x": 20, "y": 12, "flags": 2},
+            {"x": 54, "y": 12, "flags": 2},
+            {"x": 102, "y": 10, "flags": 2},
+            {"x": 145, "y": 13, "flags": 2},
+            {"x": 182, "y": 9, "flags": 2},
+            {"x": 211, "y": 10, "flags": 2}
+        ],
         "max_brightness": 200
     },
     "features": {

+ 0 - 50
keyboards/mss_studio/m64_rgb/m64_rgb.c

@@ -1,50 +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/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    {  0,      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13 },
-    { 14,     15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27 },
-    { 28,     29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39, NO_LED,     40 },
-    { 41,     42,     43,     44,     45,     46,     47,     48,     49,     50,     51,     52,     53,     54 },
-    { 55,     56,     57, NO_LED, NO_LED,     58, NO_LED, NO_LED, NO_LED,     59,     60,     61,     62,     63 }
-}, {
-    // Key matrix (0 -> 63)
-    {0  ,  0}, {16 ,  0}, {32 ,  0}, {48 ,  0}, {64 ,  0}, {80 ,  0}, {96 ,  0}, {112,  0}, {128,  0}, {144,  0}, {160,  0}, {176,  0}, {192,  0}, {216,  0},
-    {4  , 16}, {24 , 16}, {40 , 16}, {56 , 16}, {72 , 16}, {88 , 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16},
-    {6  , 32}, {28 , 32}, {44 , 32}, {60 , 32}, {76 , 32}, {92 , 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32},            {214, 32},
-    {8  , 48}, {32 , 48}, {48 , 48}, {64 , 48}, {80 , 48}, {96 , 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48},
-    {2  , 64}, {22 , 64}, {42 , 64},                       {102, 64},                                  {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64},
-
-    // Underglow (64 -> 75)
-    {216, 56}, {181, 57}, {138, 59}, {105, 58}, {52 , 60}, {10 , 60},
-    {20 , 12}, {54 , 12}, {102, 10}, {145, 13}, {182,  9}, {211, 10},
-}, {
-    // Key matrix (0 -> 63)
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4,
-    1, 1, 1,       4,          1, 1, 4, 4, 4,
-
-    // Underglow (64 -> 75)
-    2, 2, 2, 2, 2, 2,
-    2, 2, 2, 2, 2, 2
-} };
-#endif

+ 85 - 0
keyboards/mwstudio/mw65_rgb/keyboard.json

@@ -54,6 +54,91 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"x": 180, "y": 52, "flags": 2},
+            {"x": 146, "y": 52, "flags": 2},
+            {"x": 86, "y": 52, "flags": 2},
+            {"x": 45, "y": 52, "flags": 2},
+            {"x": 7, "y": 52, "flags": 2},
+            {"x": 7, "y": 36, "flags": 2},
+            {"x": 7, "y": 20, "flags": 2},
+            {"x": 7, "y": 4, "flags": 2},
+            {"x": 45, "y": 4, "flags": 2},
+            {"x": 86, "y": 4, "flags": 2},
+            {"x": 146, "y": 4, "flags": 2},
+            {"x": 180, "y": 4, "flags": 2},
+            {"x": 217, "y": 4, "flags": 2},
+            {"x": 217, "y": 20, "flags": 2},
+            {"x": 217, "y": 36, "flags": 2},
+            {"x": 217, "y": 52, "flags": 2},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 209, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 194, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 173, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 156, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 36, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 31, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 46, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 61, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 76, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 91, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 106, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 121, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 136, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 151, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 166, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 188, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1},
+            {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 145, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 115, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 85, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 70, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 55, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 40, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4},
+            {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8},
+            {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 36, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 51, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 81, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 111, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 126, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 141, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 156, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}
+        ],
         "max_brightness": 200
     },
     "features": {

+ 0 - 47
keyboards/mwstudio/mw65_rgb/mw65_rgb.c

@@ -1,47 +0,0 @@
-/* Copyright 2021 TW59420 <https://github.com/TW59420>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    { 82,     81,     80,     79,     78,     77,     76,     75,     74,     73,     72,     71,     70,     69,     68 },
-    { 53,     54,     55,     56,     57,     58,     59,     60,     61,     62,     63,     64,     65,     66,     67 },
-    { 52,     51,     50,     49,     48,     47,     46,     45,     44,     43,     42,     41, NO_LED,     40,     39 },
-    { 25, NO_LED,     26,     27,     28,     29,     30,     31,     32,     33,     34,     35,     36,     37,     38 },
-    { 24,     23,     22, NO_LED, NO_LED, NO_LED,     21, NO_LED, NO_LED, NO_LED,     20,     19,     18,     17,     16 }
-}, {
-    //Underglow (0 -> 15)
-    {180, 52}, {146, 52}, {86 , 52}, {45 , 52}, {7  , 52}, {7  , 36}, {7  , 20}, {7  ,  4}, {45 ,  4}, {86 ,  4}, {146,  4}, {180,  4}, {217,  4}, {217, 20}, {217, 36}, {217, 52},
-
-    //Key matrix (16 -> 83)
-    {224, 64}, {209, 64}, {194, 64}, {173, 64}, {156, 64},                                  {96 , 64},                                  {36 , 64}, {19 , 64}, {2  , 64},
-    {8  , 48}, {31 , 48}, {46 , 48}, {61 , 48}, {76 , 48}, {91 , 48}, {106, 48}, {121, 48}, {136, 48}, {151, 48}, {166, 48}, {188, 48}, {210, 48},            {224, 48},
-    {224, 32}, {200, 32},            {175, 32}, {160, 32}, {145, 32}, {130, 32}, {115, 32}, {100, 32}, {85 , 32}, {70 , 32}, {55 , 32}, {40 , 32}, {25 , 32}, {5  , 32},
-    {3  , 16}, {21 , 16}, {36 , 16}, {51 , 16}, {66 , 16}, {81 , 16}, {96 , 16}, {111, 16}, {126, 16}, {141, 16}, {156, 16}, {171, 16}, {186, 16}, {205, 16}, {224, 16},
-    {224,  0}, {202,  0}, {180,  0}, {165,  0}, {150,  0}, {135,  0}, {120,  0}, {105,  0}, {90 ,  0}, {75 ,  0}, {60 ,  0}, {45 ,  0}, {30 ,  0}, {15 ,  0}, {0  ,  0},
-}, {
-    //Underglow (0 -> 15)
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-
-    //Key matrix (16 -> 82)
-    4, 4, 4, 1, 1,          4,          1, 1, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4,    4,
-    4, 1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-} };
-#endif

+ 99 - 0
keyboards/mwstudio/mw75/keyboard.json

@@ -51,6 +51,105 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [5, 14], "x": 217, "y": 60, "flags": 1},
+            {"matrix": [5, 13], "x": 203, "y": 60, "flags": 1},
+            {"matrix": [5, 12], "x": 189, "y": 60, "flags": 1},
+            {"matrix": [5, 11], "x": 166, "y": 60, "flags": 1},
+            {"matrix": [5, 10], "x": 150, "y": 60, "flags": 1},
+            {"matrix": [5, 6], "x": 95, "y": 60, "flags": 1},
+            {"matrix": [5, 2], "x": 40, "y": 60, "flags": 1},
+            {"matrix": [5, 1], "x": 24, "y": 60, "flags": 1},
+            {"matrix": [5, 0], "x": 8, "y": 60, "flags": 1},
+            {"matrix": [4, 14], "x": 217, "y": 50, "flags": 1},
+            {"matrix": [4, 13], "x": 203, "y": 50, "flags": 1},
+            {"matrix": [4, 12], "x": 184, "y": 50, "flags": 1},
+            {"matrix": [4, 11], "x": 165, "y": 50, "flags": 1},
+            {"matrix": [4, 10], "x": 151, "y": 50, "flags": 1},
+            {"matrix": [4, 9], "x": 137, "y": 50, "flags": 1},
+            {"matrix": [4, 8], "x": 123, "y": 50, "flags": 1},
+            {"matrix": [4, 7], "x": 109, "y": 50, "flags": 1},
+            {"matrix": [4, 6], "x": 95, "y": 50, "flags": 1},
+            {"matrix": [4, 5], "x": 81, "y": 50, "flags": 1},
+            {"matrix": [4, 4], "x": 67, "y": 50, "flags": 1},
+            {"matrix": [4, 3], "x": 53, "y": 50, "flags": 1},
+            {"matrix": [4, 2], "x": 39, "y": 50, "flags": 1},
+            {"matrix": [4, 0], "x": 17, "y": 50, "flags": 1},
+            {"matrix": [3, 14], "x": 217, "y": 40, "flags": 1},
+            {"matrix": [3, 13], "x": 195, "y": 40, "flags": 1},
+            {"matrix": [3, 11], "x": 172, "y": 40, "flags": 1},
+            {"matrix": [3, 10], "x": 158, "y": 40, "flags": 1},
+            {"matrix": [3, 9], "x": 144, "y": 40, "flags": 1},
+            {"matrix": [3, 8], "x": 130, "y": 40, "flags": 1},
+            {"matrix": [3, 7], "x": 116, "y": 40, "flags": 1},
+            {"matrix": [3, 6], "x": 102, "y": 40, "flags": 1},
+            {"matrix": [3, 5], "x": 88, "y": 40, "flags": 1},
+            {"matrix": [3, 4], "x": 74, "y": 40, "flags": 1},
+            {"matrix": [3, 3], "x": 60, "y": 40, "flags": 1},
+            {"matrix": [3, 2], "x": 46, "y": 40, "flags": 1},
+            {"matrix": [3, 1], "x": 32, "y": 40, "flags": 1},
+            {"matrix": [3, 0], "x": 13, "y": 40, "flags": 1},
+            {"matrix": [2, 14], "x": 217, "y": 30, "flags": 1},
+            {"matrix": [2, 13], "x": 199, "y": 30, "flags": 1},
+            {"matrix": [2, 12], "x": 181, "y": 30, "flags": 1},
+            {"matrix": [2, 11], "x": 165, "y": 30, "flags": 1},
+            {"matrix": [2, 10], "x": 151, "y": 30, "flags": 1},
+            {"matrix": [2, 9], "x": 137, "y": 30, "flags": 1},
+            {"matrix": [2, 8], "x": 123, "y": 30, "flags": 1},
+            {"matrix": [2, 7], "x": 109, "y": 30, "flags": 1},
+            {"matrix": [2, 6], "x": 95, "y": 30, "flags": 1},
+            {"matrix": [2, 5], "x": 81, "y": 30, "flags": 1},
+            {"matrix": [2, 4], "x": 67, "y": 30, "flags": 1},
+            {"matrix": [2, 3], "x": 53, "y": 30, "flags": 1},
+            {"matrix": [2, 2], "x": 39, "y": 30, "flags": 1},
+            {"matrix": [2, 1], "x": 25, "y": 30, "flags": 1},
+            {"matrix": [2, 0], "x": 9, "y": 30, "flags": 1},
+            {"matrix": [1, 14], "x": 217, "y": 20, "flags": 1},
+            {"matrix": [1, 13], "x": 196, "y": 20, "flags": 1},
+            {"matrix": [1, 12], "x": 175, "y": 20, "flags": 1},
+            {"matrix": [1, 11], "x": 161, "y": 20, "flags": 1},
+            {"matrix": [1, 10], "x": 147, "y": 20, "flags": 1},
+            {"matrix": [1, 9], "x": 133, "y": 20, "flags": 1},
+            {"matrix": [1, 8], "x": 119, "y": 20, "flags": 1},
+            {"matrix": [1, 7], "x": 105, "y": 20, "flags": 1},
+            {"matrix": [1, 6], "x": 91, "y": 20, "flags": 1},
+            {"matrix": [1, 5], "x": 77, "y": 20, "flags": 1},
+            {"matrix": [1, 4], "x": 63, "y": 20, "flags": 1},
+            {"matrix": [1, 3], "x": 49, "y": 20, "flags": 1},
+            {"matrix": [1, 2], "x": 35, "y": 20, "flags": 1},
+            {"matrix": [1, 1], "x": 21, "y": 20, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 20, "flags": 1},
+            {"matrix": [0, 14], "x": 217, "y": 5, "flags": 1},
+            {"matrix": [0, 13], "x": 196, "y": 5, "flags": 1},
+            {"matrix": [0, 12], "x": 182, "y": 5, "flags": 1},
+            {"matrix": [0, 11], "x": 168, "y": 5, "flags": 1},
+            {"matrix": [0, 10], "x": 154, "y": 5, "flags": 1},
+            {"matrix": [0, 9], "x": 133, "y": 5, "flags": 1},
+            {"matrix": [0, 8], "x": 119, "y": 5, "flags": 1},
+            {"matrix": [0, 7], "x": 105, "y": 5, "flags": 1},
+            {"matrix": [0, 6], "x": 91, "y": 5, "flags": 1},
+            {"matrix": [0, 5], "x": 70, "y": 5, "flags": 1},
+            {"matrix": [0, 4], "x": 56, "y": 5, "flags": 1},
+            {"matrix": [0, 3], "x": 42, "y": 5, "flags": 1},
+            {"matrix": [0, 2], "x": 28, "y": 5, "flags": 1},
+            {"matrix": [0, 1], "x": 7, "y": 5, "flags": 1},
+            {"matrix": [0, 0], "x": 14, "y": 14, "flags": 1},
+            {"matrix": [6, 0], "x": 42, "y": 14, "flags": 1},
+            {"matrix": [6, 1], "x": 98, "y": 14, "flags": 1},
+            {"matrix": [6, 2], "x": 154, "y": 14, "flags": 1},
+            {"matrix": [6, 3], "x": 182, "y": 14, "flags": 1},
+            {"matrix": [6, 4], "x": 210, "y": 14, "flags": 1},
+            {"matrix": [6, 5], "x": 210, "y": 25, "flags": 1},
+            {"matrix": [6, 6], "x": 210, "y": 40, "flags": 1},
+            {"matrix": [6, 7], "x": 210, "y": 55, "flags": 1},
+            {"matrix": [6, 8], "x": 182, "y": 55, "flags": 1},
+            {"matrix": [6, 9], "x": 126, "y": 55, "flags": 1},
+            {"matrix": [6, 10], "x": 98, "y": 55, "flags": 1},
+            {"matrix": [6, 11], "x": 42, "y": 55, "flags": 1},
+            {"matrix": [6, 12], "x": 14, "y": 55, "flags": 1},
+            {"matrix": [6, 13], "x": 14, "y": 40, "flags": 1},
+            {"matrix": [6, 14], "x": 14, "y": 25, "flags": 1}
+        ],
         "max_brightness": 200
     },
     "features": {

+ 0 - 47
keyboards/mwstudio/mw75/mw75.c

@@ -1,47 +0,0 @@
-/* Copyright 2021 TW59420 <https://github.com/TW59420>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-  { 81,     80,     79,     78,     77,     76,     75,     74,     73,     72,     71,     70,     69,     68,     67 },
-  { 66,     65,     64,     63,     62,     61,     60,     59,     58,     57,     56,     55,     54,     53,     52 },
-  { 51,     50,     49,     48,     47,     46,     45,     44,     43,     42,     41,     40,     39,     38,     37 },
-  { 36,     35,     34,     33,     32,     31,     30,     29,     28,     27,     26,     25,     NO_LED, 24,     23 },
-  { 22,     NO_LED, 21,     20,     19,     18,     17,     16,     15,     14,     13,     12,     11,     10,     9 },
-  { 8,      7,      6,      NO_LED, NO_LED, NO_LED, 5,      NO_LED, NO_LED, NO_LED, 4,      3,      2,      1,      0 },
-  { 82,     83,     84,     85,     86,     87,     88,     89,     90,     91,     92,     93,     94,     95,     96 }
-}, {
-    { 217, 60 }, { 203, 60 }, { 189, 60 }, { 166, 60 }, { 150, 60 }, { 95, 60 }, { 40, 60 },  { 24, 60 },  { 8, 60 },
-    { 217, 50 }, { 203, 50 }, { 184, 50 }, { 165, 50 }, { 151, 50 }, { 137, 50 }, { 123, 50 }, { 109, 50 }, { 95, 50 }, { 81, 50 }, { 67, 50 }, { 53, 50 }, { 39, 50 }, { 17, 50 },
-    { 217, 40 }, { 195, 40 }, { 172, 40 }, { 158, 40 }, { 144, 40 }, { 130, 40 }, { 116, 40 }, { 102, 40 }, { 88, 40 }, { 74, 40 }, { 60, 40 }, { 46, 40 }, { 32, 40 }, { 13, 40 },
-    { 217, 30 }, { 199, 30 }, { 181, 30 }, { 165, 30 }, { 151, 30 }, { 137, 30 }, { 123, 30 }, { 109, 30 }, { 95, 30 }, { 81, 30 }, { 67, 30 }, { 53, 30 }, { 39, 30 }, { 25, 30 }, { 9, 30 },
-    { 217, 20 }, { 196, 20 }, { 175, 20 }, { 161, 20 }, { 147, 20 }, { 133, 20 }, { 119, 20 }, { 105, 20 }, { 91, 20 }, { 77, 20 }, { 63, 20 }, { 49, 20 }, { 35, 20 }, { 21, 20 }, { 7, 20 },
-    { 217, 5 },  { 196, 5 },  { 182, 5 },  { 168, 5 },  { 154, 5 },  { 133, 5 },  { 119, 5 },  { 105, 5 },  { 91, 5 },  { 70, 5 },  { 56, 5 },  { 42, 5 },  { 28, 5 },  { 7, 5 },
-
-    { 14, 14 }, { 42, 14 }, { 98, 14 }, { 154, 14 }, { 182, 14 }, { 210, 14 }, { 210, 25 }, { 210, 40 },
-    { 210, 55 },{ 182, 55 },{ 126, 55 },{ 98, 55 },  { 42, 55 },  {  14, 55 }, { 14, 40 },  { 14, 25 }
-}, {
-    1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
-} };
-#endif

+ 24 - 1
keyboards/mwstudio/mw75r2/keyboard.json

@@ -39,7 +39,30 @@
             "pixel_fractal": true,
             "pixel_rain": true
         },
-        "driver": "ws2812"
+        "driver": "ws2812",
+        "layout": [
+            {"x": 105, "y": 60, "flags": 1},
+            {"x": 70, "y": 60, "flags": 1},
+            {"x": 35, "y": 60, "flags": 1},
+            {"x": 0, "y": 60, "flags": 1},
+            {"x": 0, "y": 40, "flags": 1},
+            {"x": 0, "y": 20, "flags": 1},
+            {"x": 0, "y": 0, "flags": 1},
+            {"x": 42, "y": 0, "flags": 1},
+            {"x": 84, "y": 0, "flags": 1},
+            {"x": 126, "y": 0, "flags": 1},
+            {"x": 168, "y": 0, "flags": 1},
+            {"x": 210, "y": 0, "flags": 1},
+            {"x": 210, "y": 20, "flags": 1},
+            {"x": 210, "y": 40, "flags": 1},
+            {"x": 40, "y": 20, "flags": 1},
+            {"x": 120, "y": 20, "flags": 1},
+            {"x": 40, "y": 40, "flags": 1},
+            {"x": 120, "y": 40, "flags": 1},
+            {"x": 210, "y": 60, "flags": 1},
+            {"x": 175, "y": 60, "flags": 1},
+            {"x": 140, "y": 60, "flags": 1}
+        ]
     },
     "features": {
         "bootmagic": true,

+ 0 - 31
keyboards/mwstudio/mw75r2/mw75r2.c

@@ -1,31 +0,0 @@
-/* Copyright 2021 TW59420 <https://github.com/TW59420>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
-    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
-    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
-    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
-    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
-    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
-}, {
-    { 105, 60 }, { 70, 60 }, { 35, 60 }, { 0, 60 }, {  0, 40 }, { 0, 20 }, { 0, 0 }, { 42, 0 }, { 84, 0 }, { 126, 0 }, { 168, 0 }, { 210, 0 }, { 210, 20 }, { 210, 40 }, { 40, 20 }, { 120, 20 }, { 40, 40 }, { 120, 40 }, { 210, 60 }, { 175, 60 },{ 140, 60 }
-}, {
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
-} };
-#endif