Переглянути джерело

Migrate `g_led_config` to DD (JK1) (#25601)

Jack Sangdahl 10 місяців тому
батько
коміт
c1b428bb4e
32 змінених файлів з 1203 додано та 615 видалено
  1. 0 171
      keyboards/joshajohnson/hub20/hub20.c
  2. 30 1
      keyboards/joshajohnson/hub20/keyboard.json
  3. 76 0
      keyboards/junco/rev1/keyboard.json
  4. 0 103
      keyboards/junco/rev1/rev1.c
  5. 90 0
      keyboards/kapl/rev1/keyboard.json
  6. 0 55
      keyboards/kapl/rev1/rev1.c
  7. 68 0
      keyboards/kbdfans/baguette66/rgb/keyboard.json
  8. 0 20
      keyboards/kbdfans/baguette66/rgb/rgb.c
  9. 96 0
      keyboards/kbdfans/bella/rgb/keyboard.json
  10. 0 30
      keyboards/kbdfans/bella/rgb/rgb.c
  11. 97 0
      keyboards/kbdfans/bella/rgb_iso/keyboard.json
  12. 0 30
      keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
  13. 85 0
      keyboards/kbdfans/boop65/rgb/keyboard.json
  14. 0 23
      keyboards/kbdfans/boop65/rgb/rgb.c
  15. 69 0
      keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json
  16. 0 4
      keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
  17. 69 0
      keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json
  18. 0 21
      keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
  19. 69 0
      keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json
  20. 0 26
      keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
  21. 69 0
      keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json
  22. 0 22
      keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c
  23. 70 0
      keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json
  24. 0 22
      keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c
  25. 0 23
      keyboards/kbdfans/kbd75rgb/kbd75rgb.c
  26. 86 0
      keyboards/kbdfans/kbd75rgb/keyboard.json
  27. 0 19
      keyboards/kbdfans/kbdmini/kbdmini.c
  28. 54 0
      keyboards/kbdfans/kbdmini/keyboard.json
  29. 69 0
      keyboards/kbdfans/maja/keyboard.json
  30. 0 20
      keyboards/kbdfans/maja/maja.c
  31. 106 0
      keyboards/kbdfans/odin/rgb/keyboard.json
  32. 0 25
      keyboards/kbdfans/odin/rgb/rgb.c

+ 0 - 171
keyboards/joshajohnson/hub20/hub20.c

@@ -1,171 +0,0 @@
-/* Copyright 2020 joshajohnson 2021 peepeetee
- *
- * 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
-    {NO_LED,NO_LED,NO_LED,NO_LED},
-    { 7,      8,      9,     10},
-    { 11,    12,     13,     14},
-    { 15,    16,     17,     18},
-    { 19,    20,     21,     22},
-    { 23,    24,     25,     26}
-    //todo: assign leds to keys differently for the different layouts
-}, {
-    // LED Index to Physical Position
-    { 190, 50}, { 111, 50}, { 35, 50}, {38, 0}, {38, 35}, {186, 35}, {186, 0}, // UNDERGLOW
-    //todo: underglow location needs to be recalculated. The top row is above row 4, and for now they have the same y value 0
-    {  0,  0}, {75,  0}, {150,  0}, {225,  0}, // row 4
-    {  0, 16}, {75, 16}, {150, 16}, {225, 16}, // row 3
-    {  0, 32}, {75, 32}, {150, 32}, {225, 32}, // row 2
-    {  0, 48}, {75, 48}, {150, 48}, {225, 48}, // row 1
-    {  0, 64}, {75, 64}, {150, 64}, {225, 64}  // row 0
-
-}, {
-    // LED Index to Flag
-    LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW,  // UNDERGLOW
-    LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,           // row 4
-    LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,           // row 3
-    LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,           // row 2
-    LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,           // row 1
-    LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT            // row 0
-
-} };
-#endif
-
-
-
-// #if LED_MERGE_NUMPAD_LEFT_HANDED_ENTER && LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO
-// #error lower left enter conflicts with lower left zero
-// #endif
-
-// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER && LED_MERGE_NUMPAD_LEFT_HANDED_ZERO
-// #error lower right enter conflicts with lower right zero
-// #endif
-
-//     /* LAYOUT_left_handed
-
-
-//      *     ┌───┬───┐
-//      *     │01 │02 │
-//      * ┌───┼───┼───┼───┐
-//      * │10 │11 │12 │13 │
-//      * ├───┼───┼───┼───┤
-//      * │   │21 │22 │23 │
-//      * │20 ├───┼───┼───┤
-//      * │   │31 │32 │33 │
-//      * ├───┼───┼───┼───┤
-//      * │   │41 │42 │43 │
-//      * │40 ├───┼───┴───┤
-//      * │   │51 │  52   │
-//      * └───┴───┴───────┘
-//      */
-
-// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_PLUS //key 20
-// #define LED_MERGE_NUMPAD_LEFT_HANDED_PLUS FALSE
-// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_PLUS
-
-// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_ENTER //key 40
-// #define LED_MERGE_NUMPAD_LEFT_HANDED_ENTER FALSE
-// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_ENTER
-
-// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_ZERO //key 52
-// #define LED_MERGE_NUMPAD_LEFT_HANDED_ZERO FALSE
-// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_ZERO
-
-
-//     /* LAYOUT_right_handed
-
-
-//      *     ┌───┬───┐
-//      *     │01 │02 │
-//      * ┌───┼───┼───┼───┐
-//      * │10 │11 │12 │13 │
-//      * ├───┼───┼───┼───┤
-//      * │20 │21 │22 │   │
-//      * ├───┼───┼───┤23 │
-//      * │30 │31 │32 │   │
-//      * ├───┼───┼───┼───┤
-//      * │40 │41 │42 │   │
-//      * ├───┴───┼───┤43 │
-//      * │  50   │52 │   │
-//      * └───────┴───┴───┘
-//      */
-//         //LOCATION OF bottom row 0 NOT TESTED, WAITING ENDORSEMENT FROM MANUFACTURER
-
-// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS // key 23
-// #define LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS FALSE
-// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS
-
-// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER // key 43
-// #define LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER FALSE
-// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER
-
-// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO // key 50 (confirm with manufacturer)
-// #define LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO FALSE
-// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO
-
-// uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) {
-// // Keys here have 2 leds. Here we add the led that is not bound to the key
-// // and the default led would be added
-// // by the default code that runs after this in rgb_matrix_map_row_column_to_led
-
-// uint8_t counter = 0;
-
-// #if LED_MERGE_NUMPAD_LEFT_HANDED_PLUS //key 20, leds 7 and 11, 7 already bound
-
-//     if (row == 2 && column == 0) {
-//         led_i[counter] = 11;
-//         counter ++;
-//     }
-// #endif
-// #if LED_MERGE_NUMPAD_LEFT_HANDED_ENTER //key 40, leds 19 and 23, 23 already bound
-//     if (row == 4 && column == 0) {
-//         led_i[counter] = 23;
-//         counter ++;
-//     }
-// #endif
-// #if LED_MERGE_NUMPAD_LEFT_HANDED_ZERO //key 52, leds 25 and 26, 26 already bound
-//     if (row == 5 && column == 2) {
-//         led_i[counter] = 26;
-//         counter ++;
-//     }
-// #endif
-
-// #if LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS // key 23, led 14 and 18, 14 already bound
-//     if (row == 2 && column == 3) {
-//         led_i[counter] = 18;
-//         counter ++;
-//     }
-// #endif
-// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER // key 43, led 22 and 26, 22 already bound
-//     if (row == 4 && column == 3) {
-//         led_i[counter] = 26;
-//         counter ++;
-//     }
-// #endif
-// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO  // key 50 (confirm with manufacturer)
-// // LED 23 and 24, 23(?) already bound
-//     if (row == 5 && column == 0) {
-//         led_i[counter] = 24;
-//         counter ++;
-//     }
-// #endif
-//     return counter;
-// }

+ 30 - 1
keyboards/joshajohnson/hub20/keyboard.json

@@ -28,7 +28,36 @@
         "solid_reactive_simple": true,
         "solid_reactive": true
       },
-      "driver": "ws2812"
+      "driver": "ws2812",
+       "layout": [
+            {"x": 190, "y": 50, "flags": 2},
+            {"x": 111, "y": 50, "flags": 2},
+            {"x": 35, "y": 50, "flags": 2},
+            {"x": 38, "y": 0, "flags": 2},
+            {"x": 38, "y": 35, "flags": 2},
+            {"x": 186, "y": 35, "flags": 2},
+            {"x": 186, "y": 0, "flags": 2},
+            {"matrix": [1, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [1, 1], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [1, 2], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [1, 3], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [2, 1], "x": 75, "y": 16, "flags": 4},
+            {"matrix": [2, 2], "x": 150, "y": 16, "flags": 4},
+            {"matrix": [2, 3], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [3, 1], "x": 75, "y": 32, "flags": 4},
+            {"matrix": [3, 2], "x": 150, "y": 32, "flags": 4},
+            {"matrix": [3, 3], "x": 224, "y": 32, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [4, 1], "x": 75, "y": 48, "flags": 4},
+            {"matrix": [4, 2], "x": 150, "y": 48, "flags": 4},
+            {"matrix": [4, 3], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [5, 1], "x": 75, "y": 64, "flags": 4},
+            {"matrix": [5, 2], "x": 150, "y": 64, "flags": 4},
+            {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4}
+       ]
     },
     "features": {
         "bootmagic": true,

+ 76 - 0
keyboards/junco/rev1/keyboard.json

@@ -22,6 +22,82 @@
     },
     "rgb_matrix": {
         "driver": "ws2812",
+        "layout": [
+            {"x": 95, "y": 64, "flags": 2},
+            {"x": 52, "y": 64, "flags": 2},
+            {"x": 86, "y": 40, "flags": 2},
+            {"x": 52, "y": 40, "flags": 2},
+            {"x": 9, "y": 40, "flags": 2},
+            {"x": 9, "y": 8, "flags": 2},
+            {"x": 52, "y": 8, "flags": 2},
+            {"x": 86, "y": 8, "flags": 2},
+            {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4},
+            {"matrix": [4, 4], "x": 103, "y": 64, "flags": 4},
+            {"matrix": [4, 3], "x": 86, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 69, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 52, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 34, "y": 64, "flags": 4},
+            {"x": 129, "y": 64, "flags": 2},
+            {"x": 172, "y": 64, "flags": 2},
+            {"x": 138, "y": 40, "flags": 2},
+            {"x": 172, "y": 40, "flags": 2},
+            {"x": 215, "y": 40, "flags": 2},
+            {"x": 215, "y": 8, "flags": 2},
+            {"x": 172, "y": 8, "flags": 2},
+            {"x": 138, "y": 8, "flags": 2},
+            {"matrix": [5, 5], "x": 138, "y": 0, "flags": 4},
+            {"matrix": [5, 4], "x": 155, "y": 0, "flags": 4},
+            {"matrix": [5, 3], "x": 172, "y": 0, "flags": 4},
+            {"matrix": [5, 2], "x": 190, "y": 0, "flags": 4},
+            {"matrix": [5, 1], "x": 207, "y": 0, "flags": 4},
+            {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [6, 1], "x": 207, "y": 16, "flags": 4},
+            {"matrix": [6, 2], "x": 190, "y": 16, "flags": 4},
+            {"matrix": [6, 3], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [6, 4], "x": 155, "y": 16, "flags": 4},
+            {"matrix": [6, 5], "x": 138, "y": 16, "flags": 4},
+            {"matrix": [7, 5], "x": 138, "y": 32, "flags": 4},
+            {"matrix": [7, 4], "x": 155, "y": 32, "flags": 4},
+            {"matrix": [7, 3], "x": 172, "y": 32, "flags": 4},
+            {"matrix": [7, 2], "x": 190, "y": 32, "flags": 4},
+            {"matrix": [7, 1], "x": 207, "y": 32, "flags": 4},
+            {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4},
+            {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [8, 1], "x": 207, "y": 48, "flags": 4},
+            {"matrix": [8, 2], "x": 190, "y": 48, "flags": 4},
+            {"matrix": [8, 3], "x": 172, "y": 48, "flags": 4},
+            {"matrix": [8, 4], "x": 155, "y": 48, "flags": 4},
+            {"matrix": [8, 5], "x": 138, "y": 48, "flags": 4},
+            {"matrix": [9, 4], "x": 121, "y": 64, "flags": 4},
+            {"matrix": [9, 3], "x": 138, "y": 64, "flags": 4},
+            {"matrix": [9, 2], "x": 155, "y": 64, "flags": 4},
+            {"matrix": [9, 1], "x": 172, "y": 64, "flags": 4},
+            {"matrix": [9, 0], "x": 190, "y": 64, "flags": 4}
+        ],
         "split_count": [37, 37]
     },
     "encoder": {

+ 0 - 103
keyboards/junco/rev1/rev1.c

@@ -21,106 +21,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
     {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}}
 };
 #endif
-
-/* RGB LED matrix */
-#ifdef RGB_MATRIX_ENABLE
-/*
-    Key Matrix Physical
-    L00, L01, L02, L03, L04, L05,           R00, R01, R02, R03, R04, R05,
-    L10, L11, L12, L13, L14, L15,           R10, R11, R12, R13, R14, R15,
-    L20, L21, L22, L23, L24, L25,           R20, R21, R22, R23, R24, R25,
-    L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35,
-              L40, L41, L42, L43, L44, R42, R41, R43, R44, R45
-
-    Key Electrical
-    Left:
-    { L00, L01, L02, L03, L04, L05 },
-    { L10, L11, L12, L13, L14, L15 },
-    { L20, L21, L22, L23, L24, L25 },
-    { L30, L31, L32, L33, L34, L35 },
-    { L40, L41, L42, L43, L44, L45 },
-    Right:
-    { R05, R04, R03, R02, R01, R00 },
-    { R15, R14, R13, R12, R11, R10 },
-    { R25, R24, R23, R22, R21, R20 },
-    { R35, R34, R33, R32, R31, R30 },
-    { R45, R44, R43, R42, R41, R40 }
-
-    Key matrix physical filled with LED electrical indexes, count starting at 1
-
-    Col
-    0  1  2  3  4  5  6     7  8  9  10 11 12 13    Row
-
-    14 13 12 11 10 9           46 47 48 49 50 51    0
-      6      7     8           45    44      43
-    15 16 17 18 19 20          57 56 55 54 53 52    1
-
-    26 25 24 23 22 21          58 59 60 61 62 63    2
-      5      4     3           40    41      42
-    27 28 29 30 31 32 NO    NO 69 68 67 66 65 64    3
-
-          37 36 35 34 33    70 71 72 73 74          4
-             2       1        38     39
-*/
-
-// clang-format off
-led_config_t g_led_config = {
-    {	// Key Electrical Matrix to LED Index (count start at 0, so 8 is the first non-underglow key)
-
-        // Left Half
-        { 13, 12, 11, 10,  9,      8 },
-        { 14, 15, 16, 17, 18,     19 },
-        { 25, 24, 23, 22, 21,     20 },
-        { 26, 27, 28, 29, 30,     31 },
-        { 36, 35, 34, 33, 32, NO_LED },
-
-        // Right Half
-        { 50, 49, 48, 47, 46,     45 },
-        { 51, 52, 53, 54, 55,     56 },
-        { 62, 61, 60, 59, 58,     57 },
-        { 63, 64, 65, 66, 67,     68 },
-        { 73, 72, 71, 70, 69, NO_LED }
-    },
-    {	// LED Index to LED Physical Position (mirrored on right half)
-
-        // Left Underglow (indicies 1 - 8)
-        { 95, 72 }, { 52, 72 }, { 86, 40 }, { 52, 40 }, { 9, 40 }, { 9, 8 }, { 52, 8 }, { 86, 8 },
-        // Left Matrix (indicies 9 - 37)
-        { 86,  0 }, { 69,  0 }, {  52,  0 }, { 34,  0 }, { 17,  0 }, {  0,  0 },
-        {  0, 16 }, { 17, 16 }, {  34, 16 }, { 52, 16 }, { 69, 16 }, { 86, 16 },
-        { 86, 32 }, { 69, 32 }, {  52, 32 }, { 34, 32 }, { 17, 32 }, {  0, 32 },
-        {  0, 48 }, { 17, 48 }, {  34, 48 }, { 52, 48 }, { 69, 48 }, { 86, 48 }, /* No Led */
-                                { 103, 64 }, { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 },
-
-        // Right Underglow (indicies 38 - 45)
-        { 129, 72 }, { 172, 72 }, { 138, 40 }, { 172, 40 }, { 215, 40 }, { 215, 8 }, { 172, 8 }, { 138, 8 },
-        // Right Matrix (indicies 46 - 74)
-                     { 138,  0 }, { 155,  0 }, { 172,  0 }, { 190,  0 }, { 207,  0 }, { 224,  0 },
-                     { 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 },
-                     { 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 },
-        /* No Led */ { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 },
-        { 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }
-    },
-    {	// LED Index to Flag (2 - Underglow, 4 - Key Backlight)
-
-        // Left Underglow
-        2, 2, 2, 2, 2, 2, 2, 2,
-        // Left Matrix
-        4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4, 4,
-              4, 4, 4, 4, 4,
-
-        // Right Underglow
-        2, 2, 2, 2, 2, 2, 2, 2,
-        // Right Matrix
-           4, 4, 4, 4, 4, 4,
-           4, 4, 4, 4, 4, 4,
-           4, 4, 4, 4, 4, 4,
-           4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4
-    }
-};
-
-#endif

+ 90 - 0
keyboards/kapl/rev1/keyboard.json

@@ -35,6 +35,96 @@
       "solid_multisplash": true
     },
     "driver": "ws2812",
+    "layout": [
+        {"x": 96, "y": 57, "flags": 2},
+        {"x": 112, "y": 44, "flags": 2},
+        {"x": 112, "y": 19, "flags": 2},
+        {"x": 80, "y": 19, "flags": 2},
+        {"x": 48, "y": 19, "flags": 2},
+        {"x": 16, "y": 19, "flags": 2},
+        {"x": 16, "y": 57, "flags": 2},
+        {"x": 48, "y": 57, "flags": 2},
+        {"x": 80, "y": 57, "flags": 2},
+        {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+        {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
+        {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
+        {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
+        {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
+        {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
+        {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1},
+        {"matrix": [1, 6], "x": 103, "y": 16, "flags": 1},
+        {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4},
+        {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4},
+        {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+        {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
+        {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4},
+        {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
+        {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
+        {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4},
+        {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4},
+        {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
+        {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4},
+        {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+        {"matrix": [2, 6], "x": 103, "y": 32, "flags": 1},
+        {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1},
+        {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4},
+        {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
+        {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
+        {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
+        {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4},
+        {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
+        {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
+        {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1},
+        {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1},
+        {"matrix": [4, 3], "x": 52, "y": 64, "flags": 1},
+        {"matrix": [4, 4], "x": 69, "y": 64, "flags": 1},
+        {"matrix": [4, 5], "x": 86, "y": 64, "flags": 1},
+        {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1},
+        {"x": 144, "y": 57, "flags": 2},
+        {"x": 128, "y": 44, "flags": 2},
+        {"x": 128, "y": 19, "flags": 2},
+        {"x": 160, "y": 19, "flags": 2},
+        {"x": 192, "y": 19, "flags": 2},
+        {"x": 224, "y": 19, "flags": 2},
+        {"x": 224, "y": 57, "flags": 2},
+        {"x": 192, "y": 57, "flags": 2},
+        {"x": 160, "y": 57, "flags": 2},
+        {"matrix": [5, 0], "x": 224, "y": 0, "flags": 1},
+        {"matrix": [5, 1], "x": 207, "y": 0, "flags": 4},
+        {"matrix": [5, 2], "x": 190, "y": 0, "flags": 4},
+        {"matrix": [5, 3], "x": 172, "y": 0, "flags": 4},
+        {"matrix": [5, 4], "x": 155, "y": 0, "flags": 4},
+        {"matrix": [5, 5], "x": 138, "y": 0, "flags": 4},
+        {"matrix": [5, 6], "x": 121, "y": 0, "flags": 1},
+        {"matrix": [6, 6], "x": 121, "y": 16, "flags": 1},
+        {"matrix": [6, 5], "x": 138, "y": 16, "flags": 4},
+        {"matrix": [6, 4], "x": 155, "y": 16, "flags": 4},
+        {"matrix": [6, 3], "x": 172, "y": 16, "flags": 4},
+        {"matrix": [6, 2], "x": 190, "y": 16, "flags": 4},
+        {"matrix": [6, 1], "x": 207, "y": 16, "flags": 4},
+        {"matrix": [6, 0], "x": 224, "y": 16, "flags": 1},
+        {"matrix": [7, 0], "x": 224, "y": 32, "flags": 1},
+        {"matrix": [7, 1], "x": 207, "y": 32, "flags": 4},
+        {"matrix": [7, 2], "x": 190, "y": 32, "flags": 4},
+        {"matrix": [7, 3], "x": 172, "y": 32, "flags": 4},
+        {"matrix": [7, 4], "x": 155, "y": 32, "flags": 4},
+        {"matrix": [7, 5], "x": 138, "y": 32, "flags": 4},
+        {"matrix": [7, 6], "x": 121, "y": 32, "flags": 1},
+        {"matrix": [8, 6], "x": 121, "y": 48, "flags": 1},
+        {"matrix": [8, 5], "x": 138, "y": 48, "flags": 4},
+        {"matrix": [8, 4], "x": 155, "y": 48, "flags": 4},
+        {"matrix": [8, 3], "x": 172, "y": 48, "flags": 4},
+        {"matrix": [8, 2], "x": 190, "y": 48, "flags": 4},
+        {"matrix": [8, 1], "x": 207, "y": 48, "flags": 4},
+        {"matrix": [8, 0], "x": 224, "y": 48, "flags": 1},
+        {"matrix": [9, 0], "x": 224, "y": 64, "flags": 1},
+        {"matrix": [9, 1], "x": 207, "y": 64, "flags": 1},
+        {"matrix": [9, 2], "x": 190, "y": 64, "flags": 1},
+        {"matrix": [9, 3], "x": 172, "y": 64, "flags": 1},
+        {"matrix": [9, 4], "x": 155, "y": 64, "flags": 1},
+        {"matrix": [9, 5], "x": 138, "y": 64, "flags": 1},
+        {"matrix": [9, 6], "x": 121, "y": 64, "flags": 1}
+    ],
     "max_brightness": 120,
     "speed_steps": 10,
     "split_count": [44, 44]

+ 0 - 55
keyboards/kapl/rev1/rev1.c

@@ -1,55 +0,0 @@
-// Copyright 2022 Alexander Lozyuk (@keyzog)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    // Left Hand
-    // { 8,  7,  6,  5,  4,  3,  2,  1,  0 }, // underglow
-    {  9, 10, 11, 12, 13, 14, 15 },
-    { 22, 21, 20, 19, 18, 17, 16 },
-    { 23, 24, 25, 26, 27, 28, 29 },
-    { 36, 35, 34, 33, 32, 31, 30 },
-    { 37, 38, 39, 40, 41, 42, 43 },
-
-    // Right Hand
-    // { 44,  45,  46,  47,  48,  49,  50,  51,  52 }, // underglow
-    { 53, 54, 55, 56, 57, 58, 59 },
-    { 66, 65, 64, 63, 62, 61, 60 },
-    { 67, 68, 69, 70, 71, 72, 73 },
-    { 80, 79, 78, 77, 76, 75, 74 },
-    { 81, 82, 83, 84, 85, 86, 87 }
-}, {
-    // Left Hand
-    {96, 57},  {112, 44}, {112, 19}, {80, 19}, {48, 19}, {16, 19}, {16, 57}, {48, 57}, {80, 57}, // underglow
-    {0, 0},    {17, 0},   {34, 0},   {52, 0},  {69, 0},  {86, 0},  {103, 0},
-    {103, 16}, {86, 16},  {69, 16},  {52, 16}, {34, 16}, {17, 16}, {0, 16},
-    {0, 32},   {17, 32},  {34, 32},  {52, 32}, {69, 32}, {86, 32}, {103, 32},
-    {103, 48}, {86, 48},  {69, 48},  {52, 48}, {34, 48}, {17, 48}, {0, 48},
-    {0, 64},   {17, 64},  {34, 64},  {52, 64}, {69, 64}, {86, 64}, {103, 64},
-
-    // Right Hand
-    {144, 57}, {128, 44}, {128, 19}, {160, 19}, {192, 19}, {224, 19}, {224, 57}, {192, 57}, {160, 57}, // underglow
-    {224, 0},  {207, 0},  {190, 0},  {172, 0},  {155, 0},  {138, 0},  {121, 0},
-    {121, 16}, {138, 16}, {155, 16}, {172, 16}, {190, 16}, {207, 16}, {224, 16},
-    {224, 32}, {207, 32}, {190, 32}, {172, 32}, {155, 32}, {138, 32}, {121, 32},
-    {121, 48}, {138, 48}, {155, 48}, {172, 48}, {190, 48}, {207, 48}, {224, 48},
-    {224, 64}, {207, 64}, {190, 64}, {172, 64}, {155, 64}, {138, 64}, {121, 64}
-}, {
-    // Left Hand
-    2, 2, 2, 2, 2, 2, 2, 2, 2, // underglow
-    1, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 1, 1, 1, 1,
-
-    // Right Hand
-    2, 2, 2, 2, 2, 2, 2, 2, 2, // underglow
-    1, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 1, 1, 1, 1
-} };
-#endif

+ 68 - 0
keyboards/kbdfans/baguette66/rgb/keyboard.json

@@ -58,6 +58,74 @@
             "animation": "cycle_all"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4},
+            {"matrix": [2, 14], "x": 210, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4},
+            {"matrix": [3, 13], "x": 220, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 205, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 187, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 8], "x": 152, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 171, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "max_brightness": 150,
         "sat_steps": 8,
         "sleep": true,

+ 0 - 20
keyboards/kbdfans/baguette66/rgb/rgb.c

@@ -17,26 +17,6 @@
 #include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    {  0,  1,  2,  3,  4,  5,  6,  7,   8,  9,  10, 11,    12,    13,  15 },
-    {  30, 29, 28, 27, 26, 25, 24, 23,  22, 21, 20, 19,    18,    17,  16 },
-    {  31, 32, 33, 34, 35, 36, 37, 38,  39, 40, 41, 42,    43,NO_LED,  14 },
-    {  57, 56, 55, 54, 53, 52, 51, 50,  49, 48, 47, 46,    45,    44, NO_LED},
-    {  NO_LED, 58, 59, NO_LED, NO_LED,  60, NO_LED, NO_LED,  61,  NO_LED,  62,  NO_LED,  63, 64,  65 }
-}, {
-    {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{195,0}, {210,0},{224,0},
-    {224,16}, {206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16},{68,16},{53,16},{38,16},{23,16},{4,16},
-    {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},
-    {220,48},{205,48},{187,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48},
-    {21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,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,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 1, 1, 1
-} };
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 96 - 0
keyboards/kbdfans/bella/rgb/keyboard.json

@@ -54,6 +54,102 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 44, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 59, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 73, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 140, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 161, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 176, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 191, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 206, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
+            {"matrix": [1, 1], "x": 15, "y": 17, "flags": 4},
+            {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4},
+            {"matrix": [1, 3], "x": 44, "y": 17, "flags": 4},
+            {"matrix": [1, 4], "x": 59, "y": 17, "flags": 4},
+            {"matrix": [1, 5], "x": 73, "y": 17, "flags": 4},
+            {"matrix": [1, 6], "x": 88, "y": 17, "flags": 4},
+            {"matrix": [1, 7], "x": 102, "y": 17, "flags": 4},
+            {"matrix": [1, 8], "x": 117, "y": 17, "flags": 4},
+            {"matrix": [1, 9], "x": 132, "y": 17, "flags": 4},
+            {"matrix": [1, 10], "x": 147, "y": 17, "flags": 4},
+            {"matrix": [1, 11], "x": 161, "y": 17, "flags": 4},
+            {"matrix": [1, 12], "x": 176, "y": 17, "flags": 4},
+            {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4},
+            {"matrix": [1, 15], "x": 224, "y": 17, "flags": 4},
+            {"matrix": [2, 0], "x": 4, "y": 29, "flags": 4},
+            {"matrix": [2, 1], "x": 22, "y": 29, "flags": 4},
+            {"matrix": [2, 2], "x": 37, "y": 29, "flags": 4},
+            {"matrix": [2, 3], "x": 51, "y": 29, "flags": 4},
+            {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4},
+            {"matrix": [2, 5], "x": 81, "y": 29, "flags": 4},
+            {"matrix": [2, 6], "x": 95, "y": 29, "flags": 4},
+            {"matrix": [2, 7], "x": 110, "y": 29, "flags": 4},
+            {"matrix": [2, 8], "x": 125, "y": 29, "flags": 4},
+            {"matrix": [2, 9], "x": 140, "y": 29, "flags": 4},
+            {"matrix": [2, 10], "x": 154, "y": 29, "flags": 4},
+            {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4},
+            {"matrix": [2, 12], "x": 184, "y": 29, "flags": 4},
+            {"matrix": [2, 13], "x": 202, "y": 29, "flags": 4},
+            {"matrix": [2, 15], "x": 224, "y": 29, "flags": 4},
+            {"matrix": [3, 0], "x": 5, "y": 41, "flags": 4},
+            {"matrix": [3, 1], "x": 26, "y": 41, "flags": 4},
+            {"matrix": [3, 2], "x": 40, "y": 41, "flags": 4},
+            {"matrix": [3, 3], "x": 55, "y": 41, "flags": 4},
+            {"matrix": [3, 4], "x": 70, "y": 41, "flags": 4},
+            {"matrix": [3, 5], "x": 84, "y": 41, "flags": 4},
+            {"matrix": [3, 6], "x": 99, "y": 41, "flags": 4},
+            {"matrix": [3, 7], "x": 114, "y": 41, "flags": 4},
+            {"matrix": [3, 8], "x": 129, "y": 41, "flags": 4},
+            {"matrix": [3, 9], "x": 143, "y": 41, "flags": 4},
+            {"matrix": [3, 10], "x": 158, "y": 41, "flags": 4},
+            {"matrix": [3, 11], "x": 172, "y": 41, "flags": 4},
+            {"matrix": [3, 13], "x": 196, "y": 41, "flags": 4},
+            {"matrix": [3, 15], "x": 224, "y": 41, "flags": 4},
+            {"matrix": [4, 0], "x": 9, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4},
+            {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4},
+            {"matrix": [4, 12], "x": 185, "y": 52, "flags": 4},
+            {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
+            {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4},
+            {"matrix": [5, 1], "x": 20, "y": 64, "flags": 4},
+            {"matrix": [5, 2], "x": 38, "y": 64, "flags": 4},
+            {"matrix": [5, 6], "x": 94, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 150, "y": 64, "flags": 4},
+            {"matrix": [5, 11], "x": 172, "y": 64, "flags": 4},
+            {"matrix": [5, 12], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
+            {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1},
+            {"x": 0, "y": 0, "flags": 2},
+            {"x": 45, "y": 0, "flags": 2},
+            {"x": 90, "y": 0, "flags": 2},
+            {"x": 134, "y": 0, "flags": 2},
+            {"x": 179, "y": 0, "flags": 2},
+            {"x": 224, "y": 0, "flags": 2},
+            {"x": 0, "y": 32, "flags": 2},
+            {"x": 224, "y": 32, "flags": 2},
+            {"x": 0, "y": 64, "flags": 2},
+            {"x": 45, "y": 64, "flags": 2},
+            {"x": 90, "y": 64, "flags": 2},
+            {"x": 134, "y": 64, "flags": 2},
+            {"x": 179, "y": 64, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 0 - 30
keyboards/kbdfans/bella/rgb/rgb.c

@@ -118,36 +118,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW4_CS3, SW4_CS2, SW4_CS1},    /* RGB40 */
 };
 
-led_config_t g_led_config = {
-	{
-		/* C0     C1      C2      C3      C4      C5      C6      C7      C8      C9       C10      C11     C12     C13      C14     C15*/
-		{  0,     NO_LED,  1,      2,      3,     4,       5,      6,      7,      8,      NO_LED,  9,      10,      11,     12,     13,     }, /* R0 */
-		{ 14,     15,     16,     17,     18,     19,     20,     21,     22,      23,     24,      25,     26,      NO_LED, 27,     28,     }, /* R1 */
-		{ 29,     30,     31,     32,     33,     34,     35,     36,     37,      38,     39,      40,     41,      42,     NO_LED, 43,     }, /* R2 */
-		{ 44,     45,     46,     47,     48,     49,     50,     51,     52,      53,     54,      55,     NO_LED,  56,     NO_LED, 57,     }, /* R3 */
-		{ 58,     NO_LED, 59,     60,     61,     62,     63,     64,     65,      66,     67,      68,     69,      NO_LED, 70,     NO_LED, }, /* R4 */
-		{ 71,     72,     73,     NO_LED, NO_LED, NO_LED, 74,     NO_LED, NO_LED, NO_LED,  75,      76,     77,      NO_LED, 78,     79,     }, /* R5 */
-    }, {
-        {0,  0},  {29,  0},  {44,  0}, {59,  0}, {73,  0}, {95,  0}, {110,  0}, {125,  0}, {140,  0}, {161,  0}, {176,  0}, {191,  0}, {206,  0}, {224,  0},
-	{0, 17},  {15, 17},  {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17},
-	{4, 29},  {22, 29},  {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {202, 29}, {224, 29},
-	{5, 41},  {26, 41},  {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {196, 41}, {224, 41},
-	{9, 52},  {33, 52},  {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52},
-	{2, 64},  {20, 64},  {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64},
-	{0, 0},  {45, 0},  {90, 0}, {134, 0}, {179, 0}, {224, 0},
-	{0, 32}, {224,32},
-	{0, 64},  {45, 64},  {90, 64}, {134, 64}, {179, 64}, {224, 64},
-	}, {
-    4,1,1,1,1,1,1,1,1,1,1,1,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,
-	4,4,4,4,4,4,4,4,4,4,4,4,1,
-	4,4,4,4,4,4,1,1,1,
-	2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-	}
-};
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 97 - 0
keyboards/kbdfans/bella/rgb_iso/keyboard.json

@@ -54,6 +54,103 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 44, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 59, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 73, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 140, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 161, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 176, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 191, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 206, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
+            {"matrix": [1, 1], "x": 15, "y": 17, "flags": 4},
+            {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4},
+            {"matrix": [1, 3], "x": 44, "y": 17, "flags": 4},
+            {"matrix": [1, 4], "x": 59, "y": 17, "flags": 4},
+            {"matrix": [1, 5], "x": 73, "y": 17, "flags": 4},
+            {"matrix": [1, 6], "x": 88, "y": 17, "flags": 4},
+            {"matrix": [1, 7], "x": 102, "y": 17, "flags": 4},
+            {"matrix": [1, 8], "x": 117, "y": 17, "flags": 4},
+            {"matrix": [1, 9], "x": 132, "y": 17, "flags": 4},
+            {"matrix": [1, 10], "x": 147, "y": 17, "flags": 4},
+            {"matrix": [1, 11], "x": 161, "y": 17, "flags": 4},
+            {"matrix": [1, 12], "x": 176, "y": 17, "flags": 4},
+            {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4},
+            {"matrix": [1, 15], "x": 224, "y": 17, "flags": 4},
+            {"matrix": [2, 0], "x": 4, "y": 29, "flags": 4},
+            {"matrix": [2, 1], "x": 22, "y": 29, "flags": 4},
+            {"matrix": [2, 2], "x": 37, "y": 29, "flags": 4},
+            {"matrix": [2, 3], "x": 51, "y": 29, "flags": 4},
+            {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4},
+            {"matrix": [2, 5], "x": 81, "y": 29, "flags": 4},
+            {"matrix": [2, 6], "x": 95, "y": 29, "flags": 4},
+            {"matrix": [2, 7], "x": 110, "y": 29, "flags": 4},
+            {"matrix": [2, 8], "x": 125, "y": 29, "flags": 4},
+            {"matrix": [2, 9], "x": 140, "y": 29, "flags": 4},
+            {"matrix": [2, 10], "x": 154, "y": 29, "flags": 4},
+            {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4},
+            {"matrix": [2, 12], "x": 184, "y": 29, "flags": 4},
+            {"matrix": [3, 13], "x": 200, "y": 35, "flags": 4},
+            {"matrix": [2, 15], "x": 224, "y": 29, "flags": 4},
+            {"matrix": [3, 0], "x": 5, "y": 41, "flags": 4},
+            {"matrix": [3, 1], "x": 26, "y": 41, "flags": 4},
+            {"matrix": [3, 2], "x": 40, "y": 41, "flags": 4},
+            {"matrix": [3, 3], "x": 55, "y": 41, "flags": 4},
+            {"matrix": [3, 4], "x": 70, "y": 41, "flags": 4},
+            {"matrix": [3, 5], "x": 84, "y": 41, "flags": 4},
+            {"matrix": [3, 6], "x": 99, "y": 41, "flags": 4},
+            {"matrix": [3, 7], "x": 114, "y": 41, "flags": 4},
+            {"matrix": [3, 8], "x": 129, "y": 41, "flags": 4},
+            {"matrix": [3, 9], "x": 143, "y": 41, "flags": 4},
+            {"matrix": [3, 10], "x": 158, "y": 41, "flags": 4},
+            {"matrix": [3, 11], "x": 172, "y": 41, "flags": 4},
+            {"matrix": [2, 13], "x": 187, "y": 41, "flags": 4},
+            {"matrix": [3, 15], "x": 224, "y": 41, "flags": 4},
+            {"matrix": [4, 0], "x": 2, "y": 52, "flags": 4},
+            {"matrix": [4, 1], "x": 18, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4},
+            {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4},
+            {"matrix": [4, 12], "x": 185, "y": 52, "flags": 4},
+            {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
+            {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4},
+            {"matrix": [5, 1], "x": 20, "y": 64, "flags": 4},
+            {"matrix": [5, 2], "x": 38, "y": 64, "flags": 4},
+            {"matrix": [5, 6], "x": 94, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 150, "y": 64, "flags": 4},
+            {"matrix": [5, 11], "x": 172, "y": 64, "flags": 4},
+            {"matrix": [5, 12], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
+            {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1},
+            {"x": 0, "y": 0, "flags": 2},
+            {"x": 45, "y": 0, "flags": 2},
+            {"x": 90, "y": 0, "flags": 2},
+            {"x": 134, "y": 0, "flags": 2},
+            {"x": 179, "y": 0, "flags": 2},
+            {"x": 224, "y": 0, "flags": 2},
+            {"x": 0, "y": 32, "flags": 2},
+            {"x": 224, "y": 32, "flags": 2},
+            {"x": 0, "y": 64, "flags": 2},
+            {"x": 45, "y": 64, "flags": 2},
+            {"x": 90, "y": 64, "flags": 2},
+            {"x": 134, "y": 64, "flags": 2},
+            {"x": 179, "y": 64, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 0 - 30
keyboards/kbdfans/bella/rgb_iso/rgb_iso.c

@@ -119,36 +119,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW4_CS3, SW4_CS2, SW4_CS1},    /* RGB40 */
 };
 
-led_config_t g_led_config = {
-	{
-		/* C0     C1      C2      C3      C4      C5      C6      C7      C8      C9       C10      C11     C12     C13      C14     C15*/
-		{  0,     NO_LED,  1,      2,      3,     4,       5,      6,      7,      8,      NO_LED,  9,      10,      11,     12,     13,     }, /* R0 */
-		{ 14,     15,     16,     17,     18,     19,     20,     21,     22,      23,     24,      25,     26,      NO_LED, 27,     28,     }, /* R1 */
-		{ 29,     30,     31,     32,     33,     34,     35,     36,     37,      38,     39,      40,     41,      56,     NO_LED, 43,     }, /* R2 */
-		{ 44,     45,     46,     47,     48,     49,     50,     51,     52,      53,     54,      55,     NO_LED,  42,     NO_LED, 57,     }, /* R3 */
-		{ 58,     59,     60,     61,     62,     63,     64,     65,     66,      67,     68,      69,     70,      NO_LED, 71,     NO_LED, }, /* R4 */
-		{ 72,     73,     74,     NO_LED, NO_LED, NO_LED, 75,     NO_LED, NO_LED, NO_LED,  76,      77,     78,      NO_LED, 79,     80,     }, /* R5 */
-    }, {
-    {0,  0},  {29,  0},  {44,  0}, {59,  0}, {73,  0}, {95,  0}, {110,  0}, {125,  0}, {140,  0}, {161,  0}, {176,  0}, {191,  0}, {206,  0}, {224,  0},
-	{0, 17},  {15, 17},  {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17},
-	{4, 29},  {22, 29},  {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {200, 35}, {224, 29},
-	{5, 41},  {26, 41},  {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {187, 41}, {224, 41},
-	{2, 52},  {18, 52},  {33, 52},  {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52},
-	{2, 64},  {20, 64},  {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64},
-	{0, 0},  {45, 0},  {90, 0}, {134, 0}, {179, 0}, {224, 0},
-	{0, 32}, {224,32},
-	{0, 64},  {45, 64},  {90, 64}, {134, 64}, {179, 64}, {224, 64},
-	}, {
-    4,1,1,1,1,1,1,1,1,1,1,1,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,
-	4,4,4,4,4,4,4,4,4,4,4,4,4,1,
-	4,4,4,4,4,4,1,1,1,
-	2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-	}
-};
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 85 - 0
keyboards/kbdfans/boop65/rgb/keyboard.json

@@ -56,6 +56,91 @@
       "animation": "cycle_all"
     },
     "driver": "is31fl3741",
+    "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+        {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+        {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+        {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+        {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+        {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+        {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+        {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+        {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+        {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+        {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+        {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+        {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+        {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
+        {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+        {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+        {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
+        {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
+        {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
+        {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
+        {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
+        {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+        {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
+        {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+        {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+        {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
+        {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
+        {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
+        {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+        {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+        {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+        {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+        {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+        {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+        {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+        {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+        {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+        {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+        {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+        {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+        {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+        {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+        {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
+        {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+        {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
+        {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
+        {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
+        {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+        {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
+        {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
+        {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
+        {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
+        {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
+        {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
+        {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
+        {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
+        {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+        {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+        {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+        {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
+        {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
+        {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
+        {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1},
+        {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
+        {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+        {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
+        {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
+        {"x": 0, "y": 8, "flags": 2},
+        {"x": 32, "y": 8, "flags": 2},
+        {"x": 64, "y": 8, "flags": 2},
+        {"x": 96, "y": 8, "flags": 2},
+        {"x": 128, "y": 8, "flags": 2},
+        {"x": 160, "y": 8, "flags": 2},
+        {"x": 192, "y": 8, "flags": 2},
+        {"x": 224, "y": 8, "flags": 2},
+        {"x": 0, "y": 56, "flags": 2},
+        {"x": 32, "y": 56, "flags": 2},
+        {"x": 64, "y": 56, "flags": 2},
+        {"x": 96, "y": 56, "flags": 2},
+        {"x": 128, "y": 56, "flags": 2},
+        {"x": 160, "y": 56, "flags": 2},
+        {"x": 192, "y": 56, "flags": 2},
+        {"x": 224, "y": 56, "flags": 2}
+    ],
     "led_flush_limit": 26,
     "led_process_limit": 4,
     "max_brightness": 200,

+ 0 - 23
keyboards/kbdfans/boop65/rgb/rgb.c

@@ -112,29 +112,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW6_CS39, SW6_CS38, SW6_CS37}
 
 };
-led_config_t g_led_config = { {
-    {  0,  1,  2,  3,  4,  5,  6,  7,   8,  9,  10,  11, 12,    13,  14 },
-    {  15, 16, 17, 18, 19, 20, 21, 22,  23, 24, 25,  26, 27,    28,  29 },
-    {  30, 31, 32, 33, 34, 35, 36, 37,  38, 39, 40,  41, NO_LED,42,  43 },
-    {  44, 45, 46, 47, 48, 49, 50, 51,  52, 53, 54,  55, NO_LED,56,  57 },
-    {  58, 59, 60, NO_LED, NO_LED,  61, NO_LED, NO_LED,  62,  NO_LED,  63,  64, NO_LED,  65,  66 }
-}, {
-    {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
-	{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
-	{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
-	{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
-	{2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64},
-	{0,8},{32,8},{64,8},{96,8},{128,8},{160,8},{192,8},{224,8},
-	{0,56},{32,56},{64,56},{96,56},{128,56},{160,56},{192,56},{224,56}
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 4, 1, 1, 1, 1, 1,
-	2, 2, 2, 2, 2, 2, 2, 2,
-	2, 2, 2, 2, 2, 2, 2, 2
-} };
 
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {

+ 69 - 0
keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json

@@ -37,6 +37,75 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3731",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "max_brightness": 200,

+ 0 - 4
keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c

@@ -92,10 +92,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
 
 };
 
-led_config_t g_led_config = {{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, {15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43}, {44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57}, {58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66}},
-                             {{0, 0}, {15, 0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {203, 0}, {224, 0}, {4, 16}, {23, 16}, {38, 16}, {53, 16}, {68, 16}, {83, 16}, {98, 16}, {113, 16}, {128, 16}, {143, 16}, {158, 16}, {173, 16}, {188, 16}, {206, 16}, {224, 16}, {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {224, 32}, {9, 48}, {34, 48}, {49, 48}, {64, 48}, {79, 48}, {94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {210, 48}, {224, 48}, {2, 64}, {21, 64}, {39, 64}, {96, 64}, {152, 64}, {171, 64}, {195, 64}, {210, 64}, {224, 64}},
-                             {1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1}};
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 69 - 0
keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json

@@ -35,6 +35,75 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3731",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 0 - 21
keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c

@@ -92,27 +92,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
 
 };
 
-led_config_t g_led_config = { {
-    {  0,  1,  2,  3,  4,  5,  6,  7,   8,  9,  10,  11, 12,    13,  14 },
-    {  15, 16, 17, 18, 19, 20, 21, 22,  23, 24, 25,  26, 27,    28,  29 },
-    {  30, 31, 32, 33, 34, 35, 36, 37,  38, 39, 40,  41, NO_LED,42,  43 },
-    {  44, 45, 46, 47, 48, 49, 50, 51,  52, 53, 54,  55, NO_LED,56,  57 },
-    {  58, 59, 60, NO_LED, NO_LED,  61, NO_LED, NO_LED,  62,  NO_LED,  63,  64, NO_LED,  65,  66 }
-}, {
-    {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
-    {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
-    {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
-    {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
-    {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 4, 1, 1, 1, 1, 1
-} };
-
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 69 - 0
keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json

@@ -37,6 +37,75 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 200, "y": 32, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 108, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 95, "y": 64, "flags": 4},
+            {"matrix": [4, 8], "x": 151, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 170, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 194, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "val_steps": 8,
         "led_flush_limit": 26,
         "led_process_limit": 4,

+ 0 - 26
keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c

@@ -94,33 +94,7 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
 
 };
 
-#define __ NO_LED
 #define CAPS_LOCK_LED_INDEX 30
-
-led_config_t g_led_config = { {
-    // Key Matrix to LED Index
-    {  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14 },
-    {  15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
-    {  30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, __, 42, 43 },
-    {  44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 },
-    {  58, 59, 60, __, __, 61, __, __, 62, __, 63, 64, __, 65, 66 }
-}, {
-    // LED Index to Physical Position
-    // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb
-    {0, 0},  {15, 0},  {30, 0},  {45, 0},  {60, 0},  {75, 0},  {90, 0},   {105, 0},  {119, 0},  {134, 0},  {149, 0},  {164, 0},  {179, 0},  {202, 0},  {224, 0},
-    {4, 16}, {22, 16}, {37, 16}, {52, 16}, {67, 16}, {82, 16}, {97, 16},  {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {205, 16}, {224, 16},
-    {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {175, 32},            {200, 32}, {224, 32},
-    {9, 48}, {34, 48}, {49, 48}, {63, 48}, {78, 48}, {93, 48}, {108, 48}, {123, 48}, {138, 48}, {153, 48}, {168, 48}, {189, 48},            {209, 48}, {224, 48},
-    {2, 64}, {21, 64}, {39, 64},                     {95, 64},                       {151, 64},            {170, 64}, {194, 64},            {209, 64}, {224, 64}
-}, {
-    // LED Index to Flag
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    4, 1,  // caps lock is also an indicator so mask is `0x01 | 0x08`
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    4, 1,
-    1, 1, 1,       4,       1,    1, 1,    1, 1
-} };
-
 #endif
 
 #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)

+ 69 - 0
keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json

@@ -52,6 +52,75 @@
             "animation": "cycle_all"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "max_brightness": 150,
         "sat_steps": 8,
         "val_steps": 8,

+ 0 - 22
keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c

@@ -17,28 +17,6 @@
 #include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
-
-led_config_t g_led_config = {
-{
-    {  0,  1,  2,  3,  4,      5,  6,      7,       8,      9,  10,  11, 12,    13,  14 },
-    {  29, 28, 27, 26, 25,     24, 23,     22,      21,     20, 19,  18, 17,    16,  15 },
-    {  30, 31, 32, 33, 34,     35, 36,     37,      38,     39, 40,  41, 42,NO_LED,  43 },
-    {  57, 56, 55, 54, 53,     52, 51,     50,      49,     48, 47,  46, NO_LED,45,  44 },
-    {  58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED,  NO_LED, 62,  63,  64, NO_LED,65,  66 }
-}, {
-    {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
-    {224,16},{206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16},
-    {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
-    {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48},
-    {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 4, 1, 1, 1, 1, 1
-} };
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 70 - 0
keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json

@@ -40,6 +40,76 @@
             "animation": "cycle_all"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 191, "y": 32, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 24, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [4, 3], "x": 21, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "sat_steps": 8,
         "val_steps": 8,
         "speed_steps": 10,

+ 0 - 22
keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c

@@ -17,28 +17,6 @@
 #include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = {
-{
-    {  0,  1,  2,  3,  4,      5,  6,      7,       8,      9,  10,  11, 12,    13,  14 },
-    {  28, 27, 26, 25, 24,     23, 22,     21,      20,     19, 18,  17, 16,    42,  15 },
-    {  29, 30, 31, 32, 33,     34, 35,     36,      37,     38, 39,  40, 41,NO_LED,  43 },
-    {  58, 56, 55, 54, 53,     52, 51,     50,      49,     48, 47,  46, NO_LED,45,  44 },
-    {  59, 60, 61, 57, NO_LED, 62, NO_LED, NO_LED,  NO_LED, 63, 64,  65, NO_LED,66,  67 }
-}, {
-    {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
-    {224,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16},
-    {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{191,32},{206,24},{224,32},
-    {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{21,48},{2,48},
-    {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 4, 1, 1, 1, 1, 1
-} };
-
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 0 - 23
keyboards/kbdfans/kbd75rgb/kbd75rgb.c

@@ -17,29 +17,6 @@
 #include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    {  0,  1,  2,  3,      4,      5,  6,      7,       8, 9,  10, 11, 12, 13,    15},
-    {  30, 29, 28, 27,     26,     25, 24,     23,     22, 21, 20, 19, 18, 17,    16},
-    {  31, 32, 33, 34,     35,     36, 37,     38,     39, 40, 41, 42, 43, 44,    45},
-    {  59, 58, 57, 56,     55,     54, 53,     52,     51, 50, 49, 48, 14, 47,    46},
-    {  60, 61, 62, 63,     64,     65, 66,     67,     68, 69, 70, 71, NO_LED,72, 73},
-    {  83, 82, 81, NO_LED, NO_LED, 80, NO_LED, NO_LED, 79, 78, 77, 76, NO_LED,75 ,74}
-}, {
-    {0, 0},   {15, 0},  {30, 0},{45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0},  {195, 0}, {210, 0}, {224, 0},
-    {224, 12}, {218, 12},{192, 12},{176, 12},{160, 12},{144, 12},{128, 12},{112, 12},{96, 12},{80, 12},{64, 12},{48, 12},{32, 12},{16, 12},{0, 12},
-    {0, 25},{16, 25}, {32, 25}, {48, 25},  {64, 25},  {80, 25},  {96, 25},  {112, 25}, {128, 25}, {144, 25}, {160, 25},{176, 25}, {192, 25},   {218, 25}, {224, 25},
-{224, 38},{200, 38},{176, 38},{160, 38},{144, 38},{128, 38},{112, 38},{96, 38},{80, 38},{64, 38},{48, 38},{32, 38},{16, 38},{0, 38},
-    {0, 51},{16, 51}, {32, 51}, {48, 51},  {64, 51},  {80, 51},  {96, 51},  {112, 51}, {128, 51}, {144, 51}, {160, 51},   {189, 51}, {218, 51},   {224, 51},
-{224, 64},{218, 64},{192, 64},{176, 64},{160, 64},{144, 64}, {80, 64}, {32, 64},{16, 64},{0, 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,1,4,1,1,1,4,4,4,
-4,4,4,4
-} };
-
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 86 - 0
keyboards/kbdfans/kbd75rgb/keyboard.json

@@ -58,6 +58,92 @@
             "animation": "cycle_all"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4},
+            {"matrix": [3, 12], "x": 210, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 12, "flags": 4},
+            {"matrix": [1, 13], "x": 218, "y": 12, "flags": 4},
+            {"matrix": [1, 12], "x": 192, "y": 12, "flags": 4},
+            {"matrix": [1, 11], "x": 176, "y": 12, "flags": 4},
+            {"matrix": [1, 10], "x": 160, "y": 12, "flags": 4},
+            {"matrix": [1, 9], "x": 144, "y": 12, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 12, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 12, "flags": 4},
+            {"matrix": [1, 6], "x": 96, "y": 12, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 12, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 12, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 12, "flags": 4},
+            {"matrix": [1, 2], "x": 32, "y": 12, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 12, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 25, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 25, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 25, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 25, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 25, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 25, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 25, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 25, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 25, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 25, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 25, "flags": 4},
+            {"matrix": [2, 12], "x": 192, "y": 25, "flags": 4},
+            {"matrix": [2, 13], "x": 218, "y": 25, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 25, "flags": 4},
+            {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4},
+            {"matrix": [3, 13], "x": 200, "y": 38, "flags": 4},
+            {"matrix": [3, 11], "x": 176, "y": 38, "flags": 4},
+            {"matrix": [3, 10], "x": 160, "y": 38, "flags": 4},
+            {"matrix": [3, 9], "x": 144, "y": 38, "flags": 4},
+            {"matrix": [3, 8], "x": 128, "y": 38, "flags": 4},
+            {"matrix": [3, 7], "x": 112, "y": 38, "flags": 4},
+            {"matrix": [3, 6], "x": 96, "y": 38, "flags": 4},
+            {"matrix": [3, 5], "x": 80, "y": 38, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 38, "flags": 4},
+            {"matrix": [3, 3], "x": 48, "y": 38, "flags": 4},
+            {"matrix": [3, 2], "x": 32, "y": 38, "flags": 4},
+            {"matrix": [3, 1], "x": 16, "y": 38, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
+            {"matrix": [4, 1], "x": 16, "y": 51, "flags": 4},
+            {"matrix": [4, 2], "x": 32, "y": 51, "flags": 4},
+            {"matrix": [4, 3], "x": 48, "y": 51, "flags": 4},
+            {"matrix": [4, 4], "x": 64, "y": 51, "flags": 4},
+            {"matrix": [4, 5], "x": 80, "y": 51, "flags": 4},
+            {"matrix": [4, 6], "x": 96, "y": 51, "flags": 4},
+            {"matrix": [4, 7], "x": 112, "y": 51, "flags": 4},
+            {"matrix": [4, 8], "x": 128, "y": 51, "flags": 4},
+            {"matrix": [4, 9], "x": 144, "y": 51, "flags": 4},
+            {"matrix": [4, 10], "x": 160, "y": 51, "flags": 4},
+            {"matrix": [4, 11], "x": 189, "y": 51, "flags": 4},
+            {"matrix": [4, 13], "x": 218, "y": 51, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 51, "flags": 4},
+            {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1},
+            {"matrix": [5, 13], "x": 218, "y": 64, "flags": 1},
+            {"matrix": [5, 11], "x": 192, "y": 64, "flags": 1},
+            {"matrix": [5, 10], "x": 176, "y": 64, "flags": 4},
+            {"matrix": [5, 9], "x": 160, "y": 64, "flags": 4},
+            {"matrix": [5, 8], "x": 144, "y": 64, "flags": 4},
+            {"matrix": [5, 5], "x": 80, "y": 64, "flags": 4},
+            {"matrix": [5, 2], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [5, 1], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}
+        ],
         "sat_steps": 8,
         "val_steps": 8,
         "speed_steps": 10,

+ 0 - 19
keyboards/kbdfans/kbdmini/kbdmini.c

@@ -57,22 +57,3 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
     { 0, SW11_CS2,  SW10_CS2,  SW12_CS2  }, //LA8
     { 0, SW11_CS1,  SW10_CS1,  SW12_CS1  }  //LA4
 };
-
-led_config_t g_led_config = {
-    {
-        {  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12 },
-        { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 },
-        { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 },
-        { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 }
-    }, {
-        { 0,  0 }, { 19,  0 }, { 38,  0 }, { 57,  0 }, { 76,  0 }, { 95,  0 }, { 114,  0 }, { 133,  0 }, { 152,  0 }, { 171,  0 }, { 190,  0 }, { 209,  0 }, { 224,  0 },
-        { 0, 21 }, { 19, 21 }, { 38, 21 }, { 57, 21 }, { 76, 21 }, { 95, 21 }, { 114, 21 }, { 133, 21 }, { 152, 21 }, { 171, 21 }, { 190, 21 }, { 209, 21 }, { 224, 21 },
-        { 0, 42 }, { 19, 42 }, { 38, 42 }, { 57, 42 }, { 76, 42 }, { 95, 42 }, { 114, 42 }, { 133, 42 }, { 152, 42 }, { 171, 42 }, { 190, 42 }, { 209, 42 }, { 224, 42 },
-        { 0, 64 }, { 19, 64 }, { 38, 64 }, { 57, 64 }, { 76, 64 }, { 95, 64 }, { 114, 64 }, { 133, 64 }, { 152, 64 }, { 171, 64 }, { 190, 64 }, { 209, 64 }, { 224, 64 }
-    }, {
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
-    }
-};

+ 54 - 0
keyboards/kbdfans/kbdmini/keyboard.json

@@ -37,6 +37,60 @@
             "typing_heatmap": true
         },
         "driver": "is31fl3733",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 38, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 57, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 76, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 95, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 114, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 133, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 152, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 171, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 190, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 209, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
+            {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4},
+            {"matrix": [1, 2], "x": 38, "y": 21, "flags": 4},
+            {"matrix": [1, 3], "x": 57, "y": 21, "flags": 4},
+            {"matrix": [1, 4], "x": 76, "y": 21, "flags": 4},
+            {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4},
+            {"matrix": [1, 6], "x": 114, "y": 21, "flags": 4},
+            {"matrix": [1, 7], "x": 133, "y": 21, "flags": 4},
+            {"matrix": [1, 8], "x": 152, "y": 21, "flags": 4},
+            {"matrix": [1, 9], "x": 171, "y": 21, "flags": 4},
+            {"matrix": [1, 10], "x": 190, "y": 21, "flags": 4},
+            {"matrix": [1, 11], "x": 209, "y": 21, "flags": 4},
+            {"matrix": [1, 12], "x": 224, "y": 21, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
+            {"matrix": [2, 1], "x": 19, "y": 42, "flags": 4},
+            {"matrix": [2, 2], "x": 38, "y": 42, "flags": 4},
+            {"matrix": [2, 3], "x": 57, "y": 42, "flags": 4},
+            {"matrix": [2, 4], "x": 76, "y": 42, "flags": 4},
+            {"matrix": [2, 5], "x": 95, "y": 42, "flags": 4},
+            {"matrix": [2, 6], "x": 114, "y": 42, "flags": 4},
+            {"matrix": [2, 7], "x": 133, "y": 42, "flags": 4},
+            {"matrix": [2, 8], "x": 152, "y": 42, "flags": 4},
+            {"matrix": [2, 9], "x": 171, "y": 42, "flags": 4},
+            {"matrix": [2, 10], "x": 190, "y": 42, "flags": 4},
+            {"matrix": [2, 11], "x": 209, "y": 42, "flags": 4},
+            {"matrix": [2, 12], "x": 224, "y": 42, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [3, 1], "x": 19, "y": 64, "flags": 1},
+            {"matrix": [3, 2], "x": 38, "y": 64, "flags": 1},
+            {"matrix": [3, 3], "x": 57, "y": 64, "flags": 1},
+            {"matrix": [3, 4], "x": 76, "y": 64, "flags": 1},
+            {"matrix": [3, 5], "x": 95, "y": 64, "flags": 1},
+            {"matrix": [3, 6], "x": 114, "y": 64, "flags": 1},
+            {"matrix": [3, 7], "x": 133, "y": 64, "flags": 1},
+            {"matrix": [3, 8], "x": 152, "y": 64, "flags": 1},
+            {"matrix": [3, 9], "x": 171, "y": 64, "flags": 1},
+            {"matrix": [3, 10], "x": 190, "y": 64, "flags": 1},
+            {"matrix": [3, 11], "x": 209, "y": 64, "flags": 1},
+            {"matrix": [3, 12], "x": 224, "y": 64, "flags": 1}
+        ],
         "sleep": true
     },
     "features": {

+ 69 - 0
keyboards/kbdfans/maja/keyboard.json

@@ -40,6 +40,75 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3731",
+        "layout": [
+            {"matrix": [0, 0], "x": 4, "y": 1, "flags": 1},
+            {"matrix": [0, 1], "x": 18, "y": 1, "flags": 4},
+            {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 46, "y": 3, "flags": 4},
+            {"matrix": [0, 4], "x": 59, "y": 5, "flags": 4},
+            {"matrix": [0, 5], "x": 73, "y": 7, "flags": 4},
+            {"matrix": [0, 6], "x": 86, "y": 10, "flags": 4},
+            {"matrix": [0, 7], "x": 107, "y": 9, "flags": 4},
+            {"matrix": [0, 8], "x": 121, "y": 7, "flags": 4},
+            {"matrix": [0, 9], "x": 134, "y": 4, "flags": 4},
+            {"matrix": [0, 10], "x": 148, "y": 2, "flags": 4},
+            {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 176, "y": 2, "flags": 4},
+            {"matrix": [0, 13], "x": 196, "y": 2, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 5, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 50, "y": 17, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 20, "flags": 4},
+            {"matrix": [1, 5], "x": 77, "y": 22, "flags": 4},
+            {"matrix": [1, 6], "x": 103, "y": 23, "flags": 4},
+            {"matrix": [1, 7], "x": 117, "y": 21, "flags": 4},
+            {"matrix": [1, 8], "x": 130, "y": 19, "flags": 4},
+            {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 158, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 202, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 4, "y": 28, "flags": 4},
+            {"matrix": [2, 1], "x": 23, "y": 28, "flags": 4},
+            {"matrix": [2, 2], "x": 38, "y": 29, "flags": 4},
+            {"matrix": [2, 3], "x": 51, "y": 31, "flags": 4},
+            {"matrix": [2, 4], "x": 65, "y": 34, "flags": 4},
+            {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4},
+            {"matrix": [2, 6], "x": 109, "y": 36, "flags": 4},
+            {"matrix": [2, 7], "x": 122, "y": 34, "flags": 4},
+            {"matrix": [2, 8], "x": 136, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 150, "y": 29, "flags": 4},
+            {"matrix": [2, 10], "x": 164, "y": 29, "flags": 4},
+            {"matrix": [2, 11], "x": 177, "y": 29, "flags": 4},
+            {"matrix": [2, 13], "x": 200, "y": 29, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 29, "flags": 4},
+            {"matrix": [3, 0], "x": 5, "y": 42, "flags": 4},
+            {"matrix": [3, 1], "x": 27, "y": 42, "flags": 4},
+            {"matrix": [3, 2], "x": 42, "y": 43, "flags": 4},
+            {"matrix": [3, 3], "x": 55, "y": 46, "flags": 4},
+            {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 82, "y": 51, "flags": 4},
+            {"matrix": [3, 6], "x": 104, "y": 51, "flags": 4},
+            {"matrix": [3, 7], "x": 118, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 131, "y": 46, "flags": 4},
+            {"matrix": [3, 9], "x": 145, "y": 44, "flags": 4},
+            {"matrix": [3, 10], "x": 159, "y": 43, "flags": 4},
+            {"matrix": [3, 11], "x": 173, "y": 43, "flags": 4},
+            {"matrix": [3, 12], "x": 192, "y": 43, "flags": 4},
+            {"matrix": [3, 13], "x": 214, "y": 46, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 55, "flags": 4},
+            {"matrix": [4, 2], "x": 40, "y": 58, "flags": 4},
+            {"matrix": [4, 3], "x": 62, "y": 61, "flags": 4},
+            {"matrix": [4, 5], "x": 86, "y": 64, "flags": 1},
+            {"matrix": [4, 7], "x": 119, "y": 62, "flags": 4},
+            {"matrix": [4, 9], "x": 147, "y": 58, "flags": 4},
+            {"matrix": [4, 12], "x": 201, "y": 60, "flags": 1},
+            {"matrix": [4, 13], "x": 214, "y": 60, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 60, "flags": 1}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 0 - 20
keyboards/kbdfans/maja/maja.c

@@ -74,26 +74,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {1, C8_16, C7_16, C6_16} // LD17
 };
 
-led_config_t g_led_config = { {
-    {  0,   1,      2,   3,   4,      5,   6,      7,   8,      9,   10,     11,     12,     13,  14},
-    {  15,  16,     17,  18,  19,     20,  21,     22,  23,     24,  25,     26,     27,     28,  29,},
-    {  30,  31,     32,  33,  34,     35,  36,     37,  38,     39,  40,     41,     NO_LED, 42,  43},
-    {  44,  45,     46,  47,  48,     49,  50,     51,  52,     53,  54,     55,     56,     57,  NO_LED},
-	{  58,  NO_LED, 59,  60,  NO_LED, 61,  NO_LED, 62,  NO_LED, 63,  NO_LED, NO_LED, 64,     65,  66}
-}, {
-    {4,1},{18,1},{31,0},{46,3},{59,5},{73,7},{86,10},{107,9},{121,7},{134,4},{148,2},{162,0},{176,2},{196,2},{224,0},
-	{5,15},{22,15},{37,15},{50,17},{64,20},{77,22},{103,23},{117,21},{130,19},{143,16},{158,15},{171,16},{186,16},{202,16},{224,16},
-	{4,28},{23,28},{38,29},{51,31},{65,34},{78,36},{109,36},{122,34},{136,32},{150,29},{164,29},{177,29},{200,29},{224,29},
-	{5,42},{27,42},{42,43},{55,46},{69,48},{82,51},{104,51},{118,48},{131,46},{145,44},{159,43},{173,43},{192,43},{214,46},
-	{0,55},{40,58},{62,61},{86,64},{119,62},{147,58},{201,60},{214,60},{224,60}
-}, {
-    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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-	4, 4, 4, 1, 4, 4, 1, 1, 1
-} };
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 106 - 0
keyboards/kbdfans/odin/rgb/keyboard.json

@@ -59,6 +59,112 @@
             "animation": "cycle_all"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 156, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 168, "y": 0, "flags": 4},
+            {"matrix": [0, 15], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 16], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 17], "x": 204, "y": 0, "flags": 4},
+            {"matrix": [0, 18], "x": 216, "y": 0, "flags": 4},
+            {"matrix": [0, 19], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 19], "x": 224, "y": 14, "flags": 4},
+            {"matrix": [1, 18], "x": 216, "y": 14, "flags": 4},
+            {"matrix": [1, 17], "x": 204, "y": 14, "flags": 4},
+            {"matrix": [1, 16], "x": 192, "y": 14, "flags": 4},
+            {"matrix": [1, 15], "x": 180, "y": 14, "flags": 4},
+            {"matrix": [1, 13], "x": 156, "y": 14, "flags": 4},
+            {"matrix": [1, 12], "x": 144, "y": 14, "flags": 4},
+            {"matrix": [1, 11], "x": 132, "y": 14, "flags": 4},
+            {"matrix": [1, 10], "x": 120, "y": 14, "flags": 4},
+            {"matrix": [1, 9], "x": 108, "y": 14, "flags": 4},
+            {"matrix": [1, 8], "x": 96, "y": 14, "flags": 4},
+            {"matrix": [1, 7], "x": 84, "y": 14, "flags": 4},
+            {"matrix": [1, 6], "x": 72, "y": 14, "flags": 4},
+            {"matrix": [1, 5], "x": 60, "y": 14, "flags": 4},
+            {"matrix": [1, 4], "x": 48, "y": 14, "flags": 4},
+            {"matrix": [1, 3], "x": 36, "y": 14, "flags": 4},
+            {"matrix": [1, 2], "x": 24, "y": 14, "flags": 4},
+            {"matrix": [1, 1], "x": 12, "y": 14, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 14, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 27, "flags": 4},
+            {"matrix": [2, 1], "x": 12, "y": 27, "flags": 4},
+            {"matrix": [2, 2], "x": 24, "y": 27, "flags": 4},
+            {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
+            {"matrix": [2, 4], "x": 48, "y": 27, "flags": 4},
+            {"matrix": [2, 5], "x": 60, "y": 27, "flags": 4},
+            {"matrix": [2, 6], "x": 72, "y": 27, "flags": 4},
+            {"matrix": [2, 7], "x": 84, "y": 27, "flags": 4},
+            {"matrix": [2, 8], "x": 96, "y": 27, "flags": 4},
+            {"matrix": [2, 9], "x": 108, "y": 27, "flags": 4},
+            {"matrix": [2, 10], "x": 120, "y": 27, "flags": 4},
+            {"matrix": [2, 11], "x": 132, "y": 27, "flags": 4},
+            {"matrix": [2, 12], "x": 144, "y": 27, "flags": 4},
+            {"matrix": [2, 13], "x": 156, "y": 27, "flags": 4},
+            {"matrix": [2, 15], "x": 180, "y": 27, "flags": 4},
+            {"matrix": [2, 16], "x": 192, "y": 27, "flags": 4},
+            {"matrix": [2, 17], "x": 204, "y": 27, "flags": 4},
+            {"matrix": [2, 18], "x": 216, "y": 27, "flags": 4},
+            {"matrix": [2, 19], "x": 224, "y": 33, "flags": 4},
+            {"matrix": [3, 18], "x": 216, "y": 40, "flags": 4},
+            {"matrix": [3, 17], "x": 204, "y": 40, "flags": 4},
+            {"matrix": [3, 16], "x": 192, "y": 40, "flags": 4},
+            {"x": 224, "y": 0, "flags": 4},
+            {"x": 0, "y": 0, "flags": 4},
+            {"x": 0, "y": 64, "flags": 4},
+            {"x": 224, "y": 64, "flags": 4},
+            {"matrix": [3, 13], "x": 156, "y": 40, "flags": 4},
+            {"matrix": [3, 11], "x": 132, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 120, "y": 40, "flags": 4},
+            {"matrix": [3, 9], "x": 108, "y": 40, "flags": 4},
+            {"matrix": [3, 8], "x": 96, "y": 40, "flags": 4},
+            {"matrix": [3, 7], "x": 84, "y": 40, "flags": 4},
+            {"matrix": [3, 6], "x": 72, "y": 40, "flags": 4},
+            {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
+            {"matrix": [3, 4], "x": 48, "y": 40, "flags": 4},
+            {"matrix": [3, 3], "x": 36, "y": 40, "flags": 4},
+            {"matrix": [3, 2], "x": 24, "y": 40, "flags": 4},
+            {"matrix": [3, 1], "x": 12, "y": 40, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 40, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 24, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 36, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 48, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 60, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 72, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 84, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 96, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 108, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 120, "y": 52, "flags": 4},
+            {"matrix": [4, 11], "x": 132, "y": 52, "flags": 4},
+            {"matrix": [4, 13], "x": 156, "y": 52, "flags": 4},
+            {"matrix": [4, 15], "x": 180, "y": 52, "flags": 4},
+            {"matrix": [4, 16], "x": 192, "y": 52, "flags": 4},
+            {"matrix": [4, 17], "x": 204, "y": 52, "flags": 4},
+            {"matrix": [4, 18], "x": 216, "y": 52, "flags": 4},
+            {"matrix": [4, 19], "x": 224, "y": 58, "flags": 4},
+            {"matrix": [5, 18], "x": 216, "y": 64, "flags": 4},
+            {"matrix": [5, 17], "x": 204, "y": 64, "flags": 4},
+            {"matrix": [5, 16], "x": 192, "y": 64, "flags": 4},
+            {"matrix": [5, 15], "x": 180, "y": 64, "flags": 4},
+            {"matrix": [5, 14], "x": 168, "y": 64, "flags": 4},
+            {"matrix": [5, 13], "x": 156, "y": 64, "flags": 4},
+            {"matrix": [5, 11], "x": 132, "y": 64, "flags": 4},
+            {"matrix": [5, 6], "x": 72, "y": 64, "flags": 4},
+            {"matrix": [5, 2], "x": 24, "y": 64, "flags": 4},
+            {"matrix": [5, 1], "x": 12, "y": 64, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}
+        ],
         "max_brightness": 150,
         "sleep": true
     },

+ 0 - 25
keyboards/kbdfans/odin/rgb/rgb.c

@@ -16,31 +16,6 @@
 #include "quantum.h"
 
 #ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = {
-    {
-        { 0,   NO_LED,   1,      2,      3,      4, NO_LED,      5,      6,      7,      8,  9,     10, 11,     12,     13, 14, 15, 16,     17 },
-        { 36,      35,  34,     33,     32,     31,     30,     29,     28,     27,     26, 25,     24, 23, NO_LED,     22, 21, 20, 19,     18 },
-        { 37,      38,  39,     40,     41,     42,     43,     44,     45,     46,     47, 48,     49, 50, NO_LED,     51, 52, 53, 54,     55 },
-        { 75,      74,  73,     72,     71,     70,     69,     68,     67,     66,     65, 64, NO_LED, 63, NO_LED, NO_LED, 58, 57, 56, NO_LED },
-        { 76,  NO_LED,  77,     78,     79,     80,     81,     82,     83,     84,     85, 86, NO_LED, 87, NO_LED,     88, 89, 90, 91,     92 },
-        { 103,    102, 101, NO_LED, NO_LED, NO_LED,    100, NO_LED, NO_LED, NO_LED, NO_LED, 99, NO_LED, 98,     97,     96, 95, 94, 93, NO_LED }
-    }, {
-        {   0,  0 }, {  24,  0 }, {  36,  0 }, {  48,  0 }, {  60,  0 }, {  84,  0 }, {  96,  0 }, { 108,  0 }, { 120,  0 }, { 132,  0 }, { 144,  0 }, { 156,  0 }, { 168,  0 }, { 180,  0 }, { 192,  0 }, { 204,  0 }, { 216,  0 }, { 224,  0 },
-        { 224, 14 }, { 216, 14 }, { 204, 14 }, { 192, 14 }, { 180, 14 }, { 156, 14 }, { 144, 14 }, { 132, 14 }, { 120, 14 }, { 108, 14 }, { 96,  14 }, {  84, 14 }, {  72, 14 }, {  60, 14 }, {  48, 14 }, {  36, 14 }, {  24, 14 }, { 12,  14 }, {   0, 14 },
-        {   0, 27 }, {  12, 27 }, {  24, 27 }, {  36, 27 }, {  48, 27 }, {  60, 27 }, {  72, 27 }, {  84, 27 }, {  96, 27 }, { 108, 27 }, { 120, 27 }, { 132, 27 }, { 144, 27 }, { 156, 27 }, { 180, 27 }, { 192, 27 }, { 204, 27 }, { 216, 27 }, { 224, 33 },
-        { 216, 40 }, { 204, 40 }, { 192, 40 }, { 224,  0 }, {   0,  0 }, {   0, 64 }, { 224, 64 }, { 156, 40 }, { 132, 40 }, { 120, 40 }, { 108, 40 }, {  96, 40 }, {  84, 40 }, {  72, 40 }, {  60, 40 }, {  48, 40 }, {  36, 40 }, {  24, 40 }, {  12, 40 }, {   0, 40 },
-        {   0, 52 }, {  24, 52 }, {  36, 52 }, {  48, 52 }, {  60, 52 }, {  72, 52 }, { 84,  52 }, {  96, 52 }, { 108, 52 }, { 120, 52 }, { 132, 52 }, { 156, 52 }, { 180, 52 }, { 192, 52 }, { 204, 52 }, { 216, 52 }, { 224, 58 },
-        { 216, 64 }, { 204, 64 }, { 192, 64 }, { 180, 64 }, { 168, 64 }, { 156, 64 }, { 132, 64 }, {  72, 64 }, {  24, 64 }, { 12,  64 }, {   0, 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
-    }
-};
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;