Browse Source

Migrate `g_led_config` to DD (G) (#25598)

Jack Sangdahl 11 months ago
parent
commit
2d5cb23503

+ 44 - 0
keyboards/geekboards/macropad_v2/keyboard.json

@@ -51,6 +51,50 @@
       "val": 192
     },
     "driver": "ws2812",
+    "layout": [
+        {"matrix": [1, 1], "x": 85, "y": 46, "flags": 4},
+        {"x": 85, "y": 64, "flags": 2},
+        {"x": 67, "y": 64, "flags": 2},
+        {"x": 49, "y": 64, "flags": 2},
+        {"x": 31, "y": 64, "flags": 2},
+        {"x": 13, "y": 64, "flags": 2},
+        {"matrix": [1, 0], "x": 31, "y": 46, "flags": 4},
+        {"x": 0, "y": 55, "flags": 2},
+        {"x": 0, "y": 46, "flags": 2},
+        {"x": 0, "y": 37, "flags": 2},
+        {"x": 0, "y": 27, "flags": 2},
+        {"x": 0, "y": 18, "flags": 2},
+        {"x": 0, "y": 9, "flags": 2},
+        {"matrix": [0, 0], "x": 31, "y": 18, "flags": 4},
+        {"x": 13, "y": 0, "flags": 2},
+        {"x": 31, "y": 0, "flags": 2},
+        {"x": 49, "y": 0, "flags": 2},
+        {"x": 67, "y": 0, "flags": 2},
+        {"x": 85, "y": 0, "flags": 2},
+        {"matrix": [0, 1], "x": 85, "y": 18, "flags": 4},
+        {"matrix": [0, 2], "x": 139, "y": 18, "flags": 4},
+        {"x": 139, "y": 0, "flags": 2},
+        {"x": 157, "y": 0, "flags": 2},
+        {"x": 175, "y": 0, "flags": 2},
+        {"x": 193, "y": 0, "flags": 2},
+        {"x": 211, "y": 0, "flags": 2},
+        {"matrix": [0, 3], "x": 193, "y": 18, "flags": 4},
+        {"x": 224, "y": 9, "flags": 2},
+        {"x": 224, "y": 18, "flags": 2},
+        {"x": 224, "y": 27, "flags": 2},
+        {"x": 224, "y": 37, "flags": 2},
+        {"x": 224, "y": 46, "flags": 2},
+        {"x": 224, "y": 55, "flags": 2},
+        {"matrix": [1, 3], "x": 193, "y": 46, "flags": 4},
+        {"x": 211, "y": 64, "flags": 2},
+        {"x": 193, "y": 64, "flags": 2},
+        {"x": 175, "y": 64, "flags": 2},
+        {"x": 157, "y": 64, "flags": 2},
+        {"matrix": [1, 2], "x": 139, "y": 46, "flags": 4},
+        {"x": 139, "y": 64, "flags": 2},
+        {"x": 121, "y": 64, "flags": 2},
+        {"x": 103, "y": 64, "flags": 2}
+    ],
     "sleep": true
   },
   "processor": "STM32F072",

+ 0 - 56
keyboards/geekboards/macropad_v2/macropad_v2.c

@@ -1,56 +0,0 @@
-/* Copyright 2020 Geekboards ltd. (geekboards.ru / geekboards.de)
- *
- * 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
-    {13,19,20,26}, {6,0,38,33},
-}, {
-    // LED Index to Physical Position
-    {85,46},
-    {85,64},{67,64},{49,64},{31,64},{13,64},
-    {31,46},
-    {0,55},{0,46},{0,37},{0,27},{0,18},{0,9},
-    {31,18},
-    {13,0},{31,0},{49,0},{67,0},{85,0},
-    {85,18},{139,18},
-    {139,0},{157,0},{175,0},{193,0},{211,0},
-    {193,18},
-    {224,9},{224,18},{224,27},{224,37},{224,46},{224,55},
-    {193,46},
-    {211,64},{193,64},{175,64},{157,64},
-    {139,46},
-    {139,64},{121,64},{103,64},
-}, {
-    // LED Index to Flag, 2=backlight, 4=key
-    4,
-    2, 2, 2, 2, 2, 
-    4, 
-    2, 2, 2, 2, 2, 2,
-    4, 
-    2, 2, 2, 2, 2,
-    4, 4,
-    2, 2, 2, 2, 2,
-    4,
-    2, 2, 2, 2, 2, 2,
-    4, 
-    2, 2, 2, 2,
-    4,
-    2, 2, 2
-} };
-
-#endif

+ 10 - 0
keyboards/geekboards/tester/keyboard.json

@@ -50,6 +50,16 @@
             "solid_reactive_multinexus": true
         },
         "driver": "is31fl3731",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 151, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [1, 1], "x": 75, "y": 64, "flags": 4},
+            {"matrix": [1, 2], "x": 151, "y": 64, "flags": 4},
+            {"matrix": [1, 3], "x": 224, "y": 64, "flags": 4}
+        ],
         "sleep": true
     },
     "features": {

+ 0 - 13
keyboards/geekboards/tester/tester.c

@@ -16,16 +16,3 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {0, C1_7,   C2_7,   C3_7}, //A7
     {0, C1_8,   C2_8,   C3_8}, //A8
 };
-
-led_config_t g_led_config = { 
-{
-    {  0,  1,  2,  3},
-    {  4,  5,  6,  7}
-}, 
-{
-    { 0,   0 }, { 75,   0 }, { 151,   0 }, { 224,   0 }, { 0,   64 }, { 75,   64 }, { 151,   64 }, { 224,  64 }
-}, 
-{
-    4, 4, 4, 4, 4, 4, 4, 4
-} 
-};

+ 0 - 60
keyboards/giabalanai/giabalanai.c

@@ -88,66 +88,6 @@ NO_LED, 84,     83,     82,     81,       80,     79,     NO_LED, NO_LED, NO_LED
 #    endif
 #endif  //  RGBLIGHT_ENABLE
 
-#ifdef RGB_MATRIX_ENABLE
-
-led_config_t g_led_config = {
-    {
-        { 74,     75, 98,  99, 122, 63, 86,     87,    110,    111 },
-        { 73,     76, 97, 100, 121, 64, 85,     88,    109,    112 },
-        { 72,     77, 96, 101, 120, 65, 84,     89,    108,    113 },
-        { 71,     78, 95, 102, 119, 66, 83,     90,    107,    114 },
-        { 70,     79, 94, 103, 118, 67, 82,     91,    106,    115 },
-        { 69,     80, 93, 104, 117, 68, 81,     92,    105,    116 },
-        { 26,     27, 28,  29,  30, 31, 32, NO_LED, NO_LED, NO_LED },
-        { 50,     49, 48,  47,  46, 45, 44, NO_LED, NO_LED, NO_LED },
-        { 25,     51, 52,  53,  54, 55, 56, NO_LED, NO_LED, NO_LED },
-        { NO_LED, 12, 37,  36,  35, 34, 33, NO_LED, NO_LED, NO_LED },
-        { NO_LED, 38, 39,  40,  41, 42, 43, NO_LED, NO_LED, NO_LED },
-        { NO_LED, 62, 61,  60,  59, 58, 57, NO_LED, NO_LED, NO_LED }
-    }, {
-        { 120,  0 }, { 128,  0 }, { 136,  0 }, { 144,  0 }, { 152,  0 }, { 160,  0 }, { 168,  0 }, { 176,  0 }, { 184,  0 }, { 192,  0 }, { 200,  0 }, { 208,  0 },
-        { 224, 32 },
-        { 212, 16 }, { 204, 16 }, { 196, 16 }, { 188, 16 }, { 180, 16 }, { 172, 16 }, { 164, 16 }, { 156, 16 }, { 148, 16 }, { 140, 16 }, { 132, 16 }, { 124, 16 }, { 116, 16 },
-        { 120, 32 }, { 128, 32 }, { 136, 32 }, { 144, 32 }, { 152, 32 }, { 160, 32 }, { 168, 32 }, { 176, 32 }, { 184, 32 }, { 192, 32 }, { 200, 32 }, { 208, 32 },
-        { 212, 48 }, { 204, 48 }, { 196, 48 }, { 188, 48 }, { 180, 48 }, { 172, 48 }, { 164, 48 }, { 156, 48 }, { 148, 48 }, { 140, 48 }, { 132, 48 }, { 124, 48 }, { 116, 48 },
-        { 120, 64 }, { 128, 64 }, { 136, 64 }, { 144, 64 }, { 152, 64 }, { 160, 64 }, { 168, 64 }, { 176, 64 }, { 184, 64 }, { 192, 64 }, { 200, 64 }, { 208, 64 },
-
-        {  88,  0 }, {  80,  0 }, {  72,  0 }, {  64,  0 }, {  56,  0 }, {  48,  0 }, {  40,  0 }, {  32,  0 }, {  24,  0 }, {  16,  0 }, {   8,  0 }, {   0,  0 },
-        {   4, 16 }, {  12, 16 }, {  20, 16 }, {  28, 16 }, {  36, 16 }, {  44, 16 }, {  52, 16 }, {  60, 16 }, {  68, 16 }, {  76, 16 }, {  84, 16 }, {  92, 16 },
-        {  96, 32 }, {  88, 32 }, {  80, 32 }, {  72, 32 }, {  64, 32 }, {  56, 32 }, {  48, 32 }, {  40, 32 }, {  32, 32 }, {  24, 32 }, {  16, 32 }, {   8, 32 },
-        {  12, 48 }, {  20, 48 }, {  28, 48 }, {  36, 48 }, {  44, 48 }, {  52, 48 }, {  60, 48 }, {  68, 48 }, {  76, 48 }, {  84, 48 }, {  92, 48 }, { 100, 48 },
-        { 104, 64 }, {  96, 64 }, {  88, 64 }, {  80, 64 }, {  72, 64 }, {  64, 64 }, {  56, 64 }, {  48, 64 }, {  40, 64 }, {  32, 64 }, {  24, 64 }, {  16, 64 }
-    }, {
-        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,
-        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, 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, 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, 4, 4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    }
-};
-
-// const uint8_t PROGMEM convert_led_location2number[] = {
-//     74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63,
-//     75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
-//     98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87,
-//     99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
-//     122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111,
-//
-//     0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-//     25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13,
-//     26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,     12,
-//     50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38,
-//     51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
-// };
-#endif
-
 void my_process_midi4Bass(uint8_t channel, keyrecord_t *record,
                           uint8_t *chord_status, uint8_t chord, uint16_t root_note, bool is_single_bass) {
     uint8_t velocity = midi_config.velocity;

+ 125 - 0
keyboards/giabalanai/keyboard.json

@@ -17,6 +17,131 @@
             "multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"x": 120, "y": 0, "flags": 4},
+            {"x": 128, "y": 0, "flags": 4},
+            {"x": 136, "y": 0, "flags": 4},
+            {"x": 144, "y": 0, "flags": 4},
+            {"x": 152, "y": 0, "flags": 4},
+            {"x": 160, "y": 0, "flags": 4},
+            {"x": 168, "y": 0, "flags": 4},
+            {"x": 176, "y": 0, "flags": 4},
+            {"x": 184, "y": 0, "flags": 4},
+            {"x": 192, "y": 0, "flags": 4},
+            {"x": 200, "y": 0, "flags": 4},
+            {"x": 208, "y": 0, "flags": 4},
+            {"matrix": [9, 1], "x": 224, "y": 32, "flags": 4},
+            {"x": 212, "y": 16, "flags": 4},
+            {"x": 204, "y": 16, "flags": 4},
+            {"x": 196, "y": 16, "flags": 4},
+            {"x": 188, "y": 16, "flags": 4},
+            {"x": 180, "y": 16, "flags": 4},
+            {"x": 172, "y": 16, "flags": 4},
+            {"x": 164, "y": 16, "flags": 4},
+            {"x": 156, "y": 16, "flags": 4},
+            {"x": 148, "y": 16, "flags": 4},
+            {"x": 140, "y": 16, "flags": 4},
+            {"x": 132, "y": 16, "flags": 4},
+            {"x": 124, "y": 16, "flags": 4},
+            {"matrix": [8, 0], "x": 116, "y": 16, "flags": 4},
+            {"matrix": [6, 0], "x": 120, "y": 32, "flags": 4},
+            {"matrix": [6, 1], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [6, 2], "x": 136, "y": 32, "flags": 4},
+            {"matrix": [6, 3], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [6, 4], "x": 152, "y": 32, "flags": 4},
+            {"matrix": [6, 5], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [6, 6], "x": 168, "y": 32, "flags": 4},
+            {"matrix": [9, 6], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [9, 5], "x": 184, "y": 32, "flags": 4},
+            {"matrix": [9, 4], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [9, 3], "x": 200, "y": 32, "flags": 4},
+            {"matrix": [9, 2], "x": 208, "y": 32, "flags": 4},
+            {"matrix": [10, 1], "x": 212, "y": 48, "flags": 4},
+            {"matrix": [10, 2], "x": 204, "y": 48, "flags": 4},
+            {"matrix": [10, 3], "x": 196, "y": 48, "flags": 4},
+            {"matrix": [10, 4], "x": 188, "y": 48, "flags": 4},
+            {"matrix": [10, 5], "x": 180, "y": 48, "flags": 4},
+            {"matrix": [10, 6], "x": 172, "y": 48, "flags": 4},
+            {"matrix": [7, 6], "x": 164, "y": 48, "flags": 4},
+            {"matrix": [7, 5], "x": 156, "y": 48, "flags": 4},
+            {"matrix": [7, 4], "x": 148, "y": 48, "flags": 4},
+            {"matrix": [7, 3], "x": 140, "y": 48, "flags": 4},
+            {"matrix": [7, 2], "x": 132, "y": 48, "flags": 4},
+            {"matrix": [7, 1], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [7, 0], "x": 116, "y": 48, "flags": 4},
+            {"matrix": [8, 1], "x": 120, "y": 64, "flags": 4},
+            {"matrix": [8, 2], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [8, 3], "x": 136, "y": 64, "flags": 4},
+            {"matrix": [8, 4], "x": 144, "y": 64, "flags": 4},
+            {"matrix": [8, 5], "x": 152, "y": 64, "flags": 4},
+            {"matrix": [8, 6], "x": 160, "y": 64, "flags": 4},
+            {"matrix": [11, 6], "x": 168, "y": 64, "flags": 4},
+            {"matrix": [11, 5], "x": 176, "y": 64, "flags": 4},
+            {"matrix": [11, 4], "x": 184, "y": 64, "flags": 4},
+            {"matrix": [11, 3], "x": 192, "y": 64, "flags": 4},
+            {"matrix": [11, 2], "x": 200, "y": 64, "flags": 4},
+            {"matrix": [11, 1], "x": 208, "y": 64, "flags": 4},
+            {"matrix": [0, 5], "x": 88, "y": 0, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [2, 5], "x": 72, "y": 0, "flags": 4},
+            {"matrix": [3, 5], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [4, 5], "x": 56, "y": 0, "flags": 4},
+            {"matrix": [5, 5], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [5, 0], "x": 40, "y": 0, "flags": 4},
+            {"matrix": [4, 0], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [3, 0], "x": 24, "y": 0, "flags": 4},
+            {"matrix": [2, 0], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 8, "y": 0, "flags": 4},
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 4, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 12, "y": 16, "flags": 4},
+            {"matrix": [2, 1], "x": 20, "y": 16, "flags": 4},
+            {"matrix": [3, 1], "x": 28, "y": 16, "flags": 4},
+            {"matrix": [4, 1], "x": 36, "y": 16, "flags": 4},
+            {"matrix": [5, 1], "x": 44, "y": 16, "flags": 4},
+            {"matrix": [5, 6], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [4, 6], "x": 60, "y": 16, "flags": 4},
+            {"matrix": [3, 6], "x": 68, "y": 16, "flags": 4},
+            {"matrix": [2, 6], "x": 76, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 84, "y": 16, "flags": 4},
+            {"matrix": [0, 6], "x": 92, "y": 16, "flags": 4},
+            {"matrix": [0, 7], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [1, 7], "x": 88, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [3, 7], "x": 72, "y": 32, "flags": 4},
+            {"matrix": [4, 7], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [5, 7], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [5, 2], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [4, 2], "x": 40, "y": 32, "flags": 4},
+            {"matrix": [3, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 24, "y": 32, "flags": 4},
+            {"matrix": [1, 2], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [0, 2], "x": 8, "y": 32, "flags": 4},
+            {"matrix": [0, 3], "x": 12, "y": 48, "flags": 4},
+            {"matrix": [1, 3], "x": 20, "y": 48, "flags": 4},
+            {"matrix": [2, 3], "x": 28, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 36, "y": 48, "flags": 4},
+            {"matrix": [4, 3], "x": 44, "y": 48, "flags": 4},
+            {"matrix": [5, 3], "x": 52, "y": 48, "flags": 4},
+            {"matrix": [5, 8], "x": 60, "y": 48, "flags": 4},
+            {"matrix": [4, 8], "x": 68, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 76, "y": 48, "flags": 4},
+            {"matrix": [2, 8], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [1, 8], "x": 92, "y": 48, "flags": 4},
+            {"matrix": [0, 8], "x": 100, "y": 48, "flags": 4},
+            {"matrix": [0, 9], "x": 104, "y": 64, "flags": 4},
+            {"matrix": [1, 9], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [2, 9], "x": 88, "y": 64, "flags": 4},
+            {"matrix": [3, 9], "x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 72, "y": 64, "flags": 4},
+            {"matrix": [5, 9], "x": 64, "y": 64, "flags": 4},
+            {"matrix": [5, 4], "x": 56, "y": 64, "flags": 4},
+            {"matrix": [4, 4], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [3, 4], "x": 40, "y": 64, "flags": 4},
+            {"matrix": [2, 4], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [1, 4], "x": 24, "y": 64, "flags": 4},
+            {"matrix": [0, 4], "x": 16, "y": 64, "flags": 4}
+        ],
         "max_brightness": 50
     },
     "rgblight": {

+ 0 - 98
keyboards/gizmo_engineering/gk6/gk6.c

@@ -82,102 +82,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {1, C9_15, C8_15, C6_14},  //61 led59
     {1, C9_16, C7_15, C6_15},  //62 led60
 };
-
-led_config_t g_led_config = { {
-    // Key Matrix to LED Index
-//   1, 6,  10, 15, 20, 26,     31,     37,  42, 47, 52,  56
-    {0, 5,  10, 15, 20, 26,     31,     37,  43, 48, 53,  58},
-//   2, 7,  11, 16, 21, 27,     32,     37b, 43, 48, 52b,  57
-    {1, 6,  11, 16, 21, 27,     32,     38,  44, 49, 54,  59},
-//   3, 7b, 12, 17, 22, 28,     33,     38,  44, 49, 53,  58
-    {2, 7,  12, 17, 22, 28,     33,     39,  45, 50, 55,  60},
-//   4, 8,  13, 18, 23, 29,     34,     39,  45, 50, 54,  59
-    {3, 8,  13, 18, 23, 29,     34,     40,  46, 51, 56,  61},
-//   5, 9,  14, 19, 25, NO_LED, NO_LED, 41,  46, 51, 55,  60
-    {4, 9,  14, 19, 25, NO_LED, NO_LED, 42,  47, 52, 57,  62},
-}, {
-    // LED Index to Physical Position
-    {0, 0}, // 0
-    {0, 16}, // 1
-    {0, 32}, // 2
-    {0, 48}, // 3
-    {0, 64}, // 4
-
-    {21, 0}, // 5
-    {21, 16}, // 6
-    {21, 32}, // 7
-    {21, 48}, // 8
-    {21, 64}, // 9
-
-    {41, 0}, // 10
-    {41, 16}, // 11
-    {41, 32}, // 12
-    {41, 48}, // 13
-    {41, 64}, // 14
-
-    {61, 0}, // 15
-    {61, 16}, // 16
-    {61, 32}, // 17
-    {61, 48}, // 18
-    {61, 64}, // 19
-
-    {82, 0}, // 20
-    {82, 16}, // 21
-    {82, 32}, // 22
-    {82, 48}, // 23
-    {82, 64}, // 24
-    {92, 64}, // 25
-
-    {102, 0}, // 26
-    {102, 16}, // 27
-    {102, 32}, // 28
-    {102, 48}, // 29
-    {102, 64}, // 30
-
-    {122, 0}, // 31
-    {122, 16}, // 32
-    {122, 32}, // 33
-    {122, 48}, // 34
-    {122, 64}, // 35
-    {112, 64}, // 36
-
-    {142, 0}, // 37
-    {142, 16}, // 38
-    {142, 32}, // 39
-    {142, 48}, // 40
-    {142, 64}, // 41
-    {132, 64}, // 42
-
-    {163, 0}, // 43
-    {163, 16}, // 44
-    {163, 32}, // 45
-    {163, 48}, // 46
-    {163, 64}, // 47
-
-    {183, 0}, // 48
-    {183, 16}, // 49
-    {183, 32}, // 50
-    {183, 48}, // 51
-    {183, 64}, // 52
-
-    {203, 0}, // 53
-    {203, 16}, // 54
-    {203, 32}, // 55
-    {203, 48}, // 56
-    {203, 64}, // 57
-
-    {224, 0}, // 58
-    {224, 16}, // 59
-    {224, 32}, // 60
-    {224, 48}, // 61
-    {224, 64}, // 62
-}, {
-    // LED Index to Flag
-    0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-    0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-    0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-    0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-    0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-    0x04, 0x04, 0x04
-} };
 #endif

+ 65 - 0
keyboards/gizmo_engineering/gk6/keyboard.json

@@ -24,6 +24,71 @@
             "solid_reactive_multicross": true
         },
         "driver": "is31fl3731",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4},
+            {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
+            {"matrix": [2, 1], "x": 21, "y": 32, "flags": 4},
+            {"matrix": [3, 1], "x": 21, "y": 48, "flags": 4},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
+            {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4},
+            {"matrix": [1, 2], "x": 41, "y": 16, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [3, 2], "x": 41, "y": 48, "flags": 4},
+            {"matrix": [4, 2], "x": 41, "y": 64, "flags": 4},
+            {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
+            {"matrix": [1, 3], "x": 61, "y": 16, "flags": 4},
+            {"matrix": [2, 3], "x": 61, "y": 32, "flags": 4},
+            {"matrix": [3, 3], "x": 61, "y": 48, "flags": 4},
+            {"matrix": [4, 3], "x": 61, "y": 64, "flags": 4},
+            {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4},
+            {"matrix": [1, 4], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [2, 4], "x": 82, "y": 32, "flags": 4},
+            {"matrix": [3, 4], "x": 82, "y": 48, "flags": 4},
+            {"x": 82, "y": 64, "flags": 4},
+            {"matrix": [4, 4], "x": 92, "y": 64, "flags": 4},
+            {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4},
+            {"matrix": [1, 5], "x": 102, "y": 16, "flags": 4},
+            {"matrix": [2, 5], "x": 102, "y": 32, "flags": 4},
+            {"matrix": [3, 5], "x": 102, "y": 48, "flags": 4},
+            {"x": 102, "y": 64, "flags": 4},
+            {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 122, "y": 16, "flags": 4},
+            {"matrix": [2, 6], "x": 122, "y": 32, "flags": 4},
+            {"matrix": [3, 6], "x": 122, "y": 48, "flags": 4},
+            {"x": 122, "y": 64, "flags": 4},
+            {"x": 112, "y": 64, "flags": 4},
+            {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4},
+            {"matrix": [1, 7], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [2, 7], "x": 142, "y": 32, "flags": 4},
+            {"matrix": [3, 7], "x": 142, "y": 48, "flags": 4},
+            {"x": 142, "y": 64, "flags": 4},
+            {"matrix": [4, 7], "x": 132, "y": 64, "flags": 4},
+            {"matrix": [0, 8], "x": 163, "y": 0, "flags": 4},
+            {"matrix": [1, 8], "x": 163, "y": 16, "flags": 4},
+            {"matrix": [2, 8], "x": 163, "y": 32, "flags": 4},
+            {"matrix": [3, 8], "x": 163, "y": 48, "flags": 4},
+            {"matrix": [4, 8], "x": 163, "y": 64, "flags": 4},
+            {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
+            {"matrix": [1, 9], "x": 183, "y": 16, "flags": 4},
+            {"matrix": [2, 9], "x": 183, "y": 32, "flags": 4},
+            {"matrix": [3, 9], "x": 183, "y": 48, "flags": 4},
+            {"matrix": [4, 9], "x": 183, "y": 64, "flags": 4},
+            {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4},
+            {"matrix": [1, 10], "x": 203, "y": 16, "flags": 4},
+            {"matrix": [2, 10], "x": 203, "y": 32, "flags": 4},
+            {"matrix": [3, 10], "x": 203, "y": 48, "flags": 4},
+            {"matrix": [4, 10], "x": 203, "y": 64, "flags": 4},
+            {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 11], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [2, 11], "x": 224, "y": 32, "flags": 4},
+            {"matrix": [3, 11], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [4, 11], "x": 224, "y": 64, "flags": 4}
+        ],
         "react_on_keyup": true,
         "sleep": true
     },

+ 0 - 115
keyboards/gmmk/gmmk2/p65/ansi/ansi.c

@@ -118,119 +118,4 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {1, SW9_CS16,  SW9_CS17,  SW9_CS18 },  //  87 LED 19
     {1, SW10_CS16, SW10_CS17, SW10_CS18}   //  88 LED 20
 };
-
-#define __ NO_LED
-
-led_config_t g_led_config = {{
-    { 44, 57, __, 64, __, 66, 58, 55},
-    { 16, 15, 31,  0, 45, 59, __,  1},
-    { 17, 30, 32, 60, 46, 14, 29,  2},
-    { 18, 61, 33, 63, 47, 56, 62,  3},
-    { 19, 20, 34, 35, 48, 49,  5,  4},
-    { 22, 21, 37, 36, 51, 50,  6,  7},
-    { 23, 27, 38, __, 52, 43, 12,  8},
-    { 24, 13, 39, 65, 53, __, 28,  9},
-    { 25, 26, 40, 41, 42, 54, 11, 10}
-}, {
-    {14,  0 }, //  0  Esc
-    {28,  0 }, //  1  1
-    {42,  0 }, //  2  2
-    {56,  0 }, //  3  3
-    {70,  0 }, //  4  4
-    {84,  0 }, //  5  5
-    {98,  0 }, //  6  6
-    {112, 0 }, //  7  7
-    {126, 0 }, //  8  8
-    {140, 0 }, //  9  9
-    {154, 0 }, //  10 0
-    {168, 0 }, //  11 -
-    {182, 0 }, //  12 =
-    {196, 0 }, //  13 Backspace
-    {210, 0 }, //  14 Del
-
-    {14,  16}, //  15 Tab
-    {28,  16}, //  16 Q
-    {42,  16}, //  17 W
-    {56,  16}, //  18 E
-    {70,  16}, //  19 R
-    {84,  16}, //  20 T
-    {98,  16}, //  21 Y
-    {112, 16}, //  22 U
-    {126, 16}, //  23 I
-    {140, 16}, //  24 O
-    {154, 16}, //  25 P
-    {168, 16}, //  26 [
-    {182, 16}, //  27 ]
-    {196, 16}, //  28 \|
-    {210, 16}, //  29 PgUp
-
-    {14,  32}, //  30 Caps Lock
-    {28,  32}, //  31 A
-    {42,  32}, //  32 S
-    {56,  32}, //  33 D
-    {70,  32}, //  34 F
-    {84,  32}, //  35 G
-    {98,  32}, //  36 H
-    {112, 32}, //  37 J
-    {126, 32}, //  38 K
-    {140, 32}, //  39 L
-    {154, 32}, //  40 ;
-    {168, 32}, //  41 '
-    {196, 32}, //  42 Enter
-    {210, 32}, //  43 PgDn
-
-    {14,  48}, //  44 Shift_L
-    {42,  48}, //  45 Z
-    {56,  48}, //  46 X
-    {70,  48}, //  47 C
-    {84,  48}, //  48 V
-    {98,  48}, //  49 B
-    {112, 48}, //  50 N
-    {126, 48}, //  51 M
-    {140, 48}, //  52 ,
-    {154, 48}, //  53 .
-    {168, 48}, //  54 /
-    {182, 48}, //  55 Shift_R
-    {196, 48}, //  56 Up
-    {210, 48}, //  57 END
-
-    {14,  64}, //  58 Ctrl_L
-    {28,  64}, //  59 Win_L
-    {42,  64}, //  60 Alt_L
-    {84,  64}, //  61 Space
-    {126, 64}, //  62 Alt_R
-    {140, 64}, //  63 FN
-    {182, 64}, //  64 Left
-    {196, 64}, //  65 Down
-    {210, 64}, //  66 Right
-
-    {224, 0 }, //  69 LED 1
-    {224, 7 }, //  70 LED 2
-    {224, 14}, //  71 LED 3
-    {224, 21}, //  72 LED 4
-    {224, 28}, //  73 LED 5
-    {224, 35}, //  74 LED 6
-    {224, 42}, //  75 LED 7
-    {224, 49}, //  76 LED 8
-    {224, 56}, //  77 LED 9
-    {224, 64}, //  78 LED 10
-    {0,   0 }, //  79 LED 11
-    {0,   7 }, //  80 LED 12
-    {0,   14}, //  81 LED 13
-    {0,   21}, //  82 LED 14
-    {0,   28}, //  83 LED 15
-    {0,   35}, //  84 LED 16
-    {0,   42}, //  85 LED 17
-    {0,   49}, //  86 LED 18
-    {0,   56}, //  87 LED 19
-    {0,   64}, //  88 LED 20
-}, {
-    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, 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, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-} };
 #endif

+ 91 - 0
keyboards/gmmk/gmmk2/p65/ansi/keyboard.json

@@ -28,6 +28,97 @@
     },
     "processor": "WB32F3G71",
     "bootloader": "wb32-dfu",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [1, 3], "x": 14, "y": 0, "flags": 4},
+            {"matrix": [1, 7], "x": 28, "y": 0, "flags": 4},
+            {"matrix": [2, 7], "x": 42, "y": 0, "flags": 4},
+            {"matrix": [3, 7], "x": 56, "y": 0, "flags": 4},
+            {"matrix": [4, 7], "x": 70, "y": 0, "flags": 4},
+            {"matrix": [4, 6], "x": 84, "y": 0, "flags": 4},
+            {"matrix": [5, 6], "x": 98, "y": 0, "flags": 4},
+            {"matrix": [5, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [6, 7], "x": 126, "y": 0, "flags": 4},
+            {"matrix": [7, 7], "x": 140, "y": 0, "flags": 4},
+            {"matrix": [8, 7], "x": 154, "y": 0, "flags": 4},
+            {"matrix": [8, 6], "x": 168, "y": 0, "flags": 4},
+            {"matrix": [6, 6], "x": 182, "y": 0, "flags": 4},
+            {"matrix": [7, 1], "x": 196, "y": 0, "flags": 4},
+            {"matrix": [2, 5], "x": 210, "y": 0, "flags": 4},
+            {"matrix": [1, 1], "x": 14, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 28, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 42, "y": 16, "flags": 4},
+            {"matrix": [3, 0], "x": 56, "y": 16, "flags": 4},
+            {"matrix": [4, 0], "x": 70, "y": 16, "flags": 4},
+            {"matrix": [4, 1], "x": 84, "y": 16, "flags": 4},
+            {"matrix": [5, 1], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [5, 0], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [6, 0], "x": 126, "y": 16, "flags": 4},
+            {"matrix": [7, 0], "x": 140, "y": 16, "flags": 4},
+            {"matrix": [8, 0], "x": 154, "y": 16, "flags": 4},
+            {"matrix": [8, 1], "x": 168, "y": 16, "flags": 4},
+            {"matrix": [6, 1], "x": 182, "y": 16, "flags": 4},
+            {"matrix": [7, 6], "x": 196, "y": 16, "flags": 4},
+            {"matrix": [2, 6], "x": 210, "y": 16, "flags": 4},
+            {"matrix": [2, 1], "x": 14, "y": 32, "flags": 4},
+            {"matrix": [1, 2], "x": 28, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 42, "y": 32, "flags": 4},
+            {"matrix": [3, 2], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [4, 2], "x": 70, "y": 32, "flags": 4},
+            {"matrix": [4, 3], "x": 84, "y": 32, "flags": 4},
+            {"matrix": [5, 3], "x": 98, "y": 32, "flags": 4},
+            {"matrix": [5, 2], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [6, 2], "x": 126, "y": 32, "flags": 4},
+            {"matrix": [7, 2], "x": 140, "y": 32, "flags": 4},
+            {"matrix": [8, 2], "x": 154, "y": 32, "flags": 4},
+            {"matrix": [8, 3], "x": 168, "y": 32, "flags": 4},
+            {"matrix": [8, 4], "x": 196, "y": 32, "flags": 4},
+            {"matrix": [6, 5], "x": 210, "y": 32, "flags": 4},
+            {"matrix": [0, 0], "x": 14, "y": 48, "flags": 4},
+            {"matrix": [1, 4], "x": 42, "y": 48, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 70, "y": 48, "flags": 4},
+            {"matrix": [4, 4], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [4, 5], "x": 98, "y": 48, "flags": 4},
+            {"matrix": [5, 5], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [5, 4], "x": 126, "y": 48, "flags": 4},
+            {"matrix": [6, 4], "x": 140, "y": 48, "flags": 4},
+            {"matrix": [7, 4], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [8, 5], "x": 168, "y": 48, "flags": 4},
+            {"matrix": [0, 7], "x": 182, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 196, "y": 48, "flags": 4},
+            {"matrix": [0, 1], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [0, 6], "x": 14, "y": 64, "flags": 4},
+            {"matrix": [1, 5], "x": 28, "y": 64, "flags": 4},
+            {"matrix": [2, 3], "x": 42, "y": 64, "flags": 4},
+            {"matrix": [3, 1], "x": 84, "y": 64, "flags": 4},
+            {"matrix": [3, 6], "x": 126, "y": 64, "flags": 4},
+            {"matrix": [3, 3], "x": 140, "y": 64, "flags": 4},
+            {"matrix": [0, 3], "x": 182, "y": 64, "flags": 4},
+            {"matrix": [7, 3], "x": 196, "y": 64, "flags": 4},
+            {"matrix": [0, 5], "x": 210, "y": 64, "flags": 4},
+            {"x": 224, "y": 0, "flags": 2},
+            {"x": 224, "y": 7, "flags": 2},
+            {"x": 224, "y": 14, "flags": 2},
+            {"x": 224, "y": 21, "flags": 2},
+            {"x": 224, "y": 28, "flags": 2},
+            {"x": 224, "y": 35, "flags": 2},
+            {"x": 224, "y": 42, "flags": 2},
+            {"x": 224, "y": 49, "flags": 2},
+            {"x": 224, "y": 56, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2},
+            {"x": 0, "y": 0, "flags": 2},
+            {"x": 0, "y": 7, "flags": 2},
+            {"x": 0, "y": 14, "flags": 2},
+            {"x": 0, "y": 21, "flags": 2},
+            {"x": 0, "y": 28, "flags": 2},
+            {"x": 0, "y": 35, "flags": 2},
+            {"x": 0, "y": 42, "flags": 2},
+            {"x": 0, "y": 49, "flags": 2},
+            {"x": 0, "y": 56, "flags": 2},
+            {"x": 0, "y": 64, "flags": 2}
+        ]
+    },
     "layout_aliases": {
         "LAYOUT": "LAYOUT_65_ansi_blocker"
     },

+ 0 - 116
keyboards/gmmk/gmmk2/p65/iso/iso.c

@@ -119,120 +119,4 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {1, SW9_CS16,  SW9_CS17,  SW9_CS18 },  //  86 LED 19
     {1, SW10_CS16, SW10_CS17, SW10_CS18}   //  87 LED 20
 };
-
-#define __ NO_LED
-
-led_config_t g_led_config = {{
-    { 44, 58, 45, 65, __, 67, 59, 56},
-    { 16, 15, 31,  0, 46, 60, __,  1},
-    { 17, 30, 32, 61, 47, 14, 29,  2},
-    { 18, 62, 33, 64, 48, 57, 63,  3},
-    { 19, 20, 34, 35, 49, 50,  5,  4},
-    { 22, 21, 37, 36, 52, 51,  6,  7},
-    { 23, 27, 38, __, 53, 43, 12,  8},
-    { 24, 13, 39, 66, 54, 42, __,  9},
-    { 25, 26, 40, 41, 28, 55, 11, 10}
-}, {
-    {14,  0 }, //  0  Esc
-    {28,  0 }, //  1  1
-    {42,  0 }, //  2  2
-    {56,  0 }, //  3  3
-    {70,  0 }, //  4  4
-    {84,  0 }, //  5  5
-    {98,  0 }, //  6  6
-    {112, 0 }, //  7  7
-    {126, 0 }, //  8  8
-    {140, 0 }, //  9  9
-    {154, 0 }, //  10 0
-    {168, 0 }, //  11 -
-    {182, 0 }, //  12 =
-    {196, 0 }, //  13 Backspace
-    {210, 0 }, //  14 HOME
-
-    {14,  16}, //  15 Tab
-    {28,  16}, //  16 Q
-    {42,  16}, //  17 W
-    {56,  16}, //  18 E
-    {70,  16}, //  19 R
-    {84,  16}, //  20 T
-    {98,  16}, //  21 Y
-    {112, 16}, //  22 U
-    {126, 16}, //  23 I
-    {140, 16}, //  24 O
-    {154, 16}, //  25 P
-    {168, 16}, //  26 [
-    {182, 16}, //  27 ]
-    {196, 16}, //  28 ENTER
-    {210, 16}, //  29 PgUp
-
-    {14,  32}, //  30 Caps Lock
-    {28,  32}, //  31 A
-    {42,  32}, //  32 S
-    {56,  32}, //  33 D
-    {70,  32}, //  34 F
-    {84,  32}, //  35 G
-    {98,  32}, //  36 H
-    {112, 32}, //  37 J
-    {126, 32}, //  38 K
-    {140, 32}, //  39 L
-    {154, 32}, //  40 ;
-    {168, 32}, //  41 '
-    {182, 32}, //  42 k42
-    {210, 32}, //  43 PgDn
-
-    {14,  48}, //  44 Shift_L
-    {28,  48}, //  45 k45
-    {42,  48}, //  46 Z
-    {56,  48}, //  47 X
-    {70,  48}, //  48 C
-    {84,  48}, //  49 V
-    {98,  48}, //  50 B
-    {112, 48}, //  51 N
-    {126, 48}, //  52 M
-    {140, 48}, //  53 ,
-    {154, 48}, //  54 .
-    {168, 48}, //  55 /
-    {182, 48}, //  56 Shift_R
-    {196, 48}, //  57 Up
-    {210, 48}, //  58 END
-
-    {14,  64}, //  59 Ctrl_L
-    {28,  64}, //  60 Win_L
-    {42,  64}, //  61 Alt_L
-    {84,  64}, //  62 Space
-    {126, 64}, //  63 Alt_R
-    {140, 64}, //  64 FN
-    {182, 64}, //  65 Left
-    {196, 64}, //  66 Down
-    {210, 64}, //  67 Right
-
-    {224, 0 }, //  68 LED 1
-    {224, 7 }, //  69 LED 2
-    {224, 14}, //  70 LED 3
-    {224, 21}, //  71 LED 4
-    {224, 28}, //  72 LED 5
-    {224, 35}, //  73 LED 6
-    {224, 42}, //  74 LED 7
-    {224, 49}, //  75 LED 8
-    {224, 56}, //  76 LED 9
-    {224, 64}, //  77 LED 10
-    {0,   0 }, //  78 LED 11
-    {0,   7 }, //  79 LED 12
-    {0,   14}, //  80 LED 13
-    {0,   21}, //  81 LED 14
-    {0,   28}, //  82 LED 15
-    {0,   35}, //  83 LED 16
-    {0,   42}, //  84 LED 17
-    {0,   49}, //  85 LED 18
-    {0,   56}, //  86 LED 19
-    {0,   64}, //  87 LED 20
-}, {
-    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, 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, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-} };
 #endif

+ 92 - 0
keyboards/gmmk/gmmk2/p65/iso/keyboard.json

@@ -28,6 +28,98 @@
     },
     "processor": "WB32F3G71",
     "bootloader": "wb32-dfu",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [1, 3], "x": 14, "y": 0, "flags": 4},
+            {"matrix": [1, 7], "x": 28, "y": 0, "flags": 4},
+            {"matrix": [2, 7], "x": 42, "y": 0, "flags": 4},
+            {"matrix": [3, 7], "x": 56, "y": 0, "flags": 4},
+            {"matrix": [4, 7], "x": 70, "y": 0, "flags": 4},
+            {"matrix": [4, 6], "x": 84, "y": 0, "flags": 4},
+            {"matrix": [5, 6], "x": 98, "y": 0, "flags": 4},
+            {"matrix": [5, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [6, 7], "x": 126, "y": 0, "flags": 4},
+            {"matrix": [7, 7], "x": 140, "y": 0, "flags": 4},
+            {"matrix": [8, 7], "x": 154, "y": 0, "flags": 4},
+            {"matrix": [8, 6], "x": 168, "y": 0, "flags": 4},
+            {"matrix": [6, 6], "x": 182, "y": 0, "flags": 4},
+            {"matrix": [7, 1], "x": 196, "y": 0, "flags": 4},
+            {"matrix": [2, 5], "x": 210, "y": 0, "flags": 4},
+            {"matrix": [1, 1], "x": 14, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 28, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 42, "y": 16, "flags": 4},
+            {"matrix": [3, 0], "x": 56, "y": 16, "flags": 4},
+            {"matrix": [4, 0], "x": 70, "y": 16, "flags": 4},
+            {"matrix": [4, 1], "x": 84, "y": 16, "flags": 4},
+            {"matrix": [5, 1], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [5, 0], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [6, 0], "x": 126, "y": 16, "flags": 4},
+            {"matrix": [7, 0], "x": 140, "y": 16, "flags": 4},
+            {"matrix": [8, 0], "x": 154, "y": 16, "flags": 4},
+            {"matrix": [8, 1], "x": 168, "y": 16, "flags": 4},
+            {"matrix": [6, 1], "x": 182, "y": 16, "flags": 4},
+            {"matrix": [8, 4], "x": 196, "y": 16, "flags": 4},
+            {"matrix": [2, 6], "x": 210, "y": 16, "flags": 4},
+            {"matrix": [2, 1], "x": 14, "y": 32, "flags": 4},
+            {"matrix": [1, 2], "x": 28, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 42, "y": 32, "flags": 4},
+            {"matrix": [3, 2], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [4, 2], "x": 70, "y": 32, "flags": 4},
+            {"matrix": [4, 3], "x": 84, "y": 32, "flags": 4},
+            {"matrix": [5, 3], "x": 98, "y": 32, "flags": 4},
+            {"matrix": [5, 2], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [6, 2], "x": 126, "y": 32, "flags": 4},
+            {"matrix": [7, 2], "x": 140, "y": 32, "flags": 4},
+            {"matrix": [8, 2], "x": 154, "y": 32, "flags": 4},
+            {"matrix": [8, 3], "x": 168, "y": 32, "flags": 4},
+            {"matrix": [7, 5], "x": 182, "y": 32, "flags": 4},
+            {"matrix": [6, 5], "x": 210, "y": 32, "flags": 4},
+            {"matrix": [0, 0], "x": 14, "y": 48, "flags": 4},
+            {"matrix": [0, 2], "x": 28, "y": 48, "flags": 4},
+            {"matrix": [1, 4], "x": 42, "y": 48, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 70, "y": 48, "flags": 4},
+            {"matrix": [4, 4], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [4, 5], "x": 98, "y": 48, "flags": 4},
+            {"matrix": [5, 5], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [5, 4], "x": 126, "y": 48, "flags": 4},
+            {"matrix": [6, 4], "x": 140, "y": 48, "flags": 4},
+            {"matrix": [7, 4], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [8, 5], "x": 168, "y": 48, "flags": 4},
+            {"matrix": [0, 7], "x": 182, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 196, "y": 48, "flags": 4},
+            {"matrix": [0, 1], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [0, 6], "x": 14, "y": 64, "flags": 4},
+            {"matrix": [1, 5], "x": 28, "y": 64, "flags": 4},
+            {"matrix": [2, 3], "x": 42, "y": 64, "flags": 4},
+            {"matrix": [3, 1], "x": 84, "y": 64, "flags": 4},
+            {"matrix": [3, 6], "x": 126, "y": 64, "flags": 4},
+            {"matrix": [3, 3], "x": 140, "y": 64, "flags": 4},
+            {"matrix": [0, 3], "x": 182, "y": 64, "flags": 4},
+            {"matrix": [7, 3], "x": 196, "y": 64, "flags": 4},
+            {"matrix": [0, 5], "x": 210, "y": 64, "flags": 4},
+            {"x": 224, "y": 0, "flags": 2},
+            {"x": 224, "y": 7, "flags": 2},
+            {"x": 224, "y": 14, "flags": 2},
+            {"x": 224, "y": 21, "flags": 2},
+            {"x": 224, "y": 28, "flags": 2},
+            {"x": 224, "y": 35, "flags": 2},
+            {"x": 224, "y": 42, "flags": 2},
+            {"x": 224, "y": 49, "flags": 2},
+            {"x": 224, "y": 56, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2},
+            {"x": 0, "y": 0, "flags": 2},
+            {"x": 0, "y": 7, "flags": 2},
+            {"x": 0, "y": 14, "flags": 2},
+            {"x": 0, "y": 21, "flags": 2},
+            {"x": 0, "y": 28, "flags": 2},
+            {"x": 0, "y": 35, "flags": 2},
+            {"x": 0, "y": 42, "flags": 2},
+            {"x": 0, "y": 49, "flags": 2},
+            {"x": 0, "y": 56, "flags": 2},
+            {"x": 0, "y": 64, "flags": 2}
+        ]
+    },
     "community_layouts": ["65_iso_blocker"],
     "layouts": {
         "LAYOUT_65_iso_blocker": {

+ 0 - 154
keyboards/gmmk/gmmk2/p96/ansi/ansi.c

@@ -151,160 +151,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {1, SW9_CS16,  SW9_CS17,  SW9_CS18},  //  119, LED 19
     {1, SW10_CS16, SW10_CS17, SW10_CS18}  //  120, LED 20
 };
-
-#define __ NO_LED
-
-led_config_t g_led_config = {{
-    { 0, 18, 36, 54, 70, 87, 14, 94},
-    { 1, 19, 37, 55, __, 88, 15, 82},
-    { 2, 20, 38, 56, 71, 89, 16, 95},
-    { 3, 21, 39, 57, 72, __, 17, 96},
-    { 4, 22, 40, 58, 73, __, 32, 97},
-    { 5, 23, 41, 59, 74, __, 33, 98},
-    { 6, 24, 42, 60, 75, 90, 34, 83},
-    { 7, 25, 43, 61, 76, __, 35, 84},
-    { 8, 26, 44, 62, 77, __, 50, 85},
-    { 9, 27, 45, 63, 78, 91, 51, 86},
-    {10, 28, 46, 64, 79, 92, 52, 67},
-    {11, 29, 47, 65, 80, __, 53, 68},
-    {12, 30, 48, __, __, 93, __, 69},
-    {13, 31, 49, 66, 81, __, __, __}
-}, {
-    { 11,    0}, //   0, k00, Esc
-    { 22,    0}, //   1, k10, F1
-    { 33,    0}, //   2, k20, F2
-    { 44,    0}, //   3, k30, F3
-    { 55,    0}, //   4, k40, F4
-    { 66,    0}, //   5, k50, F5
-    { 77,    0}, //   6, k60, F6
-    { 88,    0}, //   7, k70, F7
-    { 99,    0}, //   8, k80, F8
-    { 110,   0}, //   9, k90, F9
-    { 121,   0}, //  10, ka0, F10
-    { 132,   0}, //  11, kb0, F11
-    { 143,   0}, //  12, kc0, F12
-    { 154,   0}, //  13, kd0, Printscreen
-    { 165,   0}, //  14, k06, Delete
-    { 176,   0}, //  15, k16, Insert
-    { 187,   0}, //  16, k26, Page Up
-    { 198,   0}, //  17, k36, Page Down
-
-    {  11,  11}, //  18, k01, `
-    {  22,  11}, //  19, k11, 1
-    {  33,  11}, //  20, k21, 2
-    {  44,  11}, //  21, k31, 3
-    {  55,  11}, //  22, k41, 4
-    {  66,  11}, //  23, k51, 5
-    {  77,  11}, //  24, k61, 6
-    {  88,  11}, //  25, k71, 7
-    {  99,  11}, //  26, k81, 8
-    { 110,  11}, //  27, k91, 9
-    { 121,  11}, //  28, ka1, 0
-    { 132,  11}, //  29, kb1, -
-    { 143,  11}, //  30, kc1, =
-    { 154,  11}, //  31, kd1, Backspace
-    { 165,  11}, //  32, k46, Num Lock
-    { 176,  11}, //  33, k56, Num /
-    { 187,  11}, //  34, k66, Num *
-    { 198,  11}, //  35, k76, Num -
-
-    {  11,  22}, //  36, k02, Tab
-    {  22,  22}, //  37, k12, Q
-    {  33,  22}, //  38, k22, W
-    {  44,  22}, //  39, k32, E
-    {  55,  22}, //  40, k42, R
-    {  66,  22}, //  41, k52, T
-    {  77,  22}, //  42, k62, Y
-    {  88,  22}, //  43, k72, U
-    {  99,  22}, //  44, k82, I
-    { 110,  22}, //  45, k92, O
-    { 121,  22}, //  46, ka2, P
-    { 132,  22}, //  47, kb2, [
-    { 143,  22}, //  48, kc2, ]
-    { 154,  22}, //  49, kd3, "\\"
-    { 165,  22}, //  50, k86, Num 7
-    { 176,  22}, //  51, k96, Num 8
-    { 187,  22}, //  52, ka6, Num 9
-    { 198,  22}, //  53, kb6, Num +
-
-    {  11,  33}, //  54, k03, Caps Lock
-    {  22,  33}, //  55, k13, A
-    {  33,  33}, //  56, k23, S
-    {  44,  33}, //  57, k33, D
-    {  55,  33}, //  58, k43, F
-    {  66,  33}, //  59, k53, G
-    {  77,  33}, //  60, k63, H
-    {  88,  33}, //  61, k73, J
-    {  99,  33}, //  62, k83, K
-    { 110,  33}, //  63, k93, L
-    { 121,  33}, //  64, ka3, ;
-    { 132,  33}, //  65, kb3, '
-    { 154,  33}, //  66, kc3, Enter
-    { 165,  33}, //  67, ka7, Num 4
-    { 176,  33}, //  68, kb7, Num 5
-    { 187,  33}, //  69, kc7, Num 6
-
-    {  11,  44}, //  70, k04, Shift_L
-    {  33,  44}, //  71, k24, Z
-    {  44,  44}, //  72, k34, X
-    {  55,  44}, //  73, k44, C
-    {  66,  44}, //  74, k54, V
-    {  77,  44}, //  75, k64, B
-    {  88,  44}, //  76, k74, N
-    {  99,  44}, //  77, k84, M
-    { 110,  44}, //  78, k94, ,
-    { 121,  44}, //  79, ka4, .
-    { 132,  44}, //  80, kb4, /
-    { 143,  44}, //  81, kd4, Shift_R
-    { 154,  44}, //  82, k17, Up
-    { 165,  44}, //  83, k67, Num 1
-    { 176,  44}, //  84, k77, Num 2
-    { 187,  44}, //  85, k87, Num 3
-    { 198,  44}, //  86, k97, Enter_R
-
-    {  11,  55}, //  87, k05, Ctrl_L
-    {  22,  55}, //  88, k15, Win_L
-    {  33,  55}, //  89, k25, Alt_L
-    {  77,  55}, //  90, k65, Space
-    { 110,  55}, //  91, k95, Alt_R
-    { 121,  55}, //  92, ka5, FN
-    { 132,  55}, //  93, kc5, Ctrl_R
-    { 143,  55}, //  94, k07, Left
-    { 154,  55}, //  95, k27, Down
-    { 165,  55}, //  96, k37, Right
-    { 176,  55}, //  97, k47, Num 0
-    { 187,  55}, //  98, k57, Num .
-
-    {   0,   0}, // 101, LED 1
-    {   0,   6}, // 102, LED 2
-    {   0,  12}, // 103, LED 3
-    {   0,  18}, // 104, LED 4
-    {   0,  24}, // 105, LED 5
-    {   0,  30}, // 106, LED 6
-    {   0,  36}, // 107, LED 7
-    {   0,  42}, // 108, LED 8
-    {   0,  48}, // 109, LED 9
-    {   0,  54}, // 110, LED 10
-    { 209,   0}, // 111, LED 11
-    { 209,   6}, // 112, LED 12
-    { 209,  12}, // 113, LED 13
-    { 209,  18}, // 114, LED 14
-    { 209,  24}, // 115, LED 15
-    { 209,  30}, // 116, LED 16
-    { 209,  36}, // 117, LED 17
-    { 209,  42}, // 118, LED 18
-    { 209,  48}, // 119, LED 19
-    { 209,  54}  // 120, LED 20
-}, {
-    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, 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,
-    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, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-} };
 #endif
 
 #ifdef EEPROM_ENABLE

+ 123 - 0
keyboards/gmmk/gmmk2/p96/ansi/keyboard.json

@@ -32,6 +32,129 @@
     },
     "processor": "WB32F3G71",
     "bootloader": "wb32-dfu",
+    "rgb_matrix": {
+       "layout": [
+            {"matrix": [0, 0], "x": 11, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 22, "y": 0, "flags": 4},
+            {"matrix": [2, 0], "x": 33, "y": 0, "flags": 4},
+            {"matrix": [3, 0], "x": 44, "y": 0, "flags": 4},
+            {"matrix": [4, 0], "x": 55, "y": 0, "flags": 4},
+            {"matrix": [5, 0], "x": 66, "y": 0, "flags": 4},
+            {"matrix": [6, 0], "x": 77, "y": 0, "flags": 4},
+            {"matrix": [7, 0], "x": 88, "y": 0, "flags": 4},
+            {"matrix": [8, 0], "x": 99, "y": 0, "flags": 4},
+            {"matrix": [9, 0], "x": 110, "y": 0, "flags": 4},
+            {"matrix": [10, 0], "x": 121, "y": 0, "flags": 4},
+            {"matrix": [11, 0], "x": 132, "y": 0, "flags": 4},
+            {"matrix": [12, 0], "x": 143, "y": 0, "flags": 4},
+            {"matrix": [13, 0], "x": 154, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [2, 6], "x": 187, "y": 0, "flags": 4},
+            {"matrix": [3, 6], "x": 198, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 11, "y": 11, "flags": 4},
+            {"matrix": [1, 1], "x": 22, "y": 11, "flags": 4},
+            {"matrix": [2, 1], "x": 33, "y": 11, "flags": 4},
+            {"matrix": [3, 1], "x": 44, "y": 11, "flags": 4},
+            {"matrix": [4, 1], "x": 55, "y": 11, "flags": 4},
+            {"matrix": [5, 1], "x": 66, "y": 11, "flags": 4},
+            {"matrix": [6, 1], "x": 77, "y": 11, "flags": 4},
+            {"matrix": [7, 1], "x": 88, "y": 11, "flags": 4},
+            {"matrix": [8, 1], "x": 99, "y": 11, "flags": 4},
+            {"matrix": [9, 1], "x": 110, "y": 11, "flags": 4},
+            {"matrix": [10, 1], "x": 121, "y": 11, "flags": 4},
+            {"matrix": [11, 1], "x": 132, "y": 11, "flags": 4},
+            {"matrix": [12, 1], "x": 143, "y": 11, "flags": 4},
+            {"matrix": [13, 1], "x": 154, "y": 11, "flags": 4},
+            {"matrix": [4, 6], "x": 165, "y": 11, "flags": 1},
+            {"matrix": [5, 6], "x": 176, "y": 11, "flags": 4},
+            {"matrix": [6, 6], "x": 187, "y": 11, "flags": 4},
+            {"matrix": [7, 6], "x": 198, "y": 11, "flags": 4},
+            {"matrix": [0, 2], "x": 11, "y": 22, "flags": 4},
+            {"matrix": [1, 2], "x": 22, "y": 22, "flags": 4},
+            {"matrix": [2, 2], "x": 33, "y": 22, "flags": 4},
+            {"matrix": [3, 2], "x": 44, "y": 22, "flags": 4},
+            {"matrix": [4, 2], "x": 55, "y": 22, "flags": 4},
+            {"matrix": [5, 2], "x": 66, "y": 22, "flags": 4},
+            {"matrix": [6, 2], "x": 77, "y": 22, "flags": 4},
+            {"matrix": [7, 2], "x": 88, "y": 22, "flags": 4},
+            {"matrix": [8, 2], "x": 99, "y": 22, "flags": 4},
+            {"matrix": [9, 2], "x": 110, "y": 22, "flags": 4},
+            {"matrix": [10, 2], "x": 121, "y": 22, "flags": 4},
+            {"matrix": [11, 2], "x": 132, "y": 22, "flags": 4},
+            {"matrix": [12, 2], "x": 143, "y": 22, "flags": 4},
+            {"matrix": [13, 2], "x": 154, "y": 22, "flags": 4},
+            {"matrix": [8, 6], "x": 165, "y": 22, "flags": 4},
+            {"matrix": [9, 6], "x": 176, "y": 22, "flags": 4},
+            {"matrix": [10, 6], "x": 187, "y": 22, "flags": 4},
+            {"matrix": [11, 6], "x": 198, "y": 22, "flags": 4},
+            {"matrix": [0, 3], "x": 11, "y": 33, "flags": 1},
+            {"matrix": [1, 3], "x": 22, "y": 33, "flags": 4},
+            {"matrix": [2, 3], "x": 33, "y": 33, "flags": 4},
+            {"matrix": [3, 3], "x": 44, "y": 33, "flags": 4},
+            {"matrix": [4, 3], "x": 55, "y": 33, "flags": 4},
+            {"matrix": [5, 3], "x": 66, "y": 33, "flags": 4},
+            {"matrix": [6, 3], "x": 77, "y": 33, "flags": 4},
+            {"matrix": [7, 3], "x": 88, "y": 33, "flags": 4},
+            {"matrix": [8, 3], "x": 99, "y": 33, "flags": 4},
+            {"matrix": [9, 3], "x": 110, "y": 33, "flags": 4},
+            {"matrix": [10, 3], "x": 121, "y": 33, "flags": 4},
+            {"matrix": [11, 3], "x": 132, "y": 33, "flags": 4},
+            {"matrix": [13, 3], "x": 154, "y": 33, "flags": 4},
+            {"matrix": [10, 7], "x": 165, "y": 33, "flags": 4},
+            {"matrix": [11, 7], "x": 176, "y": 33, "flags": 4},
+            {"matrix": [12, 7], "x": 187, "y": 33, "flags": 4},
+            {"matrix": [0, 4], "x": 11, "y": 44, "flags": 4},
+            {"matrix": [2, 4], "x": 33, "y": 44, "flags": 4},
+            {"matrix": [3, 4], "x": 44, "y": 44, "flags": 4},
+            {"matrix": [4, 4], "x": 55, "y": 44, "flags": 4},
+            {"matrix": [5, 4], "x": 66, "y": 44, "flags": 4},
+            {"matrix": [6, 4], "x": 77, "y": 44, "flags": 4},
+            {"matrix": [7, 4], "x": 88, "y": 44, "flags": 4},
+            {"matrix": [8, 4], "x": 99, "y": 44, "flags": 4},
+            {"matrix": [9, 4], "x": 110, "y": 44, "flags": 4},
+            {"matrix": [10, 4], "x": 121, "y": 44, "flags": 4},
+            {"matrix": [11, 4], "x": 132, "y": 44, "flags": 4},
+            {"matrix": [13, 4], "x": 143, "y": 44, "flags": 4},
+            {"matrix": [1, 7], "x": 154, "y": 44, "flags": 4},
+            {"matrix": [6, 7], "x": 165, "y": 44, "flags": 4},
+            {"matrix": [7, 7], "x": 176, "y": 44, "flags": 4},
+            {"matrix": [8, 7], "x": 187, "y": 44, "flags": 4},
+            {"matrix": [9, 7], "x": 198, "y": 44, "flags": 4},
+            {"matrix": [0, 5], "x": 11, "y": 55, "flags": 4},
+            {"matrix": [1, 5], "x": 22, "y": 55, "flags": 4},
+            {"matrix": [2, 5], "x": 33, "y": 55, "flags": 4},
+            {"matrix": [6, 5], "x": 77, "y": 55, "flags": 4},
+            {"matrix": [9, 5], "x": 110, "y": 55, "flags": 4},
+            {"matrix": [10, 5], "x": 121, "y": 55, "flags": 4},
+            {"matrix": [12, 5], "x": 132, "y": 55, "flags": 4},
+            {"matrix": [0, 7], "x": 143, "y": 55, "flags": 4},
+            {"matrix": [2, 7], "x": 154, "y": 55, "flags": 4},
+            {"matrix": [3, 7], "x": 165, "y": 55, "flags": 4},
+            {"matrix": [4, 7], "x": 176, "y": 55, "flags": 4},
+            {"matrix": [5, 7], "x": 187, "y": 55, "flags": 4},
+            {"x": 0, "y": 0, "flags": 2},
+            {"x": 0, "y": 6, "flags": 2},
+            {"x": 0, "y": 12, "flags": 2},
+            {"x": 0, "y": 18, "flags": 2},
+            {"x": 0, "y": 24, "flags": 2},
+            {"x": 0, "y": 30, "flags": 2},
+            {"x": 0, "y": 36, "flags": 2},
+            {"x": 0, "y": 42, "flags": 2},
+            {"x": 0, "y": 48, "flags": 2},
+            {"x": 0, "y": 54, "flags": 2},
+            {"x": 209, "y": 0, "flags": 2},
+            {"x": 209, "y": 6, "flags": 2},
+            {"x": 209, "y": 12, "flags": 2},
+            {"x": 209, "y": 18, "flags": 2},
+            {"x": 209, "y": 24, "flags": 2},
+            {"x": 209, "y": 30, "flags": 2},
+            {"x": 209, "y": 36, "flags": 2},
+            {"x": 209, "y": 42, "flags": 2},
+            {"x": 209, "y": 48, "flags": 2},
+            {"x": 209, "y": 54, "flags": 2}
+        ]
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [

+ 0 - 149
keyboards/gmmk/gmmk2/p96/iso/iso.c

@@ -152,155 +152,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {1, SW9_CS16,  SW9_CS17,  SW9_CS18},  // 119, LED 19
     {1, SW10_CS16, SW10_CS17, SW10_CS18}  // 120, LED 20
 };
-
-#define __ NO_LED
-
-led_config_t g_led_config = {{
-    { 0, 18, 36, 54, 70, 88, 14, 95},
-    { 1, 19, 37, 55, 71, 89, 15, 83},
-    { 2, 20, 38, 56, 72, 90, 16, 96},
-    { 3, 21, 39, 57, 73, __, 17, 97},
-    { 4, 22, 40, 58, 74, __, 32, 98},
-    { 5, 23, 41, 59, 75, __, 33, 99},
-    { 6, 24, 42, 60, 76, 91, 34, 84},
-    { 7, 25, 43, 61, 77, __, 35, 85},
-    { 8, 26, 44, 62, 78, __, 50, 86},
-    { 9, 27, 45, 63, 79, 92, 51, 87},
-    {10, 28, 46, 64, 80, 93, 52, 67},
-    {11, 29, 47, 65, 81, __, 53, 68},
-    {12, 30, 48, 66, __, 94, __, 69},
-    {13, 31, __, 49, 82, __, __, __}
-}, {
-    { 11,    0}, //   0, k00, Esc
-    { 22,    0}, //   1, k10, F1
-    { 33,    0}, //   2, k20, F2
-    { 44,    0}, //   3, k30, F3
-    { 55,    0}, //   4, k40, F4
-    { 66,    0}, //   5, k50, F5
-    { 77,    0}, //   6, k60, F6
-    { 88,    0}, //   7, k70, F7
-    { 99,    0}, //   8, k80, F8
-    { 110,   0}, //   9, k90, F9
-    { 121,   0}, //  10, ka0, F10
-    { 132,   0}, //  11, kb0, F11
-    { 143,   0}, //  12, kc0, F12
-    { 154,   0}, //  13, kd0, Printscreen
-    { 165,   0}, //  14, k06, Delete
-    { 176,   0}, //  15, k16, Insert
-    { 187,   0}, //  16, k26, Page Up
-    { 198,   0}, //  17, k36, Page Down
-    {  11,  11}, //  18, k01, `
-    {  22,  11}, //  19, k11, 1
-    {  33,  11}, //  20, k21, 2
-    {  44,  11}, //  21, k31, 3
-    {  55,  11}, //  22, k41, 4
-    {  66,  11}, //  23, k51, 5
-    {  77,  11}, //  24, k61, 6
-    {  88,  11}, //  25, k71, 7
-    {  99,  11}, //  26, k81, 8
-    { 110,  11}, //  27, k91, 9
-    { 121,  11}, //  28, ka1, 0
-    { 132,  11}, //  29, kb1, -
-    { 143,  11}, //  30, kc1, =
-    { 154,  11}, //  31, kd1, Backspace
-    { 165,  11}, //  32, k46, Num Lock
-    { 176,  11}, //  33, k56, Num /
-    { 187,  11}, //  34, k66, Num *
-    { 198,  11}, //  35, k76, Num -
-    {  11,  22}, //  36, k02, Tab
-    {  22,  22}, //  37, k12, Q
-    {  33,  22}, //  38, k22, W
-    {  44,  22}, //  39, k32, E
-    {  55,  22}, //  40, k42, R
-    {  66,  22}, //  41, k52, T
-    {  77,  22}, //  42, k62, Y
-    {  88,  22}, //  43, k72, U
-    {  99,  22}, //  44, k82, I
-    { 110,  22}, //  45, k92, O
-    { 121,  22}, //  46, ka2, P
-    { 132,  22}, //  47, kb2, [
-    { 143,  22}, //  48, kc2, ]
-    { 154,  22}, //  49, kd3, Enter
-    { 165,  22}, //  50, k86, Num 7
-    { 176,  22}, //  51, k96, Num 8
-    { 187,  22}, //  52, ka6, Num 9
-    { 198,  22}, //  53, kb6, Num +
-    {  11,  33}, //  54, k03, Caps Lock
-    {  22,  33}, //  55, k13, A
-    {  33,  33}, //  56, k23, S
-    {  44,  33}, //  57, k33, D
-    {  55,  33}, //  58, k43, F
-    {  66,  33}, //  59, k53, G
-    {  77,  33}, //  60, k63, H
-    {  88,  33}, //  61, k73, J
-    {  99,  33}, //  62, k83, K
-    { 110,  33}, //  63, k93, L
-    { 121,  33}, //  64, ka3, ;
-    { 132,  33}, //  65, kb3, '
-    { 143,  33}, //  66, kc3, #
-    { 165,  33}, //  67, ka7, Num 4
-    { 176,  33}, //  68, kb7, Num 5
-    { 187,  33}, //  69, kc7, Num 6
-    {  11,  44}, //  70, k04, Shift_L
-    {  22,  44}, //  71, k14, "\\"
-    {  33,  44}, //  72, k24, Z
-    {  44,  44}, //  73, k34, X
-    {  55,  44}, //  74, k44, C
-    {  66,  44}, //  75, k54, V
-    {  77,  44}, //  76, k64, B
-    {  88,  44}, //  77, k74, N
-    {  99,  44}, //  78, k84, M
-    { 110,  44}, //  79, k94, ,
-    { 121,  44}, //  80, ka4, .
-    { 132,  44}, //  81, kb4, /
-    { 143,  44}, //  82, kd4, Shift_R
-    { 154,  44}, //  83, k17, Up
-    { 165,  44}, //  84, k67, Num 1
-    { 176,  44}, //  85, k77, Num 2
-    { 187,  44}, //  86, k87, Num 3
-    { 198,  44}, //  87, k97, Enter_R
-    {  11,  55}, //  88, k05, Ctrl_L
-    {  22,  55}, //  89, k15, Win_L
-    {  33,  55}, //  90, k25, Alt_L
-    {  77,  55}, //  91, k65, Space
-    { 110,  55}, //  92, k95, Alt_R
-    { 121,  55}, //  93, ka5, FN
-    { 132,  55}, //  94, kc5, Ctrl_R
-    { 143,  55}, //  95, k07, Left
-    { 154,  55}, //  96, k27, Down
-    { 165,  55}, //  97, k37, Right
-    { 176,  55}, //  98, k47, Num 0
-    { 187,  55}, //  99, k57, Num .
-    {   0,   0}, // 101, LED 1
-    {   0,   6}, // 102, LED 2
-    {   0,  12}, // 103, LED 3
-    {   0,  18}, // 104, LED 4
-    {   0,  24}, // 105, LED 5
-    {   0,  30}, // 106, LED 6
-    {   0,  36}, // 107, LED 7
-    {   0,  42}, // 108, LED 8
-    {   0,  48}, // 109, LED 9
-    {   0,  54}, // 110, LED 10
-    { 209,   0}, // 111, LED 11
-    { 209,   6}, // 112, LED 12
-    { 209,  12}, // 113, LED 13
-    { 209,  18}, // 114, LED 14
-    { 209,  24}, // 115, LED 15
-    { 209,  30}, // 116, LED 16
-    { 209,  36}, // 117, LED 17
-    { 209,  42}, // 118, LED 18
-    { 209,  48}, // 119, LED 19
-    { 209,  54}  // 120, LED 20
-}, {
-    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, 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,
-    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, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-} };
 #endif
 
 #ifdef EEPROM_ENABLE

+ 124 - 0
keyboards/gmmk/gmmk2/p96/iso/keyboard.json

@@ -32,6 +32,130 @@
     },
     "processor": "WB32F3G71",
     "bootloader": "wb32-dfu",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 11, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 22, "y": 0, "flags": 4},
+            {"matrix": [2, 0], "x": 33, "y": 0, "flags": 4},
+            {"matrix": [3, 0], "x": 44, "y": 0, "flags": 4},
+            {"matrix": [4, 0], "x": 55, "y": 0, "flags": 4},
+            {"matrix": [5, 0], "x": 66, "y": 0, "flags": 4},
+            {"matrix": [6, 0], "x": 77, "y": 0, "flags": 4},
+            {"matrix": [7, 0], "x": 88, "y": 0, "flags": 4},
+            {"matrix": [8, 0], "x": 99, "y": 0, "flags": 4},
+            {"matrix": [9, 0], "x": 110, "y": 0, "flags": 4},
+            {"matrix": [10, 0], "x": 121, "y": 0, "flags": 4},
+            {"matrix": [11, 0], "x": 132, "y": 0, "flags": 4},
+            {"matrix": [12, 0], "x": 143, "y": 0, "flags": 4},
+            {"matrix": [13, 0], "x": 154, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [2, 6], "x": 187, "y": 0, "flags": 4},
+            {"matrix": [3, 6], "x": 198, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 11, "y": 11, "flags": 4},
+            {"matrix": [1, 1], "x": 22, "y": 11, "flags": 4},
+            {"matrix": [2, 1], "x": 33, "y": 11, "flags": 4},
+            {"matrix": [3, 1], "x": 44, "y": 11, "flags": 4},
+            {"matrix": [4, 1], "x": 55, "y": 11, "flags": 4},
+            {"matrix": [5, 1], "x": 66, "y": 11, "flags": 4},
+            {"matrix": [6, 1], "x": 77, "y": 11, "flags": 4},
+            {"matrix": [7, 1], "x": 88, "y": 11, "flags": 4},
+            {"matrix": [8, 1], "x": 99, "y": 11, "flags": 4},
+            {"matrix": [9, 1], "x": 110, "y": 11, "flags": 4},
+            {"matrix": [10, 1], "x": 121, "y": 11, "flags": 4},
+            {"matrix": [11, 1], "x": 132, "y": 11, "flags": 4},
+            {"matrix": [12, 1], "x": 143, "y": 11, "flags": 4},
+            {"matrix": [13, 1], "x": 154, "y": 11, "flags": 4},
+            {"matrix": [4, 6], "x": 165, "y": 11, "flags": 1},
+            {"matrix": [5, 6], "x": 176, "y": 11, "flags": 4},
+            {"matrix": [6, 6], "x": 187, "y": 11, "flags": 4},
+            {"matrix": [7, 6], "x": 198, "y": 11, "flags": 4},
+            {"matrix": [0, 2], "x": 11, "y": 22, "flags": 4},
+            {"matrix": [1, 2], "x": 22, "y": 22, "flags": 4},
+            {"matrix": [2, 2], "x": 33, "y": 22, "flags": 4},
+            {"matrix": [3, 2], "x": 44, "y": 22, "flags": 4},
+            {"matrix": [4, 2], "x": 55, "y": 22, "flags": 4},
+            {"matrix": [5, 2], "x": 66, "y": 22, "flags": 4},
+            {"matrix": [6, 2], "x": 77, "y": 22, "flags": 4},
+            {"matrix": [7, 2], "x": 88, "y": 22, "flags": 4},
+            {"matrix": [8, 2], "x": 99, "y": 22, "flags": 4},
+            {"matrix": [9, 2], "x": 110, "y": 22, "flags": 4},
+            {"matrix": [10, 2], "x": 121, "y": 22, "flags": 4},
+            {"matrix": [11, 2], "x": 132, "y": 22, "flags": 4},
+            {"matrix": [12, 2], "x": 143, "y": 22, "flags": 4},
+            {"matrix": [13, 3], "x": 154, "y": 22, "flags": 4},
+            {"matrix": [8, 6], "x": 165, "y": 22, "flags": 4},
+            {"matrix": [9, 6], "x": 176, "y": 22, "flags": 4},
+            {"matrix": [10, 6], "x": 187, "y": 22, "flags": 4},
+            {"matrix": [11, 6], "x": 198, "y": 22, "flags": 4},
+            {"matrix": [0, 3], "x": 11, "y": 33, "flags": 1},
+            {"matrix": [1, 3], "x": 22, "y": 33, "flags": 4},
+            {"matrix": [2, 3], "x": 33, "y": 33, "flags": 4},
+            {"matrix": [3, 3], "x": 44, "y": 33, "flags": 4},
+            {"matrix": [4, 3], "x": 55, "y": 33, "flags": 4},
+            {"matrix": [5, 3], "x": 66, "y": 33, "flags": 4},
+            {"matrix": [6, 3], "x": 77, "y": 33, "flags": 4},
+            {"matrix": [7, 3], "x": 88, "y": 33, "flags": 4},
+            {"matrix": [8, 3], "x": 99, "y": 33, "flags": 4},
+            {"matrix": [9, 3], "x": 110, "y": 33, "flags": 4},
+            {"matrix": [10, 3], "x": 121, "y": 33, "flags": 4},
+            {"matrix": [11, 3], "x": 132, "y": 33, "flags": 4},
+            {"matrix": [12, 3], "x": 143, "y": 33, "flags": 4},
+            {"matrix": [10, 7], "x": 165, "y": 33, "flags": 4},
+            {"matrix": [11, 7], "x": 176, "y": 33, "flags": 4},
+            {"matrix": [12, 7], "x": 187, "y": 33, "flags": 4},
+            {"matrix": [0, 4], "x": 11, "y": 44, "flags": 4},
+            {"matrix": [1, 4], "x": 22, "y": 44, "flags": 4},
+            {"matrix": [2, 4], "x": 33, "y": 44, "flags": 4},
+            {"matrix": [3, 4], "x": 44, "y": 44, "flags": 4},
+            {"matrix": [4, 4], "x": 55, "y": 44, "flags": 4},
+            {"matrix": [5, 4], "x": 66, "y": 44, "flags": 4},
+            {"matrix": [6, 4], "x": 77, "y": 44, "flags": 4},
+            {"matrix": [7, 4], "x": 88, "y": 44, "flags": 4},
+            {"matrix": [8, 4], "x": 99, "y": 44, "flags": 4},
+            {"matrix": [9, 4], "x": 110, "y": 44, "flags": 4},
+            {"matrix": [10, 4], "x": 121, "y": 44, "flags": 4},
+            {"matrix": [11, 4], "x": 132, "y": 44, "flags": 4},
+            {"matrix": [13, 4], "x": 143, "y": 44, "flags": 4},
+            {"matrix": [1, 7], "x": 154, "y": 44, "flags": 4},
+            {"matrix": [6, 7], "x": 165, "y": 44, "flags": 4},
+            {"matrix": [7, 7], "x": 176, "y": 44, "flags": 4},
+            {"matrix": [8, 7], "x": 187, "y": 44, "flags": 4},
+            {"matrix": [9, 7], "x": 198, "y": 44, "flags": 4},
+            {"matrix": [0, 5], "x": 11, "y": 55, "flags": 4},
+            {"matrix": [1, 5], "x": 22, "y": 55, "flags": 4},
+            {"matrix": [2, 5], "x": 33, "y": 55, "flags": 4},
+            {"matrix": [6, 5], "x": 77, "y": 55, "flags": 4},
+            {"matrix": [9, 5], "x": 110, "y": 55, "flags": 4},
+            {"matrix": [10, 5], "x": 121, "y": 55, "flags": 4},
+            {"matrix": [12, 5], "x": 132, "y": 55, "flags": 4},
+            {"matrix": [0, 7], "x": 143, "y": 55, "flags": 4},
+            {"matrix": [2, 7], "x": 154, "y": 55, "flags": 4},
+            {"matrix": [3, 7], "x": 165, "y": 55, "flags": 4},
+            {"matrix": [4, 7], "x": 176, "y": 55, "flags": 4},
+            {"matrix": [5, 7], "x": 187, "y": 55, "flags": 4},
+            {"x": 0, "y": 0, "flags": 2},
+            {"x": 0, "y": 6, "flags": 2},
+            {"x": 0, "y": 12, "flags": 2},
+            {"x": 0, "y": 18, "flags": 2},
+            {"x": 0, "y": 24, "flags": 2},
+            {"x": 0, "y": 30, "flags": 2},
+            {"x": 0, "y": 36, "flags": 2},
+            {"x": 0, "y": 42, "flags": 2},
+            {"x": 0, "y": 48, "flags": 2},
+            {"x": 0, "y": 54, "flags": 2},
+            {"x": 209, "y": 0, "flags": 2},
+            {"x": 209, "y": 6, "flags": 2},
+            {"x": 209, "y": 12, "flags": 2},
+            {"x": 209, "y": 18, "flags": 2},
+            {"x": 209, "y": 24, "flags": 2},
+            {"x": 209, "y": 30, "flags": 2},
+            {"x": 209, "y": 36, "flags": 2},
+            {"x": 209, "y": 42, "flags": 2},
+            {"x": 209, "y": 48, "flags": 2},
+            {"x": 209, "y": 54, "flags": 2}
+        ]
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [

+ 34 - 1
keyboards/gmmk/numpad/keyboard.json

@@ -69,7 +69,40 @@
             "solid_splash": true,
             "solid_multisplash": true
         },
-        "driver": "aw20216s"
+        "driver": "aw20216s",
+        "layout": [
+            {"matrix": [0, 0], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 134, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 179, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 45, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 90, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 134, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 179, "y": 24, "flags": 4},
+            {"matrix": [2, 0], "x": 45, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 90, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 134, "y": 32, "flags": 4},
+            {"matrix": [3, 0], "x": 45, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 90, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 134, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 179, "y": 56, "flags": 4},
+            {"matrix": [4, 0], "x": 67, "y": 64, "flags": 4},
+            {"matrix": [4, 3], "x": 134, "y": 64, "flags": 4},
+            {"x": 0, "y": 0, "flags": 2},
+            {"x": 0, "y": 11, "flags": 2},
+            {"x": 0, "y": 21, "flags": 2},
+            {"x": 0, "y": 32, "flags": 2},
+            {"x": 0, "y": 43, "flags": 2},
+            {"x": 0, "y": 53, "flags": 2},
+            {"x": 0, "y": 64, "flags": 2},
+            {"x": 224, "y": 0, "flags": 2},
+            {"x": 224, "y": 11, "flags": 2},
+            {"x": 224, "y": 21, "flags": 2},
+            {"x": 224, "y": 32, "flags": 2},
+            {"x": 224, "y": 43, "flags": 2},
+            {"x": 224, "y": 53, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2}
+        ]
     },
     "processor": "WB32F3G71",
     "bootloader": "wb32-dfu",

+ 0 - 48
keyboards/gmmk/numpad/numpad.c

@@ -59,54 +59,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {0, SW7_CS10, SW7_CS11, SW7_CS12 },  //  30 LED33
 };
 
-led_config_t g_led_config = {{
-    { 0,   1,   2,   3  },
-    { 4,   5,   6,   7  },
-    { 8,   9,   10,  NO_LED},
-    { 11,  12,  13,  14 },
-    { 15,  NO_LED, NO_LED, 16 }
-}, {
-    {45,  0  },  //  0  NUM
-    {90,  0  },  //  1  /
-    {134, 0  },  //  2  *
-    {179, 0  },  //  3  -
-    {45,  16 },  //  4  7
-    {90,  16 },  //  5  8
-    {134, 16 },  //  6  9
-    {179, 24 },  //  7  +
-    {45,  32 },  //  8  4
-    {90,  32 },  //  9  5
-    {134, 32 },  //  10 6
-    {45,  48 },  //  11 1
-    {90,  48 },  //  12 2
-    {134, 48 },  //  13 3
-    {179, 56 },  //  14 ENTER
-    {67,  64 },  //  15 0
-    {134, 64 },  //  16 .
-    {0,   0  },  //  17 LED18
-    {0,   11 },  //  18 LED19
-    {0,   21 },  //  19 LED20
-    {0,   32 },  //  20 LED21
-    {0,   43 },  //  21 LED22
-    {0,   53 },  //  22 LED23
-    {0,   64 },  //  23 LED24
-    {224, 0  },  //  24 LED27
-    {224, 11 },  //  25 LED28
-    {224, 21 },  //  26 LED29
-    {224, 32 },  //  27 LED30
-    {224, 43 },  //  28 LED31
-    {224, 53 },  //  29 LED32
-    {224, 64 }   //  30 LED33
-}, {
-    4, 4, 4, 4,
-    4, 4, 4, 4,
-    4, 4, 4,
-    4, 4, 4, 4,
-    4,       4,
-    2, 2, 2, 2, 2, 2, 2,
-	2, 2, 2, 2, 2, 2, 2
-} };
-
 #    ifdef AW20216S_PW_EN_PIN
 
 void keyboard_pre_init_kb(void) {

+ 0 - 118
keyboards/gmmk/pro/rev1/ansi/ansi.c

@@ -18,124 +18,6 @@
 
 #ifdef RGB_MATRIX_ENABLE
 // clang-format off
-led_config_t g_led_config = {{
-    { 4,      NO_LED, NO_LED, 95,     65,     79, 5,      28 },
-    { 8,      2,      9,      0,      10,     75, 1,      7  },
-    { 14,     3,      15,     NO_LED, 16,     86, 6,      13 },
-    { 20,     18,     21,     23,     22,     94, 12,     19 },
-    { 25,     30,     26,     31,     27,     32, 29,     24 },
-    { 41,     36,     42,     37,     43,     38, 35,     40 },
-    { 46,     89,     47,     34,     48,     72, 78,     45 },
-    { 52,     39,     53,     97,     54,     82, 44,     51 },
-    { 58,     63,     59,     64,     NO_LED, 60, 62,     57 },
-    { 11,     90,     55,     17,     33,     49, NO_LED, 69 },
-    { NO_LED, 85,     93,     61,     96,     66, 50,     56 }
-}, {
-    {0, 0},     // 0, ESC, k13
-    {0, 15},    // 1, ~, k16
-    {4, 26},    // 2, Tab, k11
-    {5, 38},    // 3, Caps, k21
-    {9, 49},    // 4, Sh_L, k00
-    {2, 61},    // 5, Ct_L, k06
-    {18, 0},    // 6, F1, k26
-    {14, 15},   // 7, 1, k17
-    {22, 26},   // 8, Q, k10
-    {25, 38},   // 9, A, k12
-    {33, 49},   // 10, Z, k14
-    {20, 61},   // 11, Win_L, k90
-    {33, 0},    // 12, F2, k36
-    {29, 15},   // 13, 2, k27
-    {36, 26},   // 14, W, k20
-    {40, 38},   // 15, S, k22
-    {47, 49},   // 16, X, k24
-    {38, 61},   // 17, Alt_L, k93
-    {47, 0},    // 18, F3, k31
-    {43, 15},   // 19, 3, k37
-    {51, 26},   // 20, E, k30
-    {54, 38},   // 21, D, k32
-    {61, 49},   // 22, C, k34
-    {61, 0},    // 23, F4, k33
-    {58, 15},   // 24, 4, k47
-    {65, 26},   // 25, R, k40
-    {69, 38},   // 26, F, k42
-    {76, 49},   // 27, V, k44
-    {79, 0},    // 28, F5, k07
-    {72, 15},   // 29, 5, k46
-    {79, 26},   // 30, T, k41
-    {83, 38},   // 31, G, k43
-    {90, 49},   // 32, B, k45
-    {92, 61},   // 33, SPACE, k94
-    {94, 0},    // 34, F6, k63
-    {87, 15},   // 35, 6, k56
-    {94, 26},   // 36, Y, k51
-    {98, 38},   // 37, H, k53
-    {105, 49},  // 38, N, k55
-    {108, 0},   // 39, F7, k71
-    {101, 15},  // 40, 7, k57
-    {108, 26},  // 41, U, k50
-    {112, 38},  // 42, J, k52
-    {119, 49},  // 43, M, k54
-    {123, 0},   // 44, F8, k76
-    {116, 15},  // 45, 8, k67
-    {123, 26},  // 46, I, k60
-    {126, 38},  // 47, K, k62
-    {134, 49},  // 48, ,, k64
-    {145, 61},  // 49, Alt_R, k95
-    {141, 0},   // 50, F9, ka6
-    {130, 15},  // 51, 9, k77
-    {137, 26},  // 52, O, k70
-    {141, 38},  // 53, L, k72
-    {148, 49},  // 54, ., k74
-    {159, 61},  // 55, FN, k92
-    {155, 0},   // 56, F10, ka7
-    {145, 15},  // 57, 0, k87
-    {152, 26},  // 58, P, k80
-    {155, 38},  // 59, ;, k82
-    {163, 49},  // 60, ?, k85
-    {170, 0},   // 61, F11, ka3
-    {159, 15},  // 62, -, k86
-    {166, 26},  // 63, [, k81
-    {170, 38},  // 64, ", k83
-    {173, 61},  // 65, Ct_R, k04
-    {184, 0},   // 66, F12, ka5
-    {0, 8},     // 67, LED, l01
-    {224, 8},   // 68, LED, l11
-    {202, 0},   // 69, Prt, k97
-    {0, 15},    // 70, LED, l02
-    {224, 15},  // 71, LED, l12
-    {224, 15},  // 72, Del, k65
-    {0, 21},    // 73, LED, l03
-    {224, 21},  // 74, LED, l13
-    {224, 26},  // 75, PgUp, k15
-    {0, 28},    // 76, LED, l04
-    {224, 28},  // 77, LED, l14
-    {173, 15},  // 78, =, k66
-    {220, 64},  // 79, Right, k05
-    {0, 35},    // 80, LED, l05
-    {224, 35},  // 81, LED, l15
-    {224, 49},  // 82, End, k75
-    {0, 42},    // 83, LED, l06
-    {224, 42},  // 84, LED, l16
-    {195, 15},  // 85, BSpc, ka1
-    {224, 38},  // 86, PgDn, k25
-    {0, 48},    // 87, LED, l07
-    {224, 48},  // 88, LED, l17
-    {181, 26},  // 89, ], k61
-    {182, 49},  // 90, Sh_R, k91
-    {0, 55},    // 91, LED, l08
-    {224, 55},  // 92, LED, l18
-    {199, 26},  // 93, \, ka2
-    {206, 52},  // 94, Up, k35
-    {191, 64},  // 95, Left, k03
-    {193, 38},  // 96, Enter, ka4
-    {206, 64}   // 97, Down, k73
-}, {
-    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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2,
-    4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
-}};
-
 const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {0, SW1_CS1, SW1_CS2, SW1_CS3},        //  0, ESC, k13
     {0, SW1_CS4, SW1_CS5, SW1_CS6},        //  1, ~, k16

+ 102 - 0
keyboards/gmmk/pro/rev1/ansi/keyboard.json

@@ -34,6 +34,108 @@
     },
     "processor": "STM32F303",
     "bootloader": "stm32-dfu",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4},
+            {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4},
+            {"matrix": [0, 0], "x": 9, "y": 49, "flags": 4},
+            {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4},
+            {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4},
+            {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4},
+            {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4},
+            {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4},
+            {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4},
+            {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4},
+            {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4},
+            {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4},
+            {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4},
+            {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4},
+            {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4},
+            {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4},
+            {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4},
+            {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4},
+            {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4},
+            {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4},
+            {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4},
+            {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4},
+            {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4},
+            {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4},
+            {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4},
+            {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4},
+            {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4},
+            {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4},
+            {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4},
+            {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4},
+            {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4},
+            {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4},
+            {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4},
+            {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4},
+            {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4},
+            {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4},
+            {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4},
+            {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4},
+            {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4},
+            {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4},
+            {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4},
+            {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4},
+            {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4},
+            {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4},
+            {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4},
+            {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4},
+            {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
+            {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4},
+            {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4},
+            {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4},
+            {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4},
+            {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4},
+            {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4},
+            {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4},
+            {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4},
+            {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4},
+            {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4},
+            {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4},
+            {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4},
+            {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4},
+            {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4},
+            {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4},
+            {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4},
+            {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4},
+            {"x": 0, "y": 8, "flags": 2},
+            {"x": 224, "y": 8, "flags": 2},
+            {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4},
+            {"x": 0, "y": 15, "flags": 2},
+            {"x": 224, "y": 15, "flags": 2},
+            {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4},
+            {"x": 0, "y": 21, "flags": 2},
+            {"x": 224, "y": 21, "flags": 2},
+            {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4},
+            {"x": 0, "y": 28, "flags": 2},
+            {"x": 224, "y": 28, "flags": 2},
+            {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4},
+            {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4},
+            {"x": 0, "y": 35, "flags": 2},
+            {"x": 224, "y": 35, "flags": 2},
+            {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4},
+            {"x": 0, "y": 42, "flags": 2},
+            {"x": 224, "y": 42, "flags": 2},
+            {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4},
+            {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4},
+            {"x": 0, "y": 48, "flags": 2},
+            {"x": 224, "y": 48, "flags": 2},
+            {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4},
+            {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4},
+            {"x": 0, "y": 55, "flags": 2},
+            {"x": 224, "y": 55, "flags": 2},
+            {"matrix": [10, 2], "x": 199, "y": 26, "flags": 4},
+            {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4},
+            {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4},
+            {"matrix": [10, 4], "x": 193, "y": 38, "flags": 4},
+            {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4}
+        ]
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [

+ 0 - 119
keyboards/gmmk/pro/rev1/iso/iso.c

@@ -18,125 +18,6 @@
 
 #ifdef RGB_MATRIX_ENABLE
 // clang-format off
-led_config_t g_led_config = {{
-    { 4,      NO_LED, NO_LED, 96, 65, 80, 5,      28 },
-    { 8,      2,      9,      0,  10, 76, 1,      7  },
-    { 14,     3,      15,     67, 16, 87, 6,      13 },
-    { 20,     18,     21,     23, 22, 94, 12,     19 },
-    { 25,     30,     26,     31, 27, 32, 29,     24 },
-    { 41,     36,     42,     37, 43, 38, 35,     40 },
-    { 46,     90,     47,     34, 48, 73, 79,     45 },
-    { 52,     39,     53,     98, 54, 83, 44,     51 },
-    { 58,     63,     59,     64, 95, 60, 62,     57 },
-    { 11,     91,     55,     17, 33, 49, NO_LED, 70 },
-    { NO_LED, 86,     NO_LED, 61, 97, 66, 50,     56 }
-}, {
-    {0, 0},     // 0, ESC, k13
-    {0, 15},    // 1, `, k16
-    {4, 26},    // 2, Tab, k11
-    {5, 38},    // 3, Caps, k21
-    {2, 49},    // 4, Sh_L, k00
-    {2, 61},    // 5, Ct_L, k06
-    {18, 0},    // 6, F1, k26
-    {14, 15},   // 7, 1, k17
-    {22, 26},   // 8, Q, k10
-    {25, 38},   // 9, A, k12
-    {33, 49},   // 10, Z, k14
-    {20, 61},   // 11, Win_L, k90
-    {33, 0},    // 12, F2, k36
-    {29, 15},   // 13, 2, k27
-    {36, 26},   // 14, W, k20
-    {40, 38},   // 15, S, k22
-    {47, 49},   // 16, X, k24
-    {38, 61},   // 17, Alt_L, k93
-    {47, 0},    // 18, F3, k31
-    {43, 15},   // 19, 3, k37
-    {51, 26},   // 20, E, k30
-    {54, 38},   // 21, D, k32
-    {61, 49},   // 22, C, k34
-    {61, 0},    // 23, F4, k33
-    {58, 15},   // 24, 4, k47
-    {65, 26},   // 25, R, k40
-    {69, 38},   // 26, F, k42
-    {76, 49},   // 27, V, k44
-    {79, 0},    // 28, F5, k07
-    {72, 15},   // 29, 5, k46
-    {79, 26},   // 30, T, k41
-    {83, 38},   // 31, G, k43
-    {90, 49},   // 32, B, k45
-    {92, 61},   // 33, SPACE, k94
-    {94, 0},    // 34, F6, k63
-    {87, 15},   // 35, 6, k56
-    {94, 26},   // 36, Y, k51
-    {98, 38},   // 37, H, k53
-    {105, 49},  // 38, N, k55
-    {108, 0},   // 39, F7, k71
-    {101, 15},  // 40, 7, k57
-    {108, 26},  // 41, U, k50
-    {112, 38},  // 42, J, k52
-    {119, 49},  // 43, M, k54
-    {123, 0},   // 44, F8, k76
-    {116, 15},  // 45, 8, k67
-    {123, 26},  // 46, I, k60
-    {126, 38},  // 47, K, k62
-    {134, 49},  // 48, ,, k64
-    {145, 61},  // 49, Alt_R, k95
-    {141, 0},   // 50, F9, ka6
-    {130, 15},  // 51, 9, k77
-    {137, 26},  // 52, O, k70
-    {141, 38},  // 53, L, k72
-    {148, 49},  // 54, ., k74
-    {159, 61},  // 55, FN, k92
-    {155, 0},   // 56, F10, ka7
-    {145, 15},  // 57, 0, k87
-    {152, 26},  // 58, P, k80
-    {155, 38},  // 59, ;, k82
-    {163, 49},  // 60, /, k85
-    {170, 0},   // 61, F11, ka3
-    {159, 15},  // 62, -, k86
-    {166, 26},  // 63, [, k81
-    {170, 38},  // 64, ", k83
-    {173, 61},  // 65, Ct_R, k04
-    {184, 0},   // 66, F12, ka5
-    {18, 49},   // 67, \, k23
-    {0, 8},     // 68, LED, l01
-    {224, 8},   // 69, LED, l11
-    {202, 0},   // 70, Prt, k97
-    {0, 15},    // 71, LED, l02
-    {224, 15},  // 72, LED, l12
-    {224, 15},  // 73, Del, k65
-    {0, 21},    // 74, LED, l03
-    {224, 21},  // 75, LED, l13
-    {224, 26},  // 76, PgUp, k15
-    {0, 28},    // 77, LED, l04
-    {224, 28},  // 78, LED, l14
-    {173, 15},  // 79, =, k66
-    {220, 64},  // 80, Right, k05
-    {0, 35},    // 81, LED, l05
-    {224, 35},  // 82, LED, l15
-    {224, 49},  // 83, End, k75
-    {0, 42},    // 84, LED, l06
-    {224, 42},  // 85, LED, l16
-    {195, 15},  // 86, BSpc, ka1
-    {224, 38},  // 87, PgDn, k25
-    {0, 48},    // 88, LED, l07
-    {224, 48},  // 89, LED, l17
-    {181, 26},  // 90, ], k61
-    {182, 49},  // 91, Sh_R, k91
-    {0, 55},    // 92, LED, l08
-    {224, 55},  // 93, LED, l18
-    {206, 52},  // 94, Up, k35
-    {184, 38},  // 95, #, k84
-    {191, 64},  // 96, Left, k03
-    {201, 26},  // 97, Enter, ka4
-    {206, 64},  // 98, Down, k73
-}, {
-    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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2,
-    2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
-}};
-
 const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {0, SW1_CS1, SW1_CS2, SW1_CS3},        //  0, ESC, k13
     {0, SW1_CS4, SW1_CS5, SW1_CS6},        //  1, ~, k16

+ 103 - 0
keyboards/gmmk/pro/rev1/iso/keyboard.json

@@ -34,6 +34,109 @@
     },
     "processor": "STM32F303",
     "bootloader": "stm32-dfu",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4},
+            {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4},
+            {"matrix": [0, 0], "x": 2, "y": 49, "flags": 4},
+            {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4},
+            {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4},
+            {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4},
+            {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4},
+            {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4},
+            {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4},
+            {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4},
+            {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4},
+            {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4},
+            {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4},
+            {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4},
+            {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4},
+            {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4},
+            {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4},
+            {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4},
+            {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4},
+            {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4},
+            {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4},
+            {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4},
+            {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4},
+            {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4},
+            {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4},
+            {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4},
+            {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4},
+            {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4},
+            {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4},
+            {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4},
+            {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4},
+            {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4},
+            {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4},
+            {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4},
+            {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4},
+            {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4},
+            {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4},
+            {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4},
+            {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4},
+            {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4},
+            {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4},
+            {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4},
+            {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4},
+            {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4},
+            {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4},
+            {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4},
+            {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
+            {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4},
+            {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4},
+            {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4},
+            {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4},
+            {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4},
+            {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4},
+            {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4},
+            {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4},
+            {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4},
+            {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4},
+            {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4},
+            {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4},
+            {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4},
+            {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4},
+            {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4},
+            {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4},
+            {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4},
+            {"matrix": [2, 3], "x": 18, "y": 49, "flags": 4},
+            {"x": 0, "y": 8, "flags": 2},
+            {"x": 224, "y": 8, "flags": 2},
+            {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4},
+            {"x": 0, "y": 15, "flags": 2},
+            {"x": 224, "y": 15, "flags": 2},
+            {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4},
+            {"x": 0, "y": 21, "flags": 2},
+            {"x": 224, "y": 21, "flags": 2},
+            {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4},
+            {"x": 0, "y": 28, "flags": 2},
+            {"x": 224, "y": 28, "flags": 2},
+            {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4},
+            {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4},
+            {"x": 0, "y": 35, "flags": 2},
+            {"x": 224, "y": 35, "flags": 2},
+            {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4},
+            {"x": 0, "y": 42, "flags": 2},
+            {"x": 224, "y": 42, "flags": 2},
+            {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4},
+            {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4},
+            {"x": 0, "y": 48, "flags": 2},
+            {"x": 224, "y": 48, "flags": 2},
+            {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4},
+            {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4},
+            {"x": 0, "y": 55, "flags": 2},
+            {"x": 224, "y": 55, "flags": 2},
+            {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4},
+            {"matrix": [8, 4], "x": 184, "y": 38, "flags": 4},
+            {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4},
+            {"matrix": [10, 4], "x": 201, "y": 26, "flags": 4},
+            {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4}
+        ]
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [

+ 0 - 118
keyboards/gmmk/pro/rev2/ansi/ansi.c

@@ -18,124 +18,6 @@
 
 #ifdef RGB_MATRIX_ENABLE
 // clang-format off
-led_config_t g_led_config = {{
-    { 4,      NO_LED, NO_LED, 95,     65,     79, 5,      28 },
-    { 8,      2,      9,      0,      10,     75, 1,      7  },
-    { 14,     3,      15,     NO_LED, 16,     86, 6,      13 },
-    { 20,     18,     21,     23,     22,     94, 12,     19 },
-    { 25,     30,     26,     31,     27,     32, 29,     24 },
-    { 41,     36,     42,     37,     43,     38, 35,     40 },
-    { 46,     89,     47,     34,     48,     72, 78,     45 },
-    { 52,     39,     53,     97,     54,     82, 44,     51 },
-    { 58,     63,     59,     64,     NO_LED, 60, 62,     57 },
-    { 11,     90,     55,     17,     33,     49, NO_LED, 69 },
-    { NO_LED, 85,     93,     61,     96,     66, 50,     56 }
-}, {
-    {0, 0},     // 0, ESC, k13
-    {0, 15},    // 1, ~, k16
-    {4, 26},    // 2, Tab, k11
-    {5, 38},    // 3, Caps, k21
-    {9, 49},    // 4, Sh_L, k00
-    {2, 61},    // 5, Ct_L, k06
-    {18, 0},    // 6, F1, k26
-    {14, 15},   // 7, 1, k17
-    {22, 26},   // 8, Q, k10
-    {25, 38},   // 9, A, k12
-    {33, 49},   // 10, Z, k14
-    {20, 61},   // 11, Win_L, k90
-    {33, 0},    // 12, F2, k36
-    {29, 15},   // 13, 2, k27
-    {36, 26},   // 14, W, k20
-    {40, 38},   // 15, S, k22
-    {47, 49},   // 16, X, k24
-    {38, 61},   // 17, Alt_L, k93
-    {47, 0},    // 18, F3, k31
-    {43, 15},   // 19, 3, k37
-    {51, 26},   // 20, E, k30
-    {54, 38},   // 21, D, k32
-    {61, 49},   // 22, C, k34
-    {61, 0},    // 23, F4, k33
-    {58, 15},   // 24, 4, k47
-    {65, 26},   // 25, R, k40
-    {69, 38},   // 26, F, k42
-    {76, 49},   // 27, V, k44
-    {79, 0},    // 28, F5, k07
-    {72, 15},   // 29, 5, k46
-    {79, 26},   // 30, T, k41
-    {83, 38},   // 31, G, k43
-    {90, 49},   // 32, B, k45
-    {92, 61},   // 33, SPACE, k94
-    {94, 0},    // 34, F6, k63
-    {87, 15},   // 35, 6, k56
-    {94, 26},   // 36, Y, k51
-    {98, 38},   // 37, H, k53
-    {105, 49},  // 38, N, k55
-    {108, 0},   // 39, F7, k71
-    {101, 15},  // 40, 7, k57
-    {108, 26},  // 41, U, k50
-    {112, 38},  // 42, J, k52
-    {119, 49},  // 43, M, k54
-    {123, 0},   // 44, F8, k76
-    {116, 15},  // 45, 8, k67
-    {123, 26},  // 46, I, k60
-    {126, 38},  // 47, K, k62
-    {134, 49},  // 48, ,, k64
-    {145, 61},  // 49, Alt_R, k95
-    {141, 0},   // 50, F9, ka6
-    {130, 15},  // 51, 9, k77
-    {137, 26},  // 52, O, k70
-    {141, 38},  // 53, L, k72
-    {148, 49},  // 54, ., k74
-    {159, 61},  // 55, FN, k92
-    {155, 0},   // 56, F10, ka7
-    {145, 15},  // 57, 0, k87
-    {152, 26},  // 58, P, k80
-    {155, 38},  // 59, ;, k82
-    {163, 49},  // 60, ?, k85
-    {170, 0},   // 61, F11, ka3
-    {159, 15},  // 62, -, k86
-    {166, 26},  // 63, [, k81
-    {170, 38},  // 64, ", k83
-    {173, 61},  // 65, Ct_R, k04
-    {184, 0},   // 66, F12, ka5
-    {0, 8},     // 67, LED, l01
-    {224, 8},   // 68, LED, l11
-    {202, 0},   // 69, Prt, k97
-    {0, 15},    // 70, LED, l02
-    {224, 15},  // 71, LED, l12
-    {224, 15},  // 72, Del, k65
-    {0, 21},    // 73, LED, l03
-    {224, 21},  // 74, LED, l13
-    {224, 26},  // 75, PgUp, k15
-    {0, 28},    // 76, LED, l04
-    {224, 28},  // 77, LED, l14
-    {173, 15},  // 78, =, k66
-    {220, 64},  // 79, Right, k05
-    {0, 35},    // 80, LED, l05
-    {224, 35},  // 81, LED, l15
-    {224, 49},  // 82, End, k75
-    {0, 42},    // 83, LED, l06
-    {224, 42},  // 84, LED, l16
-    {195, 15},  // 85, BSpc, ka1
-    {224, 38},  // 86, PgDn, k25
-    {0, 48},    // 87, LED, l07
-    {224, 48},  // 88, LED, l17
-    {181, 26},  // 89, ], k61
-    {182, 49},  // 90, Sh_R, k91
-    {0, 55},    // 91, LED, l08
-    {224, 55},  // 92, LED, l18
-    {199, 26},  // 93, \, ka2
-    {206, 52},  // 94, Up, k35
-    {191, 64},  // 95, Left, k03
-    {193, 38},  // 96, Enter, ka4
-    {206, 64}   // 97, Down, k73
-}, {
-    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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2,
-    4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
-}};
-
 const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {0, SW1_CS1, SW1_CS2, SW1_CS3},        //  0, ESC, k13
     {0, SW1_CS4, SW1_CS5, SW1_CS6},        //  1, ~, k16

+ 102 - 0
keyboards/gmmk/pro/rev2/ansi/keyboard.json

@@ -41,6 +41,108 @@
     },
     "processor": "WB32F3G71",
     "bootloader": "wb32-dfu",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4},
+            {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4},
+            {"matrix": [0, 0], "x": 9, "y": 49, "flags": 4},
+            {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4},
+            {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4},
+            {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4},
+            {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4},
+            {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4},
+            {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4},
+            {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4},
+            {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4},
+            {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4},
+            {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4},
+            {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4},
+            {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4},
+            {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4},
+            {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4},
+            {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4},
+            {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4},
+            {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4},
+            {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4},
+            {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4},
+            {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4},
+            {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4},
+            {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4},
+            {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4},
+            {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4},
+            {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4},
+            {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4},
+            {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4},
+            {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4},
+            {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4},
+            {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4},
+            {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4},
+            {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4},
+            {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4},
+            {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4},
+            {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4},
+            {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4},
+            {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4},
+            {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4},
+            {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4},
+            {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4},
+            {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4},
+            {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4},
+            {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4},
+            {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
+            {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4},
+            {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4},
+            {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4},
+            {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4},
+            {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4},
+            {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4},
+            {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4},
+            {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4},
+            {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4},
+            {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4},
+            {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4},
+            {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4},
+            {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4},
+            {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4},
+            {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4},
+            {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4},
+            {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4},
+            {"x": 0, "y": 8, "flags": 2},
+            {"x": 224, "y": 8, "flags": 2},
+            {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4},
+            {"x": 0, "y": 15, "flags": 2},
+            {"x": 224, "y": 15, "flags": 2},
+            {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4},
+            {"x": 0, "y": 21, "flags": 2},
+            {"x": 224, "y": 21, "flags": 2},
+            {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4},
+            {"x": 0, "y": 28, "flags": 2},
+            {"x": 224, "y": 28, "flags": 2},
+            {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4},
+            {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4},
+            {"x": 0, "y": 35, "flags": 2},
+            {"x": 224, "y": 35, "flags": 2},
+            {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4},
+            {"x": 0, "y": 42, "flags": 2},
+            {"x": 224, "y": 42, "flags": 2},
+            {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4},
+            {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4},
+            {"x": 0, "y": 48, "flags": 2},
+            {"x": 224, "y": 48, "flags": 2},
+            {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4},
+            {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4},
+            {"x": 0, "y": 55, "flags": 2},
+            {"x": 224, "y": 55, "flags": 2},
+            {"matrix": [10, 2], "x": 199, "y": 26, "flags": 4},
+            {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4},
+            {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4},
+            {"matrix": [10, 4], "x": 193, "y": 38, "flags": 4},
+            {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4}
+        ]
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [

+ 0 - 119
keyboards/gmmk/pro/rev2/iso/iso.c

@@ -18,125 +18,6 @@
 
 #ifdef RGB_MATRIX_ENABLE
 // clang-format off
-led_config_t g_led_config = {{
-    { 4,      NO_LED, NO_LED, 96, 65, 80, 5,      28 },
-    { 8,      2,      9,      0,  10, 76, 1,      7  },
-    { 14,     3,      15,     67, 16, 87, 6,      13 },
-    { 20,     18,     21,     23, 22, 94, 12,     19 },
-    { 25,     30,     26,     31, 27, 32, 29,     24 },
-    { 41,     36,     42,     37, 43, 38, 35,     40 },
-    { 46,     90,     47,     34, 48, 73, 79,     45 },
-    { 52,     39,     53,     98, 54, 83, 44,     51 },
-    { 58,     63,     59,     64, 95, 60, 62,     57 },
-    { 11,     91,     55,     17, 33, 49, NO_LED, 70 },
-    { NO_LED, 86,     NO_LED, 61, 97, 66, 50,     56 }
-}, {
-    {0, 0},     // 0, ESC, k13
-    {0, 15},    // 1, `, k16
-    {4, 26},    // 2, Tab, k11
-    {5, 38},    // 3, Caps, k21
-    {2, 49},    // 4, Sh_L, k00
-    {2, 61},    // 5, Ct_L, k06
-    {18, 0},    // 6, F1, k26
-    {14, 15},   // 7, 1, k17
-    {22, 26},   // 8, Q, k10
-    {25, 38},   // 9, A, k12
-    {33, 49},   // 10, Z, k14
-    {20, 61},   // 11, Win_L, k90
-    {33, 0},    // 12, F2, k36
-    {29, 15},   // 13, 2, k27
-    {36, 26},   // 14, W, k20
-    {40, 38},   // 15, S, k22
-    {47, 49},   // 16, X, k24
-    {38, 61},   // 17, Alt_L, k93
-    {47, 0},    // 18, F3, k31
-    {43, 15},   // 19, 3, k37
-    {51, 26},   // 20, E, k30
-    {54, 38},   // 21, D, k32
-    {61, 49},   // 22, C, k34
-    {61, 0},    // 23, F4, k33
-    {58, 15},   // 24, 4, k47
-    {65, 26},   // 25, R, k40
-    {69, 38},   // 26, F, k42
-    {76, 49},   // 27, V, k44
-    {79, 0},    // 28, F5, k07
-    {72, 15},   // 29, 5, k46
-    {79, 26},   // 30, T, k41
-    {83, 38},   // 31, G, k43
-    {90, 49},   // 32, B, k45
-    {92, 61},   // 33, SPACE, k94
-    {94, 0},    // 34, F6, k63
-    {87, 15},   // 35, 6, k56
-    {94, 26},   // 36, Y, k51
-    {98, 38},   // 37, H, k53
-    {105, 49},  // 38, N, k55
-    {108, 0},   // 39, F7, k71
-    {101, 15},  // 40, 7, k57
-    {108, 26},  // 41, U, k50
-    {112, 38},  // 42, J, k52
-    {119, 49},  // 43, M, k54
-    {123, 0},   // 44, F8, k76
-    {116, 15},  // 45, 8, k67
-    {123, 26},  // 46, I, k60
-    {126, 38},  // 47, K, k62
-    {134, 49},  // 48, ,, k64
-    {145, 61},  // 49, Alt_R, k95
-    {141, 0},   // 50, F9, ka6
-    {130, 15},  // 51, 9, k77
-    {137, 26},  // 52, O, k70
-    {141, 38},  // 53, L, k72
-    {148, 49},  // 54, ., k74
-    {159, 61},  // 55, FN, k92
-    {155, 0},   // 56, F10, ka7
-    {145, 15},  // 57, 0, k87
-    {152, 26},  // 58, P, k80
-    {155, 38},  // 59, ;, k82
-    {163, 49},  // 60, /, k85
-    {170, 0},   // 61, F11, ka3
-    {159, 15},  // 62, -, k86
-    {166, 26},  // 63, [, k81
-    {170, 38},  // 64, ", k83
-    {173, 61},  // 65, Ct_R, k04
-    {184, 0},   // 66, F12, ka5
-    {18, 49},   // 67, \, k23
-    {0, 8},     // 68, LED, l01
-    {224, 8},   // 69, LED, l11
-    {202, 0},   // 70, Prt, k97
-    {0, 15},    // 71, LED, l02
-    {224, 15},  // 72, LED, l12
-    {224, 15},  // 73, Del, k65
-    {0, 21},    // 74, LED, l03
-    {224, 21},  // 75, LED, l13
-    {224, 26},  // 76, PgUp, k15
-    {0, 28},    // 77, LED, l04
-    {224, 28},  // 78, LED, l14
-    {173, 15},  // 79, =, k66
-    {220, 64},  // 80, Right, k05
-    {0, 35},    // 81, LED, l05
-    {224, 35},  // 82, LED, l15
-    {224, 49},  // 83, End, k75
-    {0, 42},    // 84, LED, l06
-    {224, 42},  // 85, LED, l16
-    {195, 15},  // 86, BSpc, ka1
-    {224, 38},  // 87, PgDn, k25
-    {0, 48},    // 88, LED, l07
-    {224, 48},  // 89, LED, l17
-    {181, 26},  // 90, ], k61
-    {182, 49},  // 91, Sh_R, k91
-    {0, 55},    // 92, LED, l08
-    {224, 55},  // 93, LED, l18
-    {206, 52},  // 94, Up, k35
-    {184, 38},  // 95, #, k84
-    {191, 64},  // 96, Left, k03
-    {201, 26},  // 97, Enter, ka4
-    {206, 64},  // 98, Down, k73
-}, {
-    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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2,
-    2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
-}};
-
 const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
     {0, SW1_CS1, SW1_CS2, SW1_CS3},        //  0, ESC, k13
     {0, SW1_CS4, SW1_CS5, SW1_CS6},        //  1, ~, k16

+ 103 - 0
keyboards/gmmk/pro/rev2/iso/keyboard.json

@@ -41,6 +41,109 @@
     },
     "processor": "WB32F3G71",
     "bootloader": "wb32-dfu",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4},
+            {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4},
+            {"matrix": [0, 0], "x": 2, "y": 49, "flags": 4},
+            {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4},
+            {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4},
+            {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4},
+            {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4},
+            {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4},
+            {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4},
+            {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4},
+            {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4},
+            {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4},
+            {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4},
+            {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4},
+            {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4},
+            {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4},
+            {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4},
+            {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4},
+            {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4},
+            {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4},
+            {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4},
+            {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4},
+            {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4},
+            {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4},
+            {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4},
+            {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4},
+            {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4},
+            {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4},
+            {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4},
+            {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4},
+            {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4},
+            {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4},
+            {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4},
+            {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4},
+            {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4},
+            {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4},
+            {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4},
+            {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4},
+            {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4},
+            {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4},
+            {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4},
+            {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4},
+            {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4},
+            {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4},
+            {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4},
+            {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4},
+            {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
+            {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4},
+            {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4},
+            {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4},
+            {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4},
+            {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4},
+            {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4},
+            {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4},
+            {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4},
+            {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4},
+            {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4},
+            {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4},
+            {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4},
+            {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4},
+            {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4},
+            {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4},
+            {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4},
+            {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4},
+            {"matrix": [2, 3], "x": 18, "y": 49, "flags": 4},
+            {"x": 0, "y": 8, "flags": 2},
+            {"x": 224, "y": 8, "flags": 2},
+            {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4},
+            {"x": 0, "y": 15, "flags": 2},
+            {"x": 224, "y": 15, "flags": 2},
+            {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4},
+            {"x": 0, "y": 21, "flags": 2},
+            {"x": 224, "y": 21, "flags": 2},
+            {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4},
+            {"x": 0, "y": 28, "flags": 2},
+            {"x": 224, "y": 28, "flags": 2},
+            {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4},
+            {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4},
+            {"x": 0, "y": 35, "flags": 2},
+            {"x": 224, "y": 35, "flags": 2},
+            {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4},
+            {"x": 0, "y": 42, "flags": 2},
+            {"x": 224, "y": 42, "flags": 2},
+            {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4},
+            {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4},
+            {"x": 0, "y": 48, "flags": 2},
+            {"x": 224, "y": 48, "flags": 2},
+            {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4},
+            {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4},
+            {"x": 0, "y": 55, "flags": 2},
+            {"x": 224, "y": 55, "flags": 2},
+            {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4},
+            {"matrix": [8, 4], "x": 184, "y": 38, "flags": 4},
+            {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4},
+            {"matrix": [10, 4], "x": 201, "y": 26, "flags": 4},
+            {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4}
+        ]
+    },
     "layouts": {
         "LAYOUT": {
             "layout": [

+ 2 - 33
keyboards/gopolar/gg86/gg86.c

@@ -25,37 +25,6 @@
 #include <math.h>
 #include <lib/lib8tion/lib8tion.h>
 
-led_config_t g_led_config = { {
-    { 87,     86,     85,     84,     83,     82,     81,     80,     79,     78,     77,     76,     75, NO_LED,     74,     73,     72 },
-    { 55,     56,     57,     58,     59,     60,     61,     62,     63,     64,     65,     66,     67,     68,     69,     70,     71 },
-    { 54,     53,     52,     51,     50,     49,     48,     47,     46,     45,     44,     43,     42,     41,     40,     39,     38 },
-    { 25,     26,     27,     28,     29,     30,     31,     32,     33,     34,     35,     36, NO_LED,     37, NO_LED, NO_LED, NO_LED },
-    { 24,     23,     22,     21,     20,     19,     18,     17,     16,     15,     14,     13,     12,     11, NO_LED,     10, NO_LED },
-    {  0,      1,      2, NO_LED, NO_LED,      3, NO_LED, NO_LED, NO_LED, NO_LED,      4,      5,      6, NO_LED,      7,      8,      9 }
-}, {
-    // Key matrix (0 -> 87)
-    {3  , 64}, {19 , 64}, {36 , 64},            {91 , 64}, {146, 64}, {162, 64},                                             {179, 64},                       {198, 64}, {211, 64}, {224, 64},
-               {211, 52},            {182, 52}, {170, 52}, {146, 52}, {133, 52}, {120, 52}, {107, 52}, {94 , 52}, {81 , 52}, {68 , 52}, {55 , 52}, {42 , 52}, {29 , 52}, {16 , 52}, {2  , 52},
-                                     {2  , 41},            {23 , 41}, {36 , 41}, {49 , 41}, {62 , 41}, {75 , 41}, {88 , 41}, {101, 41}, {114, 41}, {127, 41}, {140, 41}, {153, 41}, {174, 41},
-    {224, 29}, {211, 29}, {198, 29}, {179, 29}, {162, 29}, {149, 29}, {136, 29}, {123, 29}, {110, 29}, {97 , 29}, {84 , 29}, {71 , 29}, {58 , 29}, {45 , 29}, {32 , 29}, {19 , 29}, {3  , 29},
-    {0  , 17}, {13 , 17}, {26 , 17}, {39 , 17}, {52 , 17}, {65 , 17}, {78 , 17}, {91 , 17}, {104, 17}, {117, 17}, {130, 17}, {143, 17}, {156, 17}, {175, 17}, {198, 17}, {211, 17}, {224, 17},
-    {224,  0}, {211,  0}, {198,  0},            {182,  0}, {169,  0}, {156,  0}, {143,  0}, {123,  0}, {110,  0}, {97 ,  0}, {84 ,  0}, {65 ,  0}, {52 ,  0}, {39 ,  0}, {26 ,  0}, {0  ,  0},
-
-    // Underglow (88 -> 99)
-    {1  ,  6}, {50 ,  6}, {89 ,  6}, {135,  6}, {176,  6}, {198,  6}, {221, 55}, {192, 58}, {138, 59}, {96 , 61}, {42 , 59}, {7  , 60},
-}, {
-    // Key matrix (0 -> 87)
-    1, 1, 1,    4, 1, 1,             1,       4, 4, 4,
-       4,    1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-             8,    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, 1,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4,
-    4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    4, 4, 1,
-
-    // Underglow (88 -> 99)
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-} };
-
 bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
     switch (keycode) {
         case QK_RGB_MATRIX_TOGGLE:
@@ -114,7 +83,7 @@ bool rgb_matrix_indicators_kb(void) {
 #endif
 
 #ifdef OLED_ENABLE
-    uint16_t startup_timer; 
+    uint16_t startup_timer;
 
     oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
         startup_timer = timer_read();
@@ -129,7 +98,7 @@ bool rgb_matrix_indicators_kb(void) {
             render_logo();
         } else {
             finished_logo = true;
-			
+
             if (!oled_task_user()) {
                 return false;
             }

+ 102 - 0
keyboards/gopolar/gg86/keyboard.json

@@ -59,6 +59,108 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1},
+            {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1},
+            {"matrix": [5, 2], "x": 36, "y": 64, "flags": 1},
+            {"matrix": [5, 5], "x": 91, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 146, "y": 64, "flags": 1},
+            {"matrix": [5, 11], "x": 162, "y": 64, "flags": 1},
+            {"matrix": [5, 12], "x": 179, "y": 64, "flags": 1},
+            {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4},
+            {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4},
+            {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4},
+            {"matrix": [4, 15], "x": 211, "y": 52, "flags": 4},
+            {"matrix": [4, 13], "x": 182, "y": 52, "flags": 1},
+            {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1},
+            {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
+            {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4},
+            {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1},
+            {"matrix": [3, 0], "x": 2, "y": 41, "flags": 8},
+            {"matrix": [3, 1], "x": 23, "y": 41, "flags": 4},
+            {"matrix": [3, 2], "x": 36, "y": 41, "flags": 4},
+            {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4},
+            {"matrix": [3, 4], "x": 62, "y": 41, "flags": 4},
+            {"matrix": [3, 5], "x": 75, "y": 41, "flags": 4},
+            {"matrix": [3, 6], "x": 88, "y": 41, "flags": 4},
+            {"matrix": [3, 7], "x": 101, "y": 41, "flags": 4},
+            {"matrix": [3, 8], "x": 114, "y": 41, "flags": 4},
+            {"matrix": [3, 9], "x": 127, "y": 41, "flags": 4},
+            {"matrix": [3, 10], "x": 140, "y": 41, "flags": 4},
+            {"matrix": [3, 11], "x": 153, "y": 41, "flags": 4},
+            {"matrix": [3, 13], "x": 174, "y": 41, "flags": 1},
+            {"matrix": [2, 16], "x": 224, "y": 29, "flags": 4},
+            {"matrix": [2, 15], "x": 211, "y": 29, "flags": 4},
+            {"matrix": [2, 14], "x": 198, "y": 29, "flags": 4},
+            {"matrix": [2, 13], "x": 179, "y": 29, "flags": 4},
+            {"matrix": [2, 12], "x": 162, "y": 29, "flags": 4},
+            {"matrix": [2, 11], "x": 149, "y": 29, "flags": 4},
+            {"matrix": [2, 10], "x": 136, "y": 29, "flags": 4},
+            {"matrix": [2, 9], "x": 123, "y": 29, "flags": 4},
+            {"matrix": [2, 8], "x": 110, "y": 29, "flags": 4},
+            {"matrix": [2, 7], "x": 97, "y": 29, "flags": 4},
+            {"matrix": [2, 6], "x": 84, "y": 29, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 29, "flags": 4},
+            {"matrix": [2, 4], "x": 58, "y": 29, "flags": 4},
+            {"matrix": [2, 3], "x": 45, "y": 29, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 29, "flags": 4},
+            {"matrix": [2, 1], "x": 19, "y": 29, "flags": 4},
+            {"matrix": [2, 0], "x": 3, "y": 29, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
+            {"matrix": [1, 1], "x": 13, "y": 17, "flags": 4},
+            {"matrix": [1, 2], "x": 26, "y": 17, "flags": 4},
+            {"matrix": [1, 3], "x": 39, "y": 17, "flags": 4},
+            {"matrix": [1, 4], "x": 52, "y": 17, "flags": 4},
+            {"matrix": [1, 5], "x": 65, "y": 17, "flags": 4},
+            {"matrix": [1, 6], "x": 78, "y": 17, "flags": 4},
+            {"matrix": [1, 7], "x": 91, "y": 17, "flags": 4},
+            {"matrix": [1, 8], "x": 104, "y": 17, "flags": 4},
+            {"matrix": [1, 9], "x": 117, "y": 17, "flags": 4},
+            {"matrix": [1, 10], "x": 130, "y": 17, "flags": 4},
+            {"matrix": [1, 11], "x": 143, "y": 17, "flags": 4},
+            {"matrix": [1, 12], "x": 156, "y": 17, "flags": 4},
+            {"matrix": [1, 13], "x": 175, "y": 17, "flags": 1},
+            {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4},
+            {"matrix": [1, 15], "x": 211, "y": 17, "flags": 4},
+            {"matrix": [1, 16], "x": 224, "y": 17, "flags": 4},
+            {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8},
+            {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 169, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 156, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 143, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 123, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 110, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 39, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 26, "y": 0, "flags": 4},
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"x": 1, "y": 6, "flags": 2},
+            {"x": 50, "y": 6, "flags": 2},
+            {"x": 89, "y": 6, "flags": 2},
+            {"x": 135, "y": 6, "flags": 2},
+            {"x": 176, "y": 6, "flags": 2},
+            {"x": 198, "y": 6, "flags": 2},
+            {"x": 221, "y": 55, "flags": 2},
+            {"x": 192, "y": 58, "flags": 2},
+            {"x": 138, "y": 59, "flags": 2},
+            {"x": 96, "y": 61, "flags": 2},
+            {"x": 42, "y": 59, "flags": 2},
+            {"x": 7, "y": 60, "flags": 2}
+        ],
         "max_brightness": 150
     },
     "matrix_pins": {