Browse Source

Migrate `g_led_config` to DD (TUW) (#25625)

Jack Sangdahl 10 months ago
parent
commit
6c96bb5a5a

+ 0 - 51
keyboards/teleport/native/ansi/ansi.c

@@ -1,51 +0,0 @@
-/* Copyright 2021 Moritz Plattner
- *
- * 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, LED 61 omitted on ANSI
-    { 0,      2,      4,      6,      8,      10,     12,     14     },
-    { 1,      3,      5,      7,      9,      11,     13,     15     },
-    { 16,     18,     20,     22,     24,     26,     28,     NO_LED },
-    { 17,     19,     21,     23,     25,     27,     29,     30     },
-    { 31,     32,     34,     36,     38,     40,     42,     44     },
-    { NO_LED, 33,     35,     37,     39,     41,     43,     45     },
-    { 46,     48,     50,     52,     54,     56,     NO_LED, 58     },
-    { 47,     49,     51,     53,     55,     57,     NO_LED, 59     },
-    { 60,     62,     64,     66,     68,     70,     NO_LED, 73     },
-    { NO_LED, 63,     65,     67,     69,     71,     72,     74     },
-    { 75,     78,     NO_LED, NO_LED, NO_LED, 79,     81,     83     },
-    { 76,     77,     NO_LED, NO_LED, NO_LED, 80,     82,     84     }
-}, {
-    // LED Index to Physical Position, the LED at { 0,0 } in row 5 is there to catch a non-existing LED on ANSI
-    {  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  }, {194,0  }, {209,0  }, {224,0  }, 
-    {  0,13 }, { 15,13 }, { 30,13 }, { 45,13 }, { 60,13 }, { 75,13 }, { 90,13 }, {105,13 }, {119,13 }, {134,13 }, {149,13 }, {164,13 }, {179,13 },            {202,13 }, {224,13 }, 
-    {  4,26 },            { 22,26 }, { 37,26 }, { 52,26 }, { 67,26 }, { 82,26 }, { 97,26 }, {112,26 }, {127,26 }, {142,26 }, {157,26 }, {172,26 }, {187,26 }, {205,26 }, {224,26 }, 
-    {  6,38 },            { 26,38 }, { 41,38 }, { 56,38 }, { 71,38 }, { 86,38 }, {101,38 }, {116,38 }, {131,38 }, {146,38 }, {161,38 }, {175,38 }, {200,38 },            {224,38 }, 
-    {  9,51 }, {  0,0  }, { 34,51 }, { 49,51 }, { 63,51 }, { 78,51 }, { 93,51 }, {108,51 }, {123,51 }, {138,51 }, {153,51 }, {168,51 },            {189,51 }, {209,51 }, {224,51 }, 
-    {  2,64 }, { 21,64 }, { 39,64 },                                  { 95,64 },                                  {149,64 }, {164,64 }, {179,64 }, {194,64 }, {209,64 }, {224,64 }
-}, {
-    // LED Index to Flag, the 0 flag in row 5 is there to catch a non-existing LED on ANSI
-    1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1,
-    1,    4,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-    9,   12,12,12, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1,
-    1, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 4, 1,
-    1, 9, 1,          4,          1, 1, 1, 4, 4, 4,
-} };
-#endif

+ 89 - 0
keyboards/teleport/native/ansi/keyboard.json

@@ -2,6 +2,95 @@
     "usb": {
         "pid": "0x0003"
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [1, 1], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [1, 2], "x": 75, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 90, "y": 0, "flags": 1},
+            {"matrix": [1, 3], "x": 105, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 119, "y": 0, "flags": 1},
+            {"matrix": [1, 4], "x": 134, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 149, "y": 0, "flags": 4},
+            {"matrix": [1, 5], "x": 164, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 179, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 194, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 209, "y": 0, "flags": 1},
+            {"matrix": [1, 7], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 13, "flags": 4},
+            {"matrix": [3, 0], "x": 15, "y": 13, "flags": 4},
+            {"matrix": [2, 1], "x": 30, "y": 13, "flags": 4},
+            {"matrix": [3, 1], "x": 45, "y": 13, "flags": 4},
+            {"matrix": [2, 2], "x": 60, "y": 13, "flags": 4},
+            {"matrix": [3, 2], "x": 75, "y": 13, "flags": 4},
+            {"matrix": [2, 3], "x": 90, "y": 13, "flags": 4},
+            {"matrix": [3, 3], "x": 105, "y": 13, "flags": 4},
+            {"matrix": [2, 4], "x": 119, "y": 13, "flags": 4},
+            {"matrix": [3, 4], "x": 134, "y": 13, "flags": 4},
+            {"matrix": [2, 5], "x": 149, "y": 13, "flags": 4},
+            {"matrix": [3, 5], "x": 164, "y": 13, "flags": 4},
+            {"matrix": [2, 6], "x": 179, "y": 13, "flags": 4},
+            {"matrix": [3, 6], "x": 202, "y": 13, "flags": 1},
+            {"matrix": [3, 7], "x": 224, "y": 13, "flags": 1},
+            {"matrix": [4, 0], "x": 4, "y": 26, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 26, "flags": 4},
+            {"matrix": [5, 1], "x": 37, "y": 26, "flags": 12},
+            {"matrix": [4, 2], "x": 52, "y": 26, "flags": 4},
+            {"matrix": [5, 2], "x": 67, "y": 26, "flags": 4},
+            {"matrix": [4, 3], "x": 82, "y": 26, "flags": 4},
+            {"matrix": [5, 3], "x": 97, "y": 26, "flags": 4},
+            {"matrix": [4, 4], "x": 112, "y": 26, "flags": 4},
+            {"matrix": [5, 4], "x": 127, "y": 26, "flags": 4},
+            {"matrix": [4, 5], "x": 142, "y": 26, "flags": 4},
+            {"matrix": [5, 5], "x": 157, "y": 26, "flags": 4},
+            {"matrix": [4, 6], "x": 172, "y": 26, "flags": 4},
+            {"matrix": [5, 6], "x": 187, "y": 26, "flags": 4},
+            {"matrix": [4, 7], "x": 205, "y": 26, "flags": 1},
+            {"matrix": [5, 7], "x": 224, "y": 26, "flags": 1},
+            {"matrix": [6, 0], "x": 6, "y": 38, "flags": 9},
+            {"matrix": [7, 0], "x": 26, "y": 38, "flags": 12},
+            {"matrix": [6, 1], "x": 41, "y": 38, "flags": 12},
+            {"matrix": [7, 1], "x": 56, "y": 38, "flags": 12},
+            {"matrix": [6, 2], "x": 71, "y": 38, "flags": 4},
+            {"matrix": [7, 2], "x": 86, "y": 38, "flags": 4},
+            {"matrix": [6, 3], "x": 101, "y": 38, "flags": 4},
+            {"matrix": [7, 3], "x": 116, "y": 38, "flags": 4},
+            {"matrix": [6, 4], "x": 131, "y": 38, "flags": 4},
+            {"matrix": [7, 4], "x": 146, "y": 38, "flags": 4},
+            {"matrix": [6, 5], "x": 161, "y": 38, "flags": 4},
+            {"matrix": [7, 5], "x": 175, "y": 38, "flags": 4},
+            {"matrix": [6, 7], "x": 200, "y": 38, "flags": 1},
+            {"matrix": [7, 7], "x": 224, "y": 38, "flags": 1},
+            {"matrix": [8, 0], "x": 9, "y": 51, "flags": 1},
+            {"x": 0, "y": 0, "flags": 0},
+            {"matrix": [8, 1], "x": 34, "y": 51, "flags": 4},
+            {"matrix": [9, 1], "x": 49, "y": 51, "flags": 4},
+            {"matrix": [8, 2], "x": 63, "y": 51, "flags": 4},
+            {"matrix": [9, 2], "x": 78, "y": 51, "flags": 4},
+            {"matrix": [8, 3], "x": 93, "y": 51, "flags": 4},
+            {"matrix": [9, 3], "x": 108, "y": 51, "flags": 4},
+            {"matrix": [8, 4], "x": 123, "y": 51, "flags": 4},
+            {"matrix": [9, 4], "x": 138, "y": 51, "flags": 4},
+            {"matrix": [8, 5], "x": 153, "y": 51, "flags": 4},
+            {"matrix": [9, 5], "x": 168, "y": 51, "flags": 4},
+            {"matrix": [9, 6], "x": 189, "y": 51, "flags": 1},
+            {"matrix": [8, 7], "x": 209, "y": 51, "flags": 4},
+            {"matrix": [9, 7], "x": 224, "y": 51, "flags": 1},
+            {"matrix": [10, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [11, 0], "x": 21, "y": 64, "flags": 9},
+            {"matrix": [11, 1], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [10, 1], "x": 95, "y": 64, "flags": 4},
+            {"matrix": [10, 5], "x": 149, "y": 64, "flags": 1},
+            {"matrix": [11, 5], "x": 164, "y": 64, "flags": 1},
+            {"matrix": [10, 6], "x": 179, "y": 64, "flags": 1},
+            {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4},
+            {"matrix": [10, 7], "x": 209, "y": 64, "flags": 4},
+            {"matrix": [11, 7], "x": 224, "y": 64, "flags": 4}
+        ]
+    },
     "community_layouts": ["75_ansi"],
     "layouts": {
         "LAYOUT_75_ansi": {

+ 0 - 51
keyboards/teleport/native/iso/iso.c

@@ -1,51 +0,0 @@
-/* Copyright 2021 Moritz Plattner
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    // Key Matrix to LED Index
-    { 0,      2,      4,      6,      8,      10,     12,     14     },
-    { 1,      3,      5,      7,      9,      11,     13,     15     },
-    { 16,     18,     20,     22,     24,     26,     28,     NO_LED },
-    { 17,     19,     21,     23,     25,     27,     29,     30     },
-    { 31,     32,     34,     36,     38,     40,     42,     44     },
-    { NO_LED, 33,     35,     37,     39,     41,     43,     45     },
-    { 46,     48,     50,     52,     54,     56,     NO_LED, 58     },
-    { 47,     49,     51,     53,     55,     57,     NO_LED, 59     },
-    { 60,     62,     64,     66,     68,     70,     NO_LED, 73     },
-    { 61,     63,     65,     67,     69,     71,     72,     74     },
-    { 75,     78,     NO_LED, NO_LED, NO_LED, 79,     81,     83     },
-    { 76,     77,     NO_LED, NO_LED, NO_LED, 80,     82,     84     }
-}, {
-    // LED Index to Physical Position
-    {  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  }, {194,0  }, {209,0  }, {224,0  }, 
-    {  0,13 }, { 15,13 }, { 30,13 }, { 45,13 }, { 60,13 }, { 75,13 }, { 90,13 }, {105,13 }, {119,13 }, {134,13 }, {149,13 }, {164,13 }, {179,13 },            {202,13 }, {224,13 }, 
-    {  4,26 },            { 22,26 }, { 37,26 }, { 52,26 }, { 67,26 }, { 82,26 }, { 97,26 }, {112,26 }, {127,26 }, {142,26 }, {157,26 }, {172,26 }, {187,26 }, {207,32 }, {224,26 }, 
-    {  6,38 },            { 26,38 }, { 41,38 }, { 56,38 }, { 71,38 }, { 86,38 }, {101,38 }, {116,38 }, {131,38 }, {146,38 }, {161,38 }, {175,38 }, {190,38 },            {224,38 }, 
-    {  2,51 }, { 19,51 }, { 34,51 }, { 49,51 }, { 63,51 }, { 78,51 }, { 93,51 }, {108,51 }, {123,51 }, {138,51 }, {153,51 }, {168,51 },            {189,51 }, {209,51 }, {224,51 }, 
-    {  2,64 }, { 21,64 }, { 39,64 },                                  { 95,64 },                                  {149,64 }, {164,64 }, {179,64 }, {194,64 }, {209,64 }, {224,64 }
-}, {
-    // LED Index to Flag
-    1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1,
-    1,    4,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-    9,   12,12,12, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 4, 1,
-    1, 9, 1,          4,          1, 1, 1, 4, 4, 4,
-} };
-#endif

+ 89 - 0
keyboards/teleport/native/iso/keyboard.json

@@ -2,6 +2,95 @@
     "usb": {
         "pid": "0x0002"
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [1, 1], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [1, 2], "x": 75, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 90, "y": 0, "flags": 1},
+            {"matrix": [1, 3], "x": 105, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 119, "y": 0, "flags": 1},
+            {"matrix": [1, 4], "x": 134, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 149, "y": 0, "flags": 4},
+            {"matrix": [1, 5], "x": 164, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 179, "y": 0, "flags": 4},
+            {"matrix": [1, 6], "x": 194, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 209, "y": 0, "flags": 1},
+            {"matrix": [1, 7], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 13, "flags": 4},
+            {"matrix": [3, 0], "x": 15, "y": 13, "flags": 4},
+            {"matrix": [2, 1], "x": 30, "y": 13, "flags": 4},
+            {"matrix": [3, 1], "x": 45, "y": 13, "flags": 4},
+            {"matrix": [2, 2], "x": 60, "y": 13, "flags": 4},
+            {"matrix": [3, 2], "x": 75, "y": 13, "flags": 4},
+            {"matrix": [2, 3], "x": 90, "y": 13, "flags": 4},
+            {"matrix": [3, 3], "x": 105, "y": 13, "flags": 4},
+            {"matrix": [2, 4], "x": 119, "y": 13, "flags": 4},
+            {"matrix": [3, 4], "x": 134, "y": 13, "flags": 4},
+            {"matrix": [2, 5], "x": 149, "y": 13, "flags": 4},
+            {"matrix": [3, 5], "x": 164, "y": 13, "flags": 4},
+            {"matrix": [2, 6], "x": 179, "y": 13, "flags": 4},
+            {"matrix": [3, 6], "x": 202, "y": 13, "flags": 1},
+            {"matrix": [3, 7], "x": 224, "y": 13, "flags": 1},
+            {"matrix": [4, 0], "x": 4, "y": 26, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 26, "flags": 4},
+            {"matrix": [5, 1], "x": 37, "y": 26, "flags": 12},
+            {"matrix": [4, 2], "x": 52, "y": 26, "flags": 4},
+            {"matrix": [5, 2], "x": 67, "y": 26, "flags": 4},
+            {"matrix": [4, 3], "x": 82, "y": 26, "flags": 4},
+            {"matrix": [5, 3], "x": 97, "y": 26, "flags": 4},
+            {"matrix": [4, 4], "x": 112, "y": 26, "flags": 4},
+            {"matrix": [5, 4], "x": 127, "y": 26, "flags": 4},
+            {"matrix": [4, 5], "x": 142, "y": 26, "flags": 4},
+            {"matrix": [5, 5], "x": 157, "y": 26, "flags": 4},
+            {"matrix": [4, 6], "x": 172, "y": 26, "flags": 4},
+            {"matrix": [5, 6], "x": 187, "y": 26, "flags": 4},
+            {"matrix": [4, 7], "x": 207, "y": 32, "flags": 1},
+            {"matrix": [5, 7], "x": 224, "y": 26, "flags": 1},
+            {"matrix": [6, 0], "x": 6, "y": 38, "flags": 9},
+            {"matrix": [7, 0], "x": 26, "y": 38, "flags": 12},
+            {"matrix": [6, 1], "x": 41, "y": 38, "flags": 12},
+            {"matrix": [7, 1], "x": 56, "y": 38, "flags": 12},
+            {"matrix": [6, 2], "x": 71, "y": 38, "flags": 4},
+            {"matrix": [7, 2], "x": 86, "y": 38, "flags": 4},
+            {"matrix": [6, 3], "x": 101, "y": 38, "flags": 4},
+            {"matrix": [7, 3], "x": 116, "y": 38, "flags": 4},
+            {"matrix": [6, 4], "x": 131, "y": 38, "flags": 4},
+            {"matrix": [7, 4], "x": 146, "y": 38, "flags": 4},
+            {"matrix": [6, 5], "x": 161, "y": 38, "flags": 4},
+            {"matrix": [7, 5], "x": 175, "y": 38, "flags": 4},
+            {"matrix": [6, 7], "x": 190, "y": 38, "flags": 4},
+            {"matrix": [7, 7], "x": 224, "y": 38, "flags": 1},
+            {"matrix": [8, 0], "x": 2, "y": 51, "flags": 1},
+            {"matrix": [9, 0], "x": 19, "y": 51, "flags": 4},
+            {"matrix": [8, 1], "x": 34, "y": 51, "flags": 4},
+            {"matrix": [9, 1], "x": 49, "y": 51, "flags": 4},
+            {"matrix": [8, 2], "x": 63, "y": 51, "flags": 4},
+            {"matrix": [9, 2], "x": 78, "y": 51, "flags": 4},
+            {"matrix": [8, 3], "x": 93, "y": 51, "flags": 4},
+            {"matrix": [9, 3], "x": 108, "y": 51, "flags": 4},
+            {"matrix": [8, 4], "x": 123, "y": 51, "flags": 4},
+            {"matrix": [9, 4], "x": 138, "y": 51, "flags": 4},
+            {"matrix": [8, 5], "x": 153, "y": 51, "flags": 4},
+            {"matrix": [9, 5], "x": 168, "y": 51, "flags": 4},
+            {"matrix": [9, 6], "x": 189, "y": 51, "flags": 1},
+            {"matrix": [8, 7], "x": 209, "y": 51, "flags": 4},
+            {"matrix": [9, 7], "x": 224, "y": 51, "flags": 1},
+            {"matrix": [10, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [11, 0], "x": 21, "y": 64, "flags": 9},
+            {"matrix": [11, 1], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [10, 1], "x": 95, "y": 64, "flags": 4},
+            {"matrix": [10, 5], "x": 149, "y": 64, "flags": 1},
+            {"matrix": [11, 5], "x": 164, "y": 64, "flags": 1},
+            {"matrix": [10, 6], "x": 179, "y": 64, "flags": 1},
+            {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4},
+            {"matrix": [10, 7], "x": 209, "y": 64, "flags": 4},
+            {"matrix": [11, 7], "x": 224, "y": 64, "flags": 4}
+        ]
+    },
     "community_layouts": ["75_iso"],
     "layouts": {
         "LAYOUT_75_iso": {

+ 69 - 0
keyboards/tkc/portico/keyboard.json

@@ -44,6 +44,75 @@
             "typing_heatmap": true
         },
         "driver": "is31fl3731",
+        "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": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
+            {"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": 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": [2, 14], "x": 224, "y": 32, "flags": 4},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4},
+            {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 152, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 171, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 195, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 4},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "max_brightness": 200,

+ 0 - 22
keyboards/tkc/portico/portico.c

@@ -99,28 +99,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
 #endif
 
 #ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = {
-    {
-        {  0,      1,  2,      3,      4,      5,  6,      7,      8,      9, 10, 11, 12,     13, 14 },
-        { 15,     16, 17,     18,     19,     20, 21,     22,     23,     24, 25, 26, 27,     28, 29 },
-        { 30,     31, 32,     33,     34,     35, 36,     37,     38,     39, 40, 41, 42, NO_LED, 43 },
-        { 44, NO_LED, 45,     46,     47,     48, 49,     50,     51,     52, 53, 54, 55,     56, 57 },
-        { 58,     59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64,     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 }
-    }, {
-        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    4, 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;

+ 84 - 0
keyboards/tkc/portico68v2/keyboard.json

@@ -53,6 +53,90 @@
         },
         "center_point": [116, 32],
         "driver": "is31fl3741",
+        "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": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
+            {"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": 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": [2, 14], "x": 224, "y": 32, "flags": 4},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4},
+            {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 152, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 171, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 195, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 4},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
+            {"x": 0, "y": 0, "flags": 2},
+            {"x": 180, "y": 0, "flags": 2},
+            {"x": 224, "y": 0, "flags": 2},
+            {"x": 200, "y": 64, "flags": 2},
+            {"x": 224, "y": 64, "flags": 2},
+            {"x": 224, "y": 32, "flags": 2},
+            {"x": 44, "y": 0, "flags": 2},
+            {"x": 88, "y": 0, "flags": 2},
+            {"x": 136, "y": 0, "flags": 2},
+            {"x": 0, "y": 32, "flags": 2},
+            {"x": 0, "y": 64, "flags": 2},
+            {"x": 24, "y": 64, "flags": 2},
+            {"x": 78, "y": 64, "flags": 2},
+            {"x": 112, "y": 64, "flags": 2},
+            {"x": 146, "y": 64, "flags": 2}
+        ],
         "max_brightness": 175,
         "sleep": true
     },

+ 0 - 24
keyboards/tkc/portico68v2/portico68v2.c

@@ -104,30 +104,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0,SW6_CS39,SW6_CS38,SW6_CS37}, /* RGB82 */
 };
 
-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, NO_LED, 43 },
-        { 44, NO_LED, 45,     46,     47,     48, 49,     50,     51,     52, 53, 54, 55,     56, 57 },
-        { 58,     59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64,     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,0},{180,0},{224,0},{200,64},{224,64},{224,32},{44,0},{88,0},{136,0},{0,32},{0,64},{24,64},{78,64},{112,64},{146,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,
-        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()) {
         return false;

+ 100 - 0
keyboards/tkc/portico75/keyboard.json

@@ -42,6 +42,106 @@
             "hue_wave": true
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 62, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 110, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 125, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 143, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 158, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 173, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 187, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 205, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
+            {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
+            {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 74, "y": 15, "flags": 4},
+            {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
+            {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
+            {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
+            {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
+            {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4},
+            {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
+            {"matrix": [1, 13], "x": 198, "y": 15, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4},
+            {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
+            {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
+            {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
+            {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
+            {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 26, "flags": 4},
+            {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
+            {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
+            {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
+            {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
+            {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
+            {"matrix": [2, 12], "x": 183, "y": 26, "flags": 4},
+            {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 26, "flags": 4},
+            {"matrix": [3, 0], "x": 5, "y": 38, "flags": 4},
+            {"matrix": [3, 1], "x": 25, "y": 38, "flags": 4},
+            {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
+            {"matrix": [3, 3], "x": 54, "y": 38, "flags": 4},
+            {"matrix": [3, 4], "x": 69, "y": 38, "flags": 4},
+            {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
+            {"matrix": [3, 6], "x": 98, "y": 38, "flags": 4},
+            {"matrix": [3, 7], "x": 113, "y": 38, "flags": 4},
+            {"matrix": [3, 8], "x": 128, "y": 38, "flags": 4},
+            {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
+            {"matrix": [3, 10], "x": 157, "y": 38, "flags": 4},
+            {"matrix": [3, 11], "x": 172, "y": 38, "flags": 4},
+            {"matrix": [3, 12], "x": 197, "y": 38, "flags": 4},
+            {"matrix": [4, 0], "x": 9, "y": 49, "flags": 4},
+            {"matrix": [4, 1], "x": 33, "y": 49, "flags": 4},
+            {"matrix": [4, 2], "x": 48, "y": 49, "flags": 4},
+            {"matrix": [4, 3], "x": 62, "y": 49, "flags": 4},
+            {"matrix": [4, 4], "x": 77, "y": 49, "flags": 4},
+            {"matrix": [4, 5], "x": 92, "y": 49, "flags": 4},
+            {"matrix": [4, 6], "x": 107, "y": 49, "flags": 4},
+            {"matrix": [4, 7], "x": 121, "y": 49, "flags": 4},
+            {"matrix": [4, 8], "x": 136, "y": 49, "flags": 4},
+            {"matrix": [4, 9], "x": 151, "y": 49, "flags": 4},
+            {"matrix": [4, 10], "x": 165, "y": 49, "flags": 4},
+            {"matrix": [4, 11], "x": 186, "y": 49, "flags": 4},
+            {"matrix": [4, 12], "x": 209, "y": 52, "flags": 4},
+            {"matrix": [5, 0], "x": 2, "y": 61, "flags": 4},
+            {"matrix": [5, 1], "x": 20, "y": 61, "flags": 4},
+            {"matrix": [5, 2], "x": 39, "y": 61, "flags": 4},
+            {"matrix": [5, 5], "x": 94, "y": 61, "flags": 4},
+            {"matrix": [5, 9], "x": 151, "y": 61, "flags": 4},
+            {"matrix": [5, 10], "x": 173, "y": 61, "flags": 4},
+            {"matrix": [5, 11], "x": 195, "y": 64, "flags": 4},
+            {"matrix": [5, 12], "x": 209, "y": 64, "flags": 4},
+            {"matrix": [5, 13], "x": 224, "y": 64, "flags": 4},
+            {"x": 2, "y": 0, "flags": 2},
+            {"x": 46, "y": 0, "flags": 2},
+            {"x": 90, "y": 0, "flags": 2},
+            {"x": 134, "y": 0, "flags": 2},
+            {"x": 178, "y": 0, "flags": 2},
+            {"x": 222, "y": 0, "flags": 2},
+            {"x": 224, "y": 2, "flags": 2},
+            {"x": 224, "y": 32, "flags": 2},
+            {"x": 224, "y": 62, "flags": 2},
+            {"x": 2, "y": 64, "flags": 2},
+            {"x": 46, "y": 64, "flags": 2},
+            {"x": 90, "y": 64, "flags": 2},
+            {"x": 134, "y": 64, "flags": 2},
+            {"x": 178, "y": 64, "flags": 2},
+            {"x": 222, "y": 64, "flags": 2},
+            {"x": 0, "y": 2, "flags": 2},
+            {"x": 0, "y": 32, "flags": 2},
+            {"x": 0, "y": 62, "flags": 2}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "max_brightness": 200,

+ 0 - 25
keyboards/tkc/portico75/portico75.c

@@ -142,31 +142,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
 #endif
 
 #ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    {   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14},
-    {  15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
-    {  30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44},
-    {  45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, NO_LED},
-    {  58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NO_LED, NO_LED},
-    {  71, 72, 73, NO_LED, NO_LED, 74, NO_LED, NO_LED, NO_LED, 75, 76, 77, 78, 79, NO_LED},
-}, {
-    {0,0},{18,0},{33,0},{48,0},{62,0},{81,0},{96,0},{110,0},{125,0},{143,0},{158,0},{173,0},{187,0},{205,0},{224,0},
-    {0,15},{15,15},{29,15},{44,15},{59,15},{74,15},{88,15},{103,15},{118,15},{132,15},{147,15},{162,15},{176,15},{198,15},{224,15},
-    {4,26},{22,26},{37,26},{51,26},{66,26},{81,26},{96,26},{110,26},{125,26},{140,26},{154,26},{169,26},{183,26},{202,26},{224,26},
-    {5,38},{25,38},{40,38},{54,38},{69,38},{84,38},{98,38},{113,38},{128,38},{143,38},{157,38},{172,38},{197,38},
-    {9,49},{33,49},{48,49},{62,49},{77,49},{92,49},{107,49},{121,49},{136,49},{151,49},{165,49},{186,49},{209,52},
-    {2,61},{20,61},{39,61},{94,61},{151,61},{173,61},{195,64},{209,64},{224,64},
-    {2,0},{46,0},{90,0},{134,0},{178,0},{222,0},{224,2},{224,32},{224,62},{2,64},{46,64},{90,64},{134,64},{178,64},{222,64},{0,2},{0,32},{0,62},
-}, {
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    4, 4, 4, 4, 4, 4, 4, 4, 4,
-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-} };
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 24 - 0
keyboards/ungodly/launch_pad/keyboard.json

@@ -33,6 +33,30 @@
       "animation": "cycle_pinwheel"
     },
     "driver": "ws2812",
+    "layout": [
+        {"matrix": [4, 1], "x": 37, "y": 60, "flags": 4},
+        {"matrix": [4, 2], "x": 148, "y": 60, "flags": 4},
+        {"matrix": [3, 3], "x": 222, "y": 54, "flags": 4},
+        {"matrix": [3, 2], "x": 148, "y": 45, "flags": 4},
+        {"matrix": [3, 1], "x": 74, "y": 45, "flags": 4},
+        {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4},
+        {"matrix": [2, 0], "x": 0, "y": 30, "flags": 4},
+        {"matrix": [2, 1], "x": 74, "y": 30, "flags": 4},
+        {"matrix": [2, 2], "x": 148, "y": 30, "flags": 4},
+        {"matrix": [2, 3], "x": 222, "y": 30, "flags": 4},
+        {"matrix": [1, 3], "x": 222, "y": 15, "flags": 4},
+        {"matrix": [1, 2], "x": 148, "y": 15, "flags": 4},
+        {"matrix": [1, 1], "x": 74, "y": 15, "flags": 4},
+        {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
+        {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+        {"matrix": [0, 1], "x": 74, "y": 0, "flags": 4},
+        {"matrix": [0, 2], "x": 148, "y": 0, "flags": 4},
+        {"matrix": [0, 3], "x": 222, "y": 0, "flags": 4},
+        {"x": 185, "y": 7, "flags": 2},
+        {"x": 37, "y": 7, "flags": 2},
+        {"x": 37, "y": 52, "flags": 2},
+        {"x": 185, "y": 52, "flags": 2}
+    ],
     "max_brightness": 150,
     "sat_steps": 8,
     "val_steps": 8,

+ 0 - 44
keyboards/ungodly/launch_pad/launch_pad.c

@@ -1,44 +0,0 @@
-/* Copyright 2020 Ungodly Design <hello@ungodly.design>
- *
- * 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
-    { 14, 15, 16, 17 },
-    { 13, 12, 11, 10 },
-    { 6, 7, 8, 9 },
-    { 5, 4, 3, 2 },
-    {NO_LED, 0, 1, NO_LED }
-}, {  // LED Index to Physical Position
-     { 37, 60 }, { 148, 60 },                            // row 5
-    { 222, 54 }, { 148, 45 },  { 74, 45 },   { 0, 45 },  // row 4
-      { 0, 30 },  { 74, 30 }, { 148, 30 }, { 222, 30 },  // row 3
-    { 222, 15 }, { 148, 15 },  { 74, 15 },   { 0, 15 },  // row 2
-       { 0, 0 },   { 74, 0 },  { 148, 0 },  { 222, 0 },  // row 1
-     { 185, 7 },   { 37, 7 },                            // top underglow
-     { 37, 52 }, { 185, 52 },                            // bottom underglow
-}, {
-    // LED Index to Flag
-    4, 4,       // row 5
-    4, 4, 4, 4, // row 4
-    4, 4, 4, 4, // row 3
-    4, 4, 4, 4, // row 2
-    4, 4, 4, 4, // row 1
-    2, 2,
-    2, 2
-} };
-#endif

+ 29 - 0
keyboards/wekey/we27/keyboard.json

@@ -29,6 +29,35 @@
             "hue": 108
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 1, "flags": 1},
+            {"matrix": [0, 1], "x": 56, "y": 1, "flags": 1},
+            {"matrix": [0, 2], "x": 112, "y": 1, "flags": 1},
+            {"matrix": [0, 3], "x": 168, "y": 1, "flags": 1},
+            {"matrix": [0, 4], "x": 224, "y": 1, "flags": 1},
+            {"matrix": [1, 4], "x": 0, "y": 16, "flags": 1},
+            {"matrix": [1, 3], "x": 56, "y": 16, "flags": 1},
+            {"matrix": [1, 2], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 168, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 28, "flags": 1},
+            {"matrix": [2, 1], "x": 56, "y": 28, "flags": 4},
+            {"matrix": [2, 2], "x": 112, "y": 28, "flags": 4},
+            {"matrix": [2, 3], "x": 168, "y": 28, "flags": 4},
+            {"matrix": [2, 4], "x": 224, "y": 28, "flags": 4},
+            {"matrix": [3, 3], "x": 0, "y": 40, "flags": 1},
+            {"matrix": [3, 2], "x": 56, "y": 40, "flags": 4},
+            {"matrix": [3, 1], "x": 112, "y": 40, "flags": 4},
+            {"matrix": [3, 0], "x": 168, "y": 40, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1},
+            {"matrix": [4, 1], "x": 56, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 112, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 168, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 224, "y": 52, "flags": 4},
+            {"matrix": [5, 3], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [5, 1], "x": 56, "y": 64, "flags": 4},
+            {"matrix": [5, 0], "x": 168, "y": 64, "flags": 4}
+        ],
         "react_on_keyup": true
     },
     "matrix_pins": {

+ 0 - 46
keyboards/wekey/we27/we27.c

@@ -1,46 +0,0 @@
-/* Copyright 2021 @wekey
- *
- * 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
-
-#define __ NO_LED
-
-led_config_t g_led_config = { {
-    { 0,  1,  2,  3,  4  },
-    { 9,  8,  7,  6,  5  },
-    { 10, 11, 12, 13, 14 },
-    { 18, 17, 16, 15, __ },
-    { 19, 20, 21, 22, 23 },
-    { 26, 25, __, 24, __ }
-}, {
-    {0,1},{56,1},{112,1},{168,1},{224,1},
-    {0,16},{56,16},{112,16},{168,16},{224,16},
-    {0,28},{56,28},{112,28},{168,28},{224,28},
-    {0,40},{56,40},{112,40},{168,40},
-    {0,52},{56,52},{112,52},{168,52},{224,52},
-    {0,64},{56,64},{168,64}
-}, {
-    1, 1, 1, 1, 1,
-    1, 1, 4, 4, 4,
-    1, 4, 4, 4, 4,
-    1, 4, 4, 4,
-    1, 4, 4, 4, 4,
-    1, 4,    4
-} };
-
-#endif

+ 11 - 0
keyboards/work_louder/loop/info.json

@@ -54,6 +54,17 @@
             "typing_heatmap": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 11], "x": 188, "y": 32, "flags": 4},
+            {"matrix": [0, 10], "x": 169, "y": 32, "flags": 4},
+            {"matrix": [0, 9], "x": 150, "y": 32, "flags": 4},
+            {"matrix": [0, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [0, 6], "x": 93, "y": 32, "flags": 4},
+            {"matrix": [0, 5], "x": 74, "y": 32, "flags": 4},
+            {"matrix": [0, 4], "x": 55, "y": 32, "flags": 4},
+            {"matrix": [0, 3], "x": 36, "y": 32, "flags": 4}
+        ],
         "max_brightness": 120,
         "sleep": true
     },

+ 0 - 14
keyboards/work_louder/loop/loop.c

@@ -41,17 +41,3 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
     return true;
 }
 #endif
-
-#ifdef RGB_MATRIX_ENABLE
-// clang-format off
-led_config_t g_led_config = {
-    {
-        {   NO_LED, NO_LED, NO_LED, 8, 7, 6, 5, 4, 3, 2, 1, 0 }
-    }, {
-        {188, 32}, {169, 32}, {150, 32}, {131, 32}, {112, 32}, {93, 32}, {74, 32}, {55, 32}, {36, 32}
-    }, {
-        4, 4, 4, 4, 4, 4, 4, 4, 4
-    }
-};
-// clang-format on
-#endif

+ 14 - 0
keyboards/work_louder/micro/keyboard.json

@@ -79,6 +79,20 @@
             "digital_rain": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [3, 2], "x": 122, "y": 64, "flags": 4},
+            {"matrix": [3, 1], "x": 103, "y": 64, "flags": 4},
+            {"matrix": [2, 0], "x": 84, "y": 45, "flags": 4},
+            {"matrix": [2, 1], "x": 103, "y": 45, "flags": 4},
+            {"matrix": [2, 2], "x": 133, "y": 45, "flags": 4},
+            {"matrix": [2, 3], "x": 152, "y": 45, "flags": 4},
+            {"matrix": [1, 3], "x": 152, "y": 26, "flags": 4},
+            {"matrix": [1, 2], "x": 122, "y": 26, "flags": 4},
+            {"matrix": [1, 1], "x": 103, "y": 26, "flags": 4},
+            {"matrix": [1, 0], "x": 84, "y": 26, "flags": 4},
+            {"matrix": [0, 1], "x": 103, "y": 7, "flags": 4},
+            {"matrix": [0, 2], "x": 122, "y": 7, "flags": 4}
+        ],
         "max_brightness": 150,
         "sleep": true
     },

+ 0 - 23
keyboards/work_louder/micro/micro.c

@@ -3,29 +3,6 @@
 
 #include "micro.h"
 
-#if defined(RGB_MATRIX_ENABLE)
-// clang-format off
-led_config_t g_led_config = { {
-    { NO_LED, 10, 11, NO_LED },
-    {      9 , 8,  7, 6 },
-    {      2,  3,  4, 5 },
-    { NO_LED,  1,  0, NO_LED }
-  }, {
-                  { 122,  64 }, { 103,  64 },
-    {  84,  45 }, { 103,  45 }, { 133,  45 }, { 152,  45 },
-    { 152,  26 }, { 122,  26 }, { 103,  26 }, { 84,  26 },
-                  { 103,   7 }, { 122,   7 }
-  },
-  {
-       4, 4,
-    4, 4, 4, 4,
-    4, 4, 4, 4,
-       4, 4
-  }
-};
-// clang-format on
-#endif
-
 #if defined(ENCODER_ENABLE)
 bool encoder_update_kb(uint8_t index, bool clockwise) {
     if (!encoder_update_user(index, clockwise)) {

+ 4 - 0
keyboards/work_louder/nano/keyboard.json

@@ -56,6 +56,10 @@
             "digital_rain": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 2], "x": 103, "y": 32, "flags": 4},
+            {"matrix": [0, 1], "x": 122, "y": 32, "flags": 4}
+        ],
         "max_brightness": 120,
         "sleep": true
     },

+ 0 - 13
keyboards/work_louder/nano/nano.c

@@ -27,16 +27,3 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
     return true;
 }
 #endif
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = {
-    {
-        {  NO_LED, 1, 0 }
-    }, {
-        {  103,  32 }, {  122,  32 }
-    }, {
-        4, 4
-    }
-};
-
-#endif