Browse Source

Migrate `g_led_config` to DD (L) (#25617)

Jack Sangdahl 10 months ago
parent
commit
db9b295aa7

+ 9 - 0
keyboards/labbe/labbeminiv1/keyboard.json

@@ -26,6 +26,15 @@
     "diode_direction": "COL2ROW",
     "processor": "atmega32u4",
     "bootloader": "atmel-dfu",
+    "rgb_matrix": {
+        "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 64, "flags": 4},
+            {"matrix": [1, 1], "x": 112, "y": 64, "flags": 4},
+            {"matrix": [1, 2], "x": 224, "y": 64, "flags": 4}
+        ]
+    },
     "layouts": {
         "LAYOUT_wasd": {
             "layout": [

+ 0 - 36
keyboards/labbe/labbeminiv1/labbeminiv1.c

@@ -1,36 +0,0 @@
-/*
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t g_led_config = {
-  {
-    // Key Matrix to LED Index
-    {NO_LED, 0, NO_LED},
-    {1, 2, 3}
-  }, 
-  {
-    // LED Index to Physical Position
-    {112, 0},
-    {0, 64}, {112, 64}, {224, 64},
-  }, 
-  {
-    // LED Index to Flag
-    4,
-    4, 4, 4
-  } 
-};
-#endif

+ 19 - 0
keyboards/latincompass/latin17rgb/keyboard.json

@@ -61,6 +61,25 @@
       "solid_reactive": true
     },
     "driver": "is31fl3731",
+    "layout": [
+        {"matrix": [0, 0], "x": 48, "y": 32, "flags": 4},
+        {"matrix": [0, 1], "x": 48, "y": 48, "flags": 4},
+        {"matrix": [0, 2], "x": 64, "y": 48, "flags": 4},
+        {"matrix": [0, 3], "x": 80, "y": 48, "flags": 1},
+        {"matrix": [1, 0], "x": 16, "y": 32, "flags": 1},
+        {"matrix": [1, 1], "x": 16, "y": 48, "flags": 1},
+        {"matrix": [1, 2], "x": 32, "y": 48, "flags": 4},
+        {"matrix": [1, 3], "x": 64, "y": 64, "flags": 1},
+        {"matrix": [2, 0], "x": 80, "y": 16, "flags": 1},
+        {"matrix": [2, 1], "x": 64, "y": 32, "flags": 4},
+        {"matrix": [2, 2], "x": 80, "y": 32, "flags": 4},
+        {"matrix": [3, 0], "x": 112, "y": 0, "flags": 1},
+        {"matrix": [3, 1], "x": 128, "y": 0, "flags": 4},
+        {"matrix": [3, 2], "x": 144, "y": 0, "flags": 4},
+        {"matrix": [3, 3], "x": 160, "y": 0, "flags": 4},
+        {"matrix": [4, 0], "x": 128, "y": 16, "flags": 4},
+        {"matrix": [4, 1], "x": 144, "y": 16, "flags": 4}
+    ],
     "sleep": true
   },
   "features": {

+ 15 - 39
keyboards/latincompass/latin17rgb/latin17rgb.c

@@ -1,18 +1,18 @@
  /* Copyright 2021 18438880
-  * 
-  * 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/>. 
-  */ 
+  *
+  * 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
@@ -31,7 +31,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {0, C1_12, C2_12, C3_12},// BL5
     {0, C1_13, C2_13, C3_13},// BL6
     {0, C1_6,  C2_6,  C3_6},// BL7
-    {0, C1_7,  C2_7,  C3_7},//BL8 
+    {0, C1_7,  C2_7,  C3_7},//BL8
     {0, C1_8,  C2_8,  C3_8},// BL9
     {0, C1_14, C2_14, C3_14},// BL10
     {0, C1_15, C2_15, C3_15},// BL11
@@ -41,30 +41,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {0, C9_3, C8_3, C7_3},//BL15
     {0, C9_5, C8_5, C7_5},// BL16
     {0, C9_6, C8_6, C7_6},// BL17
-	
-};
 
-led_config_t g_led_config = {
-    {
-        { 0,      1,       2,      3},
-        { 4,      5,       6,      7},
-        { 8,      9,      10, NO_LED},
-        { 11,     12,     13,     14},
-        { 15,     16, NO_LED, NO_LED},
-    },
-    {
-        { 48, 32},{ 48, 48},{ 64, 48},{ 80, 48},
-        { 16, 32},{ 16, 48}, { 32, 48},{ 64, 64},
-        { 80, 16},{ 64, 32},{ 80, 32},
-        {112,  0},{128,  0},{144,  0},{160,  0},
-        {128, 16},{144, 16}
-    },
-    {
-        4, 4, 4, 1,
-        1, 1, 4, 1,
-        1, 4, 4,
-        1, 4, 4, 4,
-        4, 4
-    }
 };
 #endif

+ 8 - 0
keyboards/latincompass/latin6rgb/keyboard.json

@@ -39,6 +39,14 @@
       "solid_reactive": true
     },
     "driver": "is31fl3731",
+    "layout": [
+        {"matrix": [0, 0], "x": 0, "y": 32, "flags": 4},
+        {"matrix": [0, 1], "x": 0, "y": 64, "flags": 4},
+        {"matrix": [0, 2], "x": 112, "y": 64, "flags": 4},
+        {"matrix": [1, 0], "x": 224, "y": 0, "flags": 1},
+        {"matrix": [1, 1], "x": 112, "y": 32, "flags": 1},
+        {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4}
+    ],
     "sleep": true
   },
   "matrix_pins": {

+ 14 - 29
keyboards/latincompass/latin6rgb/latin6rgb.c

@@ -1,18 +1,18 @@
 /* Copyright 2021 18438880
-  * 
-  * 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/>. 
-  */ 
+  *
+  * 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
@@ -31,19 +31,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
     {0, C1_12, C2_12, C3_12},// BL5
     {0, C1_13, C2_13, C3_13},// BL6
 };
-
-led_config_t g_led_config = {
-    {
-        { 0,      1,     2},
-        { 3,      4,     5},
-    },
-    {
-        { 48, 32},{ 48, 48},{ 64, 48},
-        { 80, 16},{ 64, 32},{ 80, 32}
-    },
-    {
-        4, 4, 4, 
-        1, 1, 4
-    }
-};
 #endif

+ 21 - 1
keyboards/latincompass/latinpad/keyboard.json

@@ -40,7 +40,27 @@
             "pixel_flow": true,
             "pixel_fractal": true
         },
-        "driver": "ws2812"
+        "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 16, "flags": 1},
+            {"matrix": [0, 1], "x": 74, "y": 16, "flags": 1},
+            {"matrix": [0, 2], "x": 148, "y": 16, "flags": 1},
+            {"matrix": [0, 3], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1},
+            {"matrix": [1, 1], "x": 74, "y": 32, "flags": 1},
+            {"matrix": [1, 2], "x": 148, "y": 32, "flags": 1},
+            {"matrix": [1, 3], "x": 224, "y": 32, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 48, "flags": 1},
+            {"matrix": [2, 1], "x": 74, "y": 48, "flags": 1},
+            {"matrix": [2, 2], "x": 148, "y": 48, "flags": 1},
+            {"matrix": [2, 3], "x": 224, "y": 48, "flags": 1},
+            {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+            {"matrix": [3, 1], "x": 74, "y": 64, "flags": 1},
+            {"matrix": [3, 2], "x": 148, "y": 64, "flags": 1},
+            {"matrix": [3, 3], "x": 224, "y": 64, "flags": 1},
+            {"matrix": [4, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [4, 1], "x": 74, "y": 0, "flags": 1}
+        ]
     },
     "features": {
         "bootmagic": true,

+ 0 - 38
keyboards/latincompass/latinpad/latinpad.c

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

+ 0 - 44
keyboards/linworks/fave65h/fave65h.c

@@ -1,44 +0,0 @@
-/*
-Copyright 2020 <contact@vwolf.be>
-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
-        { 66, 65, 64, 63,     62,     61,     60, 59,     58, 57,     56, 55,     54,     53, 52 },
-        { 1,  2,  3,  4,      5,      6,      7,  8,      9,  10,     11, 12,     13,     14, 15 },
-        { 0,  28, 27, 26,     25,     24,     23, 22,     21, 20,     19, 18,     NO_LED, 17, 16 },
-        { 51, 29, 30, 31,     32,     33,     34, 35,     36, 37,     38, NO_LED, 39,     40, 41 },
-        { 50, 49, 48, NO_LED, NO_LED, NO_LED, 47, NO_LED, 46, NO_LED, 45, NO_LED, 44,     43, 42 }
-    }, {
-        // LED Index to Physical Position
-        {3, 32}, {8, 16}, {28, 16}, {44, 16}, {60, 16}, {76, 16}, {92, 16}, {108, 16}, {124, 16}, {140, 16}, 
-        {156, 16}, {172, 16}, {188, 16}, {204, 16}, {224, 16}, {244, 16}, {244, 32}, {218, 32}, {192, 32}, {176, 32}, 
-        {160, 32}, {144, 32}, {128, 32}, {112, 32}, {96, 32}, {80, 32}, {64, 32}, {48, 32}, {32, 32}, {40, 48}, 
-        {56, 48}, {72, 48}, {88, 48}, {104, 48}, {120, 48}, {136, 48}, {152, 48}, {168, 48}, {184, 48}, {206, 48}, 
-        {228, 48}, {244, 48}, {244, 64}, {228, 64}, {212, 64}, {186, 64}, {166, 64}, {96, 64}, {46, 64}, {22, 64}, 
-        {0, 64}, {14, 48}, {244, 0}, {220, 3}, {196, 0}, {180, 0}, {164, 0}, {148, 0}, {132, 0}, {116, 0}, 
-        {100, 0}, {84, 0}, {68, 0}, {52, 0}, {36, 0}, {20, 0}, {4, 0}
-    }, {
-        // 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, 4, 1,
-        9, 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 
-    }
-};
-#endif

+ 69 - 0
keyboards/linworks/fave65h/keyboard.json

@@ -53,6 +53,75 @@
             "animation": "cycle_all"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
+            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
+            {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
+            {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
+            {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
+            {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
+            {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
+            {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
+            {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
+            {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
+            {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
+            {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
+            {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
+            {"matrix": [1, 12], "x": 188, "y": 16, "flags": 1},
+            {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
+            {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
+            {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
+            {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
+            {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
+            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
+            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
+            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
+            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
+            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+            {"matrix": [3, 1], "x": 34, "y": 48, "flags": 1},
+            {"matrix": [3, 2], "x": 49, "y": 48, "flags": 9},
+            {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
+            {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
+            {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
+            {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
+            {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
+            {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
+            {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
+            {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
+            {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
+            {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
+            {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
+            {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
+            {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
+            {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
+            {"matrix": [4, 10], "x": 171, "y": 64, "flags": 4},
+            {"matrix": [4, 8], "x": 152, "y": 64, "flags": 4},
+            {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
+            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4},
+            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
+            {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
+            {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 150, "y": 0, "flags": 1},
+            {"matrix": [0, 9], "x": 135, "y": 0, "flags": 1},
+            {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1},
+            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1},
+            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1},
+            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1},
+            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1},
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}
+        ],
         "max_brightness": 120,
         "sleep": true
     },

+ 0 - 48
keyboards/linworks/fave87h/fave87h.c

@@ -1,48 +0,0 @@
-/*
-Copyright 2020 <contact@vwolf.be>
-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
-        { 47, NO_LED, 48,     49,     50, 51,     52,     53,     54, 55, 56,     57,     58,     59,     60,     61,     62 },
-        { 46,     45, 44,     43,     42, 41,     40,     39,     38, 37, 36,     35,     34,     33,     32,     31,     30 },
-        { 13,     14, 15,     16,     17, 18,     19,     20,     21, 22, 23,     24,     25,     26,     27,     28,     29 },
-        { 12,     11, 10,      9,      8,  7,      6,      5,      4,  3,  2,      1, NO_LED,      0, NO_LED, NO_LED, NO_LED },
-        { 74,     75, 76,     77,     78, 79,     80,     81,     82, 83, 84, NO_LED,     85, NO_LED, NO_LED,     86, NO_LED },
-        { 73,     72, 71, NO_LED, NO_LED, 70, NO_LED, NO_LED, NO_LED, 69, 68, NO_LED,     67,     66,     65,     64,     63 }
-    }, {
-        // LED Index to Physical Position
-        { 190, 40 }, { 167, 40 }, { 153, 40 }, { 139, 40 }, { 125, 40 }, { 111, 40 }, {  97, 40 }, {  83, 40 }, {  69, 40 }, {  55, 40 },
-        {  40, 40 }, {  26, 40 }, {   0, 41 }, {   5, 27 }, {  23, 27 }, {  37, 27 }, {  51, 27 }, {  65, 27 }, {  79, 27 }, {  93, 27 },
-        { 107, 27 }, { 121, 27 }, { 135, 27 }, { 149, 27 }, { 163, 27 }, { 177, 27 }, { 195, 27 }, { 216, 27 }, { 230, 27 }, { 244, 27 },
-        { 244, 15 }, { 230, 15 }, { 216, 15 }, { 191, 17 }, { 170, 15 }, { 156, 15 }, { 142, 15 }, { 128, 15 }, { 114, 15 }, { 100, 15 },
-        {  86, 15 }, {  72, 15 }, {  58, 15 }, {  44, 15 }, {  30, 15 }, {  16, 15 }, {   2, 15 }, {   2,  0 }, {  30,  0 }, {  44,  0 },
-        {  58,  0 }, {  72,  0 }, {  93,  0 }, { 107,  0 }, { 121,  0 }, { 135,  0 }, { 156,  0 }, { 170,  0 }, { 184,  0 }, { 198,  0 },
-        { 216,  0 }, { 230,  0 }, { 244,  0 }, { 244, 64 }, { 230, 64 }, { 216, 64 }, { 197, 64 }, { 179, 64 }, { 162, 64 }, { 144, 64 },
-        {  91, 64 }, {  39, 64 }, {  21, 64 }, {   4, 64 }, {  11, 52 }, {  33, 52 }, {  47, 52 }, {  62, 52 }, {  76, 52 }, {  90, 52 },
-        { 104, 52 }, { 118, 52 }, { 132, 52 }, { 146, 52 }, { 160, 52 }, { 186, 52 }, { 230, 52 }
-    }, {
-        // LED Index to Flag
-        1,    4, 4, 4, 4, 1, 1, 1, 1, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
-        9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
-        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,       4,
-        1, 1, 1,       4,          1, 1,    1, 1, 1, 1, 1
-    }
-};
-#endif

+ 89 - 0
keyboards/linworks/fave87h/keyboard.json

@@ -56,6 +56,95 @@
             "animation": "cycle_all"
         },
         "driver": "ws2812",
+        "layout": [
+            {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1},
+            {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
+            {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
+            {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
+            {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
+            {"matrix": [3, 7], "x": 101, "y": 40, "flags": 1},
+            {"matrix": [3, 6], "x": 88, "y": 40, "flags": 1},
+            {"matrix": [3, 5], "x": 75, "y": 40, "flags": 1},
+            {"matrix": [3, 4], "x": 62, "y": 40, "flags": 1},
+            {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
+            {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
+            {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
+            {"matrix": [3, 0], "x": 5, "y": 40, "flags": 4},
+            {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
+            {"matrix": [2, 1], "x": 20, "y": 28, "flags": 1},
+            {"matrix": [2, 2], "x": 33, "y": 28, "flags": 1},
+            {"matrix": [2, 3], "x": 46, "y": 28, "flags": 1},
+            {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
+            {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
+            {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
+            {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
+            {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
+            {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
+            {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
+            {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
+            {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
+            {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4},
+            {"matrix": [2, 14], "x": 198, "y": 28, "flags": 4},
+            {"matrix": [2, 15], "x": 211, "y": 28, "flags": 4},
+            {"matrix": [2, 16], "x": 224, "y": 28, "flags": 1},
+            {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1},
+            {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
+            {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
+            {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
+            {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
+            {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
+            {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
+            {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
+            {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
+            {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
+            {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
+            {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
+            {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
+            {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+            {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1},
+            {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1},
+            {"matrix": [0, 4], "x": 52, "y": 0, "flags": 9},
+            {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4},
+            {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4},
+            {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4},
+            {"matrix": [0, 8], "x": 111, "y": 0, "flags": 4},
+            {"matrix": [0, 9], "x": 124, "y": 0, "flags": 4},
+            {"matrix": [0, 10], "x": 143, "y": 0, "flags": 4},
+            {"matrix": [0, 11], "x": 156, "y": 0, "flags": 4},
+            {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4},
+            {"matrix": [0, 13], "x": 182, "y": 0, "flags": 4},
+            {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4},
+            {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4},
+            {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
+            {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1},
+            {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4},
+            {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4},
+            {"matrix": [5, 13], "x": 180, "y": 64, "flags": 4},
+            {"matrix": [5, 12], "x": 164, "y": 64, "flags": 4},
+            {"matrix": [5, 10], "x": 148, "y": 64, "flags": 4},
+            {"matrix": [5, 9], "x": 131, "y": 64, "flags": 4},
+            {"matrix": [5, 5], "x": 83, "y": 64, "flags": 4},
+            {"matrix": [5, 2], "x": 34, "y": 64, "flags": 4},
+            {"matrix": [5, 1], "x": 18, "y": 64, "flags": 4},
+            {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4},
+            {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
+            {"matrix": [4, 1], "x": 29, "y": 52, "flags": 4},
+            {"matrix": [4, 2], "x": 42, "y": 52, "flags": 1},
+            {"matrix": [4, 3], "x": 55, "y": 52, "flags": 1},
+            {"matrix": [4, 4], "x": 68, "y": 52, "flags": 1},
+            {"matrix": [4, 5], "x": 81, "y": 52, "flags": 4},
+            {"matrix": [4, 6], "x": 94, "y": 52, "flags": 1},
+            {"matrix": [4, 7], "x": 107, "y": 52, "flags": 1},
+            {"matrix": [4, 8], "x": 120, "y": 52, "flags": 1},
+            {"matrix": [4, 9], "x": 133, "y": 52, "flags": 1},
+            {"matrix": [4, 10], "x": 146, "y": 52, "flags": 1},
+            {"matrix": [4, 12], "x": 171, "y": 52, "flags": 1},
+            {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}
+        ],
         "max_brightness": 120,
         "sleep": true
     },