Browse Source

Migrate `g_led_config` to DD (K3) (#25603)

Jack Sangdahl 11 months ago
parent
commit
1e8de37aa0

+ 0 - 33
keyboards/keychron/q1v1/iso/iso.c

@@ -113,37 +113,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
     {1, SW6_CS15,   SW4_CS15,   SW5_CS15},
     {1, SW6_CS16,   SW4_CS16,   SW5_CS16}
 };
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
-	{
-        // Key Matrix to LED Index
-		{  0, __,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 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, 57, 43 },
-		{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 },
-		{ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 },
-		{ 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 82 }
-	},
-	{
-        // LED Index to Physical Position
-        {0,0},           {18,0},  {33,0},  {48,0},  {62,0},  {81,0},  {95,0},   {110,0},  {125,0},  {143,0},  {158,0},  {173,0},  {187,0},  {206,0},  {224,0},
-        {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15},           {224,15},
-        {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26},                     {224,26},
-        {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32},           {224,38},
-        {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49},           {185,49}, {209,52},
-        {2,61}, {20,61}, {39,61}, {94,61},                            {147,61},                               {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
-    },
-	{
-        // RGB LED Index to Flag
-        1,    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,       1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1,
-        1, 1, 1,           4,         1, 1, 1, 1, 1, 1
-	}
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 0 - 33
keyboards/keychron/q6/ansi/ansi.c

@@ -141,37 +141,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {1, CB12_CA12,   CB10_CA12,   CB11_CA12},
     {1, CB12_CA9,    CB10_CA9,    CB11_CA9},
 };
-
-#define __ NO_LED
-
-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,  39,  40, 16 },
-        { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,  32,  33,  34,  35,  36,  37,  38, 17 },
-        { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,  53,  54,  55,  56,  57,  58,  59, 18 },
-        { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,  __,  73,  60,  77,  76,  74,  75, 19 },
-        { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,  __,  89,  93,  90, 107,  91,  92, __ },
-        { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ },
-    },
-    {
-        // LED Index to Physical Position
-        {0,0},           {21,0},  {31,0},  {42,0},  {52,0},  {68,0},  {78,0},  {89,0},   {99,0},   {115,0},  {125,0},  {136,0},  {146,0},  {159,0},  {169,0},  {180,0},  {193,0},  {203,0},  {214,0},  {224,0},
-        {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15},  {94,15},  {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
-        {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27},  {99,27},  {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
-        {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40},  {102,40}, {112,40}, {123,40},           {139,40},                               {193,40}, {203,40}, {214,40}, {224,34},
-        {7,52},          {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52},  {96,52},  {107,52}, {117,52},           {137,52},           {169,52},           {193,52}, {203,52}, {214,52},
-        {1,64}, {14,64}, {27,64},                            {66,64},                              {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64},           {214,64}, {224,58},
-    },
-    {
-        // RGB LED Index to Flag
-        1,    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
-        8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,          4, 4, 4, 4,
-        1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,    1,    4, 4, 4,
-        1, 1, 1,          4,          1, 1, 1, 1, 1, 1, 1, 1,    4, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 112 - 0
keyboards/keychron/q6/ansi/keyboard.json

@@ -21,6 +21,118 @@
     "build": {
         "lto": true
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
+            {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
+            {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
+            {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
+            {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
+            {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+            {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
+            {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
+            {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
+            {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
+            {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
+            {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
+            {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
+            {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
+            {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
+            {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
+            {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
+            {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
+            {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
+            {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
+            {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
+            {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
+            {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
+            {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
+            {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
+            {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
+            {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
+            {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
+            {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
+            {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
+            {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
+            {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
+            {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
+            {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
+            {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
+            {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4},
+            {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
+            {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
+            {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
+            {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
+            {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
+            {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
+            {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
+            {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
+            {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
+            {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
+            {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
+            {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
+            {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
+            {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
+            {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
+            {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
+            {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
+            {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1},
+            {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
+            {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
+            {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
+            {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
+            {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1},
+            {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
+            {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
+            {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
+            {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
+            {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
+            {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
+            {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
+            {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
+            {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
+            {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
+            {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
+            {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
+            {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
+            {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
+            {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
+            {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
+            {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
+            {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
+            {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
+            {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
+        ]
+    },
     "layouts": {
         "LAYOUT_ansi_108": {
             "layout": [

+ 0 - 32
keyboards/keychron/q6/ansi_encoder/ansi_encoder.c

@@ -142,36 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {1, CB12_CA9,    CB10_CA9,    CB11_CA9},
 };
 
-#define __ NO_LED
-
-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,  39,  40, 16 },
-        { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,  32,  33,  34,  35,  36,  37,  38, 17 },
-        { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,  53,  54,  55,  56,  57,  58,  59, 18 },
-        { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,  __,  73,  60,  77,  76,  74,  75, 19 },
-        { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,  __,  89,  93,  90, 107,  91,  92, __ },
-        { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ },
-    },
-    {
-        // LED Index to Physical Position
-        {0,0},  {13,0},  {24,0},  {34,0},  {45,0},  {57,0},  {68,0},  {78,0},  {89,0},  {102,0},  {112,0},  {123,0},  {133,0},            {159,0},  {169,0},  {180,0},  {193,0},  {203,0},  {214,0},  {224,0},
-        {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15},  {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
-        {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27},  {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
-        {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40},           {139,40},                               {193,40}, {203,40}, {214,40}, {224,34},
-        {7,52},          {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52},  {107,52}, {117,52},           {137,52},           {169,52},           {193,52}, {203,52}, {214,52},
-        {1,64}, {14,64}, {27,64},                            {66,64},                             {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64},           {214,64}, {224,58},
-    },
-    {
-        // RGB LED Index to Flag
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,    1, 1, 1, 1, 1, 1, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
-        8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,          4, 4, 4, 4,
-        1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,    1,    4, 4, 4,
-        1, 1, 1,          4,          1, 1, 1, 1, 1, 1, 1, 1,    4, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 112 - 0
keyboards/keychron/q6/ansi_encoder/keyboard.json

@@ -27,6 +27,118 @@
     "build": {
         "lto": true
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
+            {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
+            {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
+            {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
+            {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
+            {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+            {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
+            {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
+            {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
+            {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
+            {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
+            {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
+            {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
+            {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
+            {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
+            {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
+            {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
+            {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
+            {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
+            {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
+            {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
+            {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
+            {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
+            {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
+            {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
+            {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
+            {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
+            {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
+            {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
+            {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
+            {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
+            {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
+            {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
+            {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
+            {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
+            {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4},
+            {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
+            {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
+            {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
+            {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
+            {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
+            {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
+            {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
+            {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
+            {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
+            {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
+            {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
+            {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
+            {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
+            {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
+            {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
+            {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
+            {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
+            {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1},
+            {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
+            {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
+            {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
+            {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
+            {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1},
+            {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
+            {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
+            {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
+            {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
+            {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
+            {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
+            {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
+            {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
+            {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
+            {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
+            {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
+            {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
+            {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
+            {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
+            {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
+            {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
+            {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
+            {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
+            {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
+            {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
+        ]
+    },
     "layouts": {
         "LAYOUT_ansi_109": {
             "layout": [

+ 0 - 33
keyboards/keychron/q6/iso/iso.c

@@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {1, CB12_CA12,   CB10_CA12,   CB11_CA12},
     {1, CB12_CA9,    CB10_CA9,    CB11_CA9},
 };
-
-#define __ NO_LED
-
-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,  39,  40,  16 },
-        { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,  32,  33,  34,  35,  36,  37,  38,  17 },
-        { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,  53,  73,  54,  55,  56,  57,  58,  18 },
-        { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,  __,  72,  59,  77,  76,  74,  75,  19 },
-        { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,  __,  90,  94,  91,  108, 92,  93,  __ },
-        { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ },
-    },
-    {
-        // LED Index to Physical Position
-        {0,0},           {21,0},  {31,0},  {42,0},  {52,0},  {68,0},  {78,0},  {89,0},  {99,0},   {115,0},  {125,0},  {136,0},  {146,0},  {159,0},  {169,0},  {180,0},  {193,0},  {203,0},  {214,0},  {224,0},
-        {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15},  {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
-        {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27},  {109,27}, {120,27}, {130,27},           {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
-        {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36},                               {193,40}, {203,40}, {214,40}, {224,34},
-        {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52},  {107,52}, {117,52},           {137,52},           {169,52},           {193,52}, {203,52}, {214,52},
-        {1,64}, {14,64}, {27,64},                            {66,64},                             {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64},           {214,64}, {224,58},
-    },
-    {
-        // RGB LED Index to Flag
-        1,    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1, 1, 4, 4, 4,
-        8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,          4, 4, 4, 4,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,    1,    4, 4, 4,
-        1, 1, 1,          4,          1, 1, 1, 1, 1, 1, 1, 1,    4, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 113 - 0
keyboards/keychron/q6/iso/keyboard.json

@@ -21,6 +21,119 @@
     "build": {
         "lto": true
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
+            {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
+            {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
+            {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
+            {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
+            {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+            {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
+            {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
+            {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
+            {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
+            {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
+            {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
+            {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
+            {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
+            {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
+            {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
+            {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
+            {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
+            {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
+            {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
+            {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
+            {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
+            {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
+            {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
+            {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
+            {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
+            {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
+            {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
+            {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
+            {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
+            {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
+            {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
+            {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
+            {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
+            {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
+            {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
+            {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
+            {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
+            {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
+            {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
+            {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
+            {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
+            {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
+            {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
+            {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
+            {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
+            {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
+            {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
+            {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
+            {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
+            {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
+            {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
+            {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4},
+            {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1},
+            {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
+            {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
+            {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
+            {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
+            {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1},
+            {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
+            {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
+            {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
+            {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
+            {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
+            {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
+            {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
+            {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
+            {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
+            {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
+            {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
+            {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
+            {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
+            {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
+            {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
+            {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
+            {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
+            {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
+            {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
+            {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
+        ]
+    },
     "layouts": {
         "LAYOUT_iso_109": {
             "layout": [

+ 0 - 33
keyboards/keychron/q6/iso_encoder/iso_encoder.c

@@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {1, CB12_CA12,   CB10_CA12,   CB11_CA12},
     {1, CB12_CA9,    CB10_CA9,    CB11_CA9},
 };
-
-#define __ NO_LED
-
-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,  39,  40,  16 },
-        { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,  32,  33,  34,  35,  36,  37,  38,  17 },
-        { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,  53,  73,  54,  55,  56,  57,  58,  18 },
-        { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,  __,  72,  59,  77,  76,  74,  75,  19 },
-        { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,  __,  90,  94,  91,  108, 92,  93,  __ },
-        { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ },
-    },
-    {
-        // LED Index to Physical Position
-        {0,0},  {13,0},  {24,0},  {34,0},  {45,0},  {57,0},  {68,0},  {78,0},  {89,0},  {102,0},  {112,0},  {123,0},  {133,0},            {159,0},  {169,0},  {180,0},  {193,0},  {203,0},  {214,0},  {224,0},
-        {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15},  {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
-        {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27},  {109,27}, {120,27}, {130,27}, {159,27},           {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
-        {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36},                               {193,40}, {203,40}, {214,40}, {224,34},
-        {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52},  {107,52}, {117,52},           {137,52},           {169,52},           {193,52}, {203,52}, {214,52},
-        {1,64}, {14,64}, {27,64},                            {66,64},                             {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64},           {214,64}, {224,58},
-    },
-    {
-        // RGB LED Index to Flag
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,    1, 1, 1, 1, 1, 1, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1, 1, 4, 4, 4,
-        8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,          4, 4, 4, 4,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,    1,    4, 4, 4,
-        1, 1, 1,          4,          1, 1, 1, 1, 1, 1, 1, 1,    4, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 113 - 0
keyboards/keychron/q6/iso_encoder/keyboard.json

@@ -27,6 +27,119 @@
     "build": {
         "lto": true
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1},
+            {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1},
+            {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1},
+            {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
+            {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
+            {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
+            {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
+            {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
+            {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+            {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
+            {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
+            {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
+            {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
+            {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
+            {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
+            {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
+            {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
+            {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
+            {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
+            {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
+            {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
+            {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
+            {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
+            {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
+            {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
+            {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
+            {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
+            {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
+            {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
+            {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
+            {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
+            {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
+            {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
+            {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
+            {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
+            {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
+            {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
+            {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
+            {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
+            {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
+            {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
+            {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
+            {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
+            {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
+            {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
+            {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
+            {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
+            {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
+            {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
+            {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
+            {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
+            {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
+            {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
+            {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
+            {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
+            {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
+            {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4},
+            {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1},
+            {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
+            {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
+            {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
+            {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
+            {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1},
+            {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
+            {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
+            {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
+            {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
+            {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
+            {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
+            {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
+            {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
+            {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
+            {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
+            {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
+            {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
+            {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
+            {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
+            {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
+            {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
+            {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
+            {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
+            {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
+            {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
+            {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
+            {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
+            {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
+            {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
+            {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
+        ]
+    },
     "layouts": {
         "LAYOUT_iso_110": {
             "layout": [

+ 0 - 30
keyboards/keychron/q60/ansi/ansi.c

@@ -92,34 +92,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {0, CB9_CA15,   CB7_CA15,   CB8_CA15},
     {0, CB9_CA16,   CB7_CA16,   CB8_CA16},
 };
-
-#define __ NO_LED
-
-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 },
-        { 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, 14, __ },
-    },
-    {
-        // LED Index to Physical Position
-        {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},
-        {4,16},  {24,16}, {40,16}, {56,16}, {72,16}, {88,16}, {104,16}, {120,16}, {136,16}, {152,16}, {168,16}, {184,16}, {200,16},           {220,16},
-        {6,32},  {28,32}, {44,32}, {60,32}, {76,32}, {92,32}, {108,32}, {124,32}, {140,32}, {156,32}, {172,32}, {188,32},                     {214,32},
-        {10,48},          {36,48}, {52,48}, {68,48}, {84,48}, {100,48}, {116,48}, {132,48}, {148,48}, {164,48}, {180,48},           {202,48}, {224,48},
-                          {24,64}, {44,64},                             {112,64},                               {180,64}, {200,64},
-    },
-    {
-        // RGB LED Index to Flag
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
-        8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,       1,
-        1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1,
-              1, 1,          4,          1, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 64 - 0
keyboards/keychron/q60/ansi/keyboard.json

@@ -23,6 +23,70 @@
     "diode_direction": "ROW2COL",
     "processor": "STM32L432",
     "bootloader": "stm32-dfu",
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1},
+            {"matrix": [4, 12], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+            {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
+            {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1},
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
+            {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
+            {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
+            {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4},
+            {"matrix": [3, 11], "x": 180, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 202, "y": 48, "flags": 1},
+            {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [4, 0], "x": 24, "y": 64, "flags": 1},
+            {"matrix": [4, 1], "x": 44, "y": 64, "flags": 1},
+            {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1},
+            {"matrix": [4, 11], "x": 200, "y": 64, "flags": 1}
+        ]
+    },
     "layouts": {
         "LAYOUT_ansi_60": {
             "layout": [

+ 0 - 30
keyboards/keychron/q65/ansi_encoder/ansi_encoder.c

@@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {1, CB6_CA2,  CB4_CA2,  CB5_CA2},  // Down
     {1, CB6_CA1,  CB4_CA1,  CB5_CA1},  // Right
 };
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
-    {
-        // Key Matrix to LED Index
-        { __,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14 },
-        { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
-        { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44, 45 },
-        { 46, 47, __, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 },
-        { 61, 62, 63, 64, __, __, __, 65, __, __, 66, 67, 68, 69, 70, 71 },
-    },
-    {
-        // LED Index to Physical Position
-                {20,0},  {33,0},  {47,0},  {60,0},  {73,0},  {86,0},  {99,0},   {112,0},  {125,0},  {138,0},  {151,0},  {164,0},  {177,0},  {197,0},            {224,0},
-        {0,15}, {24,15}, {40,15}, {53,15}, {66,15}, {79,15}, {92,15}, {105,15}, {119,15}, {132,15}, {145,15}, {158,15}, {171,15}, {184,15}, {200,15},           {224,15},
-        {0,30}, {25,30}, {43,30}, {56,30}, {69,30}, {83,30}, {96,30}, {109,30}, {122,30}, {135,30}, {148,30}, {161,30}, {174,30},           {195,30},           {224,30},
-        {0,45}, {29,45},          {50,45}, {63,45}, {76,45}, {89,45}, {102,45}, {115,45}, {128,45}, {141,45}, {155,45}, {168,45},           {186,45}, {207,49}, {224,45},
-        {0,60}, {22,60}, {38,60}, {55,60},                            {104,60},                               {151,60}, {164,60}, {177,60}, {194,64}, {207,64}, {220,64},
-    },
-    {
-        // RGB LED Index to Flag
-           1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1,
-        1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
-        1, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,    1,
-        1, 1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1, 1,
-        1, 1, 1, 1,          4,          1, 1, 1, 1, 1, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 76 - 0
keyboards/keychron/q65/ansi_encoder/keyboard.json

@@ -27,6 +27,82 @@
         "dip_switch": true,
         "rgb_matrix": true
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 1], "x": 20, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
+            {"matrix": [0, 3], "x": 47, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+            {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 86, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 125, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 138, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 151, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 164, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 177, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 197, "y": 0, "flags": 1},
+            {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+            {"matrix": [1, 1], "x": 24, "y": 15, "flags": 1},
+            {"matrix": [1, 2], "x": 40, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 53, "y": 15, "flags": 4},
+            {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 79, "y": 15, "flags": 4},
+            {"matrix": [1, 6], "x": 92, "y": 15, "flags": 4},
+            {"matrix": [1, 7], "x": 105, "y": 15, "flags": 4},
+            {"matrix": [1, 8], "x": 119, "y": 15, "flags": 4},
+            {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
+            {"matrix": [1, 10], "x": 145, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 158, "y": 15, "flags": 4},
+            {"matrix": [1, 12], "x": 171, "y": 15, "flags": 4},
+            {"matrix": [1, 13], "x": 184, "y": 15, "flags": 4},
+            {"matrix": [1, 14], "x": 200, "y": 15, "flags": 4},
+            {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 30, "flags": 1},
+            {"matrix": [2, 1], "x": 25, "y": 30, "flags": 9},
+            {"matrix": [2, 2], "x": 43, "y": 30, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 30, "flags": 4},
+            {"matrix": [2, 4], "x": 69, "y": 30, "flags": 4},
+            {"matrix": [2, 5], "x": 83, "y": 30, "flags": 4},
+            {"matrix": [2, 6], "x": 96, "y": 30, "flags": 4},
+            {"matrix": [2, 7], "x": 109, "y": 30, "flags": 4},
+            {"matrix": [2, 8], "x": 122, "y": 30, "flags": 4},
+            {"matrix": [2, 9], "x": 135, "y": 30, "flags": 4},
+            {"matrix": [2, 10], "x": 148, "y": 30, "flags": 4},
+            {"matrix": [2, 11], "x": 161, "y": 30, "flags": 4},
+            {"matrix": [2, 12], "x": 174, "y": 30, "flags": 4},
+            {"matrix": [2, 14], "x": 195, "y": 30, "flags": 1},
+            {"matrix": [2, 15], "x": 224, "y": 30, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 45, "flags": 1},
+            {"matrix": [3, 1], "x": 29, "y": 45, "flags": 1},
+            {"matrix": [3, 3], "x": 50, "y": 45, "flags": 4},
+            {"matrix": [3, 4], "x": 63, "y": 45, "flags": 4},
+            {"matrix": [3, 5], "x": 76, "y": 45, "flags": 4},
+            {"matrix": [3, 6], "x": 89, "y": 45, "flags": 4},
+            {"matrix": [3, 7], "x": 102, "y": 45, "flags": 4},
+            {"matrix": [3, 8], "x": 115, "y": 45, "flags": 4},
+            {"matrix": [3, 9], "x": 128, "y": 45, "flags": 4},
+            {"matrix": [3, 10], "x": 141, "y": 45, "flags": 4},
+            {"matrix": [3, 11], "x": 155, "y": 45, "flags": 4},
+            {"matrix": [3, 12], "x": 168, "y": 45, "flags": 4},
+            {"matrix": [3, 13], "x": 186, "y": 45, "flags": 1},
+            {"matrix": [3, 14], "x": 207, "y": 49, "flags": 1},
+            {"matrix": [3, 15], "x": 224, "y": 45, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 60, "flags": 1},
+            {"matrix": [4, 1], "x": 22, "y": 60, "flags": 1},
+            {"matrix": [4, 2], "x": 38, "y": 60, "flags": 1},
+            {"matrix": [4, 3], "x": 55, "y": 60, "flags": 1},
+            {"matrix": [4, 7], "x": 104, "y": 60, "flags": 4},
+            {"matrix": [4, 10], "x": 151, "y": 60, "flags": 1},
+            {"matrix": [4, 11], "x": 164, "y": 60, "flags": 1},
+            {"matrix": [4, 12], "x": 177, "y": 60, "flags": 1},
+            {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1},
+            {"matrix": [4, 14], "x": 207, "y": 64, "flags": 1},
+            {"matrix": [4, 15], "x": 220, "y": 64, "flags": 1}
+        ]
+    },
     "layouts": {
         "LAYOUT_ansi_73": {
             "layout": [

+ 86 - 0
keyboards/keychron/s1/ansi/rgb/keyboard.json

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

+ 0 - 33
keyboards/keychron/s1/ansi/rgb/rgb.c

@@ -117,37 +117,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {1, CB6_CA14, CB4_CA14, CB5_CA14}, // down
     {1, CB6_CA16, CB4_CA16, CB5_CA16}, // right
 };
-
-#define __ NO_LED
-
-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, 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, 14, 58, 59 },
-        { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73 },
-        { 74, 75, 76, __, __, __, 77, __, __, 78, 79, 80, 81, 82, 83 }
-    },
-    {
-        // LED Index to Physical Position
-        {0,0},  {15,0},  {30,0},  {45,0},  {60,0},  {75,0},  {90,0},   {105,0},  {119,0},  {134,0},  {149,0},  {164,0},  {179,0},  {194,0},  {209,0},  {224,0},
-        {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13},  {105,13}, {119,13}, {134,13}, {149,13}, {164,13}, {179,13}, {202,13},           {224,13},
-        {4,26}, {22,26}, {37,26}, {52,26}, {67,26}, {82,26}, {97,26},  {112,26}, {127,26}, {142,26}, {157,26}, {172,26}, {187,26}, {205,26},           {224,26},
-        {6,38}, {26,38}, {41,38}, {56,38}, {71,38}, {86,38}, {101,38}, {116,38}, {131,38}, {146,38}, {160,38}, {175,38},           {200,38},           {224,38},
-        {9,51},          {34,51}, {48,51}, {63,51}, {78,51}, {93,51},  {108,51}, {123,51}, {138,51}, {153,51}, {168,51},           {189,51}, {209,51}, {224,51},
-        {2,64}, {21,64}, {39,64},                            {95,64},                                {149,64}, {164,64}, {179,64}, {194,64}, {209,64}, {224,64}
-    },
-    {
-        // RGB LED Index to Flag
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
-        8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,    1,
-        1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1, 1,
-        1, 1, 1,          4,          1, 1, 1, 1, 1, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 0 - 33
keyboards/keychron/v10/ansi_encoder/ansi_encoder.c

@@ -121,37 +121,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {1, CB6_CA2,  CB4_CA2,  CB5_CA2},  // Down
     {1, CB6_CA1,  CB4_CA1,  CB5_CA1},  // Right
 };
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
-    {
-        // Key Matrix to LED Index
-        { __,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14 },
-        { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
-        { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 },
-        { 47, 48, 49, 50, 51, 52, 53, __, 54, 55, 56, 57, 58, 59, 60, 61 },
-        { 62, 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 },
-        { 77, 78, 79, 80, 81, __, __, 82, 83, 84, __, __, __, 85, 86, 87 },
-    },
-    {
-        // LED Index to Physical Position
-                {19,0},  {34,0},  {46,0},  {60,1},  {72,3},  {87,6},  {99,8},   {120,8},  {132,6},  {147,3},  {159,1},  {173,0},  {185,0},  {201,1},            {219,1},
-        {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22},  {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14},           {220,13},
-        {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {174,24}, {186,24}, {201,24},           {222,25},
-        {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35},           {199,35},           {224,36},
-        {0,45}, {24,45},          {44,45}, {57,46}, {69,48}, {81,51}, {93,53},  {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47},
-        {0,55}, {18,55}, {33,55},          {56,57}, {77,61}, {97,64},                     {124,63},           {147,59},                     {198,58}, {210,58}, {222,58},
-    },
-    {
-        // RGB LED Index to Flag
-           1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,    1,
-        1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1,
-        1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
-        1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,    1,
-        1, 1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-        1, 1, 1,    1, 4, 1,       4,    1,       1, 1, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 92 - 0
keyboards/keychron/v10/ansi_encoder/keyboard.json

@@ -27,6 +27,98 @@
         "encoder": true,
         "dip_switch": true
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 46, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1},
+            {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1},
+            {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1},
+            {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1},
+            {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1},
+            {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1},
+            {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1},
+            {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1},
+            {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1},
+            {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1},
+            {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1},
+            {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1},
+            {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4},
+            {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4},
+            {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4},
+            {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4},
+            {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4},
+            {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4},
+            {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4},
+            {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4},
+            {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4},
+            {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4},
+            {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1},
+            {"matrix": [1, 15], "x": 220, "y": 13, "flags": 1},
+            {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1},
+            {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1},
+            {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4},
+            {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4},
+            {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4},
+            {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4},
+            {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4},
+            {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4},
+            {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4},
+            {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4},
+            {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4},
+            {"matrix": [2, 12], "x": 174, "y": 24, "flags": 4},
+            {"matrix": [2, 13], "x": 186, "y": 24, "flags": 4},
+            {"matrix": [2, 14], "x": 201, "y": 24, "flags": 4},
+            {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1},
+            {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1},
+            {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8},
+            {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4},
+            {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4},
+            {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4},
+            {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4},
+            {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4},
+            {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4},
+            {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4},
+            {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4},
+            {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4},
+            {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4},
+            {"matrix": [3, 14], "x": 199, "y": 35, "flags": 1},
+            {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1},
+            {"matrix": [4, 1], "x": 24, "y": 45, "flags": 1},
+            {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4},
+            {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4},
+            {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4},
+            {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4},
+            {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4},
+            {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4},
+            {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4},
+            {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4},
+            {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4},
+            {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4},
+            {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1},
+            {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1},
+            {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1},
+            {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1},
+            {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1},
+            {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1},
+            {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4},
+            {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1},
+            {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4},
+            {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1},
+            {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1},
+            {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1},
+            {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1}
+        ]
+    },
     "layouts": {
         "LAYOUT_ansi_89": {
             "layout": [

+ 0 - 33
keyboards/keychron/v10/iso_encoder/iso_encoder.c

@@ -122,37 +122,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
     {1, CB6_CA2,  CB4_CA2,  CB5_CA2},  // Down
     {1, CB6_CA1,  CB4_CA1,  CB5_CA1},  // Right
 };
-
-#define __ NO_LED
-
-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, 59, 45 },
-        { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 },
-        { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 },
-        { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 },
-    },
-    {
-        // LED Index to Physical Position
-                {0,0},    {19,0},  {34,0},  {60,1},  {72,3},   {87,6},   {99,8},  {120,8},  {132,6},  {147,3},  {159,1},  {173,0},  {185,0},  {201,1},            {219,1},
-        {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17},  {86,20},  {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14},           {220,15},
-        {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29},  {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24},                     {222,25},
-        {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39},  {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31},           {224,36},
-        {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48},  {81,51},  {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47},
-        {0,55}, {18,55}, {33,55},          {56,57}, {77,61},  {97,64},                     {124,63},           {147,59},                     {198,58}, {210,58}, {222,58},
-    },
-    {
-        // RGB LED Index to Flag
-           1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,    1,
-        1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1,
-        1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,       1,
-        1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,    1,
-        1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
-        1, 1, 1,    1, 4, 1,       4,    1,       1, 1, 1,
-    }
-};
-
 #endif // RGB_MATRIX_ENABLE

+ 93 - 0
keyboards/keychron/v10/iso_encoder/keyboard.json

@@ -27,6 +27,99 @@
         "encoder": true,
         "dip_switch": true
     },
+    "rgb_matrix": {
+        "layout": [
+            {"matrix": [0, 1], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 19, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1},
+            {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1},
+            {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1},
+            {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1},
+            {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1},
+            {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1},
+            {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1},
+            {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1},
+            {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
+            {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1},
+            {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1},
+            {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1},
+            {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1},
+            {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1},
+            {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4},
+            {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4},
+            {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4},
+            {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4},
+            {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4},
+            {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4},
+            {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4},
+            {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4},
+            {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4},
+            {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4},
+            {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4},
+            {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1},
+            {"matrix": [1, 15], "x": 220, "y": 15, "flags": 1},
+            {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1},
+            {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1},
+            {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4},
+            {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4},
+            {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4},
+            {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4},
+            {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4},
+            {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4},
+            {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4},
+            {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4},
+            {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4},
+            {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4},
+            {"matrix": [2, 12], "x": 176, "y": 24, "flags": 4},
+            {"matrix": [2, 13], "x": 189, "y": 24, "flags": 4},
+            {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1},
+            {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1},
+            {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8},
+            {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4},
+            {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4},
+            {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4},
+            {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4},
+            {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4},
+            {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4},
+            {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4},
+            {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4},
+            {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4},
+            {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4},
+            {"matrix": [2, 14], "x": 192, "y": 35, "flags": 4},
+            {"matrix": [3, 14], "x": 208, "y": 31, "flags": 1},
+            {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1},
+            {"matrix": [4, 1], "x": 18, "y": 45, "flags": 1},
+            {"matrix": [4, 2], "x": 31, "y": 45, "flags": 4},
+            {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4},
+            {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4},
+            {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4},
+            {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4},
+            {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4},
+            {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4},
+            {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4},
+            {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4},
+            {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4},
+            {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4},
+            {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4},
+            {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1},
+            {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1},
+            {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1},
+            {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1},
+            {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1},
+            {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1},
+            {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4},
+            {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1},
+            {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4},
+            {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1},
+            {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1},
+            {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1},
+            {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1}
+        ]
+    },
     "layouts": {
         "LAYOUT_iso_90": {
             "layout": [