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

Migrate `g_led_config` to DD (NO) (#25621)

Jack Sangdahl 10 місяців тому
батько
коміт
ff1900190c

+ 54 - 0
keyboards/nack/keyboard.json

@@ -73,6 +73,60 @@
             "val": 64
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 19, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 38, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 57, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 76, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 95, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 114, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 133, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 152, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 171, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 190, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 209, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 223, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
+            {"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": 223, "y": 21, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4},
+            {"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": 223, "y": 42, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 63, "flags": 4},
+            {"matrix": [3, 1], "x": 19, "y": 63, "flags": 4},
+            {"matrix": [3, 2], "x": 38, "y": 63, "flags": 4},
+            {"matrix": [3, 3], "x": 57, "y": 63, "flags": 4},
+            {"matrix": [3, 4], "x": 76, "y": 63, "flags": 4},
+            {"matrix": [3, 5], "x": 95, "y": 63, "flags": 4},
+            {"matrix": [3, 6], "x": 114, "y": 63, "flags": 4},
+            {"matrix": [3, 7], "x": 133, "y": 63, "flags": 4},
+            {"matrix": [3, 8], "x": 152, "y": 63, "flags": 4},
+            {"matrix": [3, 9], "x": 171, "y": 63, "flags": 4},
+            {"matrix": [3, 10], "x": 190, "y": 63, "flags": 4},
+            {"matrix": [3, 11], "x": 209, "y": 63, "flags": 4},
+            {"matrix": [3, 12], "x": 223, "y": 63, "flags": 4}
+        ],
         "hue_steps": 10,
         "sat_steps": 10,
         "val_steps": 10,

+ 0 - 39
keyboards/nack/nack.c

@@ -1,39 +0,0 @@
-/* Copyright 2020 farfalleflickan <farfalleflickan@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-    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 }
-    }, {
-      // LED Index to Physical Position
-      { 0, 0 }, { 19,  0 }, { 38,  0 }, { 57,  0 }, { 76,  0 }, { 95, 0 }, { 114,  0 }, { 133,  0 }, { 152,  0 }, { 171,  0 }, { 190, 0 }, { 209,  0 }, { 223,  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 }, { 223,  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 }, { 223,  42 },
-      { 0, 63 }, { 19,  63 }, { 38,  63 }, { 57,  63 }, { 76,  63 }, { 95, 63 }, { 114,  63 }, { 133,  63 }, { 152,  63 }, { 171,  63 }, { 190, 63 }, { 209,  63 }, { 223,  63 }
-    }, {
-      // LED Index to Flag
-      4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-      4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-      4, 4, 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

+ 19 - 1
keyboards/ning/tiny_board/tb16_rgb/keyboard.json

@@ -20,7 +20,25 @@
         "default": {
             "animation": "typing_heatmap"
         },
-        "driver": "ws2812"
+        "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
+            {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4},
+            {"matrix": [1, 2], "x": 150, "y": 21, "flags": 4},
+            {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4},
+            {"matrix": [2, 1], "x": 75, "y": 42, "flags": 4},
+            {"matrix": [2, 2], "x": 150, "y": 42, "flags": 4},
+            {"matrix": [2, 3], "x": 224, "y": 42, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4},
+            {"matrix": [3, 2], "x": 150, "y": 64, "flags": 4},
+            {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4}
+        ]
     },
     "matrix_pins": {
         "cols": ["B6", "B1", "B3", "B2"],

+ 0 - 31
keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c

@@ -1,31 +0,0 @@
-/* Copyright 2023 Ning (@ningjx)
- *
- * 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"
-
-led_config_t g_led_config = { {
-  { 0, 1, 2, 3 },
-  { 4, 5, 6, 7 },
-  { 8, 9, 10, 11 },
-  { 12, 13, 14, 15 }
-}, {
-  {0,0},{75,0},{150,0},{224,0},
-  {0,21},{75,21},{150,21},{224,21},
-  {0,42},{75,42},{150,42},{224,42},
-  {0,64},{75,64},{150,64},{224,64}
-}, {
-  4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
-} };

+ 22 - 0
keyboards/novelkeys/nk20/keyboard.json

@@ -66,6 +66,28 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 75, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 149, "y": 0, "flags": 1},
+            {"matrix": [1, 3], "x": 224, "y": 15, "flags": 1},
+            {"matrix": [1, 2], "x": 149, "y": 15, "flags": 1},
+            {"matrix": [1, 1], "x": 75, "y": 15, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 27, "flags": 4},
+            {"matrix": [2, 1], "x": 75, "y": 27, "flags": 4},
+            {"matrix": [2, 2], "x": 149, "y": 27, "flags": 4},
+            {"matrix": [2, 3], "x": 224, "y": 34, "flags": 1},
+            {"matrix": [3, 2], "x": 149, "y": 40, "flags": 4},
+            {"matrix": [3, 1], "x": 75, "y": 40, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 40, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4},
+            {"matrix": [4, 1], "x": 75, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 149, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 224, "y": 58, "flags": 1},
+            {"matrix": [5, 2], "x": 149, "y": 64, "flags": 4},
+            {"matrix": [5, 0], "x": 37, "y": 64, "flags": 4}
+        ],
         "max_brightness": 210,
         "sleep": true
     },

+ 0 - 40
keyboards/novelkeys/nk20/nk20.c

@@ -1,40 +0,0 @@
-/* Copyright 2022 Yiancar
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-// clang-format off
-led_config_t g_led_config = { {   
-    {   0,      1,   2, NO_LED }, 
-    {   6,      5,   4,      3 }, 
-    {   7,      8,   9,     10 }, 
-    {  13,     12,  11, NO_LED }, 
-    {  14,     15,  16,     17 }, 
-    {  19, NO_LED,  18, NO_LED }, 
-}, {
-    {  0,0  }, { 75,0  }, {149,0  }, {224,15 }, {149,15 }, { 75,15 }, {  0,15 }, {  0,27 }, { 75,27 }, {149,27 }, 
-    {224,34 }, {149,40 }, { 75,40 }, {  0,40 }, {  0,52 }, { 75,52 }, {149,52 }, {224,58 }, {149,64 }, { 37,64 }
-}, {
-    1, 1, 1,
-    1, 1, 1, 1,
-    4, 4, 4, 1,
-    4, 4, 4,
-    4, 4, 4, 1,
-    4, 4
-} };
-// clang-format on
-#endif

+ 70 - 0
keyboards/novelkeys/nk65b/keyboard.json

@@ -66,6 +66,76 @@
             "solid_multisplash": true
         },
         "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": 1},
+            {"matrix": [0, 14], "x": 225, "y": 0, "flags": 1},
+            {"matrix": [1, 14], "x": 225, "y": 16, "flags": 1},
+            {"matrix": [2, 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": 1},
+            {"matrix": [2, 14], "x": 225, "y": 32, "flags": 1},
+            {"matrix": [3, 14], "x": 225, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1},
+            {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "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, 9], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 180, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1},
+            {"x": 225, "y": 64, "flags": 1}
+        ],
         "max_brightness": 130,
         "sleep": true
     },

+ 0 - 24
keyboards/novelkeys/nk65b/nk65b.c

@@ -28,27 +28,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
     gpio_write_pin(B3, !layer_state_cmp(state, 2));
     return layer_state_set_user(state);
 }
-
-#ifdef RGB_MATRIX_ENABLE
-// clang-format off
-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, NO_LED, 15 },
-    { 30,     31, 32,     33,     34,     35, 36,     37,     38, 39, 40, 41, 42,     16, 43 },
-    { 57, NO_LED, 56,     55,     54,     53, 52,     51,     50, 49, 48, 47, 46,     45, 44 },
-    { 58,     59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 61, 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  }, 
-    {225,0  }, {225,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 }, {225,32 }, {225,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 }, {150,64 }, {165,64 }, {180,64 }, {195,64 }, {210,64 }, {225,64 }
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 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, 1, 1,
-    1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 4, 1, 1, 1, 1, 1, 1
-} };
-// clang-format on
-#endif

+ 89 - 0
keyboards/novelkeys/nk87b/keyboard.json

@@ -66,6 +66,95 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 55, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 153, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 166, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
+            {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1},
+            {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
+            {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
+            {"matrix": [1, 13], "x": 175, "y": 15, "flags": 1},
+            {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
+            {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
+            {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
+            {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
+            {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
+            {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
+            {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
+            {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
+            {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4},
+            {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4},
+            {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 27, "flags": 4},
+            {"matrix": [2, 6], "x": 84, "y": 27, "flags": 4},
+            {"matrix": [2, 7], "x": 97, "y": 27, "flags": 4},
+            {"matrix": [2, 8], "x": 110, "y": 27, "flags": 4},
+            {"matrix": [2, 9], "x": 123, "y": 27, "flags": 4},
+            {"matrix": [2, 10], "x": 136, "y": 27, "flags": 4},
+            {"matrix": [2, 11], "x": 149, "y": 27, "flags": 4},
+            {"matrix": [2, 12], "x": 162, "y": 27, "flags": 4},
+            {"matrix": [3, 12], "x": 179, "y": 27, "flags": 4},
+            {"matrix": [2, 14], "x": 198, "y": 27, "flags": 1},
+            {"matrix": [2, 15], "x": 211, "y": 27, "flags": 1},
+            {"matrix": [2, 16], "x": 224, "y": 27, "flags": 1},
+            {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1},
+            {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
+            {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
+            {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
+            {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
+            {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
+            {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
+            {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
+            {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
+            {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
+            {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
+            {"matrix": [3, 0], "x": 5, "y": 40, "flags": 1},
+            {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
+            {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
+            {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
+            {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1},
+            {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
+            {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1},
+            {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
+            {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
+            {"matrix": [5, 13], "x": 179, "y": 64, "flags": 1},
+            {"matrix": [5, 12], "x": 162, "y": 64, "flags": 1},
+            {"matrix": [5, 11], "x": 146, "y": 64, "flags": 1},
+            {"matrix": [5, 6], "x": 91, "y": 64, "flags": 4},
+            {"matrix": [5, 2], "x": 36, "y": 64, "flags": 1},
+            {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1},
+            {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1}
+        ],
         "max_brightness": 114,
         "sleep": true
     },

+ 0 - 27
keyboards/novelkeys/nk87b/nk87b.c

@@ -29,30 +29,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
     gpio_write_pin(A4, !layer_state_cmp(state, 2));
     return layer_state_set_user(state);
 }
-
-#ifdef RGB_MATRIX_ENABLE
-// clang-format off
-led_config_t g_led_config = { {   
-    {   0,      1,  2,      3,      4,      5,  6,      7,      8,      9,     10,  11,  12,     13,     14,    15,      16 }, 
-    {  33,     32, 31,     30,     29,     28, 27,     26,     25,     24,     23,  22,  21,     20,     19,    18,      17 }, 
-    {  34,     35, 36,     37,     38,     39, 40,     41,     42,     43,     44,  45,  46, NO_LED,     48,    49,      50 }, 
-    {  63,     62, 61,     60,     59,     58, 57,     56,     55,     54,     53,  52,  47,     51, NO_LED, NO_LED, NO_LED }, 
-    {  64, NO_LED, 65,     66,     67,     68, 69,     70,     71,     72,     73,  74,  75, NO_LED, NO_LED,     76, NO_LED }, 
-    {  86,     85, 84, NO_LED, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, NO_LED,  82,  81,     80,     79,     78,     77 }, 
-}, {
-    {  0,0  }, { 16,0  }, { 29,0  }, { 42,0  }, { 55,0  }, { 71,0  }, { 84,0  }, { 97,0  }, {110,0  }, {127,0  }, {140,0  }, {153,0  }, {166,0  }, {182,0  }, {198,0  }, {211,0  }, {224,0  }, 
-    {224,15 }, {211,15 }, {198,15 }, {175,15 }, {156,15 }, {143,15 }, {130,15 }, {117,15 }, {104,15 }, { 91,15 }, { 78,15 }, { 65,15 }, { 52,15 }, { 39,15 }, { 26,15 }, { 13,15 }, {  0,15 }, 
-    {  3,27 }, { 19,27 }, { 32,27 }, { 45,27 }, { 58,27 }, { 71,27 }, { 84,27 }, { 97,27 }, {110,27 }, {123,27 }, {136,27 }, {149,27 }, {162,27 }, {179,27 }, {198,27 }, {211,27 }, {224,27 }, 
-    {174,40 }, {153,40 }, {140,40 }, {127,40 }, {114,40 }, {101,40 }, { 88,40 }, { 75,40 }, { 62,40 }, { 49,40 }, { 36,40 }, { 23,40 }, {  5,40 }, {  8,52 }, { 29,52 }, { 42,52 }, { 55,52 }, 
-    { 68,52 }, { 81,52 }, { 94,52 }, {107,52 }, {120,52 }, {133,52 }, {146,52 }, {170,52 }, {211,52 }, {224,64 }, {211,64 }, {198,64 }, {179,64 }, {162,64 }, {146,64 }, { 91,64 }, { 36,64 }, 
-    { 19,64 }, {  3,64 }
-}, {
-    1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, 1,
-    1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 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, 1, 1,
-    1, 1, 1, 1, 1, 1, 4, 1, 1, 1
-} };
-// clang-format on
-#endif

+ 0 - 52
keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c

@@ -1,52 +0,0 @@
-/* Copyright 2021 omkbd
- *
- * 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, 5, 4, 3, 2, 1, 0 },
-  { NO_LED, NO_LED, 6, 7, 8, 9, 10, 11 },
-  { NO_LED, NO_LED, 17, 16, 15, 14, 13, 12 },
-  { NO_LED, NO_LED, 18, 19, 20, 21, 22, 23 },
-  { NO_LED, NO_LED, 29, 28, 27, 26, 25, 24 },
-  { 37, 36, 35, 34, 33, 32, 31, 30 },
-  { 38, 39, 40, 41, 42, 43, 44, 45 },
-  { 53, 52, 51, 50, 49, 48, 47, 46 },
-  { 54, 55, 56, 57, 58, 59, 60, 61 },
-  { 69, 68, 67, 66, 65, 64, 63, 62 }
-}, {
-  // LED Index to Physical Position
-  { 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 },
-  { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 },
-  { 103, 0 }, { 121, 0 }, { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 224, 0 },
-  { 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 }, { 121, 16 }, { 103, 16 },
-  { 103, 32 }, { 121, 32 }, { 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 },
-  { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, { 121, 48 }, { 103, 48 },
-  { 103, 64 }, { 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 }, { 224, 64 }
-}, {
-  // LED Index to Flag
-  LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
-  LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
-  LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
-  LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
-  LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
-} };
-#endif

+ 72 - 0
keyboards/omkbd/runner3680/5x6_5x8/keyboard.json

@@ -15,6 +15,78 @@
     },
     "rgb_matrix": {
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 7], "x": 86, "y": 0, "flags": 255},
+            {"matrix": [0, 6], "x": 69, "y": 0, "flags": 255},
+            {"matrix": [0, 5], "x": 52, "y": 0, "flags": 255},
+            {"matrix": [0, 4], "x": 34, "y": 0, "flags": 255},
+            {"matrix": [0, 3], "x": 17, "y": 0, "flags": 255},
+            {"matrix": [0, 2], "x": 0, "y": 0, "flags": 255},
+            {"matrix": [1, 2], "x": 0, "y": 16, "flags": 255},
+            {"matrix": [1, 3], "x": 17, "y": 16, "flags": 255},
+            {"matrix": [1, 4], "x": 34, "y": 16, "flags": 255},
+            {"matrix": [1, 5], "x": 52, "y": 16, "flags": 255},
+            {"matrix": [1, 6], "x": 69, "y": 16, "flags": 255},
+            {"matrix": [1, 7], "x": 86, "y": 16, "flags": 255},
+            {"matrix": [2, 7], "x": 86, "y": 32, "flags": 255},
+            {"matrix": [2, 6], "x": 69, "y": 32, "flags": 255},
+            {"matrix": [2, 5], "x": 52, "y": 32, "flags": 255},
+            {"matrix": [2, 4], "x": 34, "y": 32, "flags": 255},
+            {"matrix": [2, 3], "x": 17, "y": 32, "flags": 255},
+            {"matrix": [2, 2], "x": 0, "y": 32, "flags": 255},
+            {"matrix": [3, 2], "x": 0, "y": 48, "flags": 255},
+            {"matrix": [3, 3], "x": 17, "y": 48, "flags": 255},
+            {"matrix": [3, 4], "x": 34, "y": 48, "flags": 255},
+            {"matrix": [3, 5], "x": 52, "y": 48, "flags": 255},
+            {"matrix": [3, 6], "x": 69, "y": 48, "flags": 255},
+            {"matrix": [3, 7], "x": 86, "y": 48, "flags": 255},
+            {"matrix": [4, 7], "x": 86, "y": 64, "flags": 255},
+            {"matrix": [4, 6], "x": 69, "y": 64, "flags": 255},
+            {"matrix": [4, 5], "x": 52, "y": 64, "flags": 255},
+            {"matrix": [4, 4], "x": 34, "y": 64, "flags": 255},
+            {"matrix": [4, 3], "x": 17, "y": 64, "flags": 255},
+            {"matrix": [4, 2], "x": 0, "y": 64, "flags": 255},
+            {"matrix": [5, 7], "x": 103, "y": 0, "flags": 255},
+            {"matrix": [5, 6], "x": 121, "y": 0, "flags": 255},
+            {"matrix": [5, 5], "x": 138, "y": 0, "flags": 255},
+            {"matrix": [5, 4], "x": 155, "y": 0, "flags": 255},
+            {"matrix": [5, 3], "x": 172, "y": 0, "flags": 255},
+            {"matrix": [5, 2], "x": 190, "y": 0, "flags": 255},
+            {"matrix": [5, 1], "x": 207, "y": 0, "flags": 255},
+            {"matrix": [5, 0], "x": 224, "y": 0, "flags": 255},
+            {"matrix": [6, 0], "x": 224, "y": 16, "flags": 255},
+            {"matrix": [6, 1], "x": 207, "y": 16, "flags": 255},
+            {"matrix": [6, 2], "x": 190, "y": 16, "flags": 255},
+            {"matrix": [6, 3], "x": 172, "y": 16, "flags": 255},
+            {"matrix": [6, 4], "x": 155, "y": 16, "flags": 255},
+            {"matrix": [6, 5], "x": 138, "y": 16, "flags": 255},
+            {"matrix": [6, 6], "x": 121, "y": 16, "flags": 255},
+            {"matrix": [6, 7], "x": 103, "y": 16, "flags": 255},
+            {"matrix": [7, 7], "x": 103, "y": 32, "flags": 255},
+            {"matrix": [7, 6], "x": 121, "y": 32, "flags": 255},
+            {"matrix": [7, 5], "x": 138, "y": 32, "flags": 255},
+            {"matrix": [7, 4], "x": 155, "y": 32, "flags": 255},
+            {"matrix": [7, 3], "x": 172, "y": 32, "flags": 255},
+            {"matrix": [7, 2], "x": 190, "y": 32, "flags": 255},
+            {"matrix": [7, 1], "x": 207, "y": 32, "flags": 255},
+            {"matrix": [7, 0], "x": 224, "y": 32, "flags": 255},
+            {"matrix": [8, 0], "x": 224, "y": 48, "flags": 255},
+            {"matrix": [8, 1], "x": 207, "y": 48, "flags": 255},
+            {"matrix": [8, 2], "x": 190, "y": 48, "flags": 255},
+            {"matrix": [8, 3], "x": 172, "y": 48, "flags": 255},
+            {"matrix": [8, 4], "x": 155, "y": 48, "flags": 255},
+            {"matrix": [8, 5], "x": 138, "y": 48, "flags": 255},
+            {"matrix": [8, 6], "x": 121, "y": 48, "flags": 255},
+            {"matrix": [8, 7], "x": 103, "y": 48, "flags": 255},
+            {"matrix": [9, 7], "x": 103, "y": 64, "flags": 255},
+            {"matrix": [9, 6], "x": 121, "y": 64, "flags": 255},
+            {"matrix": [9, 5], "x": 138, "y": 64, "flags": 255},
+            {"matrix": [9, 4], "x": 155, "y": 64, "flags": 255},
+            {"matrix": [9, 3], "x": 172, "y": 64, "flags": 255},
+            {"matrix": [9, 2], "x": 190, "y": 64, "flags": 255},
+            {"matrix": [9, 1], "x": 207, "y": 64, "flags": 255},
+            {"matrix": [9, 0], "x": 224, "y": 64, "flags": 255}
+        ],
         "split_count": [30, 40]
     },
     "matrix_pins": {

+ 0 - 23
keyboards/owlab/voice65/hotswap/hotswap.c

@@ -86,29 +86,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB65-dn- */
     {0, SW7_CS39, SW7_CS38, SW7_CS37}, /* RGB66-right- */
 };
-
-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, 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, NO_LED, 62, 63, 64, NO_LED, 65,     66 }
-}, {
-    { 0, 0 },  { 16, 0 },  { 32, 0 },  { 48, 0 },  { 64, 0 },  { 80, 0 },  { 96,  0 },  { 112, 0 },  { 128, 0 },  { 144, 0 },  { 160, 0 },  { 176, 0 },  { 192, 0 },  { 208, 0 },  { 224, 0 },
-    { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98,  16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 210, 16 }, { 224, 16 },
-    { 4, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 196, 32 }, { 224, 32 },
-    { 8, 48 }, { 24, 48 }, { 40, 48 }, { 56, 48 }, { 72, 48 }, { 88, 48 }, { 104, 48 }, { 120, 48 }, { 136, 48 }, { 152, 48 }, { 168, 48 }, { 184, 48 },              { 208, 48 }, { 224, 48 },
-    { 2, 64 }, { 18, 64 }, { 34, 64 },                         { 82, 64 },                                        { 146, 64 }, { 162, 64 }, { 178, 64 },              { 210, 64 }, { 224, 64 }
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1, 1,
-    1, 1, 1,       1,          1, 1, 1,    1, 1,
-    }
-};
-
-
 #endif
 
 bool rgb_matrix_indicators_kb(void) {

+ 69 - 0
keyboards/owlab/voice65/hotswap/keyboard.json

@@ -63,6 +63,75 @@
             "val": 128
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 2, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 50, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 114, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 130, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 146, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 162, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 178, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 194, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 210, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 4, "y": 32, "flags": 0},
+            {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 36, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 84, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 132, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 164, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 180, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 196, "y": 32, "flags": 1},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 24, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 40, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 56, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 72, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 88, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 104, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 136, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 152, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 184, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 82, "y": 64, "flags": 1},
+            {"matrix": [4, 9], "x": 146, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 162, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 178, "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,

+ 73 - 0
keyboards/owlab/voice65/soldered/keyboard.json

@@ -63,6 +63,79 @@
             "val": 128
         },
         "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": 195, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 209, "y": 0, "flags": 4},
+            {"matrix": [2, 13], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 2, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 50, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 114, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 130, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 146, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 162, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 178, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 194, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 2, "y": 32, "flags": 0},
+            {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 36, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 84, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 132, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 164, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 180, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 202, "y": 32, "flags": 1},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 20, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 40, "y": 64, "flags": 1},
+            {"matrix": [4, 3], "x": 60, "y": 64, "flags": 1},
+            {"matrix": [4, 4], "x": 95, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 132, "y": 64, "flags": 1},
+            {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 192, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 208, "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 - 23
keyboards/owlab/voice65/soldered/soldered.c

@@ -90,29 +90,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB69-dn- */
     {0, SW5_CS27, SW5_CS26, SW5_CS25}, /* RGB70-right- */
 };
-
-led_config_t g_led_config = { {
-    {  0,  1,  2,  3,  4,  5,      6,  7,      8,      9,  10, 11, 12, 13,     14 },
-    {  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, 15,     44 },
-    {  45, 46, 47, 48, 49, 50,     51, 52,     53,     54, 55, 56, 57, 58,     59 },
-    {  60, 61, 62, 63, 64, NO_LED, 65, NO_LED, NO_LED, 66, 67, 68, 69, NO_LED, 70 }
-}, {
-    { 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 },  { 209, 0 },  { 224, 0 },
-    { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82,  16 }, { 98,  16 },  { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 208, 16 }, { 224, 16 },
-    { 2, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84,  32 }, { 100, 32 },  { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 202, 32 }, { 224, 32 },
-    { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80,  48 }, { 96,  48 },  { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 }, { 224, 48 },
-    { 0, 64 }, { 20, 64 }, { 40, 64 }, { 60, 64 }, { 95, 64 }, { 132, 64 }, { 152, 64 },  { 172, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 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
-    }
-};
-
-
 #endif
 
 bool rgb_matrix_indicators_kb(void) {