Jelajahi Sumber

Merge remote-tracking branch 'origin/develop' into xap

QMK Bot 11 bulan lalu
induk
melakukan
21813fb17f
49 mengubah file dengan 1743 tambahan dan 736 penghapusan
  1. 1 20
      keyboards/machkeyboards/mach3/mach3.c
  2. 36 0
      keyboards/magic_force/mf34/keyboard.json
  3. 0 48
      keyboards/magic_force/mf34/mf34.c
  4. 42 0
      keyboards/marksard/rhymestone/rev1/keyboard.json
  5. 0 60
      keyboards/marksard/rhymestone/rev1/rev1.c
  6. 93 0
      keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json
  7. 0 42
      keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c
  8. 70 0
      keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json
  9. 0 23
      keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
  10. 68 0
      keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json
  11. 0 24
      keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
  12. 27 0
      keyboards/mechlovin/delphine/rgb_led/keyboard.json
  13. 0 26
      keyboards/mechlovin/delphine/rgb_led/rgb_led.c
  14. 74 0
      keyboards/mechlovin/hannah60rgb/rev1/keyboard.json
  15. 0 22
      keyboards/mechlovin/hannah60rgb/rev1/rev1.c
  16. 80 0
      keyboards/mechlovin/hannah60rgb/rev2/keyboard.json
  17. 0 48
      keyboards/mechlovin/hannah60rgb/rev2/rev2.c
  18. 93 0
      keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json
  19. 0 25
      keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c
  20. 0 46
      keyboards/mechlovin/infinity875/infinity875.c
  21. 44 0
      keyboards/mechlovin/infinity875/keyboard.json
  22. 102 1
      keyboards/melgeek/mach80/rev1/keyboard.json
  23. 0 25
      keyboards/melgeek/mach80/rev1/rev1.c
  24. 99 1
      keyboards/melgeek/mach80/rev2/keyboard.json
  25. 0 26
      keyboards/melgeek/mach80/rev2/rev2.c
  26. 68 1
      keyboards/melgeek/mj61/rev1/keyboard.json
  27. 0 24
      keyboards/melgeek/mj61/rev1/rev1.c
  28. 76 1
      keyboards/melgeek/mj61/rev2/keyboard.json
  29. 0 24
      keyboards/melgeek/mj61/rev2/rev2.c
  30. 70 1
      keyboards/melgeek/mj63/rev1/keyboard.json
  31. 0 24
      keyboards/melgeek/mj63/rev1/rev1.c
  32. 76 1
      keyboards/melgeek/mj63/rev2/keyboard.json
  33. 0 24
      keyboards/melgeek/mj63/rev2/rev2.c
  34. 69 1
      keyboards/melgeek/mj64/rev1/keyboard.json
  35. 0 23
      keyboards/melgeek/mj64/rev1/rev1.c
  36. 71 1
      keyboards/melgeek/mj64/rev2/keyboard.json
  37. 0 24
      keyboards/melgeek/mj64/rev2/rev2.c
  38. 77 1
      keyboards/melgeek/mj64/rev3/keyboard.json
  39. 0 24
      keyboards/melgeek/mj64/rev3/rev3.c
  40. 78 0
      keyboards/melgeek/mj65/rev3/keyboard.json
  41. 1 25
      keyboards/melgeek/mj65/rev3/rev3.c
  42. 70 0
      keyboards/melgeek/mojo68/rev1/keyboard.json
  43. 0 23
      keyboards/melgeek/mojo68/rev1/rev1.c
  44. 94 0
      keyboards/melgeek/mojo75/rev1/keyboard.json
  45. 0 27
      keyboards/melgeek/mojo75/rev1/rev1.c
  46. 93 0
      keyboards/melgeek/tegic/rev1/keyboard.json
  47. 0 25
      keyboards/melgeek/tegic/rev1/rev1.c
  48. 71 0
      keyboards/melgeek/z70ultra/rev1/keyboard.json
  49. 0 25
      keyboards/melgeek/z70ultra/rev1/rev1.c

+ 1 - 20
keyboards/machkeyboards/mach3/mach3.c

@@ -15,28 +15,9 @@
  */
 #include "quantum.h"
 
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-  // Key Matrix to LED Index
-  {  0,  1,  2 },
-  {  5,  4,  3 },
-  {  6,  7,  8 },
-}, {
-  // LED Index to Physical Position
-  { 0,  0 },   { 112,  0 },   { 224,  0 },
-  { 0,  112 }, { 112,  112 }, { 224,  112 },
-  { 0,  224 }, { 112,  224 }, { 224,  224 },
-}, {
-  // LED Index to Flag
-  4, 4, 4,
-  4, 4, 4,
-  4, 4, 4
-} };
-#endif
-
 void keyboard_pre_init_kb(void) {
   gpio_set_pin_output(F5);
   gpio_write_pin_high(F5);
-  
+
   keyboard_pre_init_user();
 }

+ 36 - 0
keyboards/magic_force/mf34/keyboard.json

@@ -65,6 +65,42 @@
             "solid_multisplash": true
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 37, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 74, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 149, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 186, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
+            {"matrix": [1, 1], "x": 37, "y": 12, "flags": 4},
+            {"matrix": [1, 2], "x": 74, "y": 12, "flags": 4},
+            {"matrix": [1, 3], "x": 112, "y": 12, "flags": 4},
+            {"matrix": [1, 4], "x": 149, "y": 12, "flags": 4},
+            {"matrix": [1, 5], "x": 186, "y": 12, "flags": 4},
+            {"matrix": [1, 6], "x": 224, "y": 12, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4},
+            {"matrix": [2, 1], "x": 37, "y": 24, "flags": 4},
+            {"matrix": [2, 2], "x": 74, "y": 24, "flags": 4},
+            {"matrix": [2, 3], "x": 112, "y": 17, "flags": 4},
+            {"matrix": [2, 4], "x": 149, "y": 17, "flags": 4},
+            {"matrix": [2, 5], "x": 186, "y": 17, "flags": 4},
+            {"matrix": [3, 3], "x": 112, "y": 38, "flags": 4},
+            {"matrix": [3, 4], "x": 149, "y": 38, "flags": 4},
+            {"matrix": [3, 5], "x": 186, "y": 38, "flags": 4},
+            {"matrix": [3, 6], "x": 224, "y": 38, "flags": 4},
+            {"matrix": [4, 1], "x": 37, "y": 51, "flags": 4},
+            {"matrix": [4, 3], "x": 112, "y": 51, "flags": 4},
+            {"matrix": [4, 4], "x": 149, "y": 51, "flags": 4},
+            {"matrix": [4, 5], "x": 186, "y": 51, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [5, 1], "x": 37, "y": 64, "flags": 4},
+            {"matrix": [5, 2], "x": 74, "y": 64, "flags": 4},
+            {"matrix": [5, 4], "x": 149, "y": 64, "flags": 4},
+            {"matrix": [5, 5], "x": 186, "y": 64, "flags": 4},
+            {"matrix": [5, 6], "x": 224, "y": 64, "flags": 4}
+        ],
         "max_brightness": 200
     },
     "features": {

+ 0 - 48
keyboards/magic_force/mf34/mf34.c

@@ -1,48 +0,0 @@
-/*
-Copyright 2015 Álvaro "Gondolindrim" Volpato  <gondolindrim@acheronproject.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
-// RGB Matrix 
-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, NO_LED },
-        {  NO_LED, NO_LED, NO_LED, 20, 21, 22, 23 },
-        {  NO_LED, 24, NO_LED, 25, 26, 27, NO_LED },
-        {  28, 29, 30, NO_LED, 31, 32, 33 }
-	}, {
-		{0,  0}, {37,  0}, {74,  0}, {112,  0}, {149,  0}, {186,  0}, {224,  0},
-        {0, 12}, {37, 12}, {74, 12}, {112, 12}, {149, 12}, {186, 12}, {224, 12},
-        {0, 24}, {37, 24}, {74, 24}, {112, 17}, {149, 17}, {186, 17},
-                                     {112, 38}, {149, 38}, {186, 38}, {224, 38},
-                 {37, 51},           {112, 51}, {149, 51}, {186, 51},
-        {0, 64}, {37, 64}, {74, 64},            {149, 64}, {186, 64}, {224, 64}
-	}, {
-        4,      4,      4,          4,      4,      4,      4,
-        4,      4,      4,          4,      4,      4,      4,
-        4,      4,      4,          4,      4,      4,
-                                    4,      4,      4,      4,
-                4,                  4,      4,      4,
-        4,      4,      4,                  4,      4,      4
-	}
-};
-#endif

+ 42 - 0
keyboards/marksard/rhymestone/rev1/keyboard.json

@@ -10,6 +10,48 @@
     },
     "rgb_matrix": {
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 4], "x": 100, "y": 0, "flags": 4},
+            {"matrix": [1, 4], "x": 100, "y": 21, "flags": 4},
+            {"matrix": [2, 4], "x": 100, "y": 43, "flags": 4},
+            {"matrix": [3, 4], "x": 100, "y": 64, "flags": 1},
+            {"matrix": [3, 3], "x": 75, "y": 64, "flags": 1},
+            {"matrix": [3, 2], "x": 50, "y": 64, "flags": 1},
+            {"matrix": [3, 1], "x": 25, "y": 64, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [1, 3], "x": 75, "y": 21, "flags": 4},
+            {"matrix": [2, 3], "x": 75, "y": 43, "flags": 4},
+            {"matrix": [2, 2], "x": 50, "y": 43, "flags": 4},
+            {"matrix": [2, 1], "x": 25, "y": 43, "flags": 4},
+            {"matrix": [1, 1], "x": 25, "y": 21, "flags": 4},
+            {"matrix": [1, 2], "x": 50, "y": 21, "flags": 4},
+            {"matrix": [4, 4], "x": 125, "y": 0, "flags": 4},
+            {"matrix": [5, 4], "x": 125, "y": 21, "flags": 4},
+            {"matrix": [6, 4], "x": 125, "y": 43, "flags": 4},
+            {"matrix": [7, 4], "x": 125, "y": 64, "flags": 1},
+            {"matrix": [7, 3], "x": 150, "y": 64, "flags": 1},
+            {"matrix": [7, 2], "x": 175, "y": 64, "flags": 1},
+            {"matrix": [7, 1], "x": 200, "y": 64, "flags": 1},
+            {"matrix": [7, 0], "x": 224, "y": 64, "flags": 1},
+            {"matrix": [6, 0], "x": 224, "y": 43, "flags": 4},
+            {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4},
+            {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [4, 1], "x": 200, "y": 0, "flags": 4},
+            {"matrix": [4, 2], "x": 175, "y": 0, "flags": 4},
+            {"matrix": [4, 3], "x": 150, "y": 0, "flags": 4},
+            {"matrix": [5, 3], "x": 150, "y": 21, "flags": 4},
+            {"matrix": [6, 3], "x": 150, "y": 43, "flags": 4},
+            {"matrix": [6, 2], "x": 175, "y": 43, "flags": 4},
+            {"matrix": [6, 1], "x": 200, "y": 43, "flags": 4},
+            {"matrix": [5, 1], "x": 200, "y": 21, "flags": 4},
+            {"matrix": [5, 2], "x": 175, "y": 21, "flags": 4}
+        ],
         "sat_steps": 8,
         "val_steps": 8,
         "speed_steps": 10,

+ 0 - 60
keyboards/marksard/rhymestone/rev1/rev1.c

@@ -1,60 +0,0 @@
-/* Copyright 2020 marksard
- *
- * 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"
-
-// Optional override functions below.
-// You can leave any or all of these undefined.
-// These are only required if you want to perform custom actions.
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = { {
-    {  10,  11,  12,  13,   0 },
-    {   9,  18,  19,  14,   1 },
-    {   8,  17,  16,  15,   2 },
-    {   7,   6,   5,   4,   3 },
-    {  30,  31,  32,  33,  20 },
-    {  29,  38,  39,  34,  21 },
-    {  28,  37,  36,  35,  22 },
-    {  27,  26,  25,  24,  23 }
-}, {
-    { 100,   0 }, { 100,  21 }, { 100,  43 }, { 100,  64 },
-    {  75,  64 }, {  50,  64 }, {  25,  64 }, {   0,  64 },
-    {   0,  43 }, {   0,  21 }, {   0,   0 },
-    {  25,   0 }, {  50,   0 }, {  75,   0 },
-    {  75,  21 }, {  75,  43 },
-    {  50,  43 }, {  25,  43 },
-    {  25,  21 }, {  50,  21 },
-    { 125,   0 }, { 125,  21 }, { 125,  43 }, { 125,  64 },
-    { 150,  64 }, { 175,  64 }, { 200,  64 }, { 225,  64 },
-    { 225,  43 }, { 225,  21 }, { 225,   0 },
-    { 200,   0 }, { 175,   0 }, { 150,   0 },
-    { 150,  21 }, { 150,  43 },
-    { 175,  43 }, { 200,  43 },
-    { 200,  21 }, { 150,  21 }
-}, {
-    4, 4, 4, 1,
-    1, 1, 1, 1,
-    4, 4, 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
-} };
-#endif

+ 93 - 0
keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json

@@ -62,6 +62,99 @@
             "animation": "cycle_pinwheel"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [1, 14], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1},
+            {"x": 223, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [2, 14], "x": 0, "y": 16, "flags": 1},
+            {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1},
+            {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1},
+            {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1},
+            {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1},
+            {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1},
+            {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1},
+            {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1},
+            {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1},
+            {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1},
+            {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1},
+            {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1},
+            {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1},
+            {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [3, 14], "x": 0, "y": 32, "flags": 1},
+            {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1},
+            {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1},
+            {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1},
+            {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1},
+            {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1},
+            {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1},
+            {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1},
+            {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1},
+            {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1},
+            {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1},
+            {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1},
+            {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1},
+            {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1},
+            {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1},
+            {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1},
+            {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1},
+            {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1},
+            {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1},
+            {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1},
+            {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1},
+            {"matrix": [4, 13], "x": 207, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 215, "y": 48, "flags": 1},
+            {"x": 224, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1},
+            {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1},
+            {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
+            {"x": 100, "y": 0, "flags": 1},
+            {"x": 69, "y": 0, "flags": 1},
+            {"x": 24, "y": 0, "flags": 1},
+            {"x": 0, "y": 3, "flags": 1},
+            {"x": 0, "y": 16, "flags": 1},
+            {"x": 0, "y": 32, "flags": 1},
+            {"x": 0, "y": 51, "flags": 1},
+            {"x": 15, "y": 64, "flags": 1},
+            {"x": 34, "y": 64, "flags": 1},
+            {"x": 69, "y": 64, "flags": 1},
+            {"x": 103, "y": 64, "flags": 1},
+            {"x": 110, "y": 64, "flags": 1},
+            {"x": 120, "y": 64, "flags": 1},
+            {"x": 155, "y": 64, "flags": 1},
+            {"x": 189, "y": 64, "flags": 1},
+            {"x": 192, "y": 64, "flags": 1},
+            {"x": 224, "y": 58, "flags": 1},
+            {"x": 224, "y": 32, "flags": 1},
+            {"x": 224, "y": 16, "flags": 1},
+            {"x": 224, "y": 0, "flags": 1},
+            {"x": 207, "y": 0, "flags": 1},
+            {"x": 172, "y": 0, "flags": 1},
+            {"x": 138, "y": 0, "flags": 1}
+        ],
         "max_brightness": 220,
         "react_on_keyup": true,
         "sleep": true

+ 0 - 42
keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c

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

+ 70 - 0
keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json

@@ -64,6 +64,76 @@
             "animation": "cycle_pinwheel"
         },
         "driver": "is31fl3731",
+        "layout": [
+            {"matrix": [1, 14], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1},
+            {"x": 223, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [2, 14], "x": 0, "y": 16, "flags": 1},
+            {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1},
+            {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1},
+            {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1},
+            {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1},
+            {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1},
+            {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1},
+            {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1},
+            {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1},
+            {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1},
+            {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1},
+            {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1},
+            {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1},
+            {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [3, 14], "x": 0, "y": 32, "flags": 1},
+            {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1},
+            {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1},
+            {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1},
+            {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1},
+            {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1},
+            {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1},
+            {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1},
+            {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1},
+            {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1},
+            {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1},
+            {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1},
+            {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1},
+            {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1},
+            {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1},
+            {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1},
+            {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1},
+            {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1},
+            {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1},
+            {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1},
+            {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1},
+            {"matrix": [4, 13], "x": 207, "y": 48, "flags": 1},
+            {"x": 215, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1},
+            {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1},
+            {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "react_on_keyup": true,
         "sleep": true
     },

+ 0 - 23
keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c

@@ -94,29 +94,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {1, C4_7,   C5_7,   C6_7},  //D83-D13-67
 };
 
-led_config_t g_led_config = { {
-  // Key Matrix to LED Index
-  { 1,           2,         3,          4,           5,           6,         7,          8,          9,          10,        11,           12,           13,          14,         16},
-  {18,          19,        20,         21,          22,          23,        24,         25,         26,          27,        28,           29,           30,          31,          0},
-  {33,          34,        35,         36,          37,          38,        39,         40,         41,          42,        43,           44,       NO_LED,          45,         17},
-  {46,        NO_LED,      47,         48,          49,          50,        51,         52,         53,          54,        55,           56,           59,          60,         32},
-  {61,        NO_LED,      62,     NO_LED,          63,      NO_LED,        64,     NO_LED,         65,      NO_LED,        66,       NO_LED,       NO_LED,          57,         67}
-    },
-    {
-  //LED Index to Physical Positon
-  {0,0},      { 17,  0},  { 34, 0 },  { 51, 0 },  { 69, 0},   { 86, 0},   {100, 0},   {103, 0},   { 120, 0},  { 138, 0},  { 155, 0},  { 172, 0},  { 189, 0},    {207,  0},   {215,  0},   {223, 0},   {224, 0},
-  {0,16},     { 17, 16},  { 34,16 },  { 51,16 },  { 69,16},   { 86,16},   {103,16},               { 120,16},  { 138,16},  { 155,16},  { 172,16},  { 189,16},    {207, 16},   {215, 16},   {224,16},
-  {0,32},     { 17, 32},  { 34,32 },  { 51,32 },  { 69,32},   { 86,32},   {103,32},   { 120,32},  { 138,32},  { 155,32},  { 172,32},  { 189,32},  {207, 32},    {224,32},
-              { 17, 48},  { 34,48 },  { 51,48 },  { 69,48},   { 86,48},   {103,48},   { 120,48},  { 138,48},  { 155,48},  { 172,48},  { 189,48},  {207, 48},    {215, 48},   {224,48},    {224,48},
-              { 17, 64},              { 51,64 },              { 86,64},   { 103,64},              { 138,64},              { 172,64},              {224, 64},
-}, {
-  1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-  1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-  1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,                         1,           1,
-  1,                      1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-  1,                      1,                      1,                      1,                      1,                      1,          1,            1,           1,           1,
-} };
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 68 - 0
keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json

@@ -61,6 +61,74 @@
             "animation": "cycle_pinwheel"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [3, 1], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [4, 1], "x": 0, "y": 16, "flags": 1},
+            {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1},
+            {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1},
+            {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1},
+            {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1},
+            {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1},
+            {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1},
+            {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1},
+            {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1},
+            {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1},
+            {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1},
+            {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1},
+            {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1},
+            {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [4, 3], "x": 0, "y": 32, "flags": 1},
+            {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1},
+            {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1},
+            {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1},
+            {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1},
+            {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1},
+            {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1},
+            {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1},
+            {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1},
+            {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1},
+            {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1},
+            {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1},
+            {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1},
+            {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1},
+            {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1},
+            {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1},
+            {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1},
+            {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1},
+            {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1},
+            {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1},
+            {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 207, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 215, "y": 48, "flags": 1},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1},
+            {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1},
+            {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+        ],
         "react_on_keyup": true,
         "sleep": true
     },

+ 0 - 24
keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c

@@ -88,30 +88,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW1_CS24, SW1_CS23, SW1_CS22}, /* D103-K4E-65 */
 };
 
-led_config_t g_led_config = {
-    {
-        // Key Matrix to LED Index
-        { 1,           2,         3,          4,           5,           6,         7,          8,          9,          10,        11,           12,           13,          14,         15},
-        {17,          18,        19,         20,          21,          22,        23,         24,         25,          26,        27,           28,           29,          30,      NO_LED},
-        {32,          33,        34,         35,          36,          37,        38,         39,         40,          41,        42,           43,       NO_LED,          44,      NO_LED},
-        {45,           0,        46,         47,          48,          49,        50,         51,         52,          53,        54,           55,           56,          57,          58},
-        {59,          16,        60,         31,          61,      NO_LED,        62,     NO_LED,         63,      NO_LED,        64,       NO_LED,       NO_LED,      NO_LED,          65},
-    }, {
-        //LED Index to Physical Positon
-        {0,0},      { 17,  0},  { 34, 0 },  { 51, 0 },  { 69, 0},   { 86, 0},   {100, 0},   {103, 0},   { 120, 0},  { 138, 0},  { 155, 0},  { 172, 0},  { 189, 0},    {207,  0},   {215,  0},   {224, 0},
-        {0,16},     { 17, 16},  { 34,16 },  { 51,16 },  { 69,16},   { 86,16},   {103,16},               { 120,16},  { 138,16},  { 155,16},  { 172,16},  { 189,16},    {207, 16},   {215, 16},   {224,16},
-        {0,32},     { 17, 32},  { 34,32 },  { 51,32 },  { 69,32},   { 86,32},   {103,32},   { 120,32},  { 138,32},  { 155,32},  { 172,32},  { 189,32},  {207, 32},    {224,32},
-                    { 17, 48},  { 34,48 },  { 51,48 },  { 69,48},   { 86,48},   {103,48},   { 120,48},  { 138,48},  { 155,48},  { 172,48},  { 189,48},  {207, 48},    {215, 48},   {224,48},
-                    { 17, 64},              { 51,64 },              { 86,64},   { 103,64},              { 138,64},              { 172,64},              {224, 64},
-    }, {
-        1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-        1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-        1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,                         1,           1,
-        1,                      1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-        1,                      1,                      1,                      1,                      1,                      1,          1,            1,
-    }
-};
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 27 - 0
keyboards/mechlovin/delphine/rgb_led/keyboard.json

@@ -78,6 +78,33 @@
             "animation": "cycle_pinwheel"
         },
         "driver": "is31fl3731",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
+            {"matrix": [1, 1], "x": 75, "y": 13, "flags": 1},
+            {"matrix": [1, 2], "x": 149, "y": 13, "flags": 1},
+            {"matrix": [1, 3], "x": 224, "y": 13, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
+            {"matrix": [2, 1], "x": 75, "y": 25, "flags": 1},
+            {"matrix": [2, 2], "x": 149, "y": 25, "flags": 1},
+            {"matrix": [2, 3], "x": 224, "y": 25, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
+            {"matrix": [3, 1], "x": 75, "y": 38, "flags": 1},
+            {"matrix": [3, 2], "x": 149, "y": 38, "flags": 1},
+            {"matrix": [3, 3], "x": 224, "y": 38, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
+            {"matrix": [4, 1], "x": 75, "y": 51, "flags": 1},
+            {"matrix": [4, 2], "x": 149, "y": 51, "flags": 1},
+            {"matrix": [4, 3], "x": 224, "y": 51, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
+            {"x": 37, "y": 64, "flags": 0},
+            {"matrix": [5, 1], "x": 75, "y": 64, "flags": 1},
+            {"matrix": [5, 2], "x": 149, "y": 64, "flags": 1},
+            {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4}
+        ],
         "react_on_keyup": true
     }
 }

+ 0 - 26
keyboards/mechlovin/delphine/rgb_led/rgb_led.c

@@ -49,32 +49,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {0, C4_14,  C5_14,  C6_14}, //D51-24
 };
 
-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,         22,        23,          24}
-    },
-    {
-  //LED Index to Physical Positon
-  {  0,  0},  { 75,  0},  {149,  0},  {224,  0},
-  {  0, 13},  { 75, 13},  {149, 13},  {224, 13},
-  {  0, 25},  { 75, 25},  {149, 25},  {224, 25},
-  {  0, 38},  { 75, 38},  {149, 38},  {224, 38},
-  {  0, 51},  { 75, 51},  {149, 51},  {224, 51},
-  {  0, 64},  { 37, 64},  { 75, 64},  {149, 64},  {224, 64},
-}, {
-  4,          4,          4,          4,
-  4,          1,          1,          4,
-  4,          1,          1,          4,
-  4,          1,          1,          4,
-  4,          1,          1,          4,
-  4,          0,          1,          1,          4,
-} };
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 74 - 0
keyboards/mechlovin/hannah60rgb/rev1/keyboard.json

@@ -69,6 +69,80 @@
             "animation": "cycle_pinwheel"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1},
+            {"x": 216, "y": 0, "flags": 1},
+            {"matrix": [1, 13], "x": 220, "y": 0, "flags": 1},
+            {"matrix": [2, 12], "x": 211, "y": 16, "flags": 1},
+            {"matrix": [1, 12], "x": 200, "y": 16, "flags": 1},
+            {"matrix": [1, 11], "x": 176, "y": 16, "flags": 1},
+            {"matrix": [1, 10], "x": 160, "y": 16, "flags": 1},
+            {"matrix": [1, 9], "x": 144, "y": 16, "flags": 1},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 1},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 1},
+            {"matrix": [1, 5], "x": 80, "y": 16, "flags": 1},
+            {"matrix": [1, 4], "x": 64, "y": 16, "flags": 1},
+            {"matrix": [1, 3], "x": 48, "y": 16, "flags": 1},
+            {"matrix": [1, 2], "x": 32, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 1},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 1},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 1},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 1},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 1},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 1},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 1},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 1},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 1},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 1},
+            {"x": 192, "y": 32, "flags": 1},
+            {"matrix": [2, 13], "x": 208, "y": 32, "flags": 1},
+            {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
+            {"x": 208, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1},
+            {"matrix": [3, 11], "x": 160, "y": 48, "flags": 1},
+            {"matrix": [3, 10], "x": 144, "y": 48, "flags": 1},
+            {"matrix": [3, 9], "x": 128, "y": 48, "flags": 1},
+            {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1},
+            {"matrix": [3, 7], "x": 96, "y": 48, "flags": 1},
+            {"matrix": [3, 6], "x": 80, "y": 48, "flags": 1},
+            {"matrix": [3, 5], "x": 64, "y": 48, "flags": 1},
+            {"matrix": [3, 4], "x": 48, "y": 48, "flags": 1},
+            {"matrix": [3, 3], "x": 32, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 16, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 8, "y": 48, "flags": 1},
+            {"x": 0, "y": 48, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 32, "y": 64, "flags": 1},
+            {"matrix": [4, 4], "x": 48, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 64, "y": 64, "flags": 1},
+            {"x": 80, "y": 64, "flags": 1},
+            {"x": 96, "y": 64, "flags": 1},
+            {"matrix": [4, 8], "x": 112, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 144, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 160, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 192, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
+        ],
         "react_on_keyup": true
     },
     "matrix_pins": {

+ 0 - 22
keyboards/mechlovin/hannah60rgb/rev1/rev1.c

@@ -17,28 +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},
-  {29,        28,        27,          26,         25,         24,         23,         22,         21,         20,         19,          18,          17,          15},
-  {30,        31,        32,          33,         34,         35,         36,         37,         38,         39,         40,          41,          16,          43},
-  {59,        57,        56,          55,         54,         53,         52,         51,         50,         49,         48,          47,          46,          44},
-  {60,        61,        62,          NO_LED,     63,     NO_LED,         64,     NO_LED,         67,     NO_LED,         68,          69,          70,          71}
-}, {
-  //LED Index to Physical Positon
-  {  0,  0},  { 16,  0},  { 32, 0 },  { 48, 0 },  { 64, 0},   { 80, 0},   { 96, 0},   { 112, 0},  { 128, 0},  { 144, 0},  { 160, 0},  { 176, 0},    {192,  0},   {208,  0},   {216, 0},
-  {220, 0},   {211, 16},  {200,16 },  {176,16 },  {160,16},   {144,16},   {128,16},   { 112,16},  { 96,16},   { 80,16},   { 64,16},   { 48,16},     {32, 16},    {16, 16},    {0,16},
-  {  0, 32},  { 16, 32},  { 32,32 },  { 48,32 },  { 64,32},   { 80,32},   { 96,32},   { 112,32},  { 128,32},  { 144,32},  { 160,32},  { 176,32},    {192, 32},   {208, 32},   {224,48},
-  {208, 48},  {192, 48},  {160,48 },  {144,48 },  {128,48},   {112,48},   {96,48},    { 80,48},   { 64,48},   { 48,48},   { 32,48},   { 16,48},     {8, 48},     {0, 48},     {0,48},
-  {  0, 64},  { 16, 64},  { 32,64 },  { 48,64 },  { 64,64},   { 80,64},   { 96,64},   { 112,64},  { 144,64},  { 160,64},  { 192,64},  { 224,64},
-}, {
-  1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-  1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-  1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-  1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,            1,           1,           1,
-  1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,          1,
-} };
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 80 - 0
keyboards/mechlovin/hannah60rgb/rev2/keyboard.json

@@ -87,6 +87,86 @@
             "animation": "cycle_pinwheel"
         },
         "driver": "is31fl3731",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1},
+            {"matrix": [1, 2], "x": 32, "y": 16, "flags": 1},
+            {"matrix": [1, 3], "x": 48, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 1},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 1},
+            {"x": 0, "y": 48, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 12, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 16, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1},
+            {"matrix": [1, 4], "x": 64, "y": 16, "flags": 1},
+            {"matrix": [1, 5], "x": 80, "y": 16, "flags": 1},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 1},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 1},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 1},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 1},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 1},
+            {"matrix": [3, 3], "x": 32, "y": 48, "flags": 1},
+            {"matrix": [3, 4], "x": 48, "y": 48, "flags": 1},
+            {"matrix": [3, 5], "x": 64, "y": 48, "flags": 1},
+            {"matrix": [3, 6], "x": 80, "y": 48, "flags": 1},
+            {"matrix": [4, 2], "x": 32, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 80, "y": 64, "flags": 1},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 220, "y": 0, "flags": 1},
+            {"x": 210, "y": 0, "flags": 1},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 1},
+            {"matrix": [1, 9], "x": 144, "y": 16, "flags": 1},
+            {"matrix": [1, 10], "x": 160, "y": 16, "flags": 1},
+            {"matrix": [1, 11], "x": 176, "y": 16, "flags": 1},
+            {"matrix": [1, 12], "x": 192, "y": 16, "flags": 1},
+            {"x": 220, "y": 16, "flags": 1},
+            {"x": 220, "y": 16, "flags": 1},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 1},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 1},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 1},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 1},
+            {"matrix": [2, 12], "x": 192, "y": 32, "flags": 1},
+            {"matrix": [2, 13], "x": 220, "y": 32, "flags": 1},
+            {"matrix": [3, 7], "x": 96, "y": 48, "flags": 1},
+            {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1},
+            {"matrix": [3, 9], "x": 128, "y": 48, "flags": 1},
+            {"matrix": [3, 10], "x": 144, "y": 48, "flags": 1},
+            {"matrix": [3, 11], "x": 160, "y": 48, "flags": 1},
+            {"x": 200, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 220, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 220, "y": 48, "flags": 1},
+            {"x": 96, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 144, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 160, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 176, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 220, "y": 64, "flags": 1},
+            {"matrix": [1, 13], "x": 220, "y": 0, "flags": 1},
+            {"x": 0, "y": 0, "flags": 9},
+            {"x": 0, "y": 0, "flags": 9},
+            {"x": 0, "y": 0, "flags": 9},
+            {"x": 0, "y": 0, "flags": 9},
+            {"x": 0, "y": 0, "flags": 9},
+            {"x": 0, "y": 0, "flags": 9},
+            {"x": 0, "y": 0, "flags": 9},
+            {"x": 0, "y": 0, "flags": 9}
+        ],
         "react_on_keyup": true
     },
     "matrix_pins": {

+ 0 - 48
keyboards/mechlovin/hannah60rgb/rev2/rev2.c

@@ -110,54 +110,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {0, C9_16,  C9_11,  C7_12},//INDICATOR LED-77
 };
 
-led_config_t g_led_config = {
-    {
-        // Key Matrix to LED Index
-        { 0,   1,  2,      3,     18,     19, 20,     21,     36,     37, 38, 39, 40, 41 },
-        { 4,   5,  6,      7,     22,     23, 24,     25,     43,     44, 45, 46, 47, 69 },
-        { 8,   9, 10,     11,     26,     27, 28,     29,     50,     51, 52, 53, 54, 55 },
-        { 13, 14, 15,     30,     31,     32, 33,     56,     57,     58, 59, 60, 62, 63 },
-        { 16, 17, 34, NO_LED, NO_LED, NO_LED, 35, NO_LED, NO_LED, NO_LED, 65, 66, 67, 68 }
-    }, {
-        //LED Index to Physical Positon
-        {   0,  0 }, {  16,  0 }, {  32,  0 }, { 48,  0 }, //9-59-68-76
-        {   0, 16 }, {  16, 16 }, {  32, 16 }, { 48, 16 }, //10-60-72-77
-        {   0, 32 }, {  16, 32 }, {  32, 32 }, { 48, 32 }, //46-61-73-78
-        {   0, 48 }, {   0, 48 }, {  12, 48 }, { 16, 48 }, //126-51-63-74
-        {   0, 64 }, {  16, 64 }, //56-67
-        {  64,  0 }, {  80,  0 }, {  96,  0 }, { 112,  0 }, //80-84-89-94
-        {  64, 16 }, {  80, 16 }, {  96, 16 }, { 112, 16 }, //81-85-90-95
-        {  64, 32 }, {  80, 32 }, {  96, 32 }, { 112, 32 }, //82-86-91-96
-        {  32, 48 }, {  48, 48 }, {  64, 48 }, {  80, 48 }, //79-83-87-92
-        {  32, 64 }, {  80, 64 }, //75-93
-        { 128,  0 }, { 144,  0 }, { 160,  0 }, { 176,  0 }, { 192,  0 }, { 220,  0 }, { 210,  0 }, //98-102-106-111-116-121-130
-        { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 }, { 192, 16 }, { 220, 16 }, { 220, 16 }, //99-103-107-112-117-129-122
-        { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 192, 32 }, { 220, 32 }, //100-104-108-113-118-123
-        {  96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 200, 48 }, { 220, 48 }, { 220, 48 }, //97-101-105-109-114-119-128-124
-        {  96, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 }, { 220, 64 }, //127-110-115-120-125
-        { 220,  0 }, //140
-        {   0,  0 }, {   0,  0 }, {   0,  0 }, {   0,  0 }, {   0,  0 }, {   0,  0 }, {   0,  0 }, {   0,  0 }
-    }, {
-        1, 1, 1, 1,
-        1, 1, 1, 1,
-        1, 1, 1, 1,
-        1, 1, 1, 1,
-        1, 1,
-        1, 1, 1, 1,
-        1, 1, 1, 1,
-        1, 1, 1, 1,
-        1, 1, 1, 1,
-        1, 1,
-        1, 1, 1, 1, 1, 1, 1,
-        1, 1, 1, 1, 1, 1, 1,
-        1, 1, 1, 1, 1, 1,
-        1, 1, 1, 1, 1, 1, 1, 1,
-        1, 1, 1, 1, 1,
-        1,
-        9, 9, 9, 9, 9, 9, 9, 9
-    }
-};
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 93 - 0
keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json

@@ -66,6 +66,99 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 14, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 28, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 56, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 70, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 98, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 112, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 140, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 154, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 168, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 196, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 210, "y": 0, "flags": 1},
+            {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 14, "y": 16, "flags": 1},
+            {"matrix": [1, 2], "x": 28, "y": 16, "flags": 1},
+            {"matrix": [1, 3], "x": 42, "y": 16, "flags": 1},
+            {"matrix": [1, 4], "x": 56, "y": 16, "flags": 1},
+            {"matrix": [1, 5], "x": 70, "y": 16, "flags": 1},
+            {"matrix": [1, 6], "x": 84, "y": 16, "flags": 1},
+            {"matrix": [1, 7], "x": 98, "y": 16, "flags": 1},
+            {"matrix": [1, 8], "x": 112, "y": 16, "flags": 1},
+            {"matrix": [1, 9], "x": 126, "y": 16, "flags": 1},
+            {"matrix": [1, 10], "x": 140, "y": 16, "flags": 1},
+            {"matrix": [1, 11], "x": 154, "y": 16, "flags": 1},
+            {"matrix": [1, 12], "x": 168, "y": 16, "flags": 1},
+            {"matrix": [1, 13], "x": 182, "y": 16, "flags": 1},
+            {"matrix": [1, 14], "x": 196, "y": 16, "flags": 1},
+            {"matrix": [1, 15], "x": 210, "y": 16, "flags": 1},
+            {"matrix": [1, 16], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
+            {"matrix": [2, 1], "x": 14, "y": 32, "flags": 1},
+            {"matrix": [2, 2], "x": 28, "y": 32, "flags": 1},
+            {"matrix": [2, 3], "x": 42, "y": 32, "flags": 1},
+            {"matrix": [2, 4], "x": 56, "y": 32, "flags": 1},
+            {"matrix": [2, 5], "x": 70, "y": 32, "flags": 1},
+            {"matrix": [2, 6], "x": 84, "y": 32, "flags": 1},
+            {"matrix": [2, 7], "x": 98, "y": 32, "flags": 1},
+            {"matrix": [2, 8], "x": 112, "y": 32, "flags": 1},
+            {"matrix": [2, 9], "x": 126, "y": 32, "flags": 1},
+            {"matrix": [2, 10], "x": 140, "y": 32, "flags": 1},
+            {"matrix": [2, 11], "x": 154, "y": 32, "flags": 1},
+            {"matrix": [2, 12], "x": 168, "y": 32, "flags": 1},
+            {"matrix": [2, 13], "x": 182, "y": 32, "flags": 1},
+            {"matrix": [2, 14], "x": 196, "y": 32, "flags": 1},
+            {"matrix": [2, 15], "x": 210, "y": 32, "flags": 1},
+            {"matrix": [2, 16], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
+            {"matrix": [3, 1], "x": 14, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 28, "y": 48, "flags": 1},
+            {"matrix": [3, 3], "x": 42, "y": 48, "flags": 1},
+            {"matrix": [3, 4], "x": 56, "y": 48, "flags": 1},
+            {"matrix": [3, 5], "x": 70, "y": 48, "flags": 1},
+            {"matrix": [3, 6], "x": 84, "y": 48, "flags": 1},
+            {"matrix": [3, 7], "x": 98, "y": 48, "flags": 1},
+            {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1},
+            {"matrix": [3, 9], "x": 126, "y": 48, "flags": 1},
+            {"matrix": [3, 10], "x": 140, "y": 48, "flags": 1},
+            {"matrix": [3, 11], "x": 154, "y": 48, "flags": 1},
+            {"matrix": [3, 12], "x": 168, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 182, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 14, "y": 64, "flags": 1},
+            {"matrix": [4, 2], "x": 28, "y": 64, "flags": 1},
+            {"matrix": [4, 3], "x": 42, "y": 64, "flags": 1},
+            {"matrix": [4, 4], "x": 56, "y": 64, "flags": 1},
+            {"matrix": [4, 5], "x": 70, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 84, "y": 64, "flags": 1},
+            {"matrix": [4, 7], "x": 98, "y": 64, "flags": 1},
+            {"matrix": [4, 8], "x": 112, "y": 64, "flags": 1},
+            {"matrix": [4, 9], "x": 126, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 140, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 154, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 168, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 182, "y": 64, "flags": 1},
+            {"matrix": [4, 15], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [5, 0], "x": 0, "y": 80, "flags": 1},
+            {"matrix": [5, 1], "x": 14, "y": 80, "flags": 1},
+            {"matrix": [5, 2], "x": 28, "y": 80, "flags": 1},
+            {"matrix": [5, 6], "x": 84, "y": 80, "flags": 1},
+            {"matrix": [5, 10], "x": 140, "y": 80, "flags": 1},
+            {"matrix": [5, 11], "x": 154, "y": 80, "flags": 1},
+            {"matrix": [5, 12], "x": 168, "y": 80, "flags": 1},
+            {"matrix": [5, 13], "x": 182, "y": 80, "flags": 1},
+            {"matrix": [5, 14], "x": 196, "y": 80, "flags": 1},
+            {"matrix": [5, 15], "x": 210, "y": 80, "flags": 1},
+            {"matrix": [5, 16], "x": 224, "y": 80, "flags": 1}
+        ],
         "sleep": true
     },
     "matrix_pins": {

+ 0 - 25
keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c

@@ -111,31 +111,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW9_CS19,   SW9_CS20,   SW9_CS21}, //D165-K2G-90
 };
 
-led_config_t g_led_config = { {
-    // Key Matrix to LED Index
-        {0,           1,           2,           3,           4,           5,           6,           7,           8,           9,           10,           11,           12,           13,           14,           15,           16},
-        {17,         18,          19,          20,          21,          22,          23,          24,          25,          26,           27,           28,           29,           30,           31,           32,           33},
-        {34,         35,          36,          37,          38,          39,          40,          41,          42,          43,           44,           45,           46,           47,           48,           49,           50},
-        {51,         52,          53,          54,          55,          56,          57,          58,          59,          60,           61,           62,           63,           64,       NO_LED,       NO_LED,       NO_LED},
-        {65,         66,          67,          68,          69,          70,          71,          72,          73,          74,           75,           76,           77,           78,       NO_LED,           79,       NO_LED},
-        {80,         81,          82,      NO_LED,      NO_LED,      NO_LED,          83,      NO_LED,      NO_LED,      NO_LED,           84,           85,           86,           87,           88,           89,           90}
-    }, {
-        {0, 0},  {14, 0},    {28, 0},    {42,  0},    {56,  0},    {70,  0},    {84,  0},    {98,  0},    {112,  0},    {126,  0},     {140,  0},     {154,  0},     {168,  0},     {182,  0},     {196,  0},     {210,  0},      {224,  0},
-        {0,16},  {14,16},    {28,16},    {42, 16},    {56, 16},    {70, 16},    {84, 16},    {98, 16},    {112, 16},    {126, 16},     {140, 16},     {154, 16},     {168, 16},     {182, 16},     {196, 16},     {210, 16},      {224, 16},
-        {0,32},  {14,32},    {28,32},    {42, 32},    {56, 32},    {70, 32},    {84, 32},    {98, 32},    {112, 32},    {126, 32},     {140, 32},     {154, 32},     {168, 32},     {182, 32},     {196, 32},     {210, 32},      {224, 32},
-        {0,48},  {14,48},    {28,48},    {42, 48},    {56, 48},    {70, 48},    {84, 48},    {98, 48},    {112, 48},    {126, 48},     {140, 48},     {154, 48},     {168, 48},     {182, 48},
-        {0,64},  {14,64},    {28,64},    {42, 64},    {56, 64},    {70, 64},    {84, 64},    {98, 64},    {112, 64},    {126, 64},     {140, 64},     {154, 64},     {168, 64},     {182, 64},     {210, 64},
-        {0,80},  {14,80},    {28,80},                                           {84, 80},                                              {140, 80},     {154, 80},     {168, 80},     {182, 80},     {196, 80},     {210, 80},      {224, 80}
-    }, {
-       1,        1,          1,           1,           1,           1,           1,           1,            1,            1,             1,             1,             1,             1,             1,             1,             1,
-       1,        1,          1,           1,           1,           1,           1,           1,            1,            1,             1,             1,             1,             1,             1,             1,             1,
-       1,        1,          1,           1,           1,           1,           1,           1,            1,            1,             1,             1,             1,             1,             1,             1,             1,
-       1,        1,          1,           1,           1,           1,           1,           1,            1,            1,             1,             1,             1,             1,
-       1,        1,          1,           1,           1,           1,           1,           1,            1,            1,             1,             1,             1,             1,             1,
-       1,        1,          1,                                                  1,                                                      1,             1,             1,             1,             1,             1,             1
-    } };
-
-
 bool rgb_matrix_indicators_kb(void) {
     if (!rgb_matrix_indicators_user()) {
         return false;

+ 0 - 46
keyboards/mechlovin/infinity875/infinity875.c

@@ -1,46 +0,0 @@
-/* Copyright 2021 Mechlovin' Studio
- *
- * 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,          6,          7,          8,          9,         10,         11,          12,          13,          14,          15,         16,         17},
-  {NO_LED, NO_LED,   NO_LED,      NO_LED,      NO_LED,    NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,      NO_LED,     NO_LED,      NO_LED,      NO_LED,      NO_LED,     NO_LED,     NO_LED},
-  {NO_LED, NO_LED,    NO_LED,      NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,      NO_LED,     NO_LED,      NO_LED,      NO_LED,      NO_LED,     NO_LED,     NO_LED},
-  {NO_LED, NO_LED,    NO_LED,      NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,      NO_LED,     NO_LED,      NO_LED,      NO_LED,      NO_LED,     NO_LED,     NO_LED},
-  {NO_LED, NO_LED,    NO_LED,      NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,      NO_LED,     NO_LED,      NO_LED,      NO_LED,      NO_LED,     NO_LED,     NO_LED},
-  {NO_LED, NO_LED,    NO_LED,      NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,     NO_LED,      NO_LED,     NO_LED,      NO_LED,      NO_LED,      NO_LED,     NO_LED,     NO_LED}
-}, {
-  //LED Index to Physical Positon
-  {0,0},  {14,0},    {28,0},      {42,0},     {56,0},     {67,0},     {70,0},     {84,0},     {98,0},    {112,0},    {126,0},     {140,0},     {154,0},     {168,0},     {182,0},     {196,0},    {210,0},     {224,0},
-  {224,13},          {196,13},                {182,13},               {154,13},               {112,13},                           {84,13},                  {56,13},     {28,13},                 {0,13},
-  {0,25},                                                                                                                                                                                         {0,38},
-  {0,51},                                                                                                                                                                                         {0,64},
-  {28,64},                                                                                                                                                                                        {56,64},
-  {84,64},           {112,64},                {154,64},                           {182,64},              {196,64},                {224,64},    {224,51},                 {224,38},                {224,25},
-//{244,64},          {196,64},                {182,64},                           {154,64},              {112,64},                {84,64},     {56,64},                  {28,64},                 {0,64},
-}, {
-      1,       1,         1,           1,          1,          1,          1,          1,          1,          1,           1,          1,           1,           1,           1,           1,          1,           1,
-      1,                  1,                       1,                      1,                      1,                                   1,                        1,           1,                       1,
-      1,                                                                                                                                                                                                1,
-      1,                                                                                                                                                                                                1,
-      1,                                                                                                                                                                                                1,
-      1,                  1,                       1,                                  1,                      1,                       1,           1,                        1,                       1,
-} };
-#endif
-

+ 44 - 0
keyboards/mechlovin/infinity875/keyboard.json

@@ -15,6 +15,50 @@
     },
     "rgb_matrix": {
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 14, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 28, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 56, "y": 0, "flags": 1},
+            {"x": 67, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 70, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 98, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 112, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 140, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 154, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 168, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 196, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 210, "y": 0, "flags": 1},
+            {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
+            {"x": 224, "y": 13, "flags": 1},
+            {"x": 196, "y": 13, "flags": 1},
+            {"x": 182, "y": 13, "flags": 1},
+            {"x": 154, "y": 13, "flags": 1},
+            {"x": 112, "y": 13, "flags": 1},
+            {"x": 84, "y": 13, "flags": 1},
+            {"x": 56, "y": 13, "flags": 1},
+            {"x": 28, "y": 13, "flags": 1},
+            {"x": 0, "y": 13, "flags": 1},
+            {"x": 0, "y": 25, "flags": 1},
+            {"x": 0, "y": 38, "flags": 1},
+            {"x": 0, "y": 51, "flags": 1},
+            {"x": 0, "y": 64, "flags": 1},
+            {"x": 28, "y": 64, "flags": 1},
+            {"x": 56, "y": 64, "flags": 1},
+            {"x": 84, "y": 64, "flags": 1},
+            {"x": 112, "y": 64, "flags": 1},
+            {"x": 154, "y": 64, "flags": 1},
+            {"x": 182, "y": 64, "flags": 1},
+            {"x": 196, "y": 64, "flags": 1},
+            {"x": 224, "y": 64, "flags": 1},
+            {"x": 224, "y": 51, "flags": 1},
+            {"x": 224, "y": 38, "flags": 1},
+            {"x": 224, "y": 25, "flags": 1}
+        ],
         "max_brightness": 200,
         "sleep": true
     },

+ 102 - 1
keyboards/melgeek/mach80/rev1/keyboard.json

@@ -13,5 +13,106 @@
         "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"],
         "rows": ["F0", "F1", "F4", "F5", "F6", "E6"]
     },
-    "diode_direction": "ROW2COL"
+    "diode_direction": "ROW2COL",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 12, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 24, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 36, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 72, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 84, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 108, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 132, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 156, "y": 0, "flags": 4},
+            {"matrix": [0, 15], "x": 168, "y": 0, "flags": 4},
+            {"matrix": [3, 13], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
+            {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4},
+            {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4},
+            {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4},
+            {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4},
+            {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4},
+            {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4},
+            {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4},
+            {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4},
+            {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4},
+            {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4},
+            {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4},
+            {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4},
+            {"x": 156, "y": 12, "flags": 4},
+            {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4},
+            {"x": 180, "y": 12, "flags": 4},
+            {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4},
+            {"matrix": [1, 15], "x": 204, "y": 12, "flags": 4},
+            {"matrix": [3, 14], "x": 216, "y": 12, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4},
+            {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4},
+            {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4},
+            {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4},
+            {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4},
+            {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4},
+            {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4},
+            {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4},
+            {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4},
+            {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4},
+            {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4},
+            {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4},
+            {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4},
+            {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4},
+            {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4},
+            {"matrix": [2, 15], "x": 180, "y": 24, "flags": 4},
+            {"matrix": [3, 15], "x": 192, "y": 24, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4},
+            {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4},
+            {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4},
+            {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4},
+            {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4},
+            {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4},
+            {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4},
+            {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4},
+            {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4},
+            {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4},
+            {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4},
+            {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4},
+            {"x": 144, "y": 36, "flags": 4},
+            {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4},
+            {"x": 168, "y": 36, "flags": 4},
+            {"x": 0, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4},
+            {"x": 24, "y": 48, "flags": 4},
+            {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4},
+            {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4},
+            {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4},
+            {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4},
+            {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4},
+            {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4},
+            {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4},
+            {"x": 156, "y": 48, "flags": 4},
+            {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4},
+            {"x": 180, "y": 48, "flags": 4},
+            {"matrix": [4, 14], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4},
+            {"matrix": [5, 1], "x": 12, "y": 60, "flags": 4},
+            {"matrix": [5, 2], "x": 24, "y": 60, "flags": 4},
+            {"x": 36, "y": 60, "flags": 4},
+            {"matrix": [5, 5], "x": 48, "y": 60, "flags": 4},
+            {"x": 60, "y": 60, "flags": 4},
+            {"matrix": [5, 9], "x": 72, "y": 60, "flags": 4},
+            {"matrix": [5, 10], "x": 84, "y": 60, "flags": 4},
+            {"matrix": [5, 11], "x": 96, "y": 60, "flags": 4},
+            {"matrix": [5, 12], "x": 108, "y": 60, "flags": 4},
+            {"matrix": [5, 13], "x": 120, "y": 60, "flags": 4},
+            {"matrix": [5, 14], "x": 132, "y": 60, "flags": 4},
+            {"matrix": [5, 15], "x": 144, "y": 60, "flags": 4}
+        ],
+    }
 }

+ 0 - 25
keyboards/melgeek/mach80/rev1/rev1.c

@@ -118,31 +118,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW6_CS39, SW6_CS38, SW6_CS37}, /* RGB111 */
     {0, SW7_CS39, SW7_CS38, SW7_CS37}, /* RGB112 */
 };
-led_config_t g_led_config = {
-	{
-		/* C0       C1       C2       C3       C4       C5       C6       C7       C8       C9       C10       C11       C12       C13       C14       C15 */
-		{  0,  NO_LED,       1,       2,       3,       4,       5,       6,       7,       8,        9,       10,       11,       12,       13,       14 }, /* R0 */
-		{ 16,      17,      18,      19,      20,      21,      22,      23,      24,      25,       26,       27,       28,       30,       32,       33 }, /* R1 */
-		{ 35,      36,      37,      38,      39,      40,      41,      42,      43,      44,       45,       46,       47,       48,       49,       50 }, /* R2 */
-		{ 52,      53,      54,      55,      56,      57,      58,      59,      60,      61,       62,       63,       65,       15,       34,       51 }, /* R3 */
-		{ 68,      70,      71,      72,      73,      74,      75,      76,      77,      78,       79,       81,   NO_LED,   NO_LED,       83,   NO_LED }, /* R4 */
-		{ 84,      85,      86,  NO_LED,  NO_LED,      88,  NO_LED,  NO_LED,  NO_LED,      90,       91,       92,       93,       94,       95,       96 }  /* R5 */
-    }, {
-        {0, 0},   {12, 0},   {24, 0},  {36, 0},  {48, 0},  {60, 0},  {72, 0},  {84, 0},  {96, 0},  {108, 0},  {120, 0},  {132, 0},  {144, 0},  {156, 0},  {168, 0},  {180, 0},                                   //16
-		{0, 12},  {12, 12},  {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19
-		{0, 24},  {12, 24},  {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24},                       //17
-		{0, 36},  {12, 36},  {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36},                                             //15
-		{0, 48},  {12, 48},  {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48},                       //17
-		{0, 60},  {12, 60},  {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60}, {144, 60}                                                                    //13
-	}, {          
-	       4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,       
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,
-	}
-};
 
 const is31fl3741_led_t g_is31_indicator_leds[3] = {
     {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB107 */

+ 99 - 1
keyboards/melgeek/mach80/rev2/keyboard.json

@@ -13,5 +13,103 @@
         "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"],
         "rows": ["F0", "F1", "F4", "F5", "F6", "E6"]
     },
-    "diode_direction": "ROW2COL"
+    "diode_direction": "ROW2COL",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 12, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 24, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 36, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 72, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 84, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 108, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 132, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 156, "y": 0, "flags": 4},
+            {"matrix": [0, 15], "x": 168, "y": 0, "flags": 4},
+            {"matrix": [3, 13], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
+            {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4},
+            {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4},
+            {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4},
+            {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4},
+            {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4},
+            {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4},
+            {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4},
+            {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4},
+            {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4},
+            {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4},
+            {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4},
+            {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4},
+            {"x": 156, "y": 12, "flags": 4},
+            {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4},
+            {"x": 180, "y": 12, "flags": 4},
+            {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4},
+            {"matrix": [1, 15], "x": 204, "y": 12, "flags": 4},
+            {"matrix": [3, 14], "x": 216, "y": 12, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4},
+            {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4},
+            {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4},
+            {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4},
+            {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4},
+            {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4},
+            {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4},
+            {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4},
+            {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4},
+            {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4},
+            {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4},
+            {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4},
+            {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4},
+            {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4},
+            {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4},
+            {"matrix": [2, 15], "x": 180, "y": 24, "flags": 4},
+            {"matrix": [3, 15], "x": 192, "y": 24, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4},
+            {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4},
+            {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4},
+            {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4},
+            {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4},
+            {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4},
+            {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4},
+            {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4},
+            {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4},
+            {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4},
+            {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4},
+            {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4},
+            {"x": 144, "y": 36, "flags": 4},
+            {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4},
+            {"x": 168, "y": 36, "flags": 4},
+            {"x": 0, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4},
+            {"x": 24, "y": 48, "flags": 4},
+            {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4},
+            {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4},
+            {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4},
+            {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4},
+            {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4},
+            {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4},
+            {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4},
+            {"x": 156, "y": 48, "flags": 4},
+            {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4},
+            {"x": 180, "y": 48, "flags": 4},
+            {"matrix": [4, 14], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4},
+            {"matrix": [5, 2], "x": 12, "y": 60, "flags": 4},
+            {"x": 24, "y": 60, "flags": 4},
+            {"matrix": [5, 5], "x": 36, "y": 60, "flags": 4},
+            {"x": 48, "y": 60, "flags": 4},
+            {"matrix": [5, 9], "x": 60, "y": 60, "flags": 4},
+            {"matrix": [5, 12], "x": 72, "y": 60, "flags": 4},
+            {"matrix": [5, 13], "x": 84, "y": 60, "flags": 4},
+            {"matrix": [5, 14], "x": 96, "y": 60, "flags": 4},
+            {"matrix": [5, 15], "x": 108, "y": 60, "flags": 4}
+        ],
+    }
 }

+ 0 - 26
keyboards/melgeek/mach80/rev2/rev2.c

@@ -115,32 +115,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW9_CS24, SW9_CS23, SW9_CS22}, /* RGB54 */
     {0, SW4_CS39, SW4_CS38, SW4_CS37}, /* RGB101 */
 };
-led_config_t g_led_config = {
-	{
-		/* C0       C1       C2       C3       C4       C5       C6       C7       C8       C9       C10       C11       C12       C13       C14       C15 */
-		{  0,  NO_LED,       1,       2,       3,       4,       5,       6,       7,       8,        9,       10,       11,       12,       13,       14 }, /* R0 */
-		{ 16,      17,      18,      19,      20,      21,      22,      23,      24,      25,       26,       27,       28,       30,       32,       33 }, /* R1 */
-		{ 35,      36,      37,      38,      39,      40,      41,      42,      43,      44,       45,       46,       47,       48,       49,       50 }, /* R2 */
-		{ 52,      53,      54,      55,      56,      57,      58,      59,      60,      61,       62,       63,       65,       15,       34,       51 }, /* R3 */
-		{ 68,      70,      71,      72,      73,      74,      75,      76,      77,      78,       79,       81,   NO_LED,   NO_LED,       83,   NO_LED }, /* R4 */
-		{ 84,  NO_LED,      85,  NO_LED,  NO_LED,      87,  NO_LED,  NO_LED,  NO_LED,      89,   NO_LED,   NO_LED,       90,       91,       92,       93 }  /* R5 */
-    }, {
-        {0, 0},   {12, 0},   {24, 0},  {36, 0},  {48, 0},  {60, 0},  {72, 0},  {84, 0},  {96, 0},  {108, 0},  {120, 0},  {132, 0},  {144, 0},  {156, 0},  {168, 0},  {180, 0},                                   //16
-		{0, 12},  {12, 12},  {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19
-		{0, 24},  {12, 24},  {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24},                       //17
-		{0, 36},  {12, 36},  {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36},                                             //15
-		{0, 48},  {12, 48},  {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48},                       //17
-		{0, 60},  {12, 60},  {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}
-		//10
-	}, {          
-	       4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,       
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         
-	}
-};
 
 const is31fl3741_led_t g_is31_indicator_leds[3] = {
     {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB107 */

+ 68 - 1
keyboards/melgeek/mj61/rev1/keyboard.json

@@ -10,5 +10,72 @@
         "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
         "rows": ["B12", "B11", "B10", "B1", "A3"]
     },
-    "diode_direction": "COL2ROW"
+    "diode_direction": "COL2ROW",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
+            {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [3, 12], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 3], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 4], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 6], "x": 144, "y": 64, "flags": 4}
+        ],
+    }
 }

+ 0 - 24
keyboards/melgeek/mj61/rev1/rev1.c

@@ -82,28 +82,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB62 */
     {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB63 */
 };
-
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13  */
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        13     }, /* R0 */
-		{ 27,     26,        25,       24,       23,       22,       21,       20,       19,         18,        17,         16,       15,        14     }, /* R1 */
-		{ 28,     29,        30,       31,       32,       33,       34,       35,       36,         37,        38,         39,       40,        NO_LED,}, /* R2 */
-		{ 52,     NO_LED,    51,       50,       49,       48,       47,       46,       45,         44,        43,         42,       41,        NO_LED }, /* R3 */
-		{ 53,     54,        NO_LED,   55,       61,       56,       62,   NO_LED,   NO_LED,         57,        58,         59,       60,        NO_LED }, /* R4 */
-    }, {
-        {0, 0},   {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32},
-		{0, 48},             {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48},  {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48},
-		{0, 64},  {16, 64},            {32, 64}, {48, 64}, {64, 64}, {80, 64},                       {96, 64},  {112, 64}, {128, 64}, {144, 64},
-	}, {
-	       4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4, 
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,
-		   4,                 4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,
-		   4,      4,                   4,        4,        4,        4,                              4,         4,          4,        4,
-	}
-};
-
 #endif

+ 76 - 1
keyboards/melgeek/mj61/rev2/keyboard.json

@@ -10,5 +10,80 @@
         "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
         "rows": ["B12", "B11", "B10", "B1", "A3"]
     },
-    "diode_direction": "COL2ROW"
+    "diode_direction": "COL2ROW",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"x": 208, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
+            {"x": 240, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"x": 192, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4},
+            {"x": 224, "y": 32, "flags": 4},
+            {"x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4},
+            {"x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4},
+            {"x": 208, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 224, "y": 48, "flags": 4},
+            {"x": 240, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 3], "x": 32, "y": 64, "flags": 4},
+            {"x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4},
+            {"x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 144, "y": 64, "flags": 4}
+        ]
+    }
 }

+ 0 - 24
keyboards/melgeek/mj61/rev2/rev2.c

@@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW9_CS21, SW9_CS20, SW9_CS19}, /* RGB42 */
     {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */
 };
-
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13  */
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        14     }, /* R0 */
-		{ 16,     17,        18,       19,       20,       21,       22,       23,       24,         25,        26,         27,       28,        29     }, /* R1 */
-		{ 30,     31,        32,       33,       34,       35,       36,       37,       38,         39,        40,         41,       43,        NO_LED }, /* R2 */
-		{ 46,     NO_LED,    48,       49,       50,       51,       52,       53,       54,         55,        56,         57,       59,        NO_LED }, /* R3 */
-		{ 61,     62,        NO_LED,   63,       NO_LED,   65,       NO_LED,   NO_LED,   NO_LED,     67,        68,         69,       NO_LED,    70     }, /* R4 */
-    }, {
-        {0, 0},   {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},  {224, 0},  {240, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32},
-		{0, 48},  {16, 48},  {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48},
-		{0, 64},  {16, 64},  {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64},
-	}, {
-	       4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,
-	}
-};
-
 #endif

+ 70 - 1
keyboards/melgeek/mj63/rev1/keyboard.json

@@ -10,5 +10,74 @@
         "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
         "rows": ["B12", "B11", "B10", "B1", "A3"]
     },
-    "diode_direction": "COL2ROW"
+    "diode_direction": "COL2ROW",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
+            {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 6], "x": 144, "y": 64, "flags": 4},
+            {"matrix": [4, 4], "x": 160, "y": 64, "flags": 4}
+        ]
+    }
 }

+ 0 - 24
keyboards/melgeek/mj63/rev1/rev1.c

@@ -86,28 +86,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW1_CS27, SW1_CS26, SW1_CS25}, /* RGB65 */
     {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB66 */
 };
-
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13  */
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        13     }, /* R0 */
-		{ 27,     26,        25,       24,       23,       22,       21,       20,       19,         18,        17,         16,       15,        14     }, /* R1 */
-		{ 28,     29,        30,       31,       32,       33,       34,       35,       36,         37,        38,         39,       40,        NO_LED }, /* R2 */
-		{ 53,     52,        51,       50,       49,       48,       47,       46,       45,         44,        NO_LED,     43,       42,        41     }, /* R3 */
-		{ 61,     60,        59,       NO_LED,   64,       62,       63,       NO_LED,   NO_LED,     58,        57,         56,       55,        54     }, /* R4 */
-    }, {
-        {0, 0},   {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32},
-		{0, 48},  {16, 48},  {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48},            {192, 48},
-		{0, 64},  {16, 64},  {32, 64},           {48, 64}, {64, 64}, {80, 64},                       {96, 64},  {112, 64}, {128, 64}, {144, 64}, {160, 64},
-	}, {
-	       4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4, 
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,                     4,        4,        4,
-		   4,      4,         4,                  4,        4,        4,                              4,         4,          4,        4,        4,
-	}
-};
-
 #endif

+ 76 - 1
keyboards/melgeek/mj63/rev2/keyboard.json

@@ -10,5 +10,80 @@
         "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
         "rows": ["B12", "B11", "B10", "B1", "A3"]
     },
-    "diode_direction": "COL2ROW"
+    "diode_direction": "COL2ROW",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"x": 208, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
+            {"x": 240, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"x": 192, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4},
+            {"x": 224, "y": 32, "flags": 4},
+            {"x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4},
+            {"x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
+            {"x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4},
+            {"x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 144, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 160, "y": 64, "flags": 4}
+        ],
+    }
 }

+ 0 - 24
keyboards/melgeek/mj63/rev2/rev2.c

@@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */
     {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB72 */
 };
-
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13  */
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        14     }, /* R0 */
-		{ 16,     17,        18,       19,       20,       21,       22,       23,       24,         25,        26,         27,       28,        29     }, /* R1 */
-		{ 30,     31,        32,       33,       34,       35,       36,       37,       38,         39,        40,         41,       43,        NO_LED }, /* R2 */
-		{ 46,     48,        49,       50,       51,       52,       53,       54,       55,         56,        NO_LED,     57,       58,        59     }, /* R3 */
-		{ 60,     61,        62,       NO_LED,   NO_LED,   64,       NO_LED,   NO_LED,   NO_LED,     66,        67,         68,       69,        70     }, /* R4 */
-    }, {
-        {0, 0},   {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},  {224, 0}, {240, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32},            {208, 32}, {224, 32},
-		{0, 48},  {16, 48},  {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48},
-		{0, 64},  {16, 64},  {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64},
-	}, {
-	       4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,                   4,         4,
-		   4,                 4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,         4,
-		   4,      4,         4,                  4,        4,        4,                              4,         4,          4,        4,        4,
-	}
-};
-
 #endif

+ 69 - 1
keyboards/melgeek/mj64/rev1/keyboard.json

@@ -10,5 +10,73 @@
         "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
         "rows": ["B12", "B11", "B10", "B1", "A3"]
     },
-    "diode_direction": "COL2ROW"
+    "diode_direction": "COL2ROW",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
+            {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 144, "y": 64, "flags": 4}
+        ]
+    }
 }

+ 0 - 23
keyboards/melgeek/mj64/rev1/rev1.c

@@ -84,27 +84,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW9_CS27, SW9_CS26, SW9_CS25}, /* RGB63 */
     {0, SW1_CS30, SW1_CS29, SW1_CS28}, /* RGB64 */
 };
-
-led_config_t g_led_config = {
-    {
-        {  0,  1,  2,      3,      4,  5,      6,      7,      8,  9, 10, 11, 12,     13 },
-        { 27, 26, 25,     24,     23, 22,     21,     20,     19, 18, 17, 16, 15,     14 },
-        { 28, 29, 30,     31,     32, 33,     34,     35,     36, 37, 38, 39, 40, NO_LED },
-        { 54, 53, 52,     51,     50, 49,     48,     47,     46, 45, 44, 43, 42,     41 },
-        { 62, 61, 60, NO_LED, NO_LED, 63, NO_LED, NO_LED, NO_LED, 59, 58, 57, 56,     55 }
-    }, {
-        { 0,  0 }, { 16,  0 }, { 32,  0 }, { 48,  0 }, { 64,  0 }, { 80,  0 }, { 96,  0 }, { 112,  0 }, { 128,  0 }, { 144,  0 }, { 160,  0 }, { 176,  0 }, { 192,  0 }, { 208,  0 },
-        { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 }, { 96, 16 }, { 112, 16 }, { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 }, { 192, 16 }, { 208, 16 },
-        { 0, 32 }, { 16, 32 }, { 32, 32 }, { 48, 32 }, { 64, 32 }, { 80, 32 }, { 96, 32 }, { 112, 32 }, { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 },              { 192, 32 },
-        { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 },
-        { 0, 64 }, { 16, 64 }, { 32, 64 },                         { 48, 64 },                                       {  64, 64 }, {  96, 64 }, { 112, 64 }, { 128, 64 }, { 144, 64 }
-    }, {
-        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    4,
-        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
-        4, 4, 4,       4,          4, 4, 4, 4, 4
-    }
-};
-
 #endif

+ 71 - 1
keyboards/melgeek/mj64/rev2/keyboard.json

@@ -10,5 +10,75 @@
         "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
         "rows": ["B12", "B11", "B10", "B1", "A3"]
     },
-    "diode_direction": "COL2ROW"
+    "diode_direction": "COL2ROW",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
+            {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 4], "x": 144, "y": 64, "flags": 4},
+            {"matrix": [4, 6], "x": 160, "y": 64, "flags": 4}
+        ]
+    }
 }

+ 0 - 24
keyboards/melgeek/mj64/rev2/rev2.c

@@ -86,28 +86,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW1_CS27, SW1_CS26, SW1_CS25}, /* RGB65 */
     {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB66 */
 };
-
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13  */
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        13     }, /* R0 */
-		{ 27,     26,        25,       24,       23,       22,       21,       20,       19,         18,        17,         16,       15,        14     }, /* R1 */
-		{ 28,     29,        30,       31,       32,       33,       34,       35,       36,         37,        38,         39,       40,        NO_LED }, /* R2 */
-		{ 54,     53,        52,       51,       50,       49,       48,       47,       46,         45,        44,         43,       42,        41     }, /* R3 */
-		{ 62,     61,        60,       NO_LED,   64,       63,       65,       NO_LED,   NO_LED,     59,        58,         57,       56,        55     }, /* R4 */
-    }, {
-        {0, 0},   {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32},
-		{0, 48},  {16, 48},  {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48},
-		{0, 64},  {16, 64},  {32, 64},           {48, 64}, {64, 64}, {80, 64},                       {96, 64},  {112, 64}, {128, 64}, {144, 64}, {160, 64},
-	}, {
-	       4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4, 
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,                  4,        4,        4,                              4,         4,          4,        4,        4,
-	}
-};
-
 #endif

+ 77 - 1
keyboards/melgeek/mj64/rev3/keyboard.json

@@ -10,5 +10,81 @@
         "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
         "rows": ["B12", "B11", "B10", "B1", "A3"]
     },
-    "diode_direction": "COL2ROW"
+    "diode_direction": "COL2ROW",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"x": 208, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
+            {"x": 240, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"x": 192, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4},
+            {"x": 224, "y": 32, "flags": 4},
+            {"x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4},
+            {"x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 240, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
+            {"x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4},
+            {"x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 144, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 160, "y": 64, "flags": 4}
+        ]
+    }
 }

+ 0 - 24
keyboards/melgeek/mj64/rev3/rev3.c

@@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */
     {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB72 */
 };
-
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13  */
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        14     }, /* R0 */
-		{ 16,     17,        18,       19,       20,       21,       22,       23,       24,         25,        26,         27,       28,        29     }, /* R1 */
-		{ 30,     31,        32,       33,       34,       35,       36,       37,       38,         39,        40,         41,       43,        NO_LED }, /* R2 */
-		{ 46,     48,        49,       50,       51,       52,       53,       54,       55,         56,        57,         58,       59,        60     }, /* R3 */
-		{ 61,     62,        63,       NO_LED,   NO_LED,   65,       NO_LED,   NO_LED,   NO_LED,     67,        68,         69,       70,        71     }, /* R4 */
-    }, {
-        {0, 0},   {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},  {224, 0},  {240, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32},
-		{0, 48},  {16, 48},  {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48},
-		{0, 64},  {16, 64},  {32, 64},                     {48, 64},                                 {64, 64}, {80, 64},   {96, 64},  {112, 64}, {128, 64}, {144, 64}, {160, 64},
-	}, {
-	       4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,         4,
-		   4,      4,         4,                            4,                                        4,         4,          4,        4,        4,         4,         4,
-	}
-};
-
 #endif

+ 78 - 0
keyboards/melgeek/mj65/rev3/keyboard.json

@@ -61,6 +61,84 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"x": 208, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
+            {"x": 240, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 255, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 240, "y": 16, "flags": 4},
+            {"matrix": [2, 1], "x": 255, "y": 16, "flags": 4},
+            {"matrix": [2, 2], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 144, "y": 32, "flags": 4},
+            {"x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
+            {"x": 192, "y": 32, "flags": 4},
+            {"matrix": [2, 14], "x": 208, "y": 32, "flags": 4},
+            {"x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4},
+            {"x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [3, 14], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 64, "y": 64, "flags": 4},
+            {"x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
+            {"x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 1 - 25
keyboards/melgeek/mj65/rev3/rev3.c

@@ -96,28 +96,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW3_CS33, SW3_CS32, SW3_CS31}, /* RGB75 */
     {0, SW4_CS33, SW4_CS32, SW4_CS31}, /* RGB76 */
 };
-
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13    C14 */
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        14,     16 },  /* R0 */
-		{ 17,     18,        19,       20,       21,       22,       23,       24,       25,         26,        27,         28,       29,        30,     31 },  /* R1 */
-		{ 32,     33,        34,       35,       36,       37,       38,       39,       40,         41,        42,         43,       45,        NO_LED, 47 },  /* R2 */
-		{ 49,     51,        52,       53,       54,       55,       56,       57,       58,         59,        60,         61,       62,        NO_LED, 63 },  /* R3 */
-		{ 64,     65,        66,       NO_LED,   NO_LED,   68,       NO_LED,   NO_LED,   NO_LED,     70,        71,         72,       73,        74,     75 },  /* R4 */
-    }, {
-        {0, 0},   {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},  {224, 0},  {240, 0},  {255, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, {240, 16}, {255, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32},
-		{0, 48},  {16, 48},  {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48},
-		{0, 64},  {16, 64},  {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64},
-	}, {
-	       4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,
-	}
-};
-
-#endif 
+#endif

+ 70 - 0
keyboards/melgeek/mojo68/rev1/keyboard.json

@@ -56,6 +56,76 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [2, 14], "x": 208, "y": 32, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [3, 14], "x": 208, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 11], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 13], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 14], "x": 144, "y": 64, "flags": 4}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 0 - 23
keyboards/melgeek/mojo68/rev1/rev1.c

@@ -89,29 +89,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB68 */
 };
 
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13       C14*/
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        13,       14 }, /* R0 */
-		{ 15,     16,        17,       18,       19,       20,       21,       22,       23,         24,        25,         26,       27,        28,       29 }, /* R1 */
-		{ 30,     31,        32,       33,       34,       35,       36,       37,       38,         39,        40,         41,       42,        NO_LED,   43 }, /* R2 */
-		{ 44,     45,        46,       47,       48,       49,       50,       51,       52,         53,        54,         55,       56,        NO_LED,   57 }, /* R3 */
-		{ 58,     59,        60,       NO_LED,   NO_LED,   61,       NO_LED,   NO_LED,   NO_LED,     62,        63,         64,       65,        66,       67 }, /* R4 */
-    }, {
-        {0, 0},   {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},  {224, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32},
-		{0, 48},  {16, 48},  {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48},
-		{0, 64},  {16, 64},  {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64},
-	}, {
-	       4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,         4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,         4,          4,        4,        4,
-		   4,      4,         4,        4,        4,        4,        4,        4,         4,         4,
-	}
-};
-
 const is31fl3741_led_t g_is31_indicator_leds[3] = {
     {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB124 */
     {0, SW2_CS6, SW2_CS5, SW2_CS4}, /* RGB125 */

+ 94 - 0
keyboards/melgeek/mojo75/rev1/keyboard.json

@@ -61,6 +61,100 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [0, 15], "x": 240, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
+            {"x": 208, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4},
+            {"x": 240, "y": 16, "flags": 4},
+            {"matrix": [1, 15], "x": 255, "y": 16, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4},
+            {"matrix": [2, 15], "x": 224, "y": 32, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
+            {"x": 192, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4},
+            {"x": 224, "y": 48, "flags": 4},
+            {"matrix": [3, 15], "x": 240, "y": 48, "flags": 4},
+            {"x": 0, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 16, "y": 64, "flags": 4},
+            {"x": 32, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 64, "y": 64, "flags": 4},
+            {"matrix": [4, 3], "x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 6], "x": 128, "y": 64, "flags": 4},
+            {"matrix": [4, 7], "x": 144, "y": 64, "flags": 4},
+            {"matrix": [4, 8], "x": 160, "y": 64, "flags": 4},
+            {"matrix": [4, 9], "x": 176, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 192, "y": 64, "flags": 4},
+            {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
+            {"matrix": [4, 15], "x": 240, "y": 64, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 80, "flags": 4},
+            {"matrix": [5, 1], "x": 16, "y": 80, "flags": 4},
+            {"matrix": [5, 2], "x": 32, "y": 80, "flags": 4},
+            {"x": 48, "y": 80, "flags": 4},
+            {"matrix": [5, 5], "x": 64, "y": 80, "flags": 4},
+            {"x": 80, "y": 80, "flags": 4},
+            {"matrix": [5, 9], "x": 96, "y": 80, "flags": 4},
+            {"matrix": [5, 10], "x": 112, "y": 80, "flags": 4},
+            {"matrix": [5, 12], "x": 128, "y": 80, "flags": 4},
+            {"matrix": [5, 13], "x": 144, "y": 80, "flags": 4},
+            {"matrix": [5, 14], "x": 160, "y": 80, "flags": 4},
+            {"matrix": [5, 15], "x": 176, "y": 80, "flags": 4}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 0 - 27
keyboards/melgeek/mojo75/rev1/rev1.c

@@ -112,31 +112,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB92 */
     {0, SW6_CS39, SW6_CS38, SW6_CS37}, /* RGB90 */
 };
-
-led_config_t g_led_config = {
-	{
-		/* C0     C1         C2        C3        C4        C5        C6        C7        C8          C9        C10         C11        C12        C13        C14        C15   */
-		{  0,      1,         2,        3,        4,        5,        6,        7,        8,          9,        10,         11,       12,        13,        14,        15 }, /* R0 */
-		{ 16,     17,        18,       19,       20,       21,       22,       23,       24,         25,        26,         27,       28,        30,        NO_LED,    32 }, /* R1 */
-		{ 33,     34,        35,       36,       37,       38,       39,       40,       41,         42,        43,         44,       45,        46,        NO_LED,    47 }, /* R2 */
-		{ 48,     49,        50,       51,       52,       53,       54,       55,       56,         57,        58,         59,       NO_LED,    61,        NO_LED,    63 }, /* R3 */
-		{ 65,     67,        68,       69,       70,       71,       72,       73,       74,         75,        76,         NO_LED,   77,        NO_LED,    78,        79 }, /* R4 */
-		{ 80,     81,        82,       NO_LED,   NO_LED,   84,       NO_LED,   NO_LED,   NO_LED,     86,        87,         NO_LED,   88,        89,        90,        91 }, /* R5 */
-    }, {
-        {0,  0},  {16, 0},   {32, 0},  {48, 0},  {64, 0},  {80, 0},  {96, 0},  {112, 0},  {128, 0},  {144, 0},  {160, 0},  {176, 0},  {192, 0},  {208, 0},   {224, 0},  {240, 0},
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},  {224, 16}, {240, 16}, {255, 16},
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32},  {224, 32},
-		{0, 48},  {16, 48},  {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48},  {224, 48}, {240, 48},
-		{0, 64},  {16, 64},  {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64},  {224, 64}, {240, 64},
-		{0, 80},  {16, 80},  {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80}, {128, 80}, {144, 80}, {160, 80}, {176, 80},
-	}, {
-	     4,        4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,          4,         4,
-	     4,        4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,          4,         4,        4,
-	     4,        4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,          4,
-	     4,        4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,          4,         4,
-		 4,        4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,          4,         4,
-		 4,        4,         4,        4,        4,        4,        4,        4,         4,         4,         4,         4,
-	}
-};
-
 #endif

+ 93 - 0
keyboards/melgeek/tegic/rev1/keyboard.json

@@ -67,6 +67,99 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 72, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 156, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 168, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
+            {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4},
+            {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4},
+            {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4},
+            {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4},
+            {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4},
+            {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4},
+            {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4},
+            {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4},
+            {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4},
+            {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4},
+            {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4},
+            {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4},
+            {"x": 156, "y": 12, "flags": 4},
+            {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4},
+            {"x": 180, "y": 12, "flags": 4},
+            {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4},
+            {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4},
+            {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4},
+            {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4},
+            {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4},
+            {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4},
+            {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4},
+            {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4},
+            {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4},
+            {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4},
+            {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4},
+            {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4},
+            {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4},
+            {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4},
+            {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4},
+            {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4},
+            {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4},
+            {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4},
+            {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4},
+            {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4},
+            {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4},
+            {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4},
+            {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4},
+            {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4},
+            {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4},
+            {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4},
+            {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4},
+            {"x": 144, "y": 36, "flags": 4},
+            {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4},
+            {"x": 168, "y": 36, "flags": 4},
+            {"x": 0, "y": 48, "flags": 4},
+            {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4},
+            {"x": 24, "y": 48, "flags": 4},
+            {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4},
+            {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4},
+            {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4},
+            {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4},
+            {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4},
+            {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4},
+            {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4},
+            {"x": 156, "y": 48, "flags": 4},
+            {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4},
+            {"x": 180, "y": 48, "flags": 4},
+            {"matrix": [4, 13], "x": 192, "y": 48, "flags": 4},
+            {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4},
+            {"matrix": [5, 1], "x": 12, "y": 60, "flags": 4},
+            {"matrix": [5, 2], "x": 24, "y": 60, "flags": 4},
+            {"x": 36, "y": 60, "flags": 4},
+            {"matrix": [5, 5], "x": 48, "y": 60, "flags": 4},
+            {"x": 60, "y": 60, "flags": 4},
+            {"matrix": [5, 9], "x": 72, "y": 60, "flags": 4},
+            {"matrix": [5, 10], "x": 84, "y": 60, "flags": 4},
+            {"matrix": [5, 11], "x": 96, "y": 60, "flags": 4},
+            {"matrix": [5, 12], "x": 108, "y": 60, "flags": 4},
+            {"matrix": [5, 13], "x": 120, "y": 60, "flags": 4},
+            {"matrix": [5, 14], "x": 132, "y": 60, "flags": 4}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 0 - 25
keyboards/melgeek/tegic/rev1/rev1.c

@@ -117,29 +117,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW9_CS36, SW9_CS35, SW9_CS34}, /* RGB143 */
     {0, SW1_CS39, SW1_CS38, SW1_CS37}, /* RGB149 */
 };
-led_config_t g_led_config = {
-	{
-		/* C0       C1       C2       C3       C4       C5       C6       C7       C8       C9       C10       C11       C12       C13       C14 */
-		{  0,       1,       2,       3,       4,       5,       6,       7,       8,       9,       10,       11,       12,       13,       14 }, /* R0 */
-		{ 15,	   16,      17,      18,      19,      20,      21,      22,      23,      24,       25,       26,       27,       29,       31 }, /* R1 */
-		{ 32,      33,      34,      35,      36,      37,      38,      39,      40,      41,       42,       43,       44,       45,       46 }, /* R2 */
-		{ 47,      48,      49,      50,      51,      52,      53,      54,      55,      56,       57,       58,       60,   NO_LED,	 NO_LED }, /* R3 */
-		{ 63,      65,      66,      67,      68,      69,      70,      71,      72,      73,       74,       76,  NO_LED,        78,   NO_LED }, /* R4 */
-		{ 79,      80,      81,  NO_LED,  NO_LED,      83,  NO_LED,  NO_LED,  NO_LED,      85,       86,       87,       88,       89,       90 }, /* R5 */
-    }, {
-        {0, 0},   {12, 0},   {24, 0},  {36, 0},  {48, 0},  {60, 0},  {72, 0},  {84, 0},  {96, 0},  {108, 0},  {120, 0},  {132, 0},  {144, 0},  {156, 0},  {168, 0},                                   			 //15
-		{0, 12},  {12, 12},  {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12},						 //17
-		{0, 24},  {12, 24},  {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24},											 //15
-		{0, 36},  {12, 36},  {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36},                                             //15
-		{0, 48},  {12, 48},  {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48},                       //17
-		{0, 60},  {12, 60},  {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60},																			 //12
-	}, {          
-	       4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,      
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,         4,         4,         4,         4,         4,
-		   4,         4,         4,        4,        4,        4,        4,         4,         4,         4,         4,         4,      
-	}
-};
 #endif

+ 71 - 0
keyboards/melgeek/z70ultra/rev1/keyboard.json

@@ -61,6 +61,77 @@
             "animation": "cycle_all"
         },
         "driver": "is31fl3741",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
+            {"matrix": [5, 6], "x": 0, "y": 16, "flags": 4},
+            {"matrix": [1, 0], "x": 16, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 32, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 48, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 64, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 80, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 96, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 144, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 160, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 176, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 192, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 208, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [5, 7], "x": 16, "y": 32, "flags": 4},
+            {"matrix": [2, 0], "x": 32, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 48, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 64, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 80, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 96, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 112, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 128, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 144, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 160, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 192, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 0, "y": 48, "flags": 4},
+            {"matrix": [2, 13], "x": 16, "y": 48, "flags": 4},
+            {"matrix": [5, 9], "x": 32, "y": 48, "flags": 4},
+            {"matrix": [3, 0], "x": 48, "y": 48, "flags": 4},
+            {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [3, 11], "x": 16, "y": 64, "flags": 4},
+            {"matrix": [3, 12], "x": 32, "y": 64, "flags": 4},
+            {"matrix": [5, 8], "x": 48, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 64, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 80, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 4], "x": 0, "y": 80, "flags": 4},
+            {"matrix": [4, 5], "x": 16, "y": 80, "flags": 4},
+            {"matrix": [4, 6], "x": 32, "y": 80, "flags": 4},
+            {"matrix": [4, 9], "x": 48, "y": 80, "flags": 4},
+            {"matrix": [4, 10], "x": 64, "y": 80, "flags": 4},
+            {"matrix": [5, 11], "x": 80, "y": 80, "flags": 4},
+            {"matrix": [5, 12], "x": 96, "y": 80, "flags": 4},
+            {"matrix": [5, 13], "x": 112, "y": 80, "flags": 4}
+        ],
         "led_flush_limit": 26,
         "led_process_limit": 4,
         "sleep": true

+ 0 - 25
keyboards/melgeek/z70ultra/rev1/rev1.c

@@ -91,31 +91,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
     {0, SW4_CS37, SW4_CS39, SW4_CS38}, /* RGB22 */
     {0, SW9_CS37, SW9_CS39, SW9_CS38}, /* RGB27 */
 };
-led_config_t g_led_config = {
-	{
-		/* C0     C1      C2      C3      C4      C5      C6      C7      C8      C9       C10      C11     C12     C13      */
-		{  0,      1,      2,      3,     4,       5,      6,      7,      8,      9,       10,      11,     12,     13,     }, /* R0 */
-		{ 15,     16,     17,     18,     19,     20,     21,     22,     23,     24,       25,      26,     27,     28,     }, /* R1 */
-		{ 30,     31,     32,     33,     34,     35,     36,     37,     38,     39,       40,      41,     NO_LED, 42,     }, /* R2 */
-		{ 44,     NO_LED, 45,     46,     47,     48,     49,     50,     51,     52,       53,      54,     55,     NO_LED, }, /* R3 */
-		{ 58,     59,     60,     NO_LED, 61,     62,     63,     NO_LED, NO_LED, 64,       65,      NO_LED, NO_LED, NO_LED, }, /* R4 */
-		{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 14,     29,     56,     43,       57,      66,     67,     68,     }, /* R5 */
-    }, {
-        {0,  0},  {16,  0},  {32,  0}, {48,  0}, {64,  0}, {80,  0}, {96,  0}, {112,  0}, {128,  0}, {144,  0}, {160,  0}, {176,  0}, {192,  0}, {208,  0}, 
-		{0, 16},  {16, 16},  {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, 
-		{0, 32},  {16, 32},  {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32},            {192, 32}, 
-		{0, 48},             {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48},  {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48},
-		{0, 64},  {16, 64},  {32, 64},           {48, 64}, {64, 64}, {80, 64},                        {96, 64}, {112, 64}, 
-		                                                             {0, 80},  {16, 80},  {32, 80},   {48, 80}, {64, 80}, {80, 80},   {96, 80}, {112, 80}, 
-	}, {
-	       4,       4,         4,        4,        4,        4,        4,        4,          4,         4,         4,          4,        4,         4,
-		   4,       4,         4,        4,        4,        4,        4,        4,          4,         4,         4,          4,        4,         4,
-		   4,       4,         4,        4,        4,        4,        4,        4,          4,         4,         4,          4,                   4,
-		   4,                  4,        4,        4,        4,        4,        4,          4,         4,         4,          4,        4,
-		   4,       4,         4,                  4,        4,        4,                               4,         4,
-		                                                               4,        4,          4,         4,         4,          4,        4,         4,
-	}
-};
 
 const is31fl3741_led_t g_is31_indicator_leds[6] = {
     {0, SW1_CS5, SW1_CS3, SW1_CS4}, /* RGB71 */