Move LED Matrix LED config to data driven (#24122)
This commit is contained in:
		
							parent
							
								
									8b46500a74
								
							
						
					
					
						commit
						7b4e806c25
					
				
					 17 changed files with 685 additions and 382 deletions
				
			
		| 
						 | 
					@ -93,34 +93,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
 | 
				
			||||||
    { 0, C5_14 }, // k96 KC_DOWN
 | 
					    { 0, C5_14 }, // k96 KC_DOWN
 | 
				
			||||||
    { 0, C5_15 }  // k97 KC_RGHT
 | 
					    { 0, C5_15 }  // k97 KC_RGHT
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
led_config_t g_led_config = {
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        // Key Matrix to LED Index
 | 
					 | 
				
			||||||
        {  0,      1,  2,      3,      4,  5,      6,      7 },
 | 
					 | 
				
			||||||
        { 15,     16, 17,     18,     19, 20,     21,     22 },
 | 
					 | 
				
			||||||
        { 30,     31, 32,     33,     34, 35,     36,     37 },
 | 
					 | 
				
			||||||
        { 43, NO_LED, 44,     45,     46, 47,     48,     49 },
 | 
					 | 
				
			||||||
        { 56,     57, 58, NO_LED, NO_LED, 60,     61, NO_LED },
 | 
					 | 
				
			||||||
        { 8,       9, 10,     11,     12, 13, NO_LED,     14 },
 | 
					 | 
				
			||||||
        { 23,     24, 25,     26,     27, 28, NO_LED,     29 },
 | 
					 | 
				
			||||||
        { 38,     39, 40,     41, NO_LED, 42, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { 50,     51, 52,     53, NO_LED, 54,     55, NO_LED },
 | 
					 | 
				
			||||||
        { 64, NO_LED, 65,     66,     67, 68,     69,     70 }
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
        // LED Index to Physical Position
 | 
					 | 
				
			||||||
        {   0,   0 }, {  15,   0 }, {  29,   0 }, {  43,   0 }, {  58,   0 }, {  72,   0 }, {  87,   0 }, { 101,   0 }, { 116,   0 }, { 130,   0 }, { 145,   0 }, { 159,   0 }, { 173,   0 }, { 195,   0 }, { 224,   0 },
 | 
					 | 
				
			||||||
        {   4,  16 }, {  22,  16 }, {  36,  16 }, {  51,  16 }, {  65,  16 }, {  80,  16 }, {  94,  16 }, { 108,  16 }, { 123,  16 }, { 137,  16 }, { 152,  16 }, { 166,  16 }, { 181,  16 }, { 199,  16 }, { 224,  16 },
 | 
					 | 
				
			||||||
        {   5,  32 }, {  25,  32 }, {  40,  32 }, {  54,  32 }, {  69,  32 }, {  83,  32 }, {  98,  32 }, { 112,  32 }, { 126,  32 }, { 141,  32 }, { 155,  32 }, { 170,  32 },               { 184,  32 },
 | 
					 | 
				
			||||||
        {  16,  48 },               {  33,  48 }, {  47,  48 }, {  61,  48 }, {  76,  48 }, {  90,  48 }, { 105,  48 }, { 119,  48 }, { 134,  48 }, { 148,  48 }, { 163,  48 },               { 188,  48 }, { 210,  48 },
 | 
					 | 
				
			||||||
        {   9,  64 }, {  27,  64 }, {  45,  64 }, {  60,  64 }, {  74,  64 }, {  88,  64 }, { 103,  64 }, { 117,  64 }, { 136,  64 }, { 154,  64 }, { 168,  64 }, { 186,  64 }, { 195,  64 }, { 210,  64 }, { 224,  64 }
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
        // 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, 1,
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,
 | 
					 | 
				
			||||||
        1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1,
 | 
					 | 
				
			||||||
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,6 +39,79 @@
 | 
				
			||||||
      "wave_left_right": true,
 | 
					      "wave_left_right": true,
 | 
				
			||||||
      "wave_up_down": true
 | 
					      "wave_up_down": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "layout": [
 | 
				
			||||||
 | 
					      {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [0, 4], "x": 58, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [0, 5], "x": 72, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [0, 6], "x": 87, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [0, 7], "x": 101, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [5, 0], "x": 116, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [5, 1], "x": 130, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [5, 2], "x": 145, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [5, 3], "x": 159, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [5, 4], "x": 173, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [5, 5], "x": 195, "y": 0, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [5, 7], "x": 224, "y": 0, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [1, 2], "x": 36, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [1, 3], "x": 51, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [1, 4], "x": 65, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [1, 6], "x": 94, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [1, 7], "x": 108, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [6, 0], "x": 123, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [6, 1], "x": 137, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [6, 2], "x": 152, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [6, 3], "x": 166, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [6, 4], "x": 181, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [6, 5], "x": 199, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [6, 7], "x": 224, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [2, 0], "x": 5, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [2, 2], "x": 40, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [2, 3], "x": 54, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [2, 5], "x": 83, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [2, 6], "x": 98, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [7, 0], "x": 126, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [7, 1], "x": 141, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [7, 2], "x": 155, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [7, 3], "x": 170, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [7, 5], "x": 184, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [3, 0], "x": 16, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [3, 3], "x": 47, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [3, 4], "x": 61, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [3, 5], "x": 76, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [8, 0], "x": 119, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [8, 1], "x": 134, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [8, 2], "x": 148, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [8, 3], "x": 163, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					      {"matrix": [8, 5], "x": 188, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [8, 6], "x": 210, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [4, 0], "x": 9, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [4, 1], "x": 27, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [4, 2], "x": 45, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"x": 60, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [4, 5], "x": 74, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [4, 6], "x": 88, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"x": 103, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"x": 117, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [9, 0], "x": 136, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [9, 2], "x": 154, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [9, 3], "x": 168, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [9, 4], "x": 186, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [9, 5], "x": 195, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [9, 6], "x": 210, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					      {"matrix": [9, 7], "x": 224, "y": 64, "flags": 1}
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
    "driver": "is31fl3731"
 | 
					    "driver": "is31fl3731"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "matrix_pins": {
 | 
					  "matrix_pins": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -209,72 +209,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
 | 
				
			||||||
//                                                                       71           70           69
 | 
					//                                                                       71           70           69
 | 
				
			||||||
                                                                    { 0, C3_7 }, { 0, C2_7 }, { 0, C1_7 },
 | 
					                                                                    { 0, C3_7 }, { 0, C2_7 }, { 0, C1_7 },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
led_config_t g_led_config = {
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        // Key Matrix to LED Index
 | 
					 | 
				
			||||||
        // Left half
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED,     33,     34 },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED,     32,     37 },
 | 
					 | 
				
			||||||
        {      6,     13, NO_LED,     26,     36 },
 | 
					 | 
				
			||||||
        {      5,     12,     19,     25,     35 },
 | 
					 | 
				
			||||||
        {      4,     11,     18,     24,     31 },
 | 
					 | 
				
			||||||
        {      3,     10,     17,     23,     30 },
 | 
					 | 
				
			||||||
        {      2,      9,     16,     22,     29 },
 | 
					 | 
				
			||||||
        {      1,      8,     15,     21,     28 },
 | 
					 | 
				
			||||||
        {      0,      7,     14,     20,     27 },
 | 
					 | 
				
			||||||
        // Right half
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED,     71,     72 },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED,     70,     75 },
 | 
					 | 
				
			||||||
        {     44,     51, NO_LED,     64,     74 },
 | 
					 | 
				
			||||||
        {     43,     50,     57,     63,     73 },
 | 
					 | 
				
			||||||
        {     42,     49,     56,     62,     69 },
 | 
					 | 
				
			||||||
        {     41,     48,     55,     61,     68 },
 | 
					 | 
				
			||||||
        {     40,     47,     54,     60,     67 },
 | 
					 | 
				
			||||||
        {     39,     46,     53,     59,     66 },
 | 
					 | 
				
			||||||
        {     38,     45,     52,     58,     65 },
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
        // LED Index to Physical Position (assumes a reasonable gap between halves)
 | 
					 | 
				
			||||||
	// Left half
 | 
					 | 
				
			||||||
        {   0,  3 }, {  15,  3 }, {  27,  1 }, {  39,  0 }, {  51,  1 }, {  63,  2 }, {  75,  2 },
 | 
					 | 
				
			||||||
        {   0, 13 }, {  15, 13 }, {  27, 11 }, {  39, 10 }, {  51, 11 }, {  63, 12 }, {  78, 17 },
 | 
					 | 
				
			||||||
        {   0, 23 }, {  15, 23 }, {  27, 21 }, {  39, 20 }, {  51, 21 }, {  63, 22 },
 | 
					 | 
				
			||||||
        {   0, 33 }, {  15, 33 }, {  27, 31 }, {  39, 30 }, {  51, 31 }, {  63, 32 }, {  78, 32 },
 | 
					 | 
				
			||||||
        {   4, 43 }, {  15, 43 }, {  27, 41 }, {  39, 40 }, {  51, 41 },
 | 
					 | 
				
			||||||
                                                                                      {  89, 41 }, { 100, 46 },
 | 
					 | 
				
			||||||
                                                                                                   {  95, 55 },
 | 
					 | 
				
			||||||
                                                                         {  72, 54 }, {  83, 59 }, {  90, 64 },
 | 
					 | 
				
			||||||
        // Right half (mirrored)
 | 
					 | 
				
			||||||
        { 224,  3 }, { 209,  3 }, { 197,  1 }, { 185,  0 }, { 173,  1 }, { 161,  2 }, { 149,  2 },
 | 
					 | 
				
			||||||
        { 224, 13 }, { 209, 13 }, { 197, 11 }, { 185, 10 }, { 173, 11 }, { 161, 12 }, { 146, 17 },
 | 
					 | 
				
			||||||
        { 224, 23 }, { 209, 23 }, { 197, 21 }, { 185, 20 }, { 173, 21 }, { 161, 22 },
 | 
					 | 
				
			||||||
        { 224, 33 }, { 209, 33 }, { 197, 31 }, { 185, 30 }, { 173, 31 }, { 161, 32 }, { 146, 32 },
 | 
					 | 
				
			||||||
        { 220, 43 }, { 209, 43 }, { 197, 41 }, { 185, 40 }, { 173, 41 },
 | 
					 | 
				
			||||||
                                                                                      { 135, 41 }, { 124, 46 },
 | 
					 | 
				
			||||||
                                                                                                   { 129, 55 },
 | 
					 | 
				
			||||||
                                                                         { 152, 54 }, { 141, 59 }, { 134, 64 },
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
        // LED Index to Flag
 | 
					 | 
				
			||||||
        // Left half
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4, 1,
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4, 1,
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4,
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4, 1,
 | 
					 | 
				
			||||||
        1, 1, 1, 1, 1,
 | 
					 | 
				
			||||||
                          1, 1,
 | 
					 | 
				
			||||||
                             1,
 | 
					 | 
				
			||||||
                       1, 1, 1,
 | 
					 | 
				
			||||||
        // Right half (mirrored)
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4, 1,
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4, 1,
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4,
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4, 1,
 | 
					 | 
				
			||||||
        1, 1, 1, 1, 1,
 | 
					 | 
				
			||||||
                          1, 1,
 | 
					 | 
				
			||||||
                             1,
 | 
					 | 
				
			||||||
                       1, 1, 1,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ST7565_ENABLE
 | 
					#ifdef ST7565_ENABLE
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,84 @@
 | 
				
			||||||
            "wave_left_right": true,
 | 
					            "wave_left_right": true,
 | 
				
			||||||
            "wave_up_down": true
 | 
					            "wave_up_down": true
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "layout": [
 | 
				
			||||||
 | 
					            {"matrix": [8, 0], "x": 0, "y": 3, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 0], "x": 15, "y": 3, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 0], "x": 27, "y": 1, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 0], "x": 39, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 0], "x": 51, "y": 1, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 0], "x": 63, "y": 2, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 0], "x": 75, "y": 2, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [8, 1], "x": 0, "y": 13, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 1], "x": 15, "y": 13, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 1], "x": 27, "y": 11, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 1], "x": 39, "y": 10, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 1], "x": 51, "y": 11, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 1], "x": 63, "y": 12, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 1], "x": 78, "y": 17, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [8, 2], "x": 0, "y": 23, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 2], "x": 15, "y": 23, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 2], "x": 27, "y": 21, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 2], "x": 39, "y": 20, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 2], "x": 51, "y": 21, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 2], "x": 63, "y": 22, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [8, 3], "x": 0, "y": 33, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 3], "x": 15, "y": 33, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 3], "x": 27, "y": 31, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 3], "x": 39, "y": 30, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 3], "x": 51, "y": 31, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 3], "x": 63, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 3], "x": 78, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [8, 4], "x": 4, "y": 43, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 4], "x": 15, "y": 43, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [6, 4], "x": 27, "y": 41, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [5, 4], "x": 39, "y": 40, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 4], "x": 51, "y": 41, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 3], "x": 89, "y": 41, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [0, 3], "x": 100, "y": 46, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [0, 4], "x": 95, "y": 55, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 4], "x": 72, "y": 54, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 4], "x": 83, "y": 59, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 4], "x": 90, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [17, 0], "x": 224, "y": 3, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [16, 0], "x": 209, "y": 3, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [15, 0], "x": 197, "y": 1, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [14, 0], "x": 185, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [13, 0], "x": 173, "y": 1, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [12, 0], "x": 161, "y": 2, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [11, 0], "x": 149, "y": 2, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [17, 1], "x": 224, "y": 13, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [16, 1], "x": 209, "y": 13, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [15, 1], "x": 197, "y": 11, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [14, 1], "x": 185, "y": 10, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [13, 1], "x": 173, "y": 11, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [12, 1], "x": 161, "y": 12, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [11, 1], "x": 146, "y": 17, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [17, 2], "x": 224, "y": 23, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [16, 2], "x": 209, "y": 23, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [15, 2], "x": 197, "y": 21, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [14, 2], "x": 185, "y": 20, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [13, 2], "x": 173, "y": 21, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [12, 2], "x": 161, "y": 22, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [17, 3], "x": 224, "y": 33, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [16, 3], "x": 209, "y": 33, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [15, 3], "x": 197, "y": 31, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [14, 3], "x": 185, "y": 30, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [13, 3], "x": 173, "y": 31, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [12, 3], "x": 161, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [11, 3], "x": 146, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [17, 4], "x": 220, "y": 43, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [16, 4], "x": 209, "y": 43, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [15, 4], "x": 197, "y": 41, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [14, 4], "x": 185, "y": 40, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [13, 4], "x": 173, "y": 41, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [10, 3], "x": 135, "y": 41, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [9, 3], "x": 124, "y": 46, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [9, 4], "x": 129, "y": 55, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [12, 4], "x": 152, "y": 54, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [11, 4], "x": 141, "y": 59, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [10, 4], "x": 134, "y": 64, "flags": 1}
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
        "driver": "is31fl3731",
 | 
					        "driver": "is31fl3731",
 | 
				
			||||||
        "sleep": true,
 | 
					        "sleep": true,
 | 
				
			||||||
        "split_count": [38, 38]
 | 
					        "split_count": [38, 38]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,57 +43,57 @@
 | 
				
			||||||
            {"matrix": [1, 4], "x": 208, "y":  0, "flags": 1},
 | 
					            {"matrix": [1, 4], "x": 208, "y":  0, "flags": 1},
 | 
				
			||||||
            {"matrix": [1, 5], "x": 224, "y":  0, "flags": 1},
 | 
					            {"matrix": [1, 5], "x": 224, "y":  0, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {"matrix": [1, 6], "x":   0, "y": 16, "flags": 1},
 | 
					            {"matrix": [1, 6], "x":   4, "y": 16, "flags": 1},
 | 
				
			||||||
            {"matrix": [1, 7], "x":  17, "y": 16, "flags": 4},
 | 
					            {"matrix": [1, 7], "x":  24, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 8], "x":  35, "y": 16, "flags": 4},
 | 
					            {"matrix": [1, 8], "x":  40, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 0], "x":  52, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 0], "x":  56, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 1], "x":  69, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 1], "x":  72, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 2], "x":  86, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 2], "x":  88, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 3], "x": 103, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 3], "x": 104, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 4], "x": 121, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 4], "x": 120, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 5], "x": 138, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 5], "x": 136, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 6], "x": 155, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 6], "x": 152, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 7], "x": 172, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 7], "x": 168, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 8], "x": 190, "y": 16, "flags": 4},
 | 
					            {"matrix": [2, 8], "x": 184, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 0], "x": 207, "y": 16, "flags": 4},
 | 
					            {"matrix": [3, 0], "x": 200, "y": 16, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 1], "x": 224, "y": 16, "flags": 4},
 | 
					            {"matrix": [3, 1], "x": 220, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {"matrix": [3, 2], "x":   0, "y": 32, "flags": 9},
 | 
					            {"matrix": [3, 2], "x":   6, "y": 32, "flags": 9},
 | 
				
			||||||
            {"matrix": [3, 3], "x":  19, "y": 32, "flags": 4},
 | 
					            {"matrix": [3, 3], "x":  28, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 4], "x":  37, "y": 32, "flags": 4},
 | 
					            {"matrix": [3, 4], "x":  44, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 5], "x":  56, "y": 32, "flags": 4},
 | 
					            {"matrix": [3, 5], "x":  60, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 6], "x":  75, "y": 32, "flags": 4},
 | 
					            {"matrix": [3, 6], "x":  76, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 7], "x":  93, "y": 32, "flags": 4},
 | 
					            {"matrix": [3, 7], "x":  92, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 8], "x": 112, "y": 32, "flags": 4},
 | 
					            {"matrix": [3, 8], "x": 108, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 0], "x": 131, "y": 32, "flags": 4},
 | 
					            {"matrix": [4, 0], "x": 124, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 1], "x": 149, "y": 32, "flags": 4},
 | 
					            {"matrix": [4, 1], "x": 140, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 2], "x": 168, "y": 32, "flags": 4},
 | 
					            {"matrix": [4, 2], "x": 156, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 3], "x": 187, "y": 32, "flags": 4},
 | 
					            {"matrix": [4, 3], "x": 172, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 4], "x": 205, "y": 32, "flags": 4},
 | 
					            {"matrix": [4, 4], "x": 188, "y": 32, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 5], "x": 224, "y": 32, "flags": 1},
 | 
					            {"matrix": [4, 5], "x": 214, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {"matrix": [4, 6], "x":   0, "y": 48, "flags": 1},
 | 
					            {"matrix": [4, 6], "x":  10, "y": 48, "flags": 1},
 | 
				
			||||||
            {"matrix": [4, 7], "x":  19, "y": 48, "flags": 4},
 | 
					            {"matrix": [4, 7], "x":  36, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 8], "x":  37, "y": 48, "flags": 4},
 | 
					            {"matrix": [4, 8], "x":  52, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 0], "x":  56, "y": 48, "flags": 4},
 | 
					            {"matrix": [5, 0], "x":  68, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 1], "x":  75, "y": 48, "flags": 4},
 | 
					            {"matrix": [5, 1], "x":  84, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 2], "x":  93, "y": 48, "flags": 4},
 | 
					            {"matrix": [5, 2], "x": 100, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 3], "x": 112, "y": 48, "flags": 4},
 | 
					            {"matrix": [5, 3], "x": 116, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 4], "x": 131, "y": 48, "flags": 4},
 | 
					            {"matrix": [5, 4], "x": 132, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 5], "x": 149, "y": 48, "flags": 4},
 | 
					            {"matrix": [5, 5], "x": 148, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 6], "x": 168, "y": 48, "flags": 4},
 | 
					            {"matrix": [5, 6], "x": 164, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 7], "x": 187, "y": 48, "flags": 4},
 | 
					            {"matrix": [5, 7], "x": 180, "y": 48, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 8], "x": 205, "y": 48, "flags": 1},
 | 
					            {"matrix": [5, 8], "x": 202, "y": 48, "flags": 1},
 | 
				
			||||||
            {"matrix": [6, 0], "x": 224, "y": 48, "flags": 1},
 | 
					            {"matrix": [6, 0], "x": 224, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {"matrix": [6, 1], "x":   0, "y": 64, "flags": 1},
 | 
					            {"matrix": [6, 1], "x":   4, "y": 64, "flags": 1},
 | 
				
			||||||
            {"matrix": [6, 2], "x":  32, "y": 64, "flags": 1},
 | 
					            {"matrix": [6, 2], "x":  24, "y": 64, "flags": 1},
 | 
				
			||||||
            {"matrix": [6, 3], "x":  64, "y": 64, "flags": 1},
 | 
					            {"matrix": [6, 3], "x":  44, "y": 64, "flags": 1},
 | 
				
			||||||
            {"matrix": [6, 4], "x":  96, "y": 64, "flags": 4},
 | 
					            {"matrix": [6, 4], "x": 104, "y": 64, "flags": 4},
 | 
				
			||||||
            {"matrix": [6, 5], "x": 128, "y": 64, "flags": 1},
 | 
					            {"matrix": [6, 5], "x": 164, "y": 64, "flags": 1},
 | 
				
			||||||
            {"matrix": [6, 6], "x": 160, "y": 64, "flags": 1},
 | 
					            {"matrix": [6, 6], "x": 184, "y": 64, "flags": 1},
 | 
				
			||||||
            {"matrix": [6, 7], "x": 192, "y": 64, "flags": 1},
 | 
					            {"matrix": [6, 7], "x": 200, "y": 64, "flags": 1},
 | 
				
			||||||
            {"matrix": [6, 8], "x": 224, "y": 64, "flags": 1}
 | 
					            {"matrix": [6, 8], "x": 220, "y": 64, "flags": 1}
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,83 @@
 | 
				
			||||||
            "wave_left_right": true,
 | 
					            "wave_left_right": true,
 | 
				
			||||||
            "wave_up_down": true
 | 
					            "wave_up_down": true
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "layout": [
 | 
				
			||||||
 | 
					            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [1, 0], "x": 134, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [1, 1], "x": 149, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [1, 2], "x": 164, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [1, 3], "x": 179, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [1, 4], "x": 194, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [1, 5], "x": 209, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [1, 6], "x": 224, "y": 0, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [1, 7], "x": 4, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 8], "x": 22, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 0], "x": 37, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 1], "x": 52, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 2], "x": 67, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 3], "x": 82, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 4], "x": 97, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 5], "x": 112, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 6], "x": 127, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 7], "x": 142, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [2, 8], "x": 157, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 0], "x": 172, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 1], "x": 187, "y": 16, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 2], "x": 205, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 3], "x": 224, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [3, 4], "x": 6, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 5], "x": 26, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 6], "x": 41, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 7], "x": 56, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [3, 8], "x": 71, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 0], "x": 86, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 1], "x": 101, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 2], "x": 116, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 3], "x": 131, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 4], "x": 146, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 5], "x": 161, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 6], "x": 175, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 7], "x": 190, "y": 32, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [4, 8], "x": 207, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [5, 0], "x": 224, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [5, 1], "x": 2, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [5, 2], "x": 19, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 3], "x": 34, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 4], "x": 49, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 5], "x": 63, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 6], "x": 78, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 7], "x": 93, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 8], "x": 108, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 0], "x": 123, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 1], "x": 138, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 2], "x": 153, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 3], "x": 168, "y": 48, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [6, 4], "x": 189, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [6, 5], "x": 209, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [6, 6], "x": 224, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [6, 7], "x": 2, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [6, 8], "x": 21, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 0], "x": 39, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 1], "x": 95, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 2], "x": 149, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 3], "x": 164, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 4], "x": 179, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 5], "x": 194, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 6], "x": 209, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [7, 7], "x": 224, "y": 64, "flags": 1}
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
        "driver": "is31fl3731",
 | 
					        "driver": "is31fl3731",
 | 
				
			||||||
        "sleep": true
 | 
					        "sleep": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,47 +36,14 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
 | 
				
			||||||
  { 0, C8_6 }, { 0, C8_7 }, { 0, C8_8 },                                        { 0, C9_1 },                           { 0, C9_2 }, { 0, C9_3 }, { 0, C9_4 }, { 0, C9_5 }, { 0, C9_6 }, { 0, C9_7 },
 | 
					  { 0, C8_6 }, { 0, C8_7 }, { 0, C8_8 },                                        { 0, C9_1 },                           { 0, C9_2 }, { 0, C9_3 }, { 0, C9_4 }, { 0, C9_5 }, { 0, C9_6 }, { 0, C9_7 },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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, NO_LED },
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
      // 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 },
 | 
					 | 
				
			||||||
      {   4, 16 }, {  22, 16 }, {  37, 16 }, {  52, 16 }, {  67, 16 }, {  82, 16 }, {  97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 205, 16 }, { 224, 16 },
 | 
					 | 
				
			||||||
      {   6, 32 }, {  26, 32 }, {  41, 32 }, {  56, 32 }, {  71, 32 }, {  86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 175, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 },
 | 
					 | 
				
			||||||
      {   2, 48 }, {  19, 48 }, {  34, 48 }, {  49, 48 }, {  63, 48 }, {  78, 48 }, {  93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 189, 48 }, { 209, 48 }, { 224, 48 },
 | 
					 | 
				
			||||||
      {   2, 64 }, {  21, 64 }, {  39, 64 },                                        {  95, 64 },                           { 149, 64 }, { 164, 64 }, { 179, 64 }, { 194, 64 }, { 209, 64 }, { 224, 64 }
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
      // LED Index to Flag
 | 
					 | 
				
			||||||
      1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
 | 
					 | 
				
			||||||
      1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 1, 1, 1,
 | 
					 | 
				
			||||||
      1, 1, 1,          1,       1, 1, 1, 1, 1, 1,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void matrix_init_kb(void) {
 | 
					void matrix_init_kb(void) {
 | 
				
			||||||
    // put your keyboard start-up code here
 | 
					 | 
				
			||||||
    // runs once when the firmware starts up
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef LED_MATRIX_ENABLE
 | 
					 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
     * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
 | 
					     * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
 | 
				
			||||||
     * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
 | 
					     * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    led_matrix_set_speed(LED_MATRIX_DEFAULT_SPD),
 | 
					    led_matrix_set_speed(LED_MATRIX_DEFAULT_SPD),
 | 
				
			||||||
    led_matrix_set_flags(LED_FLAG_ALL);
 | 
					    led_matrix_set_flags(LED_FLAG_ALL);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    matrix_init_user();
 | 
					    matrix_init_user();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -190,9 +190,9 @@
 | 
				
			||||||
            {"matrix":[3, 11], "flags":4, "x":153, "y":39},
 | 
					            {"matrix":[3, 11], "flags":4, "x":153, "y":39},
 | 
				
			||||||
            {"matrix":[3, 13], "flags":1, "x":174, "y":39},
 | 
					            {"matrix":[3, 13], "flags":1, "x":174, "y":39},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {"matrix":[4, 12], "flags":8, "x":198, "y":39},
 | 
					            {"flags":8, "x":198, "y":39},
 | 
				
			||||||
            {"matrix":[4, 12], "flags":8, "x":211, "y":39},
 | 
					            {"flags":8, "x":211, "y":39},
 | 
				
			||||||
            {"matrix":[4, 12], "flags":8, "x":224, "y":39},
 | 
					            {"flags":8, "x":224, "y":39},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {"matrix":[4, 0],  "flags":1, "x":8,   "y":52},
 | 
					            {"matrix":[4, 0],  "flags":1, "x":8,   "y":52},
 | 
				
			||||||
            {"matrix":[4, 2],  "flags":4, "x":29,  "y":52},
 | 
					            {"matrix":[4, 2],  "flags":4, "x":29,  "y":52},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -157,10 +157,10 @@
 | 
				
			||||||
            {"matrix":[0, 15], "flags":1, "x":169, "y":0},
 | 
					            {"matrix":[0, 15], "flags":1, "x":169, "y":0},
 | 
				
			||||||
            {"matrix":[0, 16], "flags":1, "x":180, "y":0},
 | 
					            {"matrix":[0, 16], "flags":1, "x":180, "y":0},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {"matrix":[0, 13], "flags":8, "x":193, "y":0},
 | 
					            {"flags":8, "x":193, "y":0},
 | 
				
			||||||
            {"matrix":[0, 13], "flags":8, "x":203, "y":0},
 | 
					            {"flags":8, "x":203, "y":0},
 | 
				
			||||||
            {"matrix":[0, 13], "flags":8, "x":214, "y":0},
 | 
					            {"flags":8, "x":214, "y":0},
 | 
				
			||||||
            {"matrix":[0, 13], "flags":8, "x":224, "y":0},
 | 
					            {"flags":8, "x":224, "y":0},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {"matrix":[1, 0],  "flags":4, "x":0,   "y":15},
 | 
					            {"matrix":[1, 0],  "flags":4, "x":0,   "y":15},
 | 
				
			||||||
            {"matrix":[1, 1],  "flags":4, "x":10,  "y":15},
 | 
					            {"matrix":[1, 1],  "flags":4, "x":10,  "y":15},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,92 @@
 | 
				
			||||||
            "wave_left_right": true,
 | 
					            "wave_left_right": true,
 | 
				
			||||||
            "wave_up_down": true
 | 
					            "wave_up_down": true
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "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": 1},
 | 
				
			||||||
 | 
					            {"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}
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
        "driver": "snled27351",
 | 
					        "driver": "snled27351",
 | 
				
			||||||
        "sleep": true,
 | 
					        "sleep": true,
 | 
				
			||||||
        "react_on_keyup": true
 | 
					        "react_on_keyup": true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -115,37 +115,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
 | 
				
			||||||
    {0, CB1_CA14}, // down
 | 
					    {0, CB1_CA14}, // down
 | 
				
			||||||
    {0, CB1_CA16}, // right
 | 
					    {0, CB1_CA16}, // right
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#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,
 | 
					 | 
				
			||||||
        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,    1,
 | 
					 | 
				
			||||||
        1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 1, 1,
 | 
					 | 
				
			||||||
        1, 1, 1,          4,          1, 1, 1, 1, 1, 1,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif // RGB_MATRIX_ENABLE
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,111 +42,130 @@
 | 
				
			||||||
        "driver": "is31fl3731",
 | 
					        "driver": "is31fl3731",
 | 
				
			||||||
        "layout": [
 | 
					        "layout": [
 | 
				
			||||||
            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [0, 3], "x": 37, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 2], "x": 17, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 4], "x": 49, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 3], "x": 29, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 5], "x": 62, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 4], "x": 40, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 6], "x": 74, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 5], "x": 52, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 7], "x": 87, "y": 0, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [0, 8], "x": 99, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 6], "x": 69, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 9], "x": 122, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 7], "x": 80, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 10], "x": 124, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 8], "x": 92, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 11], "x": 137, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 9], "x": 103, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 12], "x": 140, "y": 0, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [0, 13], "x": 162, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 10], "x": 121, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 14], "x": 174, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 15], "x": 186, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 16], "x": 199, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 13], "x": 155, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 17], "x": 211, "y": 0, "flags": 4},
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [0, 14], "x": 175, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [0, 15], "x": 190, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 16], "x": 201, "y": 0, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [0, 17], "x": 213, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [0, 18], "x": 224, "y": 0, "flags": 4},
 | 
					            {"matrix": [0, 18], "x": 224, "y": 0, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [1, 1], "x": 12, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 2], "x": 24, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 1], "x": 11, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 3], "x": 37, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 2], "x": 23, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 4], "x": 49, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 3], "x": 34, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 5], "x": 62, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 4], "x": 46, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 6], "x": 74, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 5], "x": 57, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 7], "x": 87, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 6], "x": 69, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 8], "x": 99, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 7], "x": 80, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 9], "x": 122, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 8], "x": 92, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 10], "x": 124, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 9], "x": 103, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 11], "x": 137, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 10], "x": 115, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 12], "x": 140, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 11], "x": 126, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 13], "x": 162, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 12], "x": 138, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 14], "x": 174, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 13], "x": 149, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 15], "x": 186, "y": 13, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [1, 16], "x": 199, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 14], "x": 175, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [1, 17], "x": 211, "y": 13, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [1, 18], "x": 224, "y": 13, "flags": 4},
 | 
					            {"matrix": [1, 15], "x": 190, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
 | 
					            {"matrix": [1, 16], "x": 201, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 1], "x": 12, "y": 25, "flags": 4},
 | 
					            {"matrix": [1, 17], "x": 213, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 2], "x": 24, "y": 25, "flags": 4},
 | 
					            {"matrix": [1, 18], "x": 224, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 3], "x": 37, "y": 25, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [2, 4], "x": 49, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 0], "x": 3, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 5], "x": 62, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 1], "x": 17, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 6], "x": 74, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 2], "x": 29, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 7], "x": 87, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 3], "x": 40, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 8], "x": 99, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 4], "x": 52, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 9], "x": 122, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 5], "x": 63, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 10], "x": 124, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 6], "x": 75, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 11], "x": 137, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 7], "x": 86, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 12], "x": 140, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 8], "x": 98, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 13], "x": 162, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 9], "x": 109, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 14], "x": 174, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 10], "x": 121, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 15], "x": 186, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 11], "x": 132, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 16], "x": 199, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 12], "x": 144, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 17], "x": 211, "y": 25, "flags": 4},
 | 
					            {"matrix": [2, 13], "x": 161, "y": 17, "flags": 4},
 | 
				
			||||||
            {"matrix": [2, 18], "x": 224, "y": 25, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
 | 
					            {"matrix": [2, 14], "x": 175, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 1], "x": 12, "y": 38, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [3, 2], "x": 24, "y": 38, "flags": 4},
 | 
					            {"matrix": [2, 15], "x": 190, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 3], "x": 37, "y": 38, "flags": 4},
 | 
					            {"matrix": [2, 16], "x": 201, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 4], "x": 49, "y": 38, "flags": 4},
 | 
					            {"matrix": [2, 17], "x": 213, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 5], "x": 62, "y": 38, "flags": 4},
 | 
					            {"matrix": [2, 18], "x": 224, "y": 28, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 6], "x": 74, "y": 38, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [3, 7], "x": 87, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 0], "x": 4, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 8], "x": 99, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 1], "x": 20, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 9], "x": 122, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 2], "x": 32, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 10], "x": 124, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 3], "x": 43, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 11], "x": 137, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 4], "x": 55, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 12], "x": 140, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 5], "x": 66, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 13], "x": 162, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 6], "x": 78, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 15], "x": 186, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 7], "x": 89, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 16], "x": 199, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 8], "x": 101, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 17], "x": 211, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 9], "x": 112, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [3, 18], "x": 224, "y": 38, "flags": 4},
 | 
					            {"matrix": [3, 10], "x": 123, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
 | 
					            {"matrix": [3, 11], "x": 135, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 1], "x": 12, "y": 51, "flags": 4},
 | 
					            {"matrix": [3, 12], "x": 146, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 2], "x": 24, "y": 51, "flags": 4},
 | 
					            {"matrix": [3, 13], "x": 154, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 3], "x": 37, "y": 51, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [4, 4], "x": 49, "y": 51, "flags": 4},
 | 
					            {"matrix": [3, 15], "x": 190, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 5], "x": 62, "y": 51, "flags": 4},
 | 
					            {"matrix": [3, 16], "x": 201, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 6], "x": 74, "y": 51, "flags": 4},
 | 
					            {"matrix": [3, 17], "x": 213, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 7], "x": 87, "y": 51, "flags": 4},
 | 
					            {"matrix": [3, 18], "x": 224, "y": 39, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 8], "x": 99, "y": 51, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [4, 9], "x": 122, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 0], "x": 1, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 10], "x": 124, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 1], "x": 14, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 11], "x": 137, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 2], "x": 26, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 12], "x": 140, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 3], "x": 37, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 13], "x": 162, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 4], "x": 49, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 14], "x": 174, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 5], "x": 60, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 15], "x": 186, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 6], "x": 72, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 16], "x": 199, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 7], "x": 83, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 17], "x": 211, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 8], "x": 95, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [4, 18], "x": 224, "y": 51, "flags": 4},
 | 
					            {"matrix": [4, 9], "x": 106, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 10], "x": 118, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 1], "x": 12, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 11], "x": 129, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 3], "x": 37, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 12], "x": 145, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 6], "x": 74, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 13], "x": 161, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 10], "x": 124, "y": 64, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [5, 11], "x": 137, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 14], "x": 175, "y": 53, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 12], "x": 140, "y": 64, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [5, 13], "x": 162, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 15], "x": 190, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 14], "x": 174, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 16], "x": 201, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 15], "x": 186, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 17], "x": 213, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 16], "x": 199, "y": 64, "flags": 4},
 | 
					            {"matrix": [4, 18], "x": 224, "y": 50, "flags": 4},
 | 
				
			||||||
            {"matrix": [5, 17], "x": 211, "y": 64, "flags": 4},
 | 
					
 | 
				
			||||||
            {"matrix": [5, 18], "x": 224, "y": 64, "flags": 4}
 | 
					            {"matrix": [5, 0], "x": 3, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 1], "x": 17, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 3], "x": 32, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 6], "x": 76, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 10], "x": 119, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 11], "x": 134, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 12], "x": 148, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [5, 13], "x": 164, "y": 64, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 14], "x": 175, "y": 64, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 15], "x": 187, "y": 64, "flags": 4},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [5, 16], "x": 201, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 17], "x": 213, "y": 61, "flags": 4},
 | 
				
			||||||
 | 
					            {"matrix": [5, 18], "x": 224, "y": 61, "flags": 4}
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "matrix_pins": {
 | 
					    "matrix_pins": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -85,7 +85,7 @@ bool led_matrix_indicators_kb(void) {
 | 
				
			||||||
    if (layer_state_is(4)) {
 | 
					    if (layer_state_is(4)) {
 | 
				
			||||||
        led_matrix_set_value(113, 0xFF);
 | 
					        led_matrix_set_value(113, 0xFF);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        led_matrix_set_value(114, 0x00);
 | 
					        led_matrix_set_value(113, 0x00);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,6 +62,82 @@
 | 
				
			||||||
            "wave_left_right": true,
 | 
					            "wave_left_right": true,
 | 
				
			||||||
            "wave_up_down": true
 | 
					            "wave_up_down": true
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "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": [0, 14], "x": 209, "y": 0, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 1], "x": 22, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 2], "x": 37, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 3], "x": 52, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 4], "x": 67, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 5], "x": 82, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 6], "x": 97, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 8], "x": 127, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 9], "x": 142, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 10], "x": 157, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 11], "x": 172, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 12], "x": 187, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 14], "x": 205, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 1], "x": 26, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 2], "x": 41, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 3], "x": 56, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 4], "x": 71, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 5], "x": 86, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 6], "x": 101, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 7], "x": 116, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 8], "x": 131, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 9], "x": 146, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 10], "x": 161, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 11], "x": 175, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 12], "x": 190, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 13], "x": 207, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 1], "x": 19, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 3], "x": 49, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 4], "x": 63, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 5], "x": 78, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 6], "x": 93, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 7], "x": 108, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 8], "x": 123, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 9], "x": 138, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 10], "x": 153, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 11], "x": 168, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 14], "x": 209, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 6], "x": 95, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 10], "x": 151, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 11], "x": 170, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 14], "x": 209, "y": 64, "flags": 1},
 | 
				
			||||||
 | 
					            {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1}
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
        "driver": "is31fl3731",
 | 
					        "driver": "is31fl3731",
 | 
				
			||||||
        "react_on_keyup": true
 | 
					        "react_on_keyup": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,30 +31,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
 | 
				
			||||||
    { 0, C6_1  },  { 0, C6_2 },  { 0, C6_3  },                                             { 0, C6_7  },                                              { 0, C6_11  },  { 0, C6_12 },                  { 0, C6_14 },  { 0, C6_15  },  { 0, C6_16 },
 | 
					    { 0, C6_1  },  { 0, C6_2 },  { 0, C6_3  },                                             { 0, C6_7  },                                              { 0, C6_11  },  { 0, C6_12 },                  { 0, C6_14 },  { 0, C6_15  },  { 0, C6_16 },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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,        NO_LED,            29,             30},
 | 
					 | 
				
			||||||
    {31,            32,            33,            34,            35,            36,            37,            38,            39,            40,            41,            42,            43,            44,        NO_LED,             45},
 | 
					 | 
				
			||||||
    {46,            47,            48,            49,            50,            51,            52,            53,            54,            55,            56,            57,            58,        NO_LED,            59,             60},
 | 
					 | 
				
			||||||
    {61,            62,            63,        NO_LED,        NO_LED,        NO_LED,            64,        NO_LED,        NO_LED,        NO_LED,            65,            66,        NO_LED,            67,            68,             69},
 | 
					 | 
				
			||||||
}, {
 | 
					 | 
				
			||||||
        //LED Index to Physical Positon
 | 
					 | 
				
			||||||
  {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,16},     {15, 16},      {30, 16},      {45, 16},      {60, 16},      {75, 16},      {90, 16},      {105,16},      {119,16},      {134,16},      {149,16},      {164,16},      {179,16},      {209,16},                     {224,16},
 | 
					 | 
				
			||||||
  {0,32},     {15, 32},      {30, 32},      {45, 32},      {60, 32},      {75, 32},      {90, 32},      {105,32},      {119,32},      {134,32},      {149,32},      {164,32},      {179,32},      {194,32},                     {224,32},
 | 
					 | 
				
			||||||
  {0,48},     {15, 48},      {30, 48},      {45, 48},      {60, 48},      {75, 48},      {90, 48},      {105,48},      {119,48},      {134,48},      {149,48},      {164,48},      {179,48},      {209,48},                     {224,48},
 | 
					 | 
				
			||||||
  {0,64},     {15, 64},      {30, 64},                                                   {90, 64},                                                   {149,64},      {164,64},                     {194,64},      {209,64},      {224,64},
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
       1,            1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,
 | 
					 | 
				
			||||||
       1,            1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,                            1,
 | 
					 | 
				
			||||||
       1,            1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,                            1,
 | 
					 | 
				
			||||||
       1,            1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,             1,                            1,
 | 
					 | 
				
			||||||
       1,            1,             1,                                                          1,                                                          1,             1,                            1,             1,             1,
 | 
					 | 
				
			||||||
    } 
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bool led_matrix_indicators_kb(void) {
 | 
					bool led_matrix_indicators_kb(void) {
 | 
				
			||||||
    if (!led_matrix_indicators_user()) {
 | 
					    if (!led_matrix_indicators_user()) {
 | 
				
			||||||
    	return false;
 | 
					    	return false;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,7 +34,120 @@
 | 
				
			||||||
    "led_matrix": {
 | 
					    "led_matrix": {
 | 
				
			||||||
        "driver": "is31fl3731",
 | 
					        "driver": "is31fl3731",
 | 
				
			||||||
        "max_brightness": 20,
 | 
					        "max_brightness": 20,
 | 
				
			||||||
        "sleep": true
 | 
					        "sleep": true,
 | 
				
			||||||
 | 
					        "layout": [
 | 
				
			||||||
 | 
					            {"x": 0, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 16, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 32, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 48, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 64, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 80, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 96, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 112, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 128, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 144, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 160, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 176, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 192, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 208, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 224, "y": 0, "flags": 0},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"x": 0, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 16, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 32, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 48, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 64, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 80, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 96, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 112, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 128, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 144, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 160, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 176, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 192, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 208, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 224, "y": 11, "flags": 0},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"x": 0, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 16, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 32, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 48, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 64, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 80, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 96, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 112, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 128, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 144, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 160, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 176, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 192, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 208, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 224, "y": 21, "flags": 0},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"x": 0, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 16, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 32, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 48, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 64, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 80, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 96, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 112, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 128, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 144, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 160, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 176, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 192, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 208, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 224, "y": 32, "flags": 0},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"x": 0, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 16, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 32, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 48, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 64, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 80, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 96, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 112, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 128, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 144, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 160, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 176, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 192, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 208, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 224, "y": 43, "flags": 0},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"x": 0, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 16, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 32, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 48, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 64, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 80, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 96, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 112, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 128, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 144, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 160, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 176, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 192, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 208, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 224, "y": 53, "flags": 0},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"x": 0, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 16, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 32, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 48, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 64, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 80, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 96, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 112, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 128, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 144, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 160, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 176, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 192, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 208, "y": 64, "flags": 0},
 | 
				
			||||||
 | 
					            {"x": 224, "y": 64, "flags": 0}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "processor": "atmega32u4",
 | 
					    "processor": "atmega32u4",
 | 
				
			||||||
    "bootloader": "atmel-dfu",
 | 
					    "bootloader": "atmel-dfu",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,39 +39,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
 | 
				
			||||||
    {0, C2_15},{0, C2_14},{0, C2_13},{0, C2_12},{0, C2_11},{0, C2_10},{0, C2_9}
 | 
					    {0, C2_15},{0, C2_14},{0, C2_13},{0, C2_12},{0, C2_11},{0, C2_10},{0, C2_9}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
led_config_t g_led_config = {
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        // Key Matrix to LED Index
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
 | 
					 | 
				
			||||||
        { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
        // LED Index to Physical 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 },
 | 
					 | 
				
			||||||
        {   0, 11 }, {  16, 11 }, {  32, 11 }, {  48, 11 }, {  64, 11 }, {  80, 11 }, {  96, 11 }, { 112, 11 }, { 128, 11 }, { 144, 11 }, { 160, 11 }, { 176, 11 }, { 192, 11 }, { 208, 11 }, { 224, 11 },
 | 
					 | 
				
			||||||
        {   0, 21 }, {  16, 21 }, {  32, 21 }, {  48, 21 }, {  64, 21 }, {  80, 21 }, {  96, 21 }, { 112, 21 }, { 128, 21 }, { 144, 21 }, { 160, 21 }, { 176, 21 }, { 192, 21 }, { 208, 21 }, { 224, 21 },
 | 
					 | 
				
			||||||
        {   0, 32 }, {  16, 32 }, {  32, 32 }, {  48, 32 }, {  64, 32 }, {  80, 32 }, {  96, 32 }, { 112, 32 }, { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 192, 32 }, { 208, 32 }, { 224, 32 },
 | 
					 | 
				
			||||||
        {   0, 43 }, {  16, 43 }, {  32, 43 }, {  48, 43 }, {  64, 43 }, {  80, 43 }, {  96, 43 }, { 112, 43 }, { 128, 43 }, { 144, 43 }, { 160, 43 }, { 176, 43 }, { 192, 43 }, { 208, 43 }, { 224, 43 },
 | 
					 | 
				
			||||||
        {   0, 53 }, {  16, 53 }, {  32, 53 }, {  48, 53 }, {  64, 53 }, {  80, 53 }, {  96, 53 }, { 112, 53 }, { 128, 53 }, { 144, 53 }, { 160, 53 }, { 176, 53 }, { 192, 53 }, { 208, 53 }, { 224, 53 },
 | 
					 | 
				
			||||||
        {   0, 64 }, {  16, 64 }, {  32, 64 }, {  48, 64 }, {  64, 64 }, {  80, 64 }, {  96, 64 }, { 112, 64 }, { 128, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }
 | 
					 | 
				
			||||||
    }, {
 | 
					 | 
				
			||||||
        // LED Index to Flag
 | 
					 | 
				
			||||||
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | 
					 | 
				
			||||||
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | 
					 | 
				
			||||||
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | 
					 | 
				
			||||||
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | 
					 | 
				
			||||||
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | 
					 | 
				
			||||||
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
 | 
					 | 
				
			||||||
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define TERRAZZO_EFFECT(name)
 | 
					#define TERRAZZO_EFFECT(name)
 | 
				
			||||||
#define TERRAZZO_EFFECT_IMPLS
 | 
					#define TERRAZZO_EFFECT_IMPLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue