Browse Source

Migrate `g_led_config` to DD (K7) (#25616)

Jack Sangdahl 11 months ago
parent
commit
a91de72246
28 changed files with 1072 additions and 634 deletions
  1. 55 0
      keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json
  2. 0 43
      keyboards/kprepublic/bm40hsrgb/rev1/rev1.c
  3. 71 0
      keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json
  4. 0 50
      keyboards/kprepublic/bm60hsrgb/rev1/rev1.c
  5. 71 0
      keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json
  6. 0 33
      keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c
  7. 66 1
      keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json
  8. 0 32
      keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c
  9. 72 0
      keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json
  10. 0 52
      keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c
  11. 69 0
      keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json
  12. 0 52
      keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c
  13. 76 1
      keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json
  14. 0 44
      keyboards/kprepublic/bm65hsrgb/rev1/rev1.c
  15. 76 0
      keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json
  16. 0 38
      keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c
  17. 76 0
      keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json
  18. 0 25
      keyboards/kprepublic/bm68hsrgb/rev1/rev1.c
  19. 70 0
      keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json
  20. 0 20
      keyboards/kprepublic/bm68hsrgb/rev2/rev2.c
  21. 0 142
      keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c
  22. 90 1
      keyboards/kprepublic/bm80hsrgb/keyboard.json
  23. 0 24
      keyboards/kprepublic/bm80v2/bm80v2.c
  24. 89 0
      keyboards/kprepublic/bm80v2/keyboard.json
  25. 0 24
      keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c
  26. 90 0
      keyboards/kprepublic/bm80v2_iso/keyboard.json
  27. 0 51
      keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c
  28. 101 1
      keyboards/kprepublic/bm980hsrgb/keyboard.json

+ 55 - 0
keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json

@@ -57,6 +57,61 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
+            {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4},
+            {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4},
+            {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
+            {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4},
+            {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4},
+            {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4},
+            {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4},
+            {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4},
+            {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4},
+            {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4},
+            {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
+            {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4},
+            {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4},
+            {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4},
+            {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4},
+            {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4},
+            {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4},
+            {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4},
+            {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4},
+            {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4},
+            {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4},
+            {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1},
+            {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1},
+            {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1},
+            {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1},
+            {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1},
+            {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1},
+            {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1},
+            {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1},
+            {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1},
+            {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1},
+            {"x": 220, "y": 32, "flags": 2},
+            {"x": 176, "y": 32, "flags": 2},
+            {"x": 132, "y": 32, "flags": 2},
+            {"x": 88, "y": 32, "flags": 2},
+            {"x": 44, "y": 32, "flags": 2},
+            {"x": 0, "y": 32, "flags": 2}
+        ]
         "max_brightness": 180,
         "sleep": true
     },

+ 0 - 43
keyboards/kprepublic/bm40hsrgb/rev1/rev1.c

@@ -1,43 +0,0 @@
-/* Copyright 2020 tominabox1, Richard Goulter <richard.goulter@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"
-
-#if defined(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, NO_LED, 42, 43, 44, 45, 46}
-    }, {
-        // LED Index to Physical Position
-        {  0,  0}, { 20,  0}, { 40,  0}, {61,  0}, {81,  0}, {101,  0}, {122,  0}, {142,  0}, {162,  0}, {183,  0}, {203,  0}, {224,  0},
-        {  0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21},
-        {  0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42},
-        {  0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64},       {111, 64},      {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64},
-        {220, 32}, {176, 32}, {132, 32}, {88, 32}, {44, 32}, {0, 32}
-    }, {
-        // LED Index to Flag
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-        1, 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, 1, 1, 1, 1,
-        2, 2, 2, 2, 2, 2
-    }
-};
-
-#endif

+ 71 - 0
keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json

@@ -57,6 +57,77 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
+            {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
+            {"x": 216, "y": 32, "flags": 2},
+            {"x": 180, "y": 32, "flags": 2},
+            {"x": 144, "y": 32, "flags": 2},
+            {"x": 108, "y": 32, "flags": 2},
+            {"x": 72, "y": 32, "flags": 2},
+            {"x": 36, "y": 32, "flags": 2}
+        ]
         "max_brightness": 180
     },
     "rgblight": {

+ 0 - 50
keyboards/kprepublic/bm60hsrgb/rev1/rev1.c

@@ -1,50 +0,0 @@
-/* Copyright 2020 MechMerlin
- *
- * 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,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27 },
-  { 28,     NO_LED, 29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40 },
-  { NO_LED, 41,     42,     43,     44,     45,     46,     47,     48,     49,     50,     51,     52,     53 },
-  { 54,     55,     56,     NO_LED, NO_LED, NO_LED, 57,     NO_LED, NO_LED, 58,     59,     60,     61,     62 }
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    {   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 }, { 202,   0 },
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    {   7,  16 }, {  22,  16 }, {  37,  16 }, {  52,  16 }, {  67,  16 }, {  82,  16 }, {  97,  16 }, { 112,  16 }, { 127,  16 }, { 142,  16 }, { 157,  16 }, { 172,  16 }, { 187,  16 }, { 206,  16 },
-    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
-    {  11,  32 }, {  26,  32 }, {  41,  32 }, {  56,  32 }, {  71,  32 }, {  86,  32 }, { 101,  32 }, { 116,  32 }, { 131,  32 }, { 146,  32 }, { 161,  32 }, { 176,  32 }, { 198,  32 },
-    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    {  18,  48 }, {  30,  48 }, {  45,  48 }, {  60,  48 }, {  75,  48 }, {  90,  48 }, { 105,  48 }, { 120,  48 }, { 135,  48 }, { 150,  48 }, { 165,  48 }, { 191,  48 }, { 210,  48 },
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    {   3,  64 }, {  22,  64 }, {  33,  64 }, { 101,  64 }, { 135,  64 }, { 153,  64 }, { 195,  64 }, { 210,  64 }, { 225,  64 },
-    // UNDERGLOW
-    {   216, 32 }, {  180,  32 }, {  144, 32 }, { 108,  32 }, { 72,  32 }, { 36,  32 }
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    1, 1, 1, 4, 1, 1, 1, 1, 1,
-    // UNDERGLOW
-    2, 2, 2, 2, 2, 2
-} };

+ 71 - 0
keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json

@@ -51,6 +51,77 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
+            {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
+            {"x": 216, "y": 32, "flags": 2},
+            {"x": 180, "y": 32, "flags": 2},
+            {"x": 144, "y": 32, "flags": 2},
+            {"x": 108, "y": 32, "flags": 2},
+            {"x": 72, "y": 32, "flags": 2},
+            {"x": 36, "y": 32, "flags": 2}
+        ]
         "max_brightness": 140
     },
     "build": {

+ 0 - 33
keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c

@@ -14,39 +14,6 @@
  * 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,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27 },
-  { 28,     NO_LED, 29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40 },
-  { NO_LED, 41,     42,     43,     44,     45,     46,     47,     48,     49,     50,     51,     52,     53 },
-  { 54,     55,     56,     NO_LED, NO_LED, NO_LED, 57,     NO_LED, NO_LED, 58,     59,     60,     61,     62 }
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    {   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 },
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    {   7,  16 }, {  22,  16 }, {  37,  16 }, {  52,  16 }, {  67,  16 }, {  82,  16 }, {  97,  16 }, { 112,  16 }, { 127,  16 }, { 142,  16 }, { 157,  16 }, { 172,  16 }, { 187,  16 }, { 206,  16 },
-    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
-    {  11,  32 }, {  26,  32 }, {  41,  32 }, {  56,  32 }, {  71,  32 }, {  86,  32 }, { 101,  32 }, { 116,  32 }, { 131,  32 }, { 146,  32 }, { 161,  32 }, { 176,  32 }, { 198,  32 },
-    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    {  18,  48 }, {  30,  48 }, {  45,  48 }, {  60,  48 }, {  75,  48 }, {  90,  48 }, { 105,  48 }, { 120,  48 }, { 135,  48 }, { 150,  48 }, { 165,  48 }, { 191,  48 }, { 210,  48 },
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    {   3,  64 }, {  22,  64 }, {  33,  64 }, { 101,  64 }, { 135,  64 }, { 153,  64 }, { 195,  64 }, { 210,  64 }, { 225,  64 },
-    // UNDERGLOW
-    {   216, 32 }, {  180,  32 }, {  144, 32 }, { 108,  32 }, { 72,  32 }, { 36,  32 }
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    1, 1, 1, 4, 1, 1, 1, 1, 1,
-    // UNDERGLOW
-    2, 2, 2, 2, 2, 2
-} };
 
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {

+ 66 - 1
keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json

@@ -36,6 +36,71 @@
             "solid_multisplash": true
         },
         "driver": "is31fl3733",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
+        ]
         "max_brightness": 180,
         "sleep": true
     },
@@ -58,7 +123,7 @@
         },
         "default": {
             "animation": "rainbow_mood"
-        }   
+        }
     },
     "build": {
         "lto": true

+ 0 - 32
keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c

@@ -85,38 +85,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
     { 0, SW5_CS16, SW4_CS16, SW6_CS16 }
 };
 
-led_config_t g_led_config = {
-    {
-        { 0,      1,      2,      3,      4,      5,      6,      7,      8,      9,      10,     11,     12,     13 },
-        { 14,     15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27 },
-        { 28,     29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39, NO_LED,     40 },
-        { 41,     42,     43,     44,     45,     46,     47,     48,     49,     50, NO_LED,     51,     52,     53 },
-        { 54,     55,     56,     NO_LED, NO_LED, 57, NO_LED,   NO_LED,   NO_LED, 58,     59,     60,     61,     62 }
-    }, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    {   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 },
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    {   7,  16 }, {  22,  16 }, {  37,  16 }, {  52,  16 }, {  67,  16 }, {  82,  16 }, {  97,  16 }, { 112,  16 }, { 127,  16 }, { 142,  16 }, { 157,  16 }, { 172,  16 }, { 187,  16 }, { 206,  16 },
-    // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter
-    {  11,  32 }, {  26,  32 }, {  41,  32 }, {  56,  32 }, {  71,  32 }, {  86,  32 }, { 101,  32 }, { 116,  32 }, { 131,  32 }, { 146,  32 }, { 161,  32 }, { 176,  32 }, { 198,  32 },
-    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    {  18,  48 }, {  30,  48 }, {  45,  48 }, {  60,  48 }, {  75,  48 }, {  90,  48 }, { 105,  48 }, { 120,  48 }, { 135,  48 }, { 150,  48 }, { 165,  48 }, { 191,  48 }, { 210,  48 },
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    {   3,  64 }, {  22,  64 }, {  33,  64 }, { 101,  64 }, { 135,  64 }, { 153,  64 }, { 195,  64 }, { 210,  64 }, { 225,  64 }
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    1, 1, 1, 4, 1, 1, 1, 1, 1
-    }
-};
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 72 - 0
keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json

@@ -57,6 +57,78 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 22, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 194, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 213, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
+            {"x": 216, "y": 32, "flags": 2},
+            {"x": 180, "y": 32, "flags": 2},
+            {"x": 144, "y": 32, "flags": 2},
+            {"x": 108, "y": 32, "flags": 2},
+            {"x": 72, "y": 32, "flags": 2},
+            {"x": 36, "y": 32, "flags": 2}
+        ]
         "max_brightness": 180
     },
     "build": {

+ 0 - 52
keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c

@@ -1,52 +0,0 @@
-/* Copyright 2020 markva
- *
- * 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"
-
-#if defined(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,  NO_LED,   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, NO_LED,  58, NO_LED,  NO_LED,  59, 60,  61,  62,  63}
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    {   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 }, { 202,   0 },
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    {   7,  16 }, {  22,  16 }, {  37,  16 }, {  52,  16 }, {  67,  16 }, {  82,  16 }, {  97,  16 }, { 112,  16 }, { 127,  16 }, { 142,  16 }, { 157,  16 }, { 172,  16 }, { 187,  16 }, { 206,  16 }, 
-    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
-    {  11,  32 }, {  26,  32 }, {  41,  32 }, {  56,  32 }, {  71,  32 }, {  86,  32 }, { 101,  32 }, { 116,  32 }, { 131,  32 }, { 146,  32 }, { 161,  32 }, { 176,  32 }, { 198,  32 }, 
-    // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    {   3,  48 }, {  22,  48 }, {  33,  48 }, {  48,  48 }, {  63,  48 }, {  78,  48 }, {  93,  48 }, { 108,  48 }, { 123,  48 }, { 138,  48 }, { 153,  48 }, { 168,  48 }, { 194,  48 }, { 213,  48 }, 
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    {   3,  64 }, {  22,  64 }, {  33,  64 }, { 101,  64 }, { 135,  64 }, { 153,  64 }, { 195,  64 }, { 210,  64 }, { 225,  64 },
-    // UNDERGLOW
-    {   216, 32 }, {  180,  32 }, {  144, 32 }, { 108,  32 }, { 72,  32 }, { 36,  32 }
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  , 
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 
-    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 
-    // LShift,<, Z, X, C, V, B, N, M, ,, ., Shift, Up, / 
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    1, 1, 1, 4, 1, 1, 1, 1, 1,
-    // UNDERGLOW
-    2, 2, 2, 2, 2, 2
-} };
-#endif

+ 69 - 0
keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json

@@ -56,6 +56,75 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
+            {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 191, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
+            {"x": 216, "y": 32, "flags": 2},
+            {"x": 180, "y": 32, "flags": 2},
+            {"x": 144, "y": 32, "flags": 2},
+            {"x": 108, "y": 32, "flags": 2},
+            {"x": 72, "y": 32, "flags": 2},
+            {"x": 36, "y": 32, "flags": 2}
+        ]
         "max_brightness": 180
     },
     "rgblight": {

+ 0 - 52
keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c

@@ -1,52 +0,0 @@
-/* Copyright 2020 ipetepete
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-  { 0,      1,      2,      3,      4,      5,      6,      7,      8,      9,      10,     11,     12,     13 },
-  { 14,     15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27 },
-  { 28,     NO_LED, 29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40 },
-  { NO_LED, 41,     42,     43,     44,     45,     46,     47,     48,     49,     50,     51, NO_LED,     52 },
-  { 53,     54,     55,     NO_LED, NO_LED, NO_LED, 56,     NO_LED, NO_LED, 57,     58, NO_LED,     59,     60 }
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    {   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 }, { 202,   0 },
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    {   7,  16 }, {  22,  16 }, {  37,  16 }, {  52,  16 }, {  67,  16 }, {  82,  16 }, {  97,  16 }, { 112,  16 }, { 127,  16 }, { 142,  16 }, { 157,  16 }, { 172,  16 }, { 187,  16 }, { 206,  16 },
-    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
-    {  11,  32 }, {  26,  32 }, {  41,  32 }, {  56,  32 }, {  71,  32 }, {  86,  32 }, { 101,  32 }, { 116,  32 }, { 131,  32 }, { 146,  32 }, { 161,  32 }, { 176,  32 }, { 198,  32 },
-    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    {  18,  48 }, {  30,  48 }, {  45,  48 }, {  60,  48 }, {  75,  48 }, {  90,  48 }, { 105,  48 }, { 120,  48 }, { 135,  48 }, { 150,  48 }, { 165,  48 }, { 191,  48 },
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    {   3,  64 }, {  22,  64 }, {  33,  64 }, { 101,  64 }, { 135,  64 }, { 153,  64 }, { 210,  64 }, { 225,  64 },
-    // UNDERGLOW
-    {   216, 32 }, {  180,  32 }, {  144, 32 }, { 108,  32 }, { 72,  32 }, { 36,  32 }
-}, {
-    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    1, 1, 1, 4, 1, 1, 1, 1,
-    // UNDERGLOW
-    2, 2, 2, 2, 2, 2
-} };
-#endif

+ 76 - 1
keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json

@@ -11,7 +11,82 @@
         "pin": "E2"
     },
     "rgb_matrix": {
-        "driver": "ws2812"
+        "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": 202, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 1], "x": 9, "y": 48, "flags": 1},
+            {"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": 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": 21, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 94, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 148, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 193, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 208, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
+            {"x": 185, "y": 45, "flags": 2},
+            {"x": 160, "y": 45, "flags": 2},
+            {"x": 125, "y": 45, "flags": 2},
+            {"x": 95, "y": 45, "flags": 2},
+            {"x": 60, "y": 45, "flags": 2},
+            {"x": 25, "y": 45, "flags": 2}
+        ]
     },
     "build": {
         "lto": true

+ 0 - 44
keyboards/kprepublic/bm65hsrgb/rev1/rev1.c

@@ -1,44 +0,0 @@
-/* Copyright 2021 bytesapart
- *
- * 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,     NO_LED, 31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,     43 },
-    { NO_LED, 44,     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, 62,     63,     NO_LED, 64,     65,     66 }
-}, {
-    // LED Index to Physical Position
-    {  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}, {202,  0}, {225,  0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
-    {  4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
-    {  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}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
-               {  9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
-    {  2, 64}, { 21, 64}, { 39, 64},                                  { 94, 64},                       {148, 64}, {163, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW
-}, {
-    // LED Index to Flag
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,  // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,  // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
-    1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,  // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
-       1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,  // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
-    1, 1, 1,          4,       1, 1,    1, 1, 1,  // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-    2, 2, 2, 2, 2, 2  // UNDERGLOW
-} };
-#endif

+ 76 - 0
keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json

@@ -82,6 +82,82 @@
             "animation": "band_sat"
         },
         "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": 202, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 198, "y": 32, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 18, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 190, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 209, "y": 48, "flags": 1},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 33, "y": 64, "flags": 1},
+            {"matrix": [4, 8], "x": 101, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 153, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
+            {"x": 216, "y": 32, "flags": 2},
+            {"x": 180, "y": 32, "flags": 2},
+            {"x": 144, "y": 32, "flags": 2},
+            {"x": 108, "y": 32, "flags": 2},
+            {"x": 72, "y": 32, "flags": 2},
+            {"x": 36, "y": 32, "flags": 2}
+        ]
         "max_brightness": 140
     },
     "build": {

+ 0 - 38
keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c

@@ -16,44 +16,6 @@
 #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,     NO_LED, 31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,     43},
-  { 44,     45,     46,     47,     48,     49,     50,     51,     52,     53,     54,     55,     56,     57,     58},
-  { 59,     60,     NO_LED, NO_LED, NO_LED, 61,     NO_LED, NO_LED, 62,     63, NO_LED,     64,     65,     66,     67}
-
-}, {
-  // LED Index to Physical Position
-  // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
-  {   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 }, { 202,   0 }, { 224,   0 },
-  // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1
-  {   7,  16 }, {  22,  16 }, {  37,  16 }, {  52,  16 }, {  67,  16 }, {  82,  16 }, {  97,  16 }, { 112,  16 }, { 127,  16 }, { 142,  16 }, { 157,  16 }, { 172,  16 }, { 187,  16 }, { 206,  16 }, { 224,  16 },
-  // Capslock, A, S, D, F, G, H, J, K, L, ;, ',  , PageUp
-  {  11,  32 }, {  26,  32 }, {  41,  32 }, {  56,  32 }, {  71,  32 }, {  86,  32 }, { 101,  32 }, { 116,  32 }, { 131,  32 }, { 146,  32 }, { 161,  32 }, { 176,  32 }, { 198,  32 }, { 224,  32 },
-  // LShift, <,  Z, X, C, V, B, N, M, ,, ., /, Shift, Up, PageDown
-  {   3,  48 }, {  18,  48 }, {  33,  48 }, {  48,  48 }, {  63,  48 }, {  78,  48 }, {  93,  48 }, { 108,  48 }, { 123,  48 }, { 138,  48 }, { 153,  48 }, { 168,  48 }, { 190,  48 }, { 209,  48 }, { 224,  48 },
-  // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-  {   3,  64 }, {  22,  64 }, {  33,  64 }, { 101,  64 }, { 135,  64 }, { 153,  64 }, { 194,  64 }, { 209,  64 },{ 224,  64 },
-  // UNDERGLOW
-  {   216, 32 }, {  180,  32 }, {  144, 32 }, { 108,  32 }, { 72,  32 }, { 36,  32 }
-}, {
-  // LED Index to Flag
-  // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
-  1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-  // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1
-  1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-  // Capslock, A, S, D, F, G, H, J, K, L, ;, ',  , PageUp
-  1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-  // LShift, <, Z, X, C, V, B, N, M, ,, ., /, RShift, Up, PageDown
-  1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
-  // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
-  1, 1, 1, 4, 1, 1, 1, 1, 1,
-  // UNDERGLOW
-  2, 2, 2, 2, 2, 2
-} };
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 76 - 0
keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json

@@ -57,6 +57,82 @@
             "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": 202, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 1], "x": 9, "y": 48, "flags": 1},
+            {"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": 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": 21, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 94, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 148, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 178, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 193, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 208, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
+            {"x": 185, "y": 45, "flags": 2},
+            {"x": 160, "y": 45, "flags": 2},
+            {"x": 125, "y": 45, "flags": 2},
+            {"x": 95, "y": 45, "flags": 2},
+            {"x": 60, "y": 45, "flags": 2},
+            {"x": 25, "y": 45, "flags": 2}
+        ]
         "max_brightness": 180
     },
     "build": {

+ 0 - 25
keyboards/kprepublic/bm68hsrgb/rev1/rev1.c

@@ -17,31 +17,6 @@
 #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,     NO_LED, 31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,     43 },
-    { NO_LED, 44,     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, 62,     63,     64,     65,     66,     67 }
-}, {
-    // LED Index to Physical Position
-    {  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}, {202,  0}, {225,  0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
-    {  4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
-    {  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}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
-               {  9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
-    {  2, 64}, { 21, 64}, { 39, 64},                                  { 94, 64},                       {148, 64}, {163, 64}, {178, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
-    {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW
-}, {
-    // LED Index to Flag
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,  // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,  // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
-    1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,  // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
-       1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,  // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
-    1, 1, 1,          4,       1, 1, 1, 1, 1, 1,  // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
-    2, 2, 2, 2, 2, 2  // UNDERGLOW
-} };
-
 //CAPS backlight
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {

+ 70 - 0
keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json

@@ -42,6 +42,76 @@
             "solid_multisplash": true
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
+            {"matrix": [3, 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": 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, 6], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 150, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 165, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "max_brightness": 180,
         "sleep": true
     },

+ 0 - 20
keyboards/kprepublic/bm68hsrgb/rev2/rev2.c

@@ -92,26 +92,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW7_CS30, SW7_CS29, SW7_CS28}
 
 };
-led_config_t g_led_config = { {
-    {  0,      1,  2,      3,      4,     5,   6,       7,       8,  9,  10,  11,     12,    13,  14 },
-    {  15,    16, 17,     18,     19,    20,  21,      22,      23, 24,  25,  26,     27,    28,  29 },
-    {  30,    31, 32,     33,     34,    35,  36,      37,      38, 39,  40,  41, NO_LED,    42,  43 },
-    {  44,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, 62,  63,  64,     65,    66,  67 }
-}, {
-    {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
-	{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 },                             { 150,  64 }, { 165,  64 }, { 180,  64 }, { 195,  64 }, { 210,  64 }, { 224,  64 }
-}, {
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    1, 1, 1, 4, 1, 1, 1, 1, 1, 1
-} };
-
 
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {

+ 0 - 142
keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c

@@ -1,142 +0,0 @@
-/* Copyright 2021 peepeetee
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    // Key Matrix to LED Index
-	{  0,     NO_LED,  1,      2,      3,      4, NO_LED,      5,      6,      7,      8,      9,     10,     12,     13,     14,     15 },
-	{ 16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27,     28,     29,     30,     31,     32 },
-	{ 33,     34,     35,     36,     37,     38,     39,     40,     41,     42,     43,     44,     45,     46,     47,     48,     49 },
-	{ 50,     51,     52,     53,     54,     55,     56,     57,     58,     59,     60,     61,     11,     62, NO_LED, NO_LED, NO_LED },
-                                                                                                    /* ^ this one is f11*/
-	{ 63,     64,     65,     66,     67,     68,     69,     70,     71,     72,     73, NO_LED,     74, NO_LED, NO_LED,     75, NO_LED },
-	{ 76,     77,     78,     NO_LED, NO_LED, 79, NO_LED, NO_LED, NO_LED,     80,     81,     82,     83,     84, NO_LED,     85,     86 }
-
-//     K0_0,       K0_2, K0_3, K0_4, K0_5,   K0_7, K0_8, K0_9, K0_A,   K0_B, K0_C, K3_C, K0_D,   K0_E, K0_F, K0_10,
-//     K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C,    K1_D,    K1_E, K1_F, K1_10,
-//      K2_0,   K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C,   K2_D,  K2_E, K2_F, K2_10,
-//      K3_0,    K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B,       K3_D,
-//       K4_0,     K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A,     K4_C,               K4_F,
-//     K5_0,  K5_1,  K5_2,             K5_5,                       K5_9, K5_A, K5_B, K5_C,       K5_D, K5_F, K5_10
-
-
-// 	   K0_0,  KC_NO, K0_2,  K0_3,  K0_4,  K0_5,  KC_NO, K0_7,  K0_8,  K0_9,  K0_A,  K0_B,  K0_C,  K0_D,  K0_E,  K0_F,  K0_10
-// 	   K1_0,  K1_1,  K1_2,  K1_3,  K1_4,  K1_5,  K1_6,  K1_7,  K1_8,  K1_9,  K1_A,  K1_B,  K1_C,  K1_D,  K1_E,  K1_F,  K1_10
-// 	   K2_0,  K2_1,  K2_2,  K2_3,  K2_4,  K2_5,  K2_6,  K2_7,  K2_8,  K2_9,  K2_A,  K2_B,  K2_C,  K2_D,  K2_E,  K2_F,  K2_10
-// 	   K3_0,  K3_1,  K3_2,  K3_3,  K3_4,  K3_5,  K3_6,  K3_7,  K3_8,  K3_9,  K3_A,  K3_B,  K3_C,  K3_D,  KC_NO, KC_NO, KC_NO
-// 	   K4_0,  K4_1,  K4_2,  K4_3,  K4_4,  K4_5,  K4_6,  K4_7,  K4_8,  K4_9,  K4_A,  KC_NO, K4_C,  KC_NO, KC_NO, K4_F,  KC_NO
-// 	   K5_0,  K5_1,  K5_2,  KC_NO, KC_NO, K5_5,  KC_NO, KC_NO, KC_NO, K5_9,  K5_A,  K5_B,  K5_C,  K5_D,  KC_NO, K5_F,  K5_10
-
-    /*
-     * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
-     * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│
-     * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
-     * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
-     * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│   29  │ │ 30│ 31│ 32│
-     * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
-     * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│
-     * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
-     * │ 50   │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62   │
-     * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤     ┌───┐
-     * │ 63     │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74    │     │ 75│
-     * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
-     * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│
-     * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
-     */
-
-}, {
-    // LED Index to Physical Position
-    {   7,   5 }, {  31,   5 }, {  43,   5 }, {  55,   5 }, {  67,   5 }, {  85,   5 }, {  97,   5 }, { 109,   5 }, { 121,   5 }, { 139,   5 }, { 151,   5 }, { 163,   5 }, { 175,   5 }, { 193,   5 }, { 205,   5 }, { 217,   5 },
-     /*
-     * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
-     * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│
-     * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
-    */
-    {   7,  20 }, {  19,  20 }, {  31,  20 }, {  43,  20 }, {  55,  20 }, {  67,  20 }, {  79,  20 }, {  91,  20 }, { 103,  20 }, { 115,  20 }, { 127,  20 }, { 139,  20 }, { 151,  20 }, { 169,  20 }, { 193,  20 }, { 205,  20 }, { 217,  20 },
-    /*
-     * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
-     * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│   29  │ │ 30│ 31│ 32│
-     * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───────┘ └───┴───┴───┘
-     */
-    {  10,  30 }, {  25,  30 }, {  37,  30 }, {  49,  30 }, {  61,  30 }, {  73,  30 }, {  85,  30 }, {  97,  30 }, { 109,  30 }, { 121,  30 }, { 133,  30 }, { 145,  30 }, { 157,  30 }, { 172,  30 }, { 193,  30 }, { 205,  30 }, { 217,  30 },
-    /*
-     * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ ┌───┬───┬───┐
-     * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│
-     * └─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┘ └───┴───┴───┘
-     */
-    {  11,  39 }, {  28,  39 }, {  40,  39 }, {  52,  39 }, {  64,  39 }, {  76,  39 }, {  88,  39 }, { 100,  39 }, { 112,  39 }, { 124,  39 }, { 136,  39 }, { 148,  39 }, { 168,  39 },
-    /*
-     * ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐
-     * │ 50   │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62   │
-     * └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘
-     */
-    {  14,  49 }, {  34,  49 }, {  46,  49 }, {  58,  49 }, {  70,  49 }, {  82,  49 }, {  94,  49 }, { 106,  49 }, { 118,  49 }, { 130,  49 }, { 142,  49 }, { 165,  49 }, { 205,  49 },
-    /*
-     * ┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────────┐     ┌───┐
-     * │ 63     │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74    │     │ 75│
-     * └────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────────┘     └───┘
-     */
-    {   8,  59 }, {  23,  59 }, {  38,  59 }, {  83,  59 }, { 129,  59 }, { 144,  59 }, { 159,  59 }, { 174,  59 }, { 193,  59 }, { 205,  59 }, { 217,  59 }
-    /*
-     * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┌───┬───┬───┐
-     * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│
-     * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
-     */
-}, {
-    // LED Index to Flag
-    1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 9/*scroll lock*/, 1,
-     /*
-     * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
-     * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│
-     * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
-    */
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
-    /*
-     * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
-     * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│   29  │ │ 30│ 31│ 32│
-     * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───────┘ └───┴───┴───┘
-     */
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
-    /*
-     * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ ┌───┬───┬───┐
-     * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│
-     * └─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┘ └───┴───┴───┘
-     */
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
-    //caps lock is 1 instead of 1+8, this board has a dedicated led
-    /*
-     * ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐
-     * │ 50   │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62   │
-     * └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘
-     */
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,          1,
-    /*
-     * ┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────────┐     ┌───┐
-     * │ 63     │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74    │     │ 75│
-     * └────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────────┘     └───┘
-     */
-     1, 1, 1, 4, 1, 1, 1, 1,                    1, 1, 1
-    /*
-     * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┌───┬───┬───┐
-     * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│
-     * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
-     */
-} };
-
-
-#endif

+ 90 - 1
keyboards/kprepublic/bm80hsrgb/keyboard.json

@@ -55,7 +55,96 @@
             "solid_splash": true,
             "solid_multisplash": true
         },
-        "driver": "ws2812"
+        "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1},
+            {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4},
+            {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4},
+            {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4},
+            {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4},
+            {"matrix": [0, 7], "x": 85, "y": 5, "flags": 1},
+            {"matrix": [0, 8], "x": 97, "y": 5, "flags": 1},
+            {"matrix": [0, 9], "x": 109, "y": 5, "flags": 1},
+            {"matrix": [0, 10], "x": 121, "y": 5, "flags": 1},
+            {"matrix": [0, 11], "x": 139, "y": 5, "flags": 4},
+            {"matrix": [0, 12], "x": 151, "y": 5, "flags": 4},
+            {"matrix": [3, 12], "x": 163, "y": 5, "flags": 4},
+            {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4},
+            {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1},
+            {"matrix": [0, 15], "x": 205, "y": 5, "flags": 9},
+            {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4},
+            {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4},
+            {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4},
+            {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4},
+            {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4},
+            {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4},
+            {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4},
+            {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4},
+            {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4},
+            {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4},
+            {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4},
+            {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4},
+            {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4},
+            {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1},
+            {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1},
+            {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1},
+            {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1},
+            {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1},
+            {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4},
+            {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4},
+            {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4},
+            {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4},
+            {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4},
+            {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4},
+            {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4},
+            {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4},
+            {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4},
+            {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4},
+            {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4},
+            {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4},
+            {"matrix": [2, 13], "x": 172, "y": 30, "flags": 4},
+            {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1},
+            {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1},
+            {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1},
+            {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1},
+            {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4},
+            {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4},
+            {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4},
+            {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4},
+            {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4},
+            {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4},
+            {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4},
+            {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4},
+            {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4},
+            {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4},
+            {"matrix": [3, 13], "x": 168, "y": 39, "flags": 1},
+            {"matrix": [4, 0], "x": 14, "y": 49, "flags": 1},
+            {"matrix": [4, 1], "x": 34, "y": 49, "flags": 4},
+            {"matrix": [4, 2], "x": 46, "y": 49, "flags": 4},
+            {"matrix": [4, 3], "x": 58, "y": 49, "flags": 4},
+            {"matrix": [4, 4], "x": 70, "y": 49, "flags": 4},
+            {"matrix": [4, 5], "x": 82, "y": 49, "flags": 4},
+            {"matrix": [4, 6], "x": 94, "y": 49, "flags": 4},
+            {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
+            {"matrix": [4, 8], "x": 118, "y": 49, "flags": 4},
+            {"matrix": [4, 9], "x": 130, "y": 49, "flags": 4},
+            {"matrix": [4, 10], "x": 142, "y": 49, "flags": 4},
+            {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1},
+            {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1},
+            {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1},
+            {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1},
+            {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1},
+            {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4},
+            {"matrix": [5, 9], "x": 129, "y": 59, "flags": 1},
+            {"matrix": [5, 10], "x": 144, "y": 59, "flags": 1},
+            {"matrix": [5, 11], "x": 159, "y": 59, "flags": 1},
+            {"matrix": [5, 12], "x": 174, "y": 59, "flags": 1},
+            {"matrix": [5, 13], "x": 193, "y": 59, "flags": 1},
+            {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1},
+            {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1}
+        ]
     },
     "build": {
         "lto": true

+ 0 - 24
keyboards/kprepublic/bm80v2/bm80v2.c

@@ -112,30 +112,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW8_CS36, SW8_CS35, SW8_CS34}
 
 };
-led_config_t g_led_config = { {
-    {  0,  NO_LED,      1,     2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13,     14,     15 },
-    {  16,     17,     18,     19,    20,     21,     22,     23,     24,     25,     26,     27,     28,     29,     30,     31,     32 },
-    {  33,     34,     35,     36,    37,     38,     39,     40,     41,     42,     43,     44,     45,     46,     47,     48,     49 },
-    {  50,     51,     52,     53,    54,     55,     56,     57,     58,     59,     60,     61,     62, NO_LED, NO_LED, NO_LED, NO_LED },
-    {  63, NO_LED,     64,     65,    66,     67,     68,     69,     70,     71,     72,     73,     74, NO_LED, NO_LED,     75, NO_LED },
-    {  76,     77,     78, NO_LED,NO_LED,     79, NO_LED, NO_LED, NO_LED, NO_LED,     80,     81,     82,     83,     84,     85,     86 }
-},
-{
-    {   7,   5 }, {  31,   5 }, {  43,   5 }, {  55,   5 }, {  67,   5 }, {  85,   5 }, {  97,   5 }, { 109,   5 }, { 121,   5 }, { 139,   5 }, { 151,   5 }, { 163,   5 }, { 175,   5 }, { 193,   5 }, { 205,   5 }, { 217,   5 },
-    {   7,  20 }, {  19,  20 }, {  31,  20 }, {  43,  20 }, {  55,  20 }, {  67,  20 }, {  79,  20 }, {  91,  20 }, { 103,  20 }, { 115,  20 }, { 127,  20 }, { 139,  20 }, { 151,  20 }, { 169,  20 }, { 193,  20 }, { 205,  20 }, { 217,  20 },
-    {  10,  30 }, {  25,  30 }, {  37,  30 }, {  49,  30 }, {  61,  30 }, {  73,  30 }, {  85,  30 }, {  97,  30 }, { 109,  30 }, { 121,  30 }, { 133,  30 }, { 145,  30 }, { 157,  30 }, { 172,  30 }, { 193,  30 }, { 205,  30 }, { 217,  30 },
-    {  11,  39 }, {  28,  39 }, {  40,  39 }, {  52,  39 }, {  64,  39 }, {  76,  39 }, {  88,  39 }, { 100,  39 }, { 112,  39 }, { 124,  39 }, { 136,  39 }, { 148,  39 }, { 168,  39 },
-    {  17,  49 },  {  34,  49 }, {  46,  49 }, {  58,  49 }, {  70,  49 }, {  82,  49 }, {  94,  49 }, { 106,  49 }, { 118,  49 }, { 130,  49 }, { 142,  49 }, { 165,  49 }, { 205,  49 },
-    {  8,  59 }, {  23,  59 }, {  38,  59 }, {  83,  59 }, { 129,  59 }, { 144,  59 }, { 159,  59 }, { 174,  59 }, { 193,  59 }, { 205,  59 }, { 217,  59 }
-},
-{   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, 1,
-    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,       4,     1, 1, 1, 1,         1, 1, 1
-} };
-
 
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {

+ 89 - 0
keyboards/kprepublic/bm80v2/keyboard.json

@@ -45,6 +45,95 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1},
+            {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4},
+            {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4},
+            {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4},
+            {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4},
+            {"matrix": [0, 6], "x": 85, "y": 5, "flags": 1},
+            {"matrix": [0, 7], "x": 97, "y": 5, "flags": 1},
+            {"matrix": [0, 8], "x": 109, "y": 5, "flags": 1},
+            {"matrix": [0, 9], "x": 121, "y": 5, "flags": 1},
+            {"matrix": [0, 10], "x": 139, "y": 5, "flags": 4},
+            {"matrix": [0, 11], "x": 151, "y": 5, "flags": 4},
+            {"matrix": [0, 12], "x": 163, "y": 5, "flags": 4},
+            {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4},
+            {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1},
+            {"matrix": [0, 15], "x": 205, "y": 5, "flags": 1},
+            {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4},
+            {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4},
+            {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4},
+            {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4},
+            {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4},
+            {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4},
+            {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4},
+            {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4},
+            {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4},
+            {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4},
+            {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4},
+            {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4},
+            {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4},
+            {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1},
+            {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1},
+            {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1},
+            {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1},
+            {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1},
+            {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4},
+            {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4},
+            {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4},
+            {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4},
+            {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4},
+            {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4},
+            {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4},
+            {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4},
+            {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4},
+            {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4},
+            {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4},
+            {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4},
+            {"matrix": [2, 13], "x": 172, "y": 30, "flags": 4},
+            {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1},
+            {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1},
+            {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1},
+            {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1},
+            {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4},
+            {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4},
+            {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4},
+            {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4},
+            {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4},
+            {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4},
+            {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4},
+            {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4},
+            {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4},
+            {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4},
+            {"matrix": [3, 12], "x": 168, "y": 39, "flags": 1},
+            {"matrix": [4, 0], "x": 17, "y": 49, "flags": 1},
+            {"matrix": [4, 2], "x": 34, "y": 49, "flags": 4},
+            {"matrix": [4, 3], "x": 46, "y": 49, "flags": 4},
+            {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4},
+            {"matrix": [4, 5], "x": 70, "y": 49, "flags": 4},
+            {"matrix": [4, 6], "x": 82, "y": 49, "flags": 4},
+            {"matrix": [4, 7], "x": 94, "y": 49, "flags": 4},
+            {"matrix": [4, 8], "x": 106, "y": 49, "flags": 4},
+            {"matrix": [4, 9], "x": 118, "y": 49, "flags": 4},
+            {"matrix": [4, 10], "x": 130, "y": 49, "flags": 4},
+            {"matrix": [4, 11], "x": 142, "y": 49, "flags": 4},
+            {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1},
+            {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1},
+            {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1},
+            {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1},
+            {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1},
+            {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4},
+            {"matrix": [5, 10], "x": 129, "y": 59, "flags": 1},
+            {"matrix": [5, 11], "x": 144, "y": 59, "flags": 1},
+            {"matrix": [5, 12], "x": 159, "y": 59, "flags": 1},
+            {"matrix": [5, 13], "x": 174, "y": 59, "flags": 1},
+            {"matrix": [5, 14], "x": 193, "y": 59, "flags": 1},
+            {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1},
+            {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1}
+        ],
         "max_brightness": 180,
         "sleep": true
     },

+ 0 - 24
keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c

@@ -113,30 +113,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW8_CS36, SW8_CS35, SW8_CS34}
 
 };
-led_config_t g_led_config = { {
-    {  0,  NO_LED,      1,     2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13,     14,     15 },
-    {  16,     17,     18,     19,    20,     21,     22,     23,     24,     25,     26,     27,     28,     29,     30,     31,     32 },
-    {  33,     34,     35,     36,    37,     38,     39,     40,     41,     42,     43,     44,     45,     46,     47,     48,     49 },
-    {  50,     51,     52,     53,    54,     55,     56,     57,     58,     59,     60,     61,     62, NO_LED, NO_LED, NO_LED, NO_LED },
-    {  63,     64,     65,     66,    67,     68,     69,     70,     71,     72,     73,     74,     75, NO_LED, NO_LED,     76, NO_LED },
-    {  77,     78,     79, NO_LED,NO_LED,     80, NO_LED, NO_LED, NO_LED, NO_LED,     81,     82,     83,     84,     85,     86,     87 }
-},
-{
-    {   7,   5 }, {  31,   5 }, {  43,   5 }, {  55,   5 }, {  67,   5 }, {  85,   5 }, {  97,   5 }, { 109,   5 }, { 121,   5 }, { 139,   5 }, { 151,   5 }, { 163,   5 }, { 175,   5 }, { 193,   5 }, { 205,   5 }, { 217,   5 },
-    {   7,  20 }, {  19,  20 }, {  31,  20 }, {  43,  20 }, {  55,  20 }, {  67,  20 }, {  79,  20 }, {  91,  20 }, { 103,  20 }, { 115,  20 }, { 127,  20 }, { 139,  20 }, { 151,  20 }, { 169,  20 }, { 193,  20 }, { 205,  20 }, { 217,  20 },
-    {  10,  30 }, {  25,  30 }, {  37,  30 }, {  49,  30 }, {  61,  30 }, {  73,  30 }, {  85,  30 }, {  97,  30 }, { 109,  30 }, { 121,  30 }, { 133,  30 }, { 145,  30 }, { 157,  30 }, { 175,  35 }, { 193,  30 }, { 205,  30 }, { 217,  30 },
-    {  11,  39 }, {  28,  39 }, {  40,  39 }, {  52,  39 }, {  64,  39 }, {  76,  39 }, {  88,  39 }, { 100,  39 }, { 112,  39 }, { 124,  39 }, { 136,  39 }, { 148,  39 }, { 168,  39 },
-    {  8,  49 },  {  22,  49 }, {  34,  49 }, {  46,  49 }, {  58,  49 }, {  70,  49 }, {  82,  49 }, {  94,  49 }, { 106,  49 }, { 118,  49 }, { 130,  49 }, { 142,  49 }, { 165,  49 }, { 205,  49 },
-    {  8,  59 }, {  23,  59 }, {  38,  59 }, {  83,  59 }, { 129,  59 }, { 144,  59 }, { 159,  59 }, { 174,  59 }, { 193,  59 }, { 205,  59 }, { 217,  59 }
-},
-{   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, 1,
-    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, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,       1,
-    1, 1, 1,       4,     1, 1, 1, 1,         1, 1, 1
-} };
-
 
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {

+ 90 - 0
keyboards/kprepublic/bm80v2_iso/keyboard.json

@@ -45,6 +45,96 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1},
+            {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4},
+            {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4},
+            {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4},
+            {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4},
+            {"matrix": [0, 6], "x": 85, "y": 5, "flags": 1},
+            {"matrix": [0, 7], "x": 97, "y": 5, "flags": 1},
+            {"matrix": [0, 8], "x": 109, "y": 5, "flags": 1},
+            {"matrix": [0, 9], "x": 121, "y": 5, "flags": 1},
+            {"matrix": [0, 10], "x": 139, "y": 5, "flags": 4},
+            {"matrix": [0, 11], "x": 151, "y": 5, "flags": 4},
+            {"matrix": [0, 12], "x": 163, "y": 5, "flags": 4},
+            {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4},
+            {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1},
+            {"matrix": [0, 15], "x": 205, "y": 5, "flags": 1},
+            {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1},
+            {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4},
+            {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4},
+            {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4},
+            {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4},
+            {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4},
+            {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4},
+            {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4},
+            {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4},
+            {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4},
+            {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4},
+            {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4},
+            {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4},
+            {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4},
+            {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1},
+            {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1},
+            {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1},
+            {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1},
+            {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1},
+            {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4},
+            {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4},
+            {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4},
+            {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4},
+            {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4},
+            {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4},
+            {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4},
+            {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4},
+            {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4},
+            {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4},
+            {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4},
+            {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4},
+            {"matrix": [2, 13], "x": 175, "y": 35, "flags": 4},
+            {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1},
+            {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1},
+            {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1},
+            {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1},
+            {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4},
+            {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4},
+            {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4},
+            {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4},
+            {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4},
+            {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4},
+            {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4},
+            {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4},
+            {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4},
+            {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4},
+            {"matrix": [3, 12], "x": 168, "y": 39, "flags": 1},
+            {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 49, "flags": 1},
+            {"matrix": [4, 2], "x": 34, "y": 49, "flags": 4},
+            {"matrix": [4, 3], "x": 46, "y": 49, "flags": 4},
+            {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4},
+            {"matrix": [4, 5], "x": 70, "y": 49, "flags": 4},
+            {"matrix": [4, 6], "x": 82, "y": 49, "flags": 4},
+            {"matrix": [4, 7], "x": 94, "y": 49, "flags": 4},
+            {"matrix": [4, 8], "x": 106, "y": 49, "flags": 4},
+            {"matrix": [4, 9], "x": 118, "y": 49, "flags": 4},
+            {"matrix": [4, 10], "x": 130, "y": 49, "flags": 4},
+            {"matrix": [4, 11], "x": 142, "y": 49, "flags": 4},
+            {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1},
+            {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1},
+            {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1},
+            {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1},
+            {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1},
+            {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4},
+            {"matrix": [5, 10], "x": 129, "y": 59, "flags": 1},
+            {"matrix": [5, 11], "x": 144, "y": 59, "flags": 1},
+            {"matrix": [5, 12], "x": 159, "y": 59, "flags": 1},
+            {"matrix": [5, 13], "x": 174, "y": 59, "flags": 1},
+            {"matrix": [5, 14], "x": 193, "y": 59, "flags": 1},
+            {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1},
+            {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1}
+        ],
         "max_brightness": 180,
         "sleep": true
     },

+ 0 - 51
keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c

@@ -1,51 +0,0 @@
-/* Copyright 2021 peepeetee
- * Copyright 2021 bdtc123
- *
- * 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,  NO_LED,    13 },
-  { 17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27,     28,     29,     30,     31 },
-  { 35,     36,     37,     38,     39,     40,     41,     42,     43,     44,     45,     46,     47,     48,     49 },
-  { 53,     54,     55,     56,     57,     58,     59,     60,     61,     62,     63,     64,  NO_LED,    65,     66 },
-  { 69, NO_LED,     70,     71,     72,     73,     74,     75,     76,     77,     78,     79,     80,     81,     82 },
-  { 86,     87,     88,     96,     97,     85,     89,     84,     83,     90,     91,     92,     93,     94,     95 },
-  { NO_LED, NO_LED, 34,     50,     51,     52,     16,     68,     67,     33,     15,     32,  NO_LED,    14, NO_LED }
-
-
-}, {
-    // LED Index to Physical Position
-    {   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 },  { 202,   0 },  { 212,   0 }, { 224,   0 },
-    {   0,   20 }, {  15,   20 }, {  30,   20 }, {  45,   20 }, {  60,   20 }, {  75,   20 }, {  90,   20 }, { 105,   20 }, { 120,   20 }, { 135,   20 }, { 150,   20 }, { 165,   20 }, { 180,   20 },{ 195,   20 }, { 202,   20 }, { 212,   20 },{ 220,   20 },{ 224,   20 },
-    {   8,   30 }, {  15,   30 }, {  30,   30 }, {  45,   30 }, {  60,   30 }, {  75,   30 }, {  90,   30 }, { 105,   30 }, { 120,   30 }, { 135,   30 }, { 150,   30 }, { 165,   30 }, { 180,   30 },{ 195,   30 }, { 202,   30 }, { 212,   30 },{ 220,   30 },{ 224,   30 },
-    {   9,   40 }, {  15,   40 }, {  30,   40 }, {  45,   40 }, {  60,   40 }, {  75,   40 }, {  90,   40 }, { 105,   40 }, { 120,   40 }, { 135,   40 }, { 150,   40 }, { 165,   40 }, { 180,   40 },{ 195,   40 }, { 202,   40 }, { 212,   40 },
-    {   12,  50 }, {  15,   50 }, {  30,   50 }, {  45,   50 }, {  60,   50 }, {  75,   50 }, {  90,   50 }, { 105,   50 }, { 120,   50 }, { 135,   50 }, { 150,   50 }, { 165,   50 }, { 180,   50 },{ 195,   50 }, { 202,   50 }, { 212,   50 },{ 224,   50 },
-    {   2,   60 }, {  17,   60 }, {  34,   60 },  { 77,   60 }, { 120,   60 }, { 135,   60 }, {  150,   60 }, { 165,  60 }, { 177,   60 }, { 182,   60 }, { 197,   60 }, { 212,   60 },
-
-}, {
-    // LED Index to Flag
-    1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 9/*scroll lock*/, 1,1,
-    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,             1, 1, 1, 1,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,             4, 4, 4, 1,
-    9/*caps lock*/, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,   4, 4, 4,
-    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,            1,     4, 4, 4, 1,
-     1, 1, 1, 4, 1, 1, 1,                       1, 1, 1,     4, 4
-} };
-
-
-#endif

+ 101 - 1
keyboards/kprepublic/bm980hsrgb/keyboard.json

@@ -8,7 +8,107 @@
         "device_version": "0.0.1"
     },
     "rgb_matrix": {
-        "driver": "ws2812"
+        "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": 1},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1},
+            {"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, 14], "x": 195, "y": 0, "flags": 1},
+            {"matrix": [6, 13], "x": 202, "y": 0, "flags": 9},
+            {"matrix": [6, 10], "x": 212, "y": 0, "flags": 1},
+            {"matrix": [6, 6], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4},
+            {"matrix": [1, 1], "x": 15, "y": 20, "flags": 4},
+            {"matrix": [1, 2], "x": 30, "y": 20, "flags": 4},
+            {"matrix": [1, 3], "x": 45, "y": 20, "flags": 4},
+            {"matrix": [1, 4], "x": 60, "y": 20, "flags": 4},
+            {"matrix": [1, 5], "x": 75, "y": 20, "flags": 4},
+            {"matrix": [1, 6], "x": 90, "y": 20, "flags": 4},
+            {"matrix": [1, 7], "x": 105, "y": 20, "flags": 4},
+            {"matrix": [1, 8], "x": 120, "y": 20, "flags": 4},
+            {"matrix": [1, 9], "x": 135, "y": 20, "flags": 4},
+            {"matrix": [1, 10], "x": 150, "y": 20, "flags": 4},
+            {"matrix": [1, 11], "x": 165, "y": 20, "flags": 4},
+            {"matrix": [1, 12], "x": 180, "y": 20, "flags": 4},
+            {"matrix": [1, 13], "x": 195, "y": 20, "flags": 1},
+            {"matrix": [1, 14], "x": 202, "y": 20, "flags": 1},
+            {"matrix": [6, 11], "x": 212, "y": 20, "flags": 1},
+            {"matrix": [6, 9], "x": 220, "y": 20, "flags": 1},
+            {"matrix": [6, 2], "x": 224, "y": 20, "flags": 1},
+            {"matrix": [2, 0], "x": 8, "y": 30, "flags": 1},
+            {"matrix": [2, 1], "x": 15, "y": 30, "flags": 4},
+            {"matrix": [2, 2], "x": 30, "y": 30, "flags": 4},
+            {"matrix": [2, 3], "x": 45, "y": 30, "flags": 4},
+            {"matrix": [2, 4], "x": 60, "y": 30, "flags": 4},
+            {"matrix": [2, 5], "x": 75, "y": 30, "flags": 4},
+            {"matrix": [2, 6], "x": 90, "y": 30, "flags": 4},
+            {"matrix": [2, 7], "x": 105, "y": 30, "flags": 4},
+            {"matrix": [2, 8], "x": 120, "y": 30, "flags": 4},
+            {"matrix": [2, 9], "x": 135, "y": 30, "flags": 4},
+            {"matrix": [2, 10], "x": 150, "y": 30, "flags": 4},
+            {"matrix": [2, 11], "x": 165, "y": 30, "flags": 4},
+            {"matrix": [2, 12], "x": 180, "y": 30, "flags": 4},
+            {"matrix": [2, 13], "x": 195, "y": 30, "flags": 4},
+            {"matrix": [2, 14], "x": 202, "y": 30, "flags": 4},
+            {"matrix": [6, 3], "x": 212, "y": 30, "flags": 4},
+            {"matrix": [6, 4], "x": 220, "y": 30, "flags": 4},
+            {"matrix": [6, 5], "x": 224, "y": 30, "flags": 1},
+            {"matrix": [3, 0], "x": 9, "y": 40, "flags": 9},
+            {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4},
+            {"matrix": [3, 2], "x": 30, "y": 40, "flags": 4},
+            {"matrix": [3, 3], "x": 45, "y": 40, "flags": 4},
+            {"matrix": [3, 4], "x": 60, "y": 40, "flags": 4},
+            {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
+            {"matrix": [3, 6], "x": 90, "y": 40, "flags": 4},
+            {"matrix": [3, 7], "x": 105, "y": 40, "flags": 4},
+            {"matrix": [3, 8], "x": 120, "y": 40, "flags": 4},
+            {"matrix": [3, 9], "x": 135, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 150, "y": 40, "flags": 4},
+            {"matrix": [3, 11], "x": 165, "y": 40, "flags": 4},
+            {"matrix": [3, 13], "x": 180, "y": 40, "flags": 1},
+            {"matrix": [3, 14], "x": 195, "y": 40, "flags": 4},
+            {"matrix": [6, 8], "x": 202, "y": 40, "flags": 4},
+            {"matrix": [6, 7], "x": 212, "y": 40, "flags": 4},
+            {"matrix": [4, 0], "x": 12, "y": 50, "flags": 1},
+            {"matrix": [4, 2], "x": 15, "y": 50, "flags": 4},
+            {"matrix": [4, 3], "x": 30, "y": 50, "flags": 4},
+            {"matrix": [4, 4], "x": 45, "y": 50, "flags": 4},
+            {"matrix": [4, 5], "x": 60, "y": 50, "flags": 4},
+            {"matrix": [4, 6], "x": 75, "y": 50, "flags": 4},
+            {"matrix": [4, 7], "x": 90, "y": 50, "flags": 4},
+            {"matrix": [4, 8], "x": 105, "y": 50, "flags": 4},
+            {"matrix": [4, 9], "x": 120, "y": 50, "flags": 4},
+            {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4},
+            {"matrix": [4, 11], "x": 150, "y": 50, "flags": 4},
+            {"matrix": [4, 12], "x": 165, "y": 50, "flags": 1},
+            {"matrix": [4, 13], "x": 180, "y": 50, "flags": 1},
+            {"matrix": [4, 14], "x": 195, "y": 50, "flags": 4},
+            {"matrix": [5, 8], "x": 202, "y": 50, "flags": 4},
+            {"matrix": [5, 7], "x": 212, "y": 50, "flags": 4},
+            {"matrix": [5, 5], "x": 224, "y": 50, "flags": 1},
+            {"matrix": [5, 0], "x": 2, "y": 60, "flags": 1},
+            {"matrix": [5, 1], "x": 17, "y": 60, "flags": 1},
+            {"matrix": [5, 2], "x": 34, "y": 60, "flags": 1},
+            {"matrix": [5, 6], "x": 77, "y": 60, "flags": 4},
+            {"matrix": [5, 9], "x": 120, "y": 60, "flags": 1},
+            {"matrix": [5, 10], "x": 135, "y": 60, "flags": 1},
+            {"matrix": [5, 11], "x": 150, "y": 60, "flags": 1},
+            {"matrix": [5, 12], "x": 165, "y": 60, "flags": 1},
+            {"matrix": [5, 13], "x": 177, "y": 60, "flags": 1},
+            {"matrix": [5, 14], "x": 182, "y": 60, "flags": 1},
+            {"matrix": [5, 3], "x": 197, "y": 60, "flags": 4},
+            {"matrix": [5, 4], "x": 212, "y": 60, "flags": 4}
+        ]
     },
     "build": {
         "lto": true