aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXScorpion2 <rcalt2vt@gmail.com>2019-05-07 18:22:46 -0500
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-05-07 16:22:46 -0700
commitaf89752bffbaf5dcea30ea16be66b4d682701bc4 (patch)
treec82f2bc25409159a44778379db8b3a35afc47b8a
parentc7f8548d9af2045996294602d2a4bd9a214ae23c (diff)
downloadqmk_firmware-af89752bffbaf5dcea30ea16be66b4d682701bc4.tar.gz
qmk_firmware-af89752bffbaf5dcea30ea16be66b4d682701bc4.zip
rgb_led struct conversion (aka: Per led (key) type rgb matrix effects - part 2) (#5783)
* Initial conversion of the rgb_led struct * Converting last keyboard & updating effects to take advantage of the new structure * New struct should not be const * Updated docs * Changing define ___ for no led to NO_LED * Missed converting some keymap usages of the old struct layout
-rw-r--r--docs/feature_rgb_matrix.md32
-rw-r--r--keyboards/boston_meetup/2019/2019.c40
-rw-r--r--keyboards/crkbd/rev1/rev1.c125
-rw-r--r--keyboards/doro67/rgb/rgb.c103
-rw-r--r--keyboards/dztech/dz40rgb/dz40rgb.c163
-rw-r--r--keyboards/dztech/dz40rgb/keymaps/default/keymap.c6
-rw-r--r--keyboards/dztech/dz40rgb/keymaps/split_space/keymap.c6
-rw-r--r--keyboards/dztech/dz60rgb/dz60rgb.c419
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c5
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c5
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c5
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/iso/keymap.c5
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c30
-rw-r--r--keyboards/dztech/dz65rgb/dz65rgb.c90
-rw-r--r--keyboards/ergodox_ez/ergodox_ez.c99
-rw-r--r--keyboards/exclusive/e6_rgb/e6_rgb.c130
-rw-r--r--keyboards/hadron/ver3/ver3.c45
-rw-r--r--keyboards/hs60/v1/v1.c218
-rw-r--r--keyboards/massdrop/alt/config_led.c143
-rw-r--r--keyboards/massdrop/ctrl/config_led.c180
-rw-r--r--keyboards/model01/leds.c95
-rw-r--r--keyboards/planck/ez/ez.c78
-rw-r--r--keyboards/planck/keymaps/tom/keymap.c11
-rw-r--r--keyboards/planck/light/light.c87
-rw-r--r--keyboards/sol/rev1/rev1.c115
-rw-r--r--keyboards/sol/sol.c19
-rw-r--r--layouts/community/ergodox/drashna/keymap.c7
-rw-r--r--layouts/community/ortho_4x12/drashna/keymap.c5
-rw-r--r--quantum/rgb_matrix.c16
-rw-r--r--quantum/rgb_matrix.h4
-rw-r--r--quantum/rgb_matrix_animations/alpha_mods_anim.h4
-rw-r--r--quantum/rgb_matrix_animations/cycle_all_anim.h2
-rw-r--r--quantum/rgb_matrix_animations/cycle_left_right_anim.h5
-rw-r--r--quantum/rgb_matrix_animations/cycle_up_down_anim.h5
-rw-r--r--quantum/rgb_matrix_animations/dual_beacon_anim.h5
-rw-r--r--quantum/rgb_matrix_animations/gradient_up_down_anim.h5
-rw-r--r--quantum/rgb_matrix_animations/jellybean_raindrops_anim.h4
-rw-r--r--quantum/rgb_matrix_animations/rainbow_beacon_anim.h5
-rw-r--r--quantum/rgb_matrix_animations/rainbow_moving_chevron_anim.h5
-rw-r--r--quantum/rgb_matrix_animations/rainbow_pinwheels_anim.h5
-rw-r--r--quantum/rgb_matrix_animations/raindrops_anim.h3
-rw-r--r--quantum/rgb_matrix_animations/solid_color_anim.h1
-rw-r--r--quantum/rgb_matrix_animations/solid_reactive_anim.h1
-rw-r--r--quantum/rgb_matrix_animations/solid_reactive_cross.h7
-rw-r--r--quantum/rgb_matrix_animations/solid_reactive_nexus.h7
-rw-r--r--quantum/rgb_matrix_animations/solid_reactive_simple_anim.h1
-rw-r--r--quantum/rgb_matrix_animations/solid_reactive_wide.h7
-rw-r--r--quantum/rgb_matrix_animations/solid_splash_anim.h7
-rw-r--r--quantum/rgb_matrix_animations/splash_anim.h7
-rw-r--r--quantum/rgb_matrix_types.h18
-rw-r--r--tmk_core/protocol/arm_atsam/led_matrix.c9
51 files changed, 755 insertions, 1644 deletions
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index 91ec77ace..5eb9d5536 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -124,21 +124,25 @@ Configure the hardware via your `config.h`:
124 124
125--- 125---
126 126
127From this point forward the configuration is the same for all the drivers. The struct rgb_led array tells the system for each led, what key electrical matrix it represents, what the physical position is on the board, and if the led is for a modifier key or not. Here is a brief example: 127From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example:
128 128
129```C 129```C
130rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 130const led_config_t g_led_config = { {
131/* {row | col << 4} 131 // Key Matrix to LED Index
132 * | {x=0..224, y=0..64} 132 { 5, NO_LED, NO_LED, 0 },
133 * | | flags 133 { NO_LED, NO_LED, NO_LED, NO_LED },
134 * | | | */ 134 { 4, NO_LED, NO_LED, 1 },
135 {{0|(0<<4)}, {20.36*0, 21.33*0}, 1}, 135 { 3, NO_LED, NO_LED, 2 }
136 {{0|(1<<4)}, {20.36*1, 21.33*0}, 4}, 136}, {
137 .... 137 // LED Index to Physical Position
138} 138 { 188, 16 }, { 187, 48 }, { 149, 64 }, { 112, 64 }, { 37, 48 }, { 38, 16 }
139}, {
140 // LED Index to Flag
141 1, 4, 4, 4, 4, 1
142} };
139``` 143```
140 144
141The first part, `{row | col << 4}`, tells the system what key this LED represents by using the key's electrical matrix row & col. The second part, `{x=0..224, y=0..64}` represents the LED's physical position on the keyboard. The `x` is between (inclusive) 0-224, and `y` is between (inclusive) 0-64 as the effects are based on this range. The easiest way to calculate these positions is imagine your keyboard is a grid, and the top left of the keyboard represents x, y coordinate 0, 0 and the bottom right of your keyboard represents 224, 64. Using this as a basis, you can use the following formula to calculate the physical position: 145The first part, `// Key Matrix to LED Index`, tells the system what key this LED represents by using the key's electrical matrix row & col. The second part, `// LED Index to Physical Position` represents the LED's physical position on the keyboard. The first value, `x`, is between 0-224 (inclusive), and the second value, `y`, is between 0-64 (inclusive). This range is due to effect that calculate the center or halves for their animations. The easiest way to calculate these positions is imagine your keyboard is a grid, and the top left of the keyboard represents x, y coordinate 0, 0 and the bottom right of your keyboard represents 224, 64. Using this as a basis, you can use the following formula to calculate the physical position:
142 146
143```C 147```C
144x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION 148x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION
@@ -147,7 +151,7 @@ y = 64 / (NUMBER_OF_ROWS - 1) * ROW_POSITION
147 151
148Where NUMBER_OF_COLS, NUMBER_OF_ROWS, COL_POSITION, & ROW_POSITION are all based on the physical layout of your keyboard, not the electrical layout. 152Where NUMBER_OF_COLS, NUMBER_OF_ROWS, COL_POSITION, & ROW_POSITION are all based on the physical layout of your keyboard, not the electrical layout.
149 153
150`flags` is a bitmask, whether or not a certain LEDs is of a certain type. It is recommended that LEDs are set to only 1 type. 154`// LED Index to Flag` is a bitmask, whether or not a certain LEDs is of a certain type. It is recommended that LEDs are set to only 1 type.
151 155
152## Flags 156## Flags
153 157
@@ -155,8 +159,8 @@ Where NUMBER_OF_COLS, NUMBER_OF_ROWS, COL_POSITION, & ROW_POSITION are all based
155|------------------------------------|-------------------------------------------| 159|------------------------------------|-------------------------------------------|
156|`#define HAS_FLAGS(bits, flags)` |Returns true if `bits` has all `flags` set.| 160|`#define HAS_FLAGS(bits, flags)` |Returns true if `bits` has all `flags` set.|
157|`#define HAS_ANY_FLAGS(bits, flags)`|Returns true if `bits` has any `flags` set.| 161|`#define HAS_ANY_FLAGS(bits, flags)`|Returns true if `bits` has any `flags` set.|
158|`#define LED_FLAG_NONE 0x00` |If thes LED has no flags. | 162|`#define LED_FLAG_NONE 0x00` |If this LED has no flags. |
159|`#define LED_FLAG_ALL 0xFF` |If thes LED has all flags. | 163|`#define LED_FLAG_ALL 0xFF` |If this LED has all flags. |
160|`#define LED_FLAG_MODIFIER 0x01` |If the Key for this LED is a modifier. | 164|`#define LED_FLAG_MODIFIER 0x01` |If the Key for this LED is a modifier. |
161|`#define LED_FLAG_UNDERGLOW 0x02` |If the LED is for underglow. | 165|`#define LED_FLAG_UNDERGLOW 0x02` |If the LED is for underglow. |
162|`#define LED_FLAG_KEYLIGHT 0x04` |If the LED is for key backlight. | 166|`#define LED_FLAG_KEYLIGHT 0x04` |If the LED is for key backlight. |
diff --git a/keyboards/boston_meetup/2019/2019.c b/keyboards/boston_meetup/2019/2019.c
index 45c185549..933c14dee 100644
--- a/keyboards/boston_meetup/2019/2019.c
+++ b/keyboards/boston_meetup/2019/2019.c
@@ -19,20 +19,18 @@
19#include "haptic.h" 19#include "haptic.h"
20 20
21#ifdef RGB_MATRIX_ENABLE 21#ifdef RGB_MATRIX_ENABLE
22#include "rgblight.h" 22#include "rgb_matrix.h"
23 23
24rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 24led_config_t g_led_config = { {
25 /*{row | col << 4} 25 { 5, NO_LED, NO_LED, 0 },
26 | {x=0..224, y=0..64} 26 { NO_LED, NO_LED, NO_LED, NO_LED },
27 | | modifier 27 { 4, NO_LED, NO_LED, 1 },
28 | | | */ 28 { 3, NO_LED, NO_LED, 2 }
29 {{1|(3<<4)}, {188, 16}, 4}, 29}, {
30 {{3|(3<<4)}, {187, 48}, 4}, 30 { 188, 16 }, { 187, 48 }, { 149, 64 }, { 112, 64 }, { 37, 48 }, { 38, 16 }
31 {{4|(2<<4)}, {149, 64}, 4}, 31}, {
32 {{4|(1<<4)}, {112, 64}, 4}, 32 4, 4, 4, 4, 4, 4
33 {{3|(0<<4)}, {37, 48}, 4}, 33} };
34 {{1|(0<<4)}, {38, 16}, 4}
35};
36#endif 34#endif
37 35
38uint8_t *o_fb; 36uint8_t *o_fb;
@@ -48,12 +46,12 @@ uint16_t counterst = 0;
48#define ScreenOffInterval 60000 /* milliseconds */ 46#define ScreenOffInterval 60000 /* milliseconds */
49static uint16_t last_flush; 47static uint16_t last_flush;
50 48
51volatile uint8_t led_numlock = false; 49volatile uint8_t led_numlock = false;
52volatile uint8_t led_capslock = false; 50volatile uint8_t led_capslock = false;
53volatile uint8_t led_scrolllock = false; 51volatile uint8_t led_scrolllock = false;
54 52
55static uint8_t layer; 53static uint8_t layer;
56static bool queue_for_send = false; 54static bool queue_for_send = false;
57static uint8_t encoder_value = 32; 55static uint8_t encoder_value = 32;
58 56
59__attribute__ ((weak)) 57__attribute__ ((weak))
@@ -64,13 +62,13 @@ void draw_ui(void) {
64 62
65/* Boston MK title is 55 x 10 pixels */ 63/* Boston MK title is 55 x 10 pixels */
66#define NAME_X 0 64#define NAME_X 0
67#define NAME_Y 0 65#define NAME_Y 0
68 66
69 draw_string(NAME_X + 1, NAME_Y + 2, "BOSTON MK", PIXEL_ON, NORM, 0); 67 draw_string(NAME_X + 1, NAME_Y + 2, "BOSTON MK", PIXEL_ON, NORM, 0);
70 68
71/* Layer indicator is 41 x 10 pixels */ 69/* Layer indicator is 41 x 10 pixels */
72#define LAYER_INDICATOR_X 60 70#define LAYER_INDICATOR_X 60
73#define LAYER_INDICATOR_Y 0 71#define LAYER_INDICATOR_Y 0
74 72
75 draw_string(LAYER_INDICATOR_X + 1, LAYER_INDICATOR_Y + 2, "LAYER", PIXEL_ON, NORM, 0); 73 draw_string(LAYER_INDICATOR_X + 1, LAYER_INDICATOR_Y + 2, "LAYER", PIXEL_ON, NORM, 0);
76 draw_rect_filled_soft(LAYER_INDICATOR_X + 32, LAYER_INDICATOR_Y + 1, 9, 9, PIXEL_ON, NORM); 74 draw_rect_filled_soft(LAYER_INDICATOR_X + 32, LAYER_INDICATOR_Y + 1, 9, 9, PIXEL_ON, NORM);
@@ -88,7 +86,7 @@ void draw_ui(void) {
88 draw_pixel(MATRIX_DISPLAY_X + y + y + 3, MATRIX_DISPLAY_Y + x + x + 3,(matrix_get_row(x) & (1 << y)) > 0, NORM); 86 draw_pixel(MATRIX_DISPLAY_X + y + y + 3, MATRIX_DISPLAY_Y + x + x + 3,(matrix_get_row(x) & (1 << y)) > 0, NORM);
89 87
90 } 88 }
91 } 89 }
92 draw_rect_soft(MATRIX_DISPLAY_X, MATRIX_DISPLAY_Y, 12, 12, PIXEL_ON, NORM); 90 draw_rect_soft(MATRIX_DISPLAY_X, MATRIX_DISPLAY_Y, 12, 12, PIXEL_ON, NORM);
93 /* hadron oled location on thumbnail */ 91 /* hadron oled location on thumbnail */
94 draw_rect_filled_soft(MATRIX_DISPLAY_X + 5, MATRIX_DISPLAY_Y + 2, 6, 2, PIXEL_ON, NORM); 92 draw_rect_filled_soft(MATRIX_DISPLAY_X + 5, MATRIX_DISPLAY_Y + 2, 6, 2, PIXEL_ON, NORM);
@@ -195,7 +193,7 @@ void matrix_init_kb(void) {
195 queue_for_send = true; 193 queue_for_send = true;
196 matrix_init_user(); 194 matrix_init_user();
197} 195}
198 196
199void matrix_scan_kb(void) { 197void matrix_scan_kb(void) {
200if (queue_for_send) { 198if (queue_for_send) {
201#ifdef QWIIC_MICRO_OLED_ENABLE 199#ifdef QWIIC_MICRO_OLED_ENABLE
diff --git a/keyboards/crkbd/rev1/rev1.c b/keyboards/crkbd/rev1/rev1.c
index 2345028d2..38ab92788 100644
--- a/keyboards/crkbd/rev1/rev1.c
+++ b/keyboards/crkbd/rev1/rev1.c
@@ -51,78 +51,65 @@ void led_set_kb(uint8_t usb_led) {
51 // 05 06 06 05 51 // 05 06 06 05
52 // 15 14 07 07 14 15 3 52 // 15 14 07 07 14 15 3
53 53
54/* {row | col << 4} logical layout rows/cols
55 * | {x=0..224, y=0..64} physical layout
56 * | | | modifier
57 * | | | */
58#define RGB_MATRIX_LEFT_LEDS \
59 { { 0xFF }, { 85, 16 }, 2 }, /* 1 */ \
60 { { 0xFF }, { 50, 13 }, 2 }, /* 2 */ \
61 { { 0xFF }, { 16, 20 }, 2 }, /* 3 */ \
62 { { 0xFF }, { 16, 38 }, 2 }, /* 4 */ \
63 { { 0xFF }, { 50, 48 }, 2 }, /* 5 */ \
64 { { 0xFF }, { 85, 52 }, 2 }, /* 6 */ \
65 { { 3 | ( 5 << 4 ) }, { 95, 63 }, 1 }, /* 7 */ \
66 { { 2 | ( 5 << 4 ) }, { 85, 39 }, 4 }, /* 8 */ \
67 { { 1 | ( 5 << 4 ) }, { 85, 21 }, 4 }, /* 9 */ \
68 { { 0 | ( 5 << 4 ) }, { 85, 4 }, 4 }, /* 10 */ \
69 { { 0 | ( 4 << 4 ) }, { 68, 02 }, 4 }, /* 11 */ \
70 { { 1 | ( 4 << 4 ) }, { 68, 19 }, 4 }, /* 12 */ \
71 { { 2 | ( 4 << 4 ) }, { 68, 37 }, 4 }, /* 13 */ \
72 { { 3 | ( 4 << 4 ) }, { 80, 58 }, 1 }, /* 14 */ \
73 { { 3 | ( 3 << 4 ) }, { 60, 55 }, 1 }, /* 15 */ \
74 { { 2 | ( 3 << 4 ) }, { 50, 35 }, 4 }, /* 16 */ \
75 { { 1 | ( 3 << 4 ) }, { 50, 13 }, 4 }, /* 17 */ \
76 { { 0 | ( 3 << 4 ) }, { 50, 0 }, 4 }, /* 18 */ \
77 { { 0 | ( 2 << 4 ) }, { 33, 3 }, 4 }, /* 19 */ \
78 { { 1 | ( 2 << 4 ) }, { 33, 20 }, 4 }, /* 20 */ \
79 { { 2 | ( 2 << 4 ) }, { 33, 37 }, 4 }, /* 21 */ \
80 { { 2 | ( 1 << 4 ) }, { 16, 42 }, 4 }, /* 22 */ \
81 { { 1 | ( 1 << 4 ) }, { 16, 24 }, 4 }, /* 23 */ \
82 { { 0 | ( 1 << 4 ) }, { 16, 7 }, 4 }, /* 24 */ \
83 { { 0 | ( 0 << 4 ) }, { 0, 7 }, 1 }, /* 25 */ \
84 { { 1 | ( 0 << 4 ) }, { 0, 24 }, 1 }, /* 26 */ \
85 { { 2 | ( 0 << 4 ) }, { 0, 41 }, 1 }, /* 27 */
86
87#define RGB_MATRIX_RIGHT_LEDS \
88 { { 0xFF }, { 139, 16 }, 2 }, /* 1 */ \
89 { { 0xFF }, { 174, 13 }, 2 }, /* 2 */ \
90 { { 0xFF }, { 208, 20 }, 2 }, /* 3 */ \
91 { { 0xFF }, { 208, 38 }, 2 }, /* 4 */ \
92 { { 0xFF }, { 174, 48 }, 2 }, /* 5 */ \
93 { { 0xFF }, { 139, 52 }, 2 }, /* 6 */ \
94 { { 7 | ( 5 << 4 ) }, { 129, 63 }, 1 }, /* 7 */ \
95 { { 6 | ( 5 << 4 ) }, { 139, 39 }, 4 }, /* 8 */ \
96 { { 5 | ( 5 << 4 ) }, { 139, 21 }, 4 }, /* 9 */ \
97 { { 4 | ( 5 << 4 ) }, { 139, 4 }, 4 }, /* 10 */ \
98 { { 4 | ( 4 << 4 ) }, { 156, 02 }, 4 }, /* 11 */ \
99 { { 5 | ( 4 << 4 ) }, { 156, 19 }, 4 }, /* 12 */ \
100 { { 6 | ( 4 << 4 ) }, { 156, 37 }, 4 }, /* 13 */ \
101 { { 7 | ( 4 << 4 ) }, { 144, 58 }, 1 }, /* 14 */ \
102 { { 7 | ( 3 << 4 ) }, { 164, 55 }, 1 }, /* 15 */ \
103 { { 6 | ( 3 << 4 ) }, { 174, 35 }, 4 }, /* 16 */ \
104 { { 5 | ( 3 << 4 ) }, { 174, 13 }, 4 }, /* 17 */ \
105 { { 4 | ( 3 << 4 ) }, { 174, 0 }, 4 }, /* 18 */ \
106 { { 4 | ( 2 << 4 ) }, { 191, 3 }, 4 }, /* 19 */ \
107 { { 5 | ( 2 << 4 ) }, { 191, 20 }, 4 }, /* 20 */ \
108 { { 6 | ( 2 << 4 ) }, { 191, 37 }, 4 }, /* 21 */ \
109 { { 6 | ( 1 << 4 ) }, { 208, 42 }, 4 }, /* 22 */ \
110 { { 5 | ( 1 << 4 ) }, { 208, 24 }, 4 }, /* 23 */ \
111 { { 4 | ( 1 << 4 ) }, { 208, 7 }, 4 }, /* 24 */ \
112 { { 4 | ( 0 << 4 ) }, { 224, 7 }, 1 }, /* 25 */ \
113 { { 5 | ( 0 << 4 ) }, { 224, 24 }, 1 }, /* 26 */ \
114 { { 6 | ( 0 << 4 ) }, { 224, 41 }, 1 }, /* 27 */
115 54
116#ifdef RGB_MATRIX_SPLIT_RIGHT 55#ifdef RGB_MATRIX_SPLIT_RIGHT
117rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 56led_config_t g_led_config = { {
118 RGB_MATRIX_RIGHT_LEDS 57 { 51, 50, 45, 44, 37, 36, NO_LED },
119 RGB_MATRIX_LEFT_LEDS 58 { 52, 49, 46, 43, 38, 35, NO_LED },
120 }; 59 { 53, 48, 47, 42, 39, 34, NO_LED },
60 { NO_LED, NO_LED, NO_LED, 41, 40, 33, NO_LED },
61 { 24, 23, 18, 17, 10, 9, NO_LED },
62 { 25, 22, 19, 16, 11, 8, NO_LED },
63 { 26, 21, 20, 15, 12, 7, NO_LED },
64 { NO_LED, NO_LED, NO_LED, 14, 13, 6, NO_LED }
65}, {
66 { 139, 16 }, { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 },
67 { 139, 39 }, { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 },
68 { 164, 55 }, { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 },
69 { 208, 42 }, { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }, { 85, 16 },
70 { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, { 85, 39 },
71 { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, { 60, 55 },
72 { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, { 16, 42 },
73 { 16, 24 }, { 16, 7 }, { 0, 7 }, { 0, 24 }, { 0, 41 }
74}, {
75 2, 2, 2, 2, 2, 2, 1,
76 4, 4, 4, 4, 4, 4, 1,
77 1, 4, 4, 4, 4, 4, 4,
78 4, 4, 4, 1, 1, 1, 2,
79 2, 2, 2, 2, 2, 1, 4,
80 4, 4, 4, 4, 4, 1, 1,
81 4, 4, 4, 4, 4, 4, 4,
82 4, 4, 1, 1, 1
83} };
121#else 84#else
122rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 85led_config_t g_led_config = { {
123 RGB_MATRIX_LEFT_LEDS 86 { 24, 23, 18, 17, 10, 9, NO_LED },
124 RGB_MATRIX_RIGHT_LEDS 87 { 25, 22, 19, 16, 11, 8, NO_LED },
125 }; 88 { 26, 21, 20, 15, 12, 7, NO_LED },
89 { NO_LED, NO_LED, NO_LED, 14, 13, 6, NO_LED },
90 { 51, 50, 45, 44, 37, 36, NO_LED },
91 { 52, 49, 46, 43, 38, 35, NO_LED },
92 { 53, 48, 47, 42, 39, 34, NO_LED },
93 { NO_LED, NO_LED, NO_LED, 41, 40, 33, NO_LED }
94}, {
95 { 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 },
96 { 85, 39 }, { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 },
97 { 60, 55 }, { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 },
98 { 16, 42 }, { 16, 24 }, { 16, 7 }, { 0, 7 }, { 0, 24 }, { 0, 41 }, { 139, 16 },
99 { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 }, { 139, 39 },
100 { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 }, { 164, 55 },
101 { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 }, { 208, 42 },
102 { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }
103}, {
104 2, 2, 2, 2, 2, 2, 1,
105 4, 4, 4, 4, 4, 4, 1,
106 1, 4, 4, 4, 4, 4, 4,
107 4, 4, 4, 1, 1, 1, 2,
108 2, 2, 2, 2, 2, 1, 4,
109 4, 4, 4, 4, 4, 1, 1,
110 4, 4, 4, 4, 4, 4, 4,
111 4, 4, 1, 1, 1
112} };
126#endif 113#endif
127 114
128#endif 115#endif
diff --git a/keyboards/doro67/rgb/rgb.c b/keyboards/doro67/rgb/rgb.c
index 8aaf6ef4a..e8c9ac632 100644
--- a/keyboards/doro67/rgb/rgb.c
+++ b/keyboards/doro67/rgb/rgb.c
@@ -14,6 +14,7 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#include "rgb.h" 16#include "rgb.h"
17#include "rgb_matrix_types.h"
17 18
18// Optional override functions below. 19// Optional override functions below.
19// You can leave any or all of these undefined. 20// You can leave any or all of these undefined.
@@ -52,76 +53,32 @@ void led_set_kb(uint8_t usb_led) {
52 led_set_user(usb_led); 53 led_set_user(usb_led);
53} 54}
54 55
55rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 56led_config_t g_led_config = { {
56 {{0|(0<<4)}, {15*0, 0}, 4}, // Esc 57 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
57 {{0|(1<<4)}, {15*1, 0}, 4}, // 1 58 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
58 {{0|(2<<4)}, {15*2, 0}, 4}, // 2 59 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
59 {{0|(3<<4)}, {15*3, 0}, 4}, // 3 60 { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
60 {{0|(4<<4)}, {15*4, 0}, 4}, // 4 61 { 58, 59, 60, 61, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66 }
61 {{0|(5<<4)}, {15*5, 0}, 4}, // 5 62}, {
62 {{0|(6<<4)}, {15*6, 0}, 4}, // 6 63 // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Ins
63 {{0|(7<<4)}, {15*7, 0}, 4}, // 7 64 { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 225, 0 },
64 {{0|(8<<4)}, {15*8, 0}, 4}, // 8 65 // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , Del
65 {{0|(9<<4)}, {15*9, 0}, 4}, // 9 66 { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 225, 16 },
66 {{0|(10<<4)}, {15*10, 0}, 4}, // 0 67 // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Pgup
67 {{0|(11<<4)}, {15*11, 0}, 4}, // - 68 { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 225, 32 },
68 {{0|(12<<4)}, {15*12, 0}, 4}, // = 69 // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Pgdn
69 {{0|(13<<4)}, {15*13.5, 0}, 1}, // Backspace 70 { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, { 225, 48 },
70 {{0|(14<<4)}, {15*15, 0}, 1}, // Ins 71 // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
71 72 { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }
72 {{1|(0<<4)}, {15*0.5, 16}, 1}, // Tab 73}, {
73 {{1|(1<<4)}, {15*1.5, 16}, 4}, // Q 74 // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Ins
74 {{1|(2<<4)}, {15*2.5, 16}, 4}, // W 75 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
75 {{1|(3<<4)}, {15*3.5, 16}, 4}, // E 76 // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , Del
76 {{1|(4<<4)}, {15*4.5, 16}, 4}, // R 77 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
77 {{1|(5<<4)}, {15*5.5, 16}, 4}, // T 78 // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Pgup
78 {{1|(6<<4)}, {15*6.5, 16}, 4}, // Y 79 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
79 {{1|(7<<4)}, {15*7.5, 16}, 4}, // U 80 // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Pgdn
80 {{1|(8<<4)}, {15*8.5, 16}, 4}, // I 81 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
81 {{1|(9<<4)}, {15*9.5, 16}, 4}, // O 82 // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
82 {{1|(10<<4)}, {15*10.5, 16}, 4}, // P 83 1, 1, 1, 4, 1, 1, 1, 1, 1
83 {{1|(11<<4)}, {15*11.5, 16}, 4}, // [ 84} };
84 {{1|(12<<4)}, {15*12.5, 16}, 4}, // ]
85 {{1|(13<<4)}, {15*13.75, 16}, 1}, //
86 {{1|(14<<4)}, {15*15, 16}, 1}, // Del
87
88 {{2|(0<<4)}, {15*0.75, 32}, 1}, // Capslock
89 {{2|(1<<4)}, {15*1.75, 32}, 4}, // A
90 {{2|(2<<4)}, {15*2.75, 32}, 4}, // S
91 {{2|(3<<4)}, {15*3.75, 32}, 4}, // D
92 {{2|(4<<4)}, {15*4.75, 32}, 4}, // F
93 {{2|(5<<4)}, {15*5.75, 32}, 4}, // G
94 {{2|(6<<4)}, {15*6.75, 32}, 4}, // H
95 {{2|(7<<4)}, {15*7.75, 32}, 4}, // J
96 {{2|(8<<4)}, {15*8.75, 32}, 4}, // K
97 {{2|(9<<4)}, {15*9.75, 32}, 4}, // L
98 {{2|(10<<4)}, {15*10.75, 32}, 4}, // ;
99 {{2|(11<<4)}, {15*11.75, 32}, 4}, // '
100 {{2|(13<<4)}, {15*13.25, 32}, 1}, // Enter
101 {{2|(14<<4)}, {15*15, 32}, 1}, // Pgup
102
103 {{3|(0<<4)}, {15*1.25, 48}, 1}, // LShift
104 {{3|(2<<4)}, {15*2, 48}, 4}, // Z
105 {{3|(3<<4)}, {15*3, 48}, 4}, // X
106 {{3|(4<<4)}, {15*4, 48}, 4}, // C
107 {{3|(5<<4)}, {15*5, 48}, 4}, // V
108 {{3|(6<<4)}, {15*6, 48}, 4}, // B
109 {{3|(7<<4)}, {15*7, 48}, 4}, // N
110 {{3|(8<<4)}, {15*8, 48}, 4}, // M
111 {{3|(9<<4)}, {15*9, 48}, 4}, // ,
112 {{3|(10<<4)}, {15*10, 48}, 4}, // .
113 {{3|(11<<4)}, {15*11, 48}, 4}, // /
114 {{3|(12<<4)}, {15*12.75, 48}, 1}, // Shift
115 {{3|(13<<4)}, {15*14, 48}, 1}, // Up
116 {{3|(14<<4)}, {15*15, 48}, 1}, // Pgdn
117
118 {{4|(0<<4)}, {15*0.25, 64}, 1}, // Ctrl
119 {{4|(1<<4)}, {15*1.5, 64}, 1}, // GUI
120 {{4|(2<<4)}, {15*2.25, 64}, 1}, // Alt
121 {{4|(3<<4)}, {15*6.75, 64}, 4}, // Space
122 {{4|(9<<4)}, {15*9, 64}, 1}, // RAlt
123 {{4|(10<<4)}, {15*10.25, 64}, 1}, // FN
124 {{4|(12<<4)}, {15*13, 64}, 1}, // Left
125 {{4|(13<<4)}, {15*14, 64}, 1}, // Down
126 {{4|(14<<4)}, {15*15, 64}, 1}, // Right
127};
diff --git a/keyboards/dztech/dz40rgb/dz40rgb.c b/keyboards/dztech/dz40rgb/dz40rgb.c
index 34bfc4366..e5e39c92a 100644
--- a/keyboards/dztech/dz40rgb/dz40rgb.c
+++ b/keyboards/dztech/dz40rgb/dz40rgb.c
@@ -52,7 +52,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
52 {0, E_3, D_3, F_3}, 52 {0, E_3, D_3, F_3},
53 {0, E_2, D_2, F_2}, 53 {0, E_2, D_2, F_2},
54 {0, E_1, D_1, F_1}, 54 {0, E_1, D_1, F_1},
55 55
56 {0, E_13, D_13, F_13}, 56 {0, E_13, D_13, F_13},
57 {0, E_14, D_14, F_14}, 57 {0, E_14, D_14, F_14},
58 58
@@ -71,70 +71,25 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
71 71
72}; 72};
73 73
74rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 74led_config_t g_led_config = { {
75 75 { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
76 {{0|(11<<4)}, {20.36*11, 0}, 1}, 76 { 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
77 {{0|(10<<4)}, {20.36*10, 0}, 1}, 77 { 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28 },
78 {{0|(9<<4)}, {20.36*9, 0}, 1}, 78 { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42 }
79 {{0|(8<<4)}, {20.36*8, 0}, 1}, 79}, {
80 {{0|(7<<4)}, {20.36*7, 0}, 1}, 80 { 223, 0 }, { 203, 0 }, { 183, 0 }, { 162, 0 }, { 142, 0 }, { 122, 0 }, { 101, 0 }, { 81, 0 }, { 61, 0 }, { 40, 0 }, { 20, 0 }, { 0, 0 },
81 {{0|(6<<4)}, { 20.36*6, 0}, 1}, 81 { 223, 10 }, { 0, 10 }, { 223, 21 }, { 203, 21 }, { 183, 21 }, { 162, 21 }, { 142, 21 }, { 122, 21 }, { 101, 21 }, { 81, 21 }, { 61, 21 }, { 40, 21 },
82 {{0|(5<<4)}, { 20.36*5, 0}, 1}, 82 { 20, 21 }, { 0, 21 }, { 223, 31 }, { 0, 31 }, { 223, 42 }, { 203, 42 }, { 183, 42 }, { 162, 42 }, { 142, 42 }, { 122, 42 }, { 101, 42 }, { 81, 42 },
83 {{0|(4<<4)}, { 20.36*4, 0}, 1}, 83 { 61, 42 }, { 40, 42 }, { 20, 42 }, { 0, 42 }, { 223, 53 }, { 0, 53 }, { 223, 63 }, { 203, 63 }, { 183, 63 }, { 162, 63 }, { 142, 63 }, { 122, 63 },
84 {{0|(3<<4)}, { 20.36*3, 0}, 1}, 84 { 101, 63 }, { 81, 63 }, { 61, 63 }, { 40, 63 }, { 20, 63 }, { 0, 63 }
85 {{0|(2<<4)}, { 20.36*2, 0}, 1}, 85}, {
86 {{0|(1<<4)}, { 20.36*1, 0}, 1}, 86 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
87 {{0|(0<<4)}, { 20.36*0, 0}, 1}, 87 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4,
88 88 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4,
89 {{0|(12<<4)}, {20.36*11, 21.33*0.5}, 1}, 89 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1,
90 {{0|(13<<4)}, {20.36*0,21.33*0.5}, 1}, 90 1, 1, 1, 1, 1, 1
91 91} };
92 {{1|(11<<4)}, {20.36*11, 21.33}, 1},
93 {{1|(10<<4)}, {20.36*10, 21.33}, 4},
94 {{1|(9<<4)}, {20.36*9, 21.33}, 4},
95 {{1|(8<<4)}, {20.36*8, 21.33}, 4},
96 {{1|(7<<4)}, {20.36*7, 21.33}, 4},
97 {{1|(6<<4)}, { 20.36*6, 21.33}, 4},
98 {{1|(5<<4)}, { 20.36*5, 21.33}, 4},
99 {{1|(4<<4)}, { 20.36*4, 21.33}, 4},
100 {{1|(3<<4)}, { 20.36*3, 21.33}, 4},
101 {{1|(2<<4)}, { 20.36*2, 21.33}, 4},
102 {{1|(1<<4)}, { 20.36*1, 21.33}, 4},
103 {{1|(0<<4)}, { 20.36*0, 21.33}, 1},
104
105 {{1|(12<<4)}, {20.36*11, 21.33*1.5}, 1},
106 {{1|(13<<4)}, {20.36*0,21.33*1.5}, 1},
107 92
108 {{2|(11<<4)}, {20.36*11, 21.33*2}, 1},
109 {{2|(10<<4)}, {20.36*10, 21.33*2}, 4},
110 {{2|(9<<4)}, {20.36*9, 21.33*2}, 4},
111 {{2|(8<<4)}, {20.36*8, 21.33*2}, 4},
112 {{2|(7<<4)}, {20.36*7, 21.33*2}, 4},
113 {{2|(6<<4)}, { 20.36*6, 21.33*2}, 4},
114 {{2|(5<<4)}, { 20.36*5, 21.33*2}, 4},
115 {{2|(4<<4)}, { 20.36*4, 21.33*2}, 4},
116 {{2|(3<<4)}, { 20.36*3, 21.33*2}, 4},
117 {{2|(2<<4)}, { 20.36*2, 21.33*2}, 4},
118 {{2|(1<<4)}, { 20.36*1, 21.33*2}, 4},
119 {{2|(0<<4)}, { 20.36*0, 21.33*2}, 1},
120
121 {{2|(12<<4)}, {20.36*11, 21.33*2.5}, 1},
122 {{2|(13<<4)}, {20.36*0,21.33*2.5}, 1},
123
124 {{3|(11<<4)}, {20.36*11, 21.33*3}, 1},
125 {{3|(10<<4)}, {20.36*10, 21.33*3}, 1},
126 {{3|(9<<4)}, {20.36*9, 21.33*3}, 1},
127 {{3|(8<<4)}, {20.36*8, 21.33*3}, 1},
128 {{3|(7<<4)}, {20.36*7, 21.33*3}, 1},
129 {{3|(6<<4)}, { 20.36*6, 21.33*3}, 1},
130 {{3|(5<<4)}, { 20.36*5, 21.33*3}, 1},
131 {{3|(4<<4)}, { 20.36*4, 21.33*3}, 1},
132 {{3|(3<<4)}, { 20.36*3, 21.33*3}, 1},
133 {{3|(2<<4)}, { 20.36*2, 21.33*3}, 1},
134 {{3|(1<<4)}, { 20.36*1, 21.33*3}, 1},
135 {{3|(0<<4)}, { 20.36*0, 21.33*3}, 1}
136
137};
138#else 93#else
139const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { 94const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
140/* Refer to IS31 manual for these locations 95/* Refer to IS31 manual for these locations
@@ -205,69 +160,25 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
205 160
206}; 161};
207 162
208rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 163led_config_t g_led_config = { {
164 { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
165 { 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
166 { 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28 },
167 { 52, 51, 50, 49, 48, NO_LED, 47, 46, 45, 44, 43, 42 }
168}, {
169 { 223, 0 }, { 203, 0 }, { 183, 0 }, { 162, 0 }, { 142, 0 }, { 122, 0 }, { 101, 0 }, { 81, 0 }, { 61, 0 }, { 40, 0 }, { 20, 0 }, { 0, 0 },
170 { 223, 10 }, { 0, 10 }, { 223, 21 }, { 203, 21 }, { 183, 21 }, { 162, 21 }, { 142, 21 }, { 122, 21 }, { 101, 21 }, { 81, 21 }, { 61, 21 }, { 40, 21 },
171 { 20, 21 }, { 0, 21 }, { 223, 31 }, { 0, 31 }, { 223, 42 }, { 203, 42 }, { 183, 42 }, { 162, 42 }, { 142, 42 }, { 122, 42 }, { 101, 42 }, { 81, 42 },
172 { 61, 42 }, { 40, 42 }, { 20, 42 }, { 0, 42 }, { 223, 53 }, { 0, 53 }, { 223, 63 }, { 203, 63 }, { 183, 63 }, { 162, 63 }, { 142, 63 }, { 111, 63 },
173 { 81, 63 }, { 61, 63 }, { 40, 63 }, { 20, 63 }, { 0, 63 }
174}, {
175 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
176 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4,
177 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4,
178 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1,
179 1, 1, 1, 1, 1
180} };
209 181
210 {{0|(11<<4)}, {20.36*11, 0}, 1},
211 {{0|(10<<4)}, {20.36*10, 0}, 1},
212 {{0|(9<<4)}, {20.36*9, 0}, 1},
213 {{0|(8<<4)}, {20.36*8, 0}, 1},
214 {{0|(7<<4)}, {20.36*7, 0}, 1},
215 {{0|(6<<4)}, { 20.36*6, 0}, 1},
216 {{0|(5<<4)}, { 20.36*5, 0}, 1},
217 {{0|(4<<4)}, { 20.36*4, 0}, 1},
218 {{0|(3<<4)}, { 20.36*3, 0}, 1},
219 {{0|(2<<4)}, { 20.36*2, 0}, 1},
220 {{0|(1<<4)}, { 20.36*1, 0}, 1},
221 {{0|(0<<4)}, { 20.36*0, 0}, 1},
222
223 {{0|(12<<4)}, {20.36*11, 21.33*0.5}, 1},
224 {{0|(13<<4)}, {20.36*0,21.33*0.5}, 1},
225
226 {{1|(11<<4)}, {20.36*11, 21.33}, 1},
227 {{1|(10<<4)}, {20.36*10, 21.33}, 4},
228 {{1|(9<<4)}, {20.36*9, 21.33}, 4},
229 {{1|(8<<4)}, {20.36*8, 21.33}, 4},
230 {{1|(7<<4)}, {20.36*7, 21.33}, 4},
231 {{1|(6<<4)}, { 20.36*6, 21.33}, 4},
232 {{1|(5<<4)}, { 20.36*5, 21.33}, 4},
233 {{1|(4<<4)}, { 20.36*4, 21.33}, 4},
234 {{1|(3<<4)}, { 20.36*3, 21.33}, 4},
235 {{1|(2<<4)}, { 20.36*2, 21.33}, 4},
236 {{1|(1<<4)}, { 20.36*1, 21.33}, 4},
237 {{1|(0<<4)}, { 20.36*0, 21.33}, 1},
238
239 {{1|(12<<4)}, {20.36*11, 21.33*1.5}, 1},
240 {{1|(13<<4)}, {20.36*0,21.33*1.5}, 1},
241
242 {{2|(11<<4)}, {20.36*11, 21.33*2}, 1},
243 {{2|(10<<4)}, {20.36*10, 21.33*2}, 4},
244 {{2|(9<<4)}, {20.36*9, 21.33*2}, 4},
245 {{2|(8<<4)}, {20.36*8, 21.33*2}, 4},
246 {{2|(7<<4)}, {20.36*7, 21.33*2}, 4},
247 {{2|(6<<4)}, { 20.36*6, 21.33*2}, 4},
248 {{2|(5<<4)}, { 20.36*5, 21.33*2}, 4},
249 {{2|(4<<4)}, { 20.36*4, 21.33*2}, 4},
250 {{2|(3<<4)}, { 20.36*3, 21.33*2}, 4},
251 {{2|(2<<4)}, { 20.36*2, 21.33*2}, 4},
252 {{2|(1<<4)}, { 20.36*1, 21.33*2}, 4},
253 {{2|(0<<4)}, { 20.36*0, 21.33*2}, 1},
254
255 {{2|(12<<4)}, {20.36*11, 21.33*2.5}, 1},
256 {{2|(13<<4)}, {20.36*0,21.33*2.5}, 1},
257
258 {{3|(11<<4)}, {20.36*11, 21.33*3}, 1},
259 {{3|(10<<4)}, {20.36*10, 21.33*3}, 1},
260 {{3|(9<<4)}, {20.36*9, 21.33*3}, 1},
261 {{3|(8<<4)}, {20.36*8, 21.33*3}, 1},
262 {{3|(7<<4)}, {20.36*7, 21.33*3}, 1},
263 {{3|(6<<4)}, { 20.36*5.5, 21.33*3}, 1},
264 {{3|(4<<4)}, { 20.36*4, 21.33*3}, 1},
265 {{3|(3<<4)}, { 20.36*3, 21.33*3}, 1},
266 {{3|(2<<4)}, { 20.36*2, 21.33*3}, 1},
267 {{3|(1<<4)}, { 20.36*1, 21.33*3}, 1},
268 {{3|(0<<4)}, { 20.36*0, 21.33*3}, 1}
269
270};
271#endif 182#endif
272 183
273 184
diff --git a/keyboards/dztech/dz40rgb/keymaps/default/keymap.c b/keyboards/dztech/dz40rgb/keymaps/default/keymap.c
index 59b917121..650c178a7 100644
--- a/keyboards/dztech/dz40rgb/keymaps/default/keymap.c
+++ b/keyboards/dztech/dz40rgb/keymaps/default/keymap.c
@@ -31,11 +31,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 ), 31 ),
32 32
33}; 33};
34
35extern led_config_t g_led_config;
34void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { 36void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
35 rgb_led led;
36 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 37 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
37 led = g_rgb_leds[i]; 38 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
38 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
39 rgb_matrix_set_color( i, red, green, blue ); 39 rgb_matrix_set_color( i, red, green, blue );
40 } 40 }
41 } 41 }
diff --git a/keyboards/dztech/dz40rgb/keymaps/split_space/keymap.c b/keyboards/dztech/dz40rgb/keymaps/split_space/keymap.c
index 5613e3500..80741b19c 100644
--- a/keyboards/dztech/dz40rgb/keymaps/split_space/keymap.c
+++ b/keyboards/dztech/dz40rgb/keymaps/split_space/keymap.c
@@ -53,12 +53,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
53 53
54 54
55 55
56 56extern led_config_t g_led_config;
57void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { 57void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
58 rgb_led led;
59 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 58 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
60 led = g_rgb_leds[i]; 59 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
61 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
62 rgb_matrix_set_color( i, red, green, blue ); 60 rgb_matrix_set_color( i, red, green, blue );
63 } 61 }
64 } 62 }
diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c
index 10b2ea7a8..28ac7ce9e 100644
--- a/keyboards/dztech/dz60rgb/dz60rgb.c
+++ b/keyboards/dztech/dz60rgb/dz60rgb.c
@@ -65,69 +65,26 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
65 {0, K_16, J_16, L_16}, 65 {0, K_16, J_16, L_16},
66}; 66};
67 67
68rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 68led_config_t g_led_config = { {
69 {{0|(13<<4)}, {16*13.5, 0}, 1}, 69 { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
70 {{0|(12<<4)}, {16*12, 0}, 1}, 70 { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 28 },
71 {{0|(11<<4)}, {16*11, 0}, 1}, 71 { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 14 },
72 {{0|(10<<4)}, {16*10, 0}, 1}, 72 { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
73 {{0|(9<<4)}, {16*9, 0}, 1}, 73 { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
74 {{0|(8<<4)}, {16*8, 0}, 1}, 74}, {
75 {{0|(7<<4)}, {16*7, 0}, 1}, 75 { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
76 {{0|(6<<4)}, {16*6, 0}, 1}, 76 { 220, 24 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
77 {{0|(5<<4)}, {16*5, 0}, 1}, 77 { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 210, 48 },
78 {{0|(4<<4)}, {16*4, 0}, 1}, 78 { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 222, 64 }, { 202, 64 }, { 182, 64 },
79 {{0|(3<<4)}, {16*3, 0}, 1}, 79 { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
80 {{0|(2<<4)}, {16*2, 0}, 1}, 80}, {
81 {{0|(1<<4)}, {16*1, 0}, 1}, 81 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
82 {{0|(0<<4)}, {16*0, 0}, 1}, 82 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
83 {{2|(13<<4)}, {16*13.75, 24}, 1}, 83 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
84 {{1|(12<<4)}, {16*12.5, 16}, 4}, 84 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
85 {{1|(11<<4)}, {16*11.5, 16}, 4}, 85 1, 4, 1, 1, 1
86 {{1|(10<<4)}, {16*10.5, 16}, 4}, 86} };
87 {{1|(9<<4)}, { 16*9.5, 16}, 4}, 87
88 {{1|(8<<4)}, { 16*8.5, 16}, 4},
89 {{1|(7<<4)}, { 16*7.5, 16}, 4},
90 {{1|(6<<4)}, { 16*6.5, 16}, 4},
91 {{1|(5<<4)}, { 16*5.5, 16}, 4},
92 {{1|(4<<4)}, { 16*4.5, 16}, 4},
93 {{1|(3<<4)}, { 16*3.5, 16}, 4},
94 {{1|(2<<4)}, { 16*2.5, 16}, 4},
95 {{1|(1<<4)}, { 16*1.5, 16}, 4},
96 {{1|(0<<4)}, { 16*0.25, 16}, 1},
97 {{1|(13<<4)}, {16*12.75, 32}, 1},
98 {{2|(11<<4)}, {16*11.75, 32}, 4},
99 {{2|(10<<4)}, {16*10.75, 32}, 4},
100 {{2|(9<<4)}, {16*9.75, 32}, 4},
101 {{2|(8<<4)}, {16*8.75, 32}, 4},
102 {{2|(7<<4)}, {16*7.75, 32}, 4},
103 {{2|(6<<4)}, { 16*6.75, 32}, 4},
104 {{2|(5<<4)}, { 16*5.75, 32}, 4},
105 {{2|(4<<4)}, { 16*4.75, 32}, 4},
106 {{2|(3<<4)}, { 16*3.75, 32}, 4},
107 {{2|(2<<4)}, { 16*2.75, 32}, 4},
108 {{2|(1<<4)}, { 16*1.75, 32}, 4},
109 {{2|(0<<4)}, { 16*0.375, 32}, 1},
110 {{3|(11<<4)}, {16*13.125, 48}, 1},
111 {{3|(10<<4)}, {16*11.25, 48}, 4},
112 {{3|(9<<4)}, {16*10.25, 48}, 4},
113 {{3|(8<<4)}, {16*9.25, 48}, 4},
114 {{3|(7<<4)}, {16*8.25, 48}, 4},
115 {{3|(6<<4)}, {16*7.25, 48}, 4},
116 {{3|(5<<4)}, {16*6.25, 48}, 4},
117 {{3|(4<<4)}, {16*5.25, 48}, 4},
118 {{3|(3<<4)}, {16*4.25, 48}, 4},
119 {{3|(2<<4)}, {16*3.25, 48}, 4},
120 {{3|(1<<4)}, {16*1.25, 48}, 4},
121 {{3|(0<<4)}, {16*0.625, 48}, 1},
122 {{4|(13<<4)}, {16*13.875, 64}, 1},
123 {{4|(11<<4)}, {16*12.625, 64}, 1},
124 {{4|(10<<4)}, {16*11.375, 64}, 1},
125 {{4|(9<<4)}, {16*10.125, 64}, 1},
126 {{4|(5<<4)}, { 16*6.375, 64}, 4},
127 {{4|(2<<4)}, { 16*2.625, 64}, 1},
128 {{4|(1<<4)}, { 16*1.375, 64}, 1},
129 {{4|(0<<4)}, { 16*0.125, 64}, 1},
130};
131#elif defined (dzrgb60_hhkb) 88#elif defined (dzrgb60_hhkb)
132const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { 89const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
133 {0, H_15, G_15, I_15}, 90 {0, H_15, G_15, I_15},
@@ -194,70 +151,26 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
194 {0, K_16, J_16, L_16}, 151 {0, K_16, J_16, L_16},
195}; 152};
196 153
197rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 154led_config_t g_led_config = { {
198 {{2|(12<<4)}, {16*14, 0}, 1}, 155 { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
199 {{0|(13<<4)}, {16*13, 0}, 1}, 156 { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
200 {{0|(12<<4)}, {16*12, 0}, 1}, 157 { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 29 },
201 {{0|(11<<4)}, {16*11, 0}, 1}, 158 { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
202 {{0|(10<<4)}, {16*10, 0}, 1}, 159 { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
203 {{0|(9<<4)}, {16*9, 0}, 1}, 160}, {
204 {{0|(8<<4)}, {16*8, 0}, 1}, 161 { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 },
205 {{0|(7<<4)}, {16*7, 0}, 1}, 162 { 0, 0 }, { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 },
206 {{0|(6<<4)}, {16*6, 0}, 1}, 163 { 4, 16 }, { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
207 {{0|(5<<4)}, {16*5, 0}, 1}, 164 { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 218, 64 },
208 {{0|(4<<4)}, {16*4, 0}, 1}, 165 { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
209 {{0|(3<<4)}, {16*3, 0}, 1}, 166}, {
210 {{0|(2<<4)}, {16*2, 0}, 1}, 167 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
211 {{0|(1<<4)}, {16*1, 0}, 1}, 168 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
212 {{0|(0<<4)}, {16*0, 0}, 1}, 169 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
213 {{1|(13<<4)}, {16*13.75, 16}, 1}, 170 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
214 {{1|(12<<4)}, {16*12.5, 16}, 4}, 171 1, 1, 4, 1, 1, 1
215 {{1|(11<<4)}, {16*11.5, 16}, 4}, 172} };
216 {{1|(10<<4)}, {16*10.5, 16}, 4}, 173
217 {{1|(9<<4)}, { 16*9.5, 16}, 4},
218 {{1|(8<<4)}, { 16*8.5, 16}, 4},
219 {{1|(7<<4)}, { 16*7.5, 16}, 4},
220 {{1|(6<<4)}, { 16*6.5, 16}, 4},
221 {{1|(5<<4)}, { 16*5.5, 16}, 4},
222 {{1|(4<<4)}, { 16*4.5, 16}, 4},
223 {{1|(3<<4)}, { 16*3.5, 16}, 4},
224 {{1|(2<<4)}, { 16*2.5, 16}, 4},
225 {{1|(1<<4)}, { 16*1.5, 16}, 4},
226 {{1|(0<<4)}, { 16*0.25, 16}, 1},
227 {{2|(13<<4)}, {16*12.75, 32}, 1},
228 {{2|(11<<4)}, {16*11.75, 32}, 4},
229 {{2|(10<<4)}, {16*10.75, 32}, 4},
230 {{2|(9<<4)}, {16*9.75, 32}, 4},
231 {{2|(8<<4)}, {16*8.75, 32}, 4},
232 {{2|(7<<4)}, {16*7.75, 32}, 4},
233 {{2|(6<<4)}, { 16*6.75, 32}, 4},
234 {{2|(5<<4)}, { 16*5.75, 32}, 4},
235 {{2|(4<<4)}, { 16*4.75, 32}, 4},
236 {{2|(3<<4)}, { 16*3.75, 32}, 4},
237 {{2|(2<<4)}, { 16*2.75, 32}, 4},
238 {{2|(1<<4)}, { 16*1.75, 32}, 4},
239 {{2|(0<<4)}, { 16*0.375, 32}, 1},
240 {{3|(13<<4)}, {16*14, 48}, 1},
241 {{3|(11<<4)}, {16*12.625, 48}, 4},
242 {{3|(10<<4)}, {16*11.25, 48}, 4},
243 {{3|(9<<4)}, {16*10.25, 48}, 4},
244 {{3|(8<<4)}, {16*9.25, 48}, 4},
245 {{3|(7<<4)}, {16*8.25, 48}, 4},
246 {{3|(6<<4)}, {16*7.25, 48}, 4},
247 {{3|(5<<4)}, {16*6.25, 48}, 4},
248 {{3|(4<<4)}, {16*5.25, 48}, 4},
249 {{3|(3<<4)}, {16*4.25, 48}, 4},
250 {{3|(2<<4)}, {16*3.25, 48}, 4},
251 {{3|(1<<4)}, {16*1.25, 48}, 4},
252 {{3|(0<<4)}, {16*0.625, 48}, 1},
253 {{4|(13<<4)}, {16*13.625, 64}, 1},
254 {{4|(11<<4)}, {16*12.375, 64}, 1},
255 {{4|(10<<4)}, {16*11.125, 64}, 1},
256 {{4|(5<<4)}, { 16*7, 64}, 4},
257 {{4|(2<<4)}, { 16*2.875, 64}, 1},
258 {{4|(1<<4)}, { 16*1.625, 64}, 1},
259 {{4|(0<<4)}, { 16*0.375, 64}, 1},
260};
261#elif defined (dzrgb60_hhkb_iso) 174#elif defined (dzrgb60_hhkb_iso)
262const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { 175const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
263 {0, H_15, G_15, I_15}, 176 {0, H_15, G_15, I_15},
@@ -324,70 +237,26 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
324 {0, K_16, J_16, L_16}, 237 {0, K_16, J_16, L_16},
325}; 238};
326 239
327rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 240led_config_t g_led_config = { {
328 {{2|(12<<4)}, {16*14, 0}, 1}, 241 { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
329 {{0|(13<<4)}, {16*13, 0}, 1}, 242 { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 29 },
330 {{0|(12<<4)}, {16*12, 0}, 1}, 243 { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 15 },
331 {{0|(11<<4)}, {16*11, 0}, 1}, 244 { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
332 {{0|(10<<4)}, {16*10, 0}, 1}, 245 { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
333 {{0|(9<<4)}, {16*9, 0}, 1}, 246}, {
334 {{0|(8<<4)}, {16*8, 0}, 1}, 247 { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 },
335 {{0|(7<<4)}, {16*7, 0}, 1}, 248 { 0, 0 }, { 220, 24 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 },
336 {{0|(6<<4)}, {16*6, 0}, 1}, 249 { 4, 16 }, { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
337 {{0|(5<<4)}, {16*5, 0}, 1}, 250 { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 218, 64 },
338 {{0|(4<<4)}, {16*4, 0}, 1}, 251 { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
339 {{0|(3<<4)}, {16*3, 0}, 1}, 252}, {
340 {{0|(2<<4)}, {16*2, 0}, 1}, 253 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
341 {{0|(1<<4)}, {16*1, 0}, 1}, 254 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
342 {{0|(0<<4)}, {16*0, 0}, 1}, 255 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
343 {{2|(13<<4)}, {16*13.75, 24}, 1}, 256 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
344 {{1|(12<<4)}, {16*12.5, 16}, 4}, 257 1, 1, 4, 1, 1, 1
345 {{1|(11<<4)}, {16*11.5, 16}, 4}, 258} };
346 {{1|(10<<4)}, {16*10.5, 16}, 4}, 259
347 {{1|(9<<4)}, { 16*9.5, 16}, 4},
348 {{1|(8<<4)}, { 16*8.5, 16}, 4},
349 {{1|(7<<4)}, { 16*7.5, 16}, 4},
350 {{1|(6<<4)}, { 16*6.5, 16}, 4},
351 {{1|(5<<4)}, { 16*5.5, 16}, 4},
352 {{1|(4<<4)}, { 16*4.5, 16}, 4},
353 {{1|(3<<4)}, { 16*3.5, 16}, 4},
354 {{1|(2<<4)}, { 16*2.5, 16}, 4},
355 {{1|(1<<4)}, { 16*1.5, 16}, 4},
356 {{1|(0<<4)}, { 16*0.25, 16}, 1},
357 {{1|(13<<4)}, {16*12.75, 32}, 1},
358 {{2|(11<<4)}, {16*11.75, 32}, 4},
359 {{2|(10<<4)}, {16*10.75, 32}, 4},
360 {{2|(9<<4)}, {16*9.75, 32}, 4},
361 {{2|(8<<4)}, {16*8.75, 32}, 4},
362 {{2|(7<<4)}, {16*7.75, 32}, 4},
363 {{2|(6<<4)}, { 16*6.75, 32}, 4},
364 {{2|(5<<4)}, { 16*5.75, 32}, 4},
365 {{2|(4<<4)}, { 16*4.75, 32}, 4},
366 {{2|(3<<4)}, { 16*3.75, 32}, 4},
367 {{2|(2<<4)}, { 16*2.75, 32}, 4},
368 {{2|(1<<4)}, { 16*1.75, 32}, 4},
369 {{2|(0<<4)}, { 16*0.375, 32}, 1},
370 {{3|(13<<4)}, {16*14, 48}, 1},
371 {{3|(11<<4)}, {16*12.625, 48}, 4},
372 {{3|(10<<4)}, {16*11.25, 48}, 4},
373 {{3|(9<<4)}, {16*10.25, 48}, 4},
374 {{3|(8<<4)}, {16*9.25, 48}, 4},
375 {{3|(7<<4)}, {16*8.25, 48}, 4},
376 {{3|(6<<4)}, {16*7.25, 48}, 4},
377 {{3|(5<<4)}, {16*6.25, 48}, 4},
378 {{3|(4<<4)}, {16*5.25, 48}, 4},
379 {{3|(3<<4)}, {16*4.25, 48}, 4},
380 {{3|(2<<4)}, {16*3.25, 48}, 4},
381 {{3|(1<<4)}, {16*1.25, 48}, 4},
382 {{3|(0<<4)}, {16*0.625, 48}, 1},
383 {{4|(13<<4)}, {16*13.625, 64}, 1},
384 {{4|(11<<4)}, {16*12.375, 64}, 1},
385 {{4|(10<<4)}, {16*11.125, 64}, 1},
386 {{4|(5<<4)}, { 16*7, 64}, 4},
387 {{4|(2<<4)}, { 16*2.875, 64}, 1},
388 {{4|(1<<4)}, { 16*1.625, 64}, 1},
389 {{4|(0<<4)}, { 16*0.375, 64}, 1},
390};
391#elif defined (dzrgb60_ansi) 260#elif defined (dzrgb60_ansi)
392const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { 261const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
393 {0, K_14, J_14, L_14}, 262 {0, K_14, J_14, L_14},
@@ -453,69 +322,26 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
453 {0, K_16, J_16, L_16}, 322 {0, K_16, J_16, L_16},
454}; 323};
455 324
456rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 325led_config_t g_led_config = { {
457 {{0|(13<<4)}, {16*13.5, 0}, 1}, 326 { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
458 {{0|(12<<4)}, {16*12, 0}, 1}, 327 { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
459 {{0|(11<<4)}, {16*11, 0}, 1}, 328 { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
460 {{0|(10<<4)}, {16*10, 0}, 1}, 329 { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
461 {{0|(9<<4)}, {16*9, 0}, 1}, 330 { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
462 {{0|(8<<4)}, {16*8, 0}, 1}, 331}, {
463 {{0|(7<<4)}, {16*7, 0}, 1}, 332 { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
464 {{0|(6<<4)}, {16*6, 0}, 1}, 333 { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
465 {{0|(5<<4)}, {16*5, 0}, 1}, 334 { 214, 24 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 210, 48 },
466 {{0|(4<<4)}, {16*4, 0}, 1}, 335 { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 222, 64 }, { 202, 64 }, { 182, 64 },
467 {{0|(3<<4)}, {16*3, 0}, 1}, 336 { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
468 {{0|(2<<4)}, {16*2, 0}, 1}, 337}, {
469 {{0|(1<<4)}, {16*1, 0}, 1}, 338 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
470 {{0|(0<<4)}, {16*0, 0}, 1}, 339 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
471 {{1|(13<<4)}, {16*13.75, 16}, 1}, 340 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
472 {{1|(12<<4)}, {16*12.5, 16}, 4}, 341 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
473 {{1|(11<<4)}, {16*11.5, 16}, 4}, 342 1, 4, 1, 1, 1
474 {{1|(10<<4)}, {16*10.5, 16}, 4}, 343} };
475 {{1|(9<<4)}, { 16*9.5, 16}, 4}, 344
476 {{1|(8<<4)}, { 16*8.5, 16}, 4},
477 {{1|(7<<4)}, { 16*7.5, 16}, 4},
478 {{1|(6<<4)}, { 16*6.5, 16}, 4},
479 {{1|(5<<4)}, { 16*5.5, 16}, 4},
480 {{1|(4<<4)}, { 16*4.5, 16}, 4},
481 {{1|(3<<4)}, { 16*3.5, 16}, 4},
482 {{1|(2<<4)}, { 16*2.5, 16}, 4},
483 {{1|(1<<4)}, { 16*1.5, 16}, 4},
484 {{1|(0<<4)}, { 16*0.25, 16}, 1},
485 {{2|(13<<4)}, {16*13.375, 24}, 1},
486 {{2|(11<<4)}, {16*11.75, 32}, 4},
487 {{2|(10<<4)}, {16*10.75, 32}, 4},
488 {{2|(9<<4)}, {16*9.75, 32}, 4},
489 {{2|(8<<4)}, {16*8.75, 32}, 4},
490 {{2|(7<<4)}, {16*7.75, 32}, 4},
491 {{2|(6<<4)}, { 16*6.75, 32}, 4},
492 {{2|(5<<4)}, { 16*5.75, 32}, 4},
493 {{2|(4<<4)}, { 16*4.75, 32}, 4},
494 {{2|(3<<4)}, { 16*3.75, 32}, 4},
495 {{2|(2<<4)}, { 16*2.75, 32}, 4},
496 {{2|(1<<4)}, { 16*1.75, 32}, 4},
497 {{2|(0<<4)}, { 16*0.375, 32}, 1},
498 {{3|(11<<4)}, {16*13.125, 48}, 1},
499 {{3|(10<<4)}, {16*11.25, 48}, 4},
500 {{3|(9<<4)}, {16*10.25, 48}, 4},
501 {{3|(8<<4)}, {16*9.25, 48}, 4},
502 {{3|(7<<4)}, {16*8.25, 48}, 4},
503 {{3|(6<<4)}, {16*7.25, 48}, 4},
504 {{3|(5<<4)}, {16*6.25, 48}, 4},
505 {{3|(4<<4)}, {16*5.25, 48}, 4},
506 {{3|(3<<4)}, {16*4.25, 48}, 4},
507 {{3|(2<<4)}, {16*3.25, 48}, 4},
508 {{3|(1<<4)}, {16*1.25, 48}, 4},
509 {{3|(0<<4)}, {16*0.625, 48}, 1},
510 {{4|(13<<4)}, {16*13.875, 64}, 1},
511 {{4|(11<<4)}, {16*12.625, 64}, 1},
512 {{4|(10<<4)}, {16*11.375, 64}, 1},
513 {{4|(9<<4)}, {16*10.125, 64}, 1},
514 {{4|(5<<4)}, { 16*6.375, 64}, 4},
515 {{4|(2<<4)}, { 16*2.625, 64}, 1},
516 {{4|(1<<4)}, { 16*1.375, 64}, 1},
517 {{4|(0<<4)}, { 16*0.125, 64}, 1},
518};
519#else 345#else
520const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { 346const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
521 {0, K_14, J_14, L_14}, 347 {0, K_14, J_14, L_14},
@@ -583,71 +409,26 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
583 {0, K_16, J_16, L_16}, 409 {0, K_16, J_16, L_16},
584}; 410};
585 411
586rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 412led_config_t g_led_config = { {
587 {{0|(13<<4)}, {17.23*13, 0}, 1}, 413 { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
588 {{0|(12<<4)}, {17.23*12, 0}, 1}, 414 { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
589 {{0|(11<<4)}, {17.23*11, 0}, 1}, 415 { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
590 {{0|(10<<4)}, {17.23*10, 0}, 1}, 416 { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 },
591 {{0|(9<<4)}, {17.23*9, 0}, 1}, 417 { 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 }
592 {{0|(8<<4)}, {17.23*8, 0}, 1}, 418}, {
593 {{0|(7<<4)}, {17.23*7, 0}, 1}, 419 { 223, 0 }, { 206, 0 }, { 189, 0 }, { 172, 0 }, { 155, 0 }, { 137, 0 }, { 120, 0 }, { 103, 0 }, { 86, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 },
594 {{0|(6<<4)}, { 17.23*6, 0}, 1}, 420 { 223, 16 }, { 206, 16 }, { 189, 16 }, { 172, 16 }, { 155, 16 }, { 137, 16 }, { 120, 16 }, { 103, 16 }, { 86, 16 }, { 68, 16 }, { 51, 16 }, { 34, 16 }, { 17, 16 }, { 0, 16 },
595 {{0|(5<<4)}, { 17.23*5, 0}, 1}, 421 { 223, 32 }, { 189, 32 }, { 172, 32 }, { 155, 32 }, { 137, 32 }, { 120, 32 }, { 103, 32 }, { 86, 32 }, { 68, 32 }, { 51, 32 }, { 34, 32 }, { 17, 32 }, { 0, 32 }, { 223, 48 },
596 {{0|(4<<4)}, { 17.23*4, 0}, 1}, 422 { 189, 48 }, { 172, 48 }, { 155, 48 }, { 137, 48 }, { 120, 48 }, { 103, 48 }, { 86, 48 }, { 68, 48 }, { 51, 48 }, { 34, 48 }, { 17, 48 }, { 0, 48 }, { 223, 64 }, { 189, 64 },
597 {{0|(3<<4)}, { 17.23*3, 0}, 1}, 423 { 172, 64 }, { 155, 64 }, { 137, 64 }, { 86, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 }
598 {{0|(2<<4)}, { 17.23*2, 0}, 1}, 424}, {
599 {{0|(1<<4)}, { 17.23*1, 0}, 1}, 425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
600 {{0|(0<<4)}, { 17.23*0, 0}, 1}, 426 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
601 {{1|(13<<4)}, {17.23*13, 16}, 1}, 427 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
602 {{1|(12<<4)}, {17.23*12, 16}, 4}, 428 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
603 {{1|(11<<4)}, {17.23*11, 16}, 4}, 429 1, 1, 1, 4, 1, 1, 1
604 {{1|(10<<4)}, {17.23*10, 16}, 4}, 430} };
605 {{1|(9<<4)}, {17.23*9, 16}, 4}, 431
606 {{1|(8<<4)}, {17.23*8, 16}, 4},
607 {{1|(7<<4)}, {17.23*7, 16}, 4},
608 {{1|(6<<4)}, { 17.23*6, 16}, 4},
609 {{1|(5<<4)}, { 17.23*5, 16}, 4},
610 {{1|(4<<4)}, { 17.23*4, 16}, 4},
611 {{1|(3<<4)}, { 17.23*3, 16}, 4},
612 {{1|(2<<4)}, { 17.23*2, 16}, 4},
613 {{1|(1<<4)}, { 17.23*1, 16}, 4},
614 {{1|(0<<4)}, { 17.23*0, 16}, 1},
615 {{2|(13<<4)}, {17.23*13, 32}, 1},
616 {{2|(11<<4)}, {17.23*11, 32}, 4},
617 {{2|(10<<4)}, {17.23*10, 32}, 4},
618 {{2|(9<<4)}, {17.23*9, 32}, 4},
619 {{2|(8<<4)}, {17.23*8, 32}, 4},
620 {{2|(7<<4)}, {17.23*7, 32}, 4},
621 {{2|(6<<4)}, { 17.23*6, 32}, 4},
622 {{2|(5<<4)}, { 17.23*5, 32}, 4},
623 {{2|(4<<4)}, { 17.23*4, 32}, 4},
624 {{2|(3<<4)}, { 17.23*3, 32}, 4},
625 {{2|(2<<4)}, { 17.23*2, 32}, 4},
626 {{2|(1<<4)}, { 17.23*1, 32}, 4},
627 {{2|(0<<4)}, { 17.23*0, 32}, 1},
628 {{3|(13<<4)}, {17.23*13, 48}, 1},
629 {{3|(11<<4)}, {17.23*11, 48}, 4},
630 {{3|(10<<4)}, {17.23*10, 48}, 4},
631 {{3|(9<<4)}, {17.23*9, 48}, 4},
632 {{3|(8<<4)}, {17.23*8, 48}, 4},
633 {{3|(7<<4)}, {17.23*7, 48}, 4},
634 {{3|(6<<4)}, { 17.23*6, 48}, 4},
635 {{3|(5<<4)}, { 17.23*5, 48}, 4},
636 {{3|(4<<4)}, { 17.23*4, 48}, 4},
637 {{3|(3<<4)}, { 17.23*3, 48}, 4},
638 {{3|(2<<4)}, { 17.23*2, 48}, 4},
639 {{3|(1<<4)}, { 17.23*1, 48}, 4},
640 {{3|(0<<4)}, { 17.23*0, 48}, 1},
641 {{4|(13<<4)}, {17.23*13, 64}, 1},
642 {{4|(11<<4)}, {17.23*11, 64}, 1},
643 {{4|(10<<4)}, {17.23*10, 64}, 1},
644 {{4|(9<<4)}, {17.23*9, 64}, 1},
645 {{4|(8<<4)}, {17.23*8, 64}, 1},
646 {{4|(5<<4)}, { 17.23*5, 64}, 4},
647 {{4|(2<<4)}, { 17.23*2, 64}, 1},
648 {{4|(1<<4)}, { 17.23*1, 64}, 1},
649 {{4|(0<<4)}, { 17.23*0, 64}, 1},
650};
651#endif 432#endif
652 433
653void matrix_init_kb(void) { 434void matrix_init_kb(void) {
diff --git a/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c b/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c
index 741fc55fb..584f035ef 100644
--- a/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c
+++ b/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c
@@ -38,11 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38 KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 38 KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
39 }; 39 };
40 40
41extern led_config_t g_led_config;
41void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { 42void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
42 rgb_led led;
43 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 43 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
44 led = g_rgb_leds[i]; 44 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
45 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
46 rgb_matrix_set_color( i, red, green, blue ); 45 rgb_matrix_set_color( i, red, green, blue );
47 } 46 }
48 } 47 }
diff --git a/keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c b/keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c
index 1f3807c3b..5a7a56801 100644
--- a/keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c
+++ b/keyboards/dztech/dz60rgb/keymaps/hhkb/keymap.c
@@ -39,11 +39,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 }; 39 };
40 40
41 41
42extern led_config_t g_led_config;
42void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { 43void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
43 rgb_led led;
44 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 44 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
45 led = g_rgb_leds[i]; 45 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
46 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
47 rgb_matrix_set_color( i, red, green, blue ); 46 rgb_matrix_set_color( i, red, green, blue );
48 } 47 }
49 } 48 }
diff --git a/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c b/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c
index 4575eb19d..34c1752ff 100644
--- a/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c
+++ b/keyboards/dztech/dz60rgb/keymaps/hhkb_iso/keymap.c
@@ -39,11 +39,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS), 39 KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS),
40 }; 40 };
41 41
42extern led_config_t g_led_config;
42void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { 43void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
43 rgb_led led;
44 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 44 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
45 led = g_rgb_leds[i]; 45 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
46 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
47 rgb_matrix_set_color( i, red, green, blue ); 46 rgb_matrix_set_color( i, red, green, blue );
48 } 47 }
49 } 48 }
diff --git a/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c b/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c
index 5e3884803..3a90d2f33 100644
--- a/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c
+++ b/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c
@@ -38,11 +38,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38 KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 38 KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
39 }; 39 };
40 40
41extern led_config_t g_led_config;
41void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { 42void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
42 rgb_led led;
43 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 43 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
44 led = g_rgb_leds[i]; 44 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
45 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
46 rgb_matrix_set_color( i, red, green, blue ); 45 rgb_matrix_set_color( i, red, green, blue );
47 } 46 }
48 } 47 }
diff --git a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c
index 3dfa78374..a6d1e226b 100644
--- a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c
+++ b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c
@@ -50,40 +50,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 50
51 51
52 52
53void rgb_matrix_layer_helper(uint8_t red, uint8_t green, uint8_t blue, bool default_layer) 53extern led_config_t g_led_config;
54{ 54void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
55 rgb_led led; 55 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
56 56 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
57 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 57 rgb_matrix_set_color( i, red, green, blue );
58 led = g_rgb_leds[i]; 58 }
59 59 }
60 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
61 rgb_matrix_set_color( i, red, green, blue );
62 }
63 }
64} 60}
65 61
66void rgb_matrix_indicators_user(void) 62void rgb_matrix_indicators_user(void)
67{ 63{
68 uint8_t this_led = host_keyboard_leds(); 64 uint8_t this_led = host_keyboard_leds();
69 65
70 if (!g_suspend_state) { 66 if (!g_suspend_state) {
71 switch (biton32(layer_state)) { 67 switch (biton32(layer_state)) {
72 case _LAYER1: 68 case _LAYER1:
73 rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break; 69 rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
74 70
75 case _LAYER2: 71 case _LAYER2:
76 rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break; 72 rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
77 73
78 case _LAYER4: 74 case _LAYER4:
79 rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break; 75 rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
80 } 76 }
81 } 77 }
82 78
83 if (this_led & (1 << USB_LED_CAPS_LOCK)) { 79 if (this_led & (1 << USB_LED_CAPS_LOCK)) {
84 rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); 80 rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
85 } 81 }
86 82
87 switch (biton32(layer_state)) { 83 switch (biton32(layer_state)) {
88 case _LAYER3: 84 case _LAYER3:
89 if (this_led & (1 << USB_LED_NUM_LOCK)) { 85 if (this_led & (1 << USB_LED_NUM_LOCK)) {
@@ -91,7 +87,7 @@ void rgb_matrix_indicators_user(void)
91 } else { 87 } else {
92 rgb_matrix_set_color(13, 0x00, 0x00, 0x00); 88 rgb_matrix_set_color(13, 0x00, 0x00, 0x00);
93 } 89 }
94 90
95 rgb_matrix_set_color(0, 0x00, 0xFF, 0x00); 91 rgb_matrix_set_color(0, 0x00, 0xFF, 0x00);
96 rgb_matrix_set_color(1, 0x00, 0x00, 0x00); 92 rgb_matrix_set_color(1, 0x00, 0x00, 0x00);
97 rgb_matrix_set_color(1, 0x00, 0xFF, 0x00); 93 rgb_matrix_set_color(1, 0x00, 0xFF, 0x00);
diff --git a/keyboards/dztech/dz65rgb/dz65rgb.c b/keyboards/dztech/dz65rgb/dz65rgb.c
index 78b345843..e14943d97 100644
--- a/keyboards/dztech/dz65rgb/dz65rgb.c
+++ b/keyboards/dztech/dz65rgb/dz65rgb.c
@@ -73,76 +73,26 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
73 {1, C9_16, C7_15, C6_15}, // LD16 73 {1, C9_16, C7_15, C6_15}, // LD16
74 {1, C8_16, C7_16, C6_16}, // LD17 74 {1, C8_16, C7_16, C6_16}, // LD17
75}; 75};
76rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 76
77 {{1|(7<<4)}, {16*7, 16}, 4}, 77led_config_t g_led_config = { {
78 {{1|(6<<4)}, {16*6, 16}, 4}, 78 { 17, 16, 15, 14, 13, 12, 11, 10, 9, 18, 19, 20, 21, 22, 23 },
79 {{1|(5<<4)}, {16*5, 16}, 4}, 79 { 7, 6, 5, 4, 3, 2, 1, 0, 26, 27, 28, 29, 30, 31, 24 },
80 {{1|(4<<4)}, {16*4, 16}, 4}, 80 { 8, 48, 47, 46, 45, 44, 43, 51, 52, 53, 54, 55, NO_LED, 56, 25 },
81 {{1|(3<<4)}, {16*3, 16}, 4}, 81 { 49, 40, 39, 38, 37, 36, 60, 61, 62, 63, 57, 58, NO_LED, 59, 32 },
82 {{1|(2<<4)}, {16*2, 16}, 4}, 82 { 50, 42, 41, NO_LED, NO_LED, 35, NO_LED, NO_LED, 64, 65, 66, 67, NO_LED, 34, 33 }
83 {{1|(1<<4)}, {16*1, 16}, 4}, 83}, {
84 {{1|(0<<4)}, {16*0, 16}, 1}, 84 { 112, 16 }, { 96, 16 }, { 80, 16 }, { 64, 16 }, { 48, 16 }, { 32, 16 }, { 16, 16 }, { 0, 16 }, { 0, 32 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 },
85 {{2|(0<<4)}, {16*0, 32}, 1}, 85 { 32, 0 }, { 16, 0 }, { 0, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 }, { 224, 16 }, { 224, 32 }, { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 },
86 {{0|(8<<4)}, {16*8, 0}, 1}, 86 { 192, 16 }, { 208, 16 }, { 224, 48 }, { 224, 64 }, { 208, 64 }, { 80, 64 }, { 80, 48 }, { 64, 48 }, { 48, 48 }, { 32, 48 }, { 16, 48 }, { 32, 64 }, { 16, 64 }, { 96, 32 }, { 80, 32 },
87 {{0|(7<<4)}, {16*7, 0}, 1}, 87 { 64, 32 }, { 48, 32 }, { 32, 32 }, { 16, 32 }, { 0, 48 }, { 0, 64 }, { 112, 32 }, { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 208, 32 }, { 160, 48 }, { 176, 48 }, { 208, 48 },
88 {{0|(6<<4)}, {16*6, 0}, 1}, 88 { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 128, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 }
89 {{0|(5<<4)}, {16*5, 0}, 1}, 89}, {
90 {{0|(4<<4)}, {16*4, 0}, 1}, 90 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1,
91 {{0|(3<<4)}, {16*3, 0}, 1}, 91 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
92 {{0|(2<<4)}, {16*2, 0}, 1}, 92 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 1, 1, 4, 4,
93 {{0|(1<<4)}, {16*1, 0}, 1}, 93 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4,
94 {{0|(0<<4)}, {16*0, 0}, 1}, 94 4, 4, 4, 4, 1, 1, 1, 1
95 {{0|(9<<4)}, {16*9, 0}, 1}, 95} };
96 {{0|(10<<4)}, {16*10, 0}, 1},
97 {{0|(11<<4)}, {16*11, 0}, 1},
98 {{0|(12<<4)}, {16*12, 0}, 1},
99 {{0|(13<<4)}, {16*13, 0}, 1},
100 {{0|(14<<4)}, {16*14, 0}, 1},
101 {{1|(14<<4)}, {16*14, 16}, 1},
102 {{2|(14<<4)}, {16*14, 32}, 1},
103 {{1|(8<<4)}, {16*8, 16}, 4},
104 {{1|(9<<4)}, {16*9, 16}, 4},
105 {{1|(10<<4)}, {16*10, 16}, 4},
106 {{1|(11<<4)}, {16*11, 16}, 4},
107 {{1|(12<<4)}, {16*12, 16}, 4},
108 {{1|(13<<4)}, {16*13, 16}, 4},
109 {{3|(14<<4)}, {16*14, 48}, 1},
110 {{4|(14<<4)}, {16*14, 64}, 1},
111 {{4|(13<<4)}, {16*13, 64}, 1},
112 {{4|(5<<4)}, {16*5, 64}, 1},
113 {{3|(5<<4)}, {16*5, 48}, 4},
114 {{3|(4<<4)}, {16*4, 48}, 4},
115 {{3|(3<<4)}, {16*3, 48}, 4},
116 {{3|(2<<4)}, {16*2, 48}, 4},
117 {{3|(1<<4)}, {16*1, 48}, 4},
118 {{4|(2<<4)}, {16*2, 64}, 1},
119 {{4|(1<<4)}, {16*1, 64}, 1},
120 {{2|(6<<4)}, {16*6, 32}, 4},
121 {{2|(5<<4)}, {16*5, 32}, 4},
122 {{2|(4<<4)}, {16*4, 32}, 4},
123 {{2|(3<<4)}, {16*3, 32}, 4},
124 {{2|(2<<4)}, {16*2, 32}, 4},
125 {{2|(1<<4)}, {16*1, 32}, 4},
126 {{3|(0<<4)}, {16*0, 48}, 1},
127 {{4|(0<<4)}, {16*0, 64}, 1},
128 {{2|(7<<4)}, {16*7, 32}, 4},
129 {{2|(8<<4)}, {16*8, 32}, 4},
130 {{2|(9<<4)}, {16*9, 32}, 4},
131 {{2|(10<<4)}, {16*10, 32}, 4},
132 {{2|(11<<4)}, {16*11, 32}, 4},
133 {{2|(13<<4)}, {16*13, 32}, 4},
134 {{3|(10<<4)}, {16*10, 48}, 4},
135 {{3|(11<<4)}, {16*11, 48}, 4},
136 {{3|(13<<4)}, {16*13, 48}, 4},
137 {{3|(6<<4)}, {16*6, 48}, 4},
138 {{3|(7<<4)}, {16*7, 48}, 4},
139 {{3|(8<<4)}, {16*8, 48}, 4},
140 {{3|(9<<4)}, {16*9, 48}, 4},
141 {{4|(8<<4)}, {16*8, 64}, 1},
142 {{4|(9<<4)}, {16*9, 64}, 1},
143 {{4|(10<<4)}, {16*10, 64}, 1},
144 {{4|(11<<4)}, {16*11, 64}, 1},
145};
146 96
147void suspend_power_down_kb(void) 97void suspend_power_down_kb(void)
148{ 98{
diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c
index 13ea84302..09443cf72 100644
--- a/keyboards/ergodox_ez/ergodox_ez.c
+++ b/keyboards/ergodox_ez/ergodox_ez.c
@@ -269,68 +269,39 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
269}; 269};
270 270
271 271
272rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 272led_config_t g_led_config = { {
273 273 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
274 /*{row | col << 4} 274 { 28, 33, 38, 43, 47, NO_LED },
275 | {x=0..224, y=0..64} 275 { 27, 32, 37, 42, 46, NO_LED },
276 | | flags 276 { 26, 31, 36, 41, 45, NO_LED },
277 | | | */ 277 { 25, 30, 35, 40, 44, NO_LED },
278 {{ 8|(0<<4)}, {17.2* 8, 12.8*0}, 4}, // LED 1 on right > Key 6 278 { 24, 29, 34, 39, NO_LED, NO_LED },
279 {{ 9|(0<<4)}, {17.2* 9, 12.8*0}, 4}, // LED 2 > Key 7 279 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
280 {{10|(0<<4)}, {17.2*10, 12.8*0}, 4}, // LED 3 > Key 8 280 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
281 {{11|(0<<4)}, {17.2*11, 12.8*0}, 4}, // LED 4 > Key 9 281 { 0, 5, 10, 15, NO_LED, NO_LED },
282 {{12|(0<<4)}, {17.2*12, 12.8*0}, 4}, // LED 5 > Key 0 282 { 1, 6, 11, 16, 20, NO_LED },
283 283 { 2, 7, 12, 17, 21, NO_LED },
284 {{ 8|(1<<4)}, {17.2* 8, 12.8*1}, 4}, // LED 6 284 { 3, 8, 13, 18, 22, NO_LED },
285 {{ 9|(1<<4)}, {17.2* 9, 12.8*1}, 4}, // LED 7 285 { 4, 9, 14, 19, 23, NO_LED },
286 {{10|(1<<4)}, {17.2*10, 12.8*1}, 4}, // LED 8 286 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
287 {{11|(1<<4)}, {17.2*11, 12.8*1}, 4}, // LED 9 287}, {
288 {{12|(1<<4)}, {17.2*12, 12.8*1}, 4}, // LED 10 288 { 137, 0 }, { 154, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 137, 12 },
289 289 { 154, 12 }, { 172, 12 }, { 189, 12 }, { 206, 12 }, { 137, 25 }, { 154, 25 },
290 {{ 8|(2<<4)}, {17.2* 8, 12.8*2}, 4}, // LED 11 290 { 172, 25 }, { 189, 25 }, { 206, 25 }, { 137, 38 }, { 154, 38 }, { 172, 38 },
291 {{ 9|(2<<4)}, {17.2* 9, 12.8*2}, 4}, // LED 12 291 { 189, 38 }, { 206, 38 }, { 154, 51 }, { 172, 51 }, { 189, 51 }, { 206, 51 },
292 {{10|(2<<4)}, {17.2*10, 12.8*2}, 4}, // LED 13 292 { 86, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 86, 12 },
293 {{11|(2<<4)}, {17.2*11, 12.8*2}, 4}, // LED 14 293 { 68, 12 }, { 51, 12 }, { 34, 12 }, { 17, 12 }, { 86, 25 }, { 68, 25 },
294 {{12|(2<<4)}, {17.2*12, 12.8*2}, 4}, // LED 15 294 { 51, 25 }, { 34, 25 }, { 17, 25 }, { 86, 38 }, { 68, 38 }, { 51, 38 },
295 295 { 34, 38 }, { 17, 38 }, { 68, 51 }, { 51, 51 }, { 34, 51 }, { 17, 51 }
296 {{ 8|(3<<4)}, {17.2* 8, 12.8*3}, 4}, // LED 16 296}, {
297 {{ 9|(3<<4)}, {17.2* 9, 12.8*3}, 4}, // LED 17 297 4, 4, 4, 4, 4, 4,
298 {{10|(3<<4)}, {17.2*10, 12.8*3}, 4}, // LED 18 298 4, 4, 4, 4, 4, 4,
299 {{11|(3<<4)}, {17.2*11, 12.8*3}, 4}, // LED 19 299 4, 4, 4, 4, 4, 4,
300 {{12|(3<<4)}, {17.2*12, 12.8*3}, 4}, // LED 20 300 4, 4, 1, 1, 1, 1,
301 301 4, 4, 4, 4, 4, 4,
302 {{ 9|(4<<4)}, {17.2* 9, 12.8*4}, 1}, // LED 21 302 4, 4, 4, 4, 4, 4,
303 {{10|(4<<4)}, {17.2*10, 12.8*4}, 1}, // LED 22 303 4, 4, 4, 4, 4, 4,
304 {{11|(4<<4)}, {17.2*11, 12.8*4}, 1}, // LED 23 304 4, 4, 1, 1, 1, 1
305 {{12|(4<<4)}, {17.2*12, 12.8*4}, 1}, // LED 24 305} };
306 306
307 {{ 5|(0<<4)}, {17.2* 5, 12.8*0}, 4}, // LED 1 on left > Key 5
308 {{ 4|(0<<4)}, {17.2* 4, 12.8*0}, 4}, // LED 2 > Key 4
309 {{ 3|(0<<4)}, {17.2* 3, 12.8*0}, 4}, // LED 3 > Key 3
310 {{ 2|(0<<4)}, {17.2* 2, 12.8*0}, 4}, // LED 4 > Key 2
311 {{ 1|(0<<4)}, {17.2* 1, 12.8*0}, 4}, // LED 5 > Key 1
312
313 {{ 5|(1<<4)}, {17.2* 5, 12.8*1}, 4}, // LED 6
314 {{ 4|(1<<4)}, {17.2* 4, 12.8*1}, 4}, // LED 7
315 {{ 3|(1<<4)}, {17.2* 3, 12.8*1}, 4}, // LED 8
316 {{ 2|(1<<4)}, {17.2* 2, 12.8*1}, 4}, // LED 9
317 {{ 1|(1<<4)}, {17.2* 1, 12.8*1}, 4}, // LED 10
318
319 {{ 5|(2<<4)}, {17.2* 5, 12.8*2}, 4}, // LED 11
320 {{ 4|(2<<4)}, {17.2* 4, 12.8*2}, 4}, // LED 12
321 {{ 3|(2<<4)}, {17.2* 3, 12.8*2}, 4}, // LED 13
322 {{ 2|(2<<4)}, {17.2* 2, 12.8*2}, 4}, // LED 14
323 {{ 1|(2<<4)}, {17.2* 1, 12.8*2}, 4}, // LED 15
324
325 {{ 5|(3<<4)}, {17.2* 5, 12.8*3}, 4}, // LED 16
326 {{ 4|(3<<4)}, {17.2* 4, 12.8*3}, 4}, // LED 17
327 {{ 3|(3<<4)}, {17.2* 3, 12.8*3}, 4}, // LED 18
328 {{ 2|(3<<4)}, {17.2* 2, 12.8*3}, 4}, // LED 19
329 {{ 1|(3<<4)}, {17.2* 1, 12.8*3}, 4}, // LED 20
330
331 {{ 4|(4<<4)}, {17.2* 4, 12.8*4}, 1}, // LED 21
332 {{ 3|(4<<4)}, {17.2* 3, 12.8*4}, 1}, // LED 22
333 {{ 2|(4<<4)}, {17.2* 2, 12.8*4}, 1}, // LED 23
334 {{ 1|(4<<4)}, {17.2* 1, 12.8*4}, 1}, // LED 24 > Key Hack
335};
336#endif 307#endif
diff --git a/keyboards/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c
index 42f879990..106e58497 100644
--- a/keyboards/exclusive/e6_rgb/e6_rgb.c
+++ b/keyboards/exclusive/e6_rgb/e6_rgb.c
@@ -114,91 +114,79 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
114 {0, E_16, D_16, F_16}, 114 {0, E_16, D_16, F_16},
115 {0, B_16, A_16, C_16}, 115 {0, B_16, A_16, C_16},
116}; 116};
117rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
118/* {row | col << 4}
119 * | {x=0..224, y=0..64}
120 * | | flags
121 * | | | */
122//cs1
123 {{0|(0<<4)}, { 0, 0}, 1},
124 {{0|(1<<4)}, { 17, 0}, 4},
125 {{1|(0<<4)}, { 0, 16}, 1},
126 {{2|(0<<4)}, { 0, 32}, 1},
127 117
118led_config_t g_led_config = { {
119 { 0, 1, 4, 5, 12, 13, 36, 20, 21, 24, 25, 16, 17, 28 },
120 { 2, 6, 7, 14, 15, 37, 38, 22, 23, 26, 27, 18, 19, 30 },
121 { 3, 8, 9, 32, 33, 39, 40, 44, 45, 48, 49, 52, 31, NO_LED },
122 { 59, 10, 11, 34, 35, 41, 42, 46, 47, 50, 53, 54, 56, NO_LED },
123 { 60, 61, 62, NO_LED, NO_LED, 43, 51, 55, 58, 57, NO_LED, NO_LED, NO_LED, NO_LED }
124}, {
125//cs1
126 { 0, 0 }, { 17, 0 }, { 0, 16 }, { 0, 32 },
128//cs2 127//cs2
129 {{0|(2<<4)}, { 34, 0}, 4}, 128 { 34, 0 }, { 51, 0 }, { 17, 16 }, { 34, 16 },
130 {{0|(3<<4)}, { 51, 0}, 4},
131 {{1|(1<<4)}, { 17, 16}, 4},
132 {{1|(2<<4)}, { 34, 16}, 4},
133//cs3 129//cs3
134 {{2|(1<<4)}, { 17, 32}, 4}, 130 { 17, 32 }, { 34, 32 }, { 17, 48 }, { 34, 48 },
135 {{2|(2<<4)}, { 34, 32}, 4},
136 {{3|(1<<4)}, { 17, 48}, 4},
137 {{3|(2<<4)}, { 34, 48}, 4},
138//cs4 131//cs4
139 {{0|(4<<4)}, { 68, 0}, 4}, 132 { 68, 0 }, { 85, 0 }, { 51, 16 }, { 68, 16 },
140 {{0|(5<<4)}, { 85, 0}, 4},
141 {{1|(3<<4)}, { 51, 16}, 4},
142 {{1|(4<<4)}, { 68, 16}, 4},
143//cs5 133//cs5
144 {{0|(11<<4)}, {187, 0}, 4}, 134 { 187, 0 }, { 204, 0 }, { 187, 16 }, { 204, 16 },
145 {{0|(12<<4)}, {204, 0}, 4},
146 {{1|(11<<4)}, {187, 16}, 4},
147 {{1|(12<<4)}, {204, 16}, 4},
148//cs6 135//cs6
149 {{0|(7<<4)}, {119, 0}, 4}, 136 { 119, 0 }, { 136, 0 }, { 119, 16 }, { 136, 16 },
150 {{0|(8<<4)}, {136, 0}, 4},
151 {{1|(7<<4)}, {119, 16}, 4},
152 {{1|(8<<4)}, {136, 16}, 4},
153//cs7 137//cs7
154 {{0|(9<<4)}, {153, 0}, 4}, 138 { 153, 0 }, { 170, 0 }, { 153, 16 }, { 170, 16 },
155 {{0|(10<<4)}, {170, 0}, 4},
156 {{1|(9<<4)}, {153, 16}, 4},
157 {{1|(10<<4)}, {170, 16}, 4},
158//cs8 139//cs8
159 {{0|(13<<4)}, {221, 0}, 4}, 140 { 221, 0 }, { 221, 0 }, { 221, 32 }, { 221, 16 },
160 {{0|(14<<4)}, {221, 0}, 4},
161 {{1|(13<<4)}, {221, 32}, 1},
162 {{2|(12<<4)}, {221, 16}, 1},
163//cs9 141//cs9
164 {{2|(3<<4)}, { 51, 32}, 4}, 142 { 51, 32 }, { 68, 32 }, { 51, 48 }, { 68, 48 },
165 {{2|(4<<4)}, { 68, 32}, 4},
166 {{3|(3<<4)}, { 51, 48}, 4},
167 {{3|(4<<4)}, { 68, 48}, 4},
168//cs10 143//cs10
169 {{0|(6<<4)}, {102, 0}, 4}, 144 { 102, 0 }, { 85, 16 }, { 102, 16 }, { 85, 32 },
170 {{1|(5<<4)}, { 85, 16}, 4},
171 {{1|(6<<4)}, {102, 16}, 4},
172 {{2|(5<<4)}, { 85, 32}, 4},
173//cs11 145//cs11
174 {{2|(6<<4)}, {102, 32}, 4}, 146 { 102, 32 }, { 85, 48 }, { 102, 48 }, { 102, 64 },
175 {{3|(5<<4)}, { 85, 48}, 4},
176 {{3|(6<<4)}, {102, 48}, 4},
177 {{4|(5<<4)}, {102, 64}, 4},
178//cs12 147//cs12
179 {{2|(7<<4)}, {119, 32}, 4}, 148 { 119, 32 }, { 136, 32 }, { 119, 48 }, { 136, 48 },
180 {{2|(8<<4)}, {136, 32}, 4},
181 {{3|(7<<4)}, {119, 48}, 4},
182 {{3|(8<<4)}, {136, 48}, 4},
183//cs13 149//cs13
184 {{2|(9<<4)}, {153, 32}, 4}, 150 { 153, 32 }, { 170, 32 }, { 153, 48 }, { 136, 48 },
185 {{2|(10<<4)}, {170, 32}, 4},
186 {{3|(9<<4)}, {153, 48}, 4},
187 {{4|(6<<4)}, {136, 48}, 1},
188//cs14 151//cs14
189 {{2|(11<<4)}, {187, 32}, 4}, 152 { 187, 32 }, { 170, 48 }, { 187, 48 }, { 153, 48 },
190 {{3|(10<<4)}, {170, 48}, 4},
191 {{3|(11<<4)}, {187, 48}, 1},
192 {{4|(7<<4)}, {153, 48}, 1},
193//cs15 153//cs15
194 {{3|(12<<4)}, {221, 48}, 1}, 154 { 221, 48 }, { 221, 64 }, { 204, 64 },
195
196 {{4|(9<<4)}, {221, 64}, 1},
197 {{4|(8<<4)}, {204, 64}, 1},
198//cs16 155//cs16
199 {{3|(0<<4)}, { 0, 48}, 1}, 156 { 0, 48 }, { 0, 64 }, { 17, 64 }, { 34, 64 }
200 {{4|(0<<4)}, { 0, 64}, 1}, 157}, {
201 {{4|(1<<4)}, { 17, 64}, 1}, 158//cs1
202 {{4|(2<<4)}, { 34, 64}, 1}, 159 1, 4, 1, 1,
203}; 160//cs2
161 4, 4, 4, 4,
162//cs3
163 4, 4, 4, 4,
164//cs4
165 4, 4, 4, 4,
166//cs5
167 4, 4, 4, 4,
168//cs6
169 4, 4, 4, 4,
170//cs7
171 4, 4, 4, 4,
172//cs8
173 4, 4, 1, 1,
174//cs9
175 4, 4, 4, 4,
176//cs10
177 4, 4, 4, 4,
178//cs11
179 4, 4, 4, 4,
180//cs12
181 4, 4, 4, 4,
182//cs13
183 4, 4, 4, 1,
184//cs14
185 4, 4, 1, 1,
186//cs15
187 1, 1, 1,
188//cs16
189 1, 1, 1, 1
190} };
191
204#endif 192#endif
diff --git a/keyboards/hadron/ver3/ver3.c b/keyboards/hadron/ver3/ver3.c
index 5827b42e2..1491caba4 100644
--- a/keyboards/hadron/ver3/ver3.c
+++ b/keyboards/hadron/ver3/ver3.c
@@ -19,24 +19,19 @@
19#include "haptic.h" 19#include "haptic.h"
20 20
21#ifdef RGB_MATRIX_ENABLE 21#ifdef RGB_MATRIX_ENABLE
22#include "rgblight.h" 22#include "rgb_matrix.h"
23 23
24rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 24led_config_t g_led_config = { {
25 /*{row | col << 4} 25 { 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 },
26 | {x=0..224, y=0..64} 26 { NO_LED, 6, NO_LED, NO_LED, 7, NO_LED, NO_LED, 8, NO_LED, NO_LED, 9, NO_LED, NO_LED, 0, NO_LED },
27 | | modifier 27 { 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 },
28 | | | */ 28 { 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 },
29 {{1|(13<<4)}, {195, 3}, 4}, 29 { NO_LED, 5, NO_LED, NO_LED, 4, NO_LED, NO_LED, 3, NO_LED, NO_LED, 2, NO_LED, NO_LED, 1, NO_LED }
30 {{4|(13<<4)}, {195, 16}, 4}, 30}, {
31 {{4|(10<<4)}, {150, 16}, 4}, 31 { 195, 3 }, { 195, 16 }, { 150, 16 }, { 105, 16 }, { 60, 16 }, { 15, 16 }, { 15, 3 }, { 60, 3 }, { 105, 3 }, { 150, 3 }
32 {{4|(7<<4)}, {105, 16}, 4}, 32}, {
33 {{4|(4<<4)}, {60, 16}, 4}, 33 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
34 {{4|(1<<4)}, {15, 16}, 4}, 34} };
35 {{1|(1<<4)}, {15, 3}, 4},
36 {{1|(4<<4)}, {60, 3}, 4},
37 {{1|(7<<4)}, {105, 3}, 4},
38 {{1|(10<<4)}, {150, 3}, 4}
39};
40 35
41#endif 36#endif
42 37
@@ -53,12 +48,12 @@ uint16_t counterst = 0;
53#define ScreenOffInterval 60000 /* milliseconds */ 48#define ScreenOffInterval 60000 /* milliseconds */
54static uint16_t last_flush; 49static uint16_t last_flush;
55 50
56volatile uint8_t led_numlock = false; 51volatile uint8_t led_numlock = false;
57volatile uint8_t led_capslock = false; 52volatile uint8_t led_capslock = false;
58volatile uint8_t led_scrolllock = false; 53volatile uint8_t led_scrolllock = false;
59 54
60static uint8_t layer; 55static uint8_t layer;
61static bool queue_for_send = false; 56static bool queue_for_send = false;
62static uint8_t encoder_value = 32; 57static uint8_t encoder_value = 32;
63 58
64__attribute__ ((weak)) 59__attribute__ ((weak))
@@ -69,7 +64,7 @@ void draw_ui(void) {
69 64
70/* Layer indicator is 41 x 10 pixels */ 65/* Layer indicator is 41 x 10 pixels */
71#define LAYER_INDICATOR_X 5 66#define LAYER_INDICATOR_X 5
72#define LAYER_INDICATOR_Y 0 67#define LAYER_INDICATOR_Y 0
73 68
74 draw_string(LAYER_INDICATOR_X + 1, LAYER_INDICATOR_Y + 2, "LAYER", PIXEL_ON, NORM, 0); 69 draw_string(LAYER_INDICATOR_X + 1, LAYER_INDICATOR_Y + 2, "LAYER", PIXEL_ON, NORM, 0);
75 draw_rect_filled_soft(LAYER_INDICATOR_X + 32, LAYER_INDICATOR_Y + 1, 9, 9, PIXEL_ON, NORM); 70 draw_rect_filled_soft(LAYER_INDICATOR_X + 32, LAYER_INDICATOR_Y + 1, 9, 9, PIXEL_ON, NORM);
@@ -83,7 +78,7 @@ void draw_ui(void) {
83 for (uint8_t y = 0; y < MATRIX_COLS; y++) { 78 for (uint8_t y = 0; y < MATRIX_COLS; y++) {
84 draw_pixel(MATRIX_DISPLAY_X + y + 2, MATRIX_DISPLAY_Y + x + 2,(matrix_get_row(x) & (1 << y)) > 0, NORM); 79 draw_pixel(MATRIX_DISPLAY_X + y + 2, MATRIX_DISPLAY_Y + x + 2,(matrix_get_row(x) & (1 << y)) > 0, NORM);
85 } 80 }
86 } 81 }
87 draw_rect_soft(MATRIX_DISPLAY_X, MATRIX_DISPLAY_Y, 19, 9, PIXEL_ON, NORM); 82 draw_rect_soft(MATRIX_DISPLAY_X, MATRIX_DISPLAY_Y, 19, 9, PIXEL_ON, NORM);
88 /* hadron oled location on thumbnail */ 83 /* hadron oled location on thumbnail */
89 draw_rect_filled_soft(MATRIX_DISPLAY_X + 14, MATRIX_DISPLAY_Y + 2, 3, 1, PIXEL_ON, NORM); 84 draw_rect_filled_soft(MATRIX_DISPLAY_X + 14, MATRIX_DISPLAY_Y + 2, 3, 1, PIXEL_ON, NORM);
@@ -162,7 +157,7 @@ void read_host_led_state(void) {
162 if (led_capslock == false){ 157 if (led_capslock == false){
163 led_capslock = true;} 158 led_capslock = true;}
164 } else { 159 } else {
165 if (led_capslock == true){ 160 if (led_capslock == true){
166 led_capslock = false;} 161 led_capslock = false;}
167 } 162 }
168 if (leds & (1 << USB_LED_SCROLL_LOCK)) { 163 if (leds & (1 << USB_LED_SCROLL_LOCK)) {
@@ -197,7 +192,7 @@ void matrix_init_kb(void) {
197 queue_for_send = true; 192 queue_for_send = true;
198 matrix_init_user(); 193 matrix_init_user();
199} 194}
200 195
201void matrix_scan_kb(void) { 196void matrix_scan_kb(void) {
202if (queue_for_send) { 197if (queue_for_send) {
203#ifdef QWIIC_MICRO_OLED_ENABLE 198#ifdef QWIIC_MICRO_OLED_ENABLE
diff --git a/keyboards/hs60/v1/v1.c b/keyboards/hs60/v1/v1.c
index bd6dd19b2..5267c9457 100644
--- a/keyboards/hs60/v1/v1.c
+++ b/keyboards/hs60/v1/v1.c
@@ -165,83 +165,37 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
165 {1, C9_16, C7_15, C6_15} //D16 165 {1, C9_16, C7_15, C6_15} //D16
166}; 166};
167 167
168rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 168led_config_t g_led_config = { {
169// 169 { 36, 35, 34, 33, 32, 31, 30, 6, 5, 4, 3, 2, 1, 0 },
170// C7, C6, C5, C4, C3, C2, C1, A7, A6, A5, A4, A3, A2, A1, 170 { 37, 38, 39, 40, 41, 42, 43, 7, 8, 9, 10, 11, 12, NO_LED },
171// C8, C9, C10, C11, C12, C13, C14, A8, A9, A10, A11, A12, A13, A15, 171 { 48, 49, 50, 51, 52, 45, 44, 20, 21, 22, 23, 15, 14, 13 },
172// D4, D5, D6, D7, D8, C16, C15, B5, B6, B7, B8, A16, ---, A14, 172 { 47, NO_LED, 46, 53, 54, 55, 56, 19, 18, 17, 16, 24, NO_LED, 25 },
173// D3, ---, D1, D9, D10, D11, D12, B4, B3, B2, B1, B9, ---, B10, 173 { 60, 59, 58, 57, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 29, 28, 27, 26 }
174// D16, D15, D14, ---, ---, ---, D13, ---, ---, ---, B14, B13, B12, B11 174}, {
175/* {row | col << 4} 175 //A1-A16
176 * | {x=0..224, y=0..64} 176 { 224, 0 }, { 204, 0 }, { 187, 0 }, { 170, 0 }, { 153, 0 }, { 136, 0 }, { 119, 0 }, { 119, 16 }, { 136, 16 }, { 153, 16 }, { 170, 16 }, { 187, 16 }, { 204, 16 }, { 224, 32 },
177 * | | flags 177 { 224, 16 }, { 197, 32 },
178 * | | | */ 178 //B1-B14
179 {{0|(13<<4)}, {224, 0}, 1}, //A1-A16 179 { 170, 48 }, { 153, 48 }, { 136, 48 }, { 119, 48 }, { 119, 32 }, { 136, 32 }, { 153, 32 }, { 170, 32 }, { 187, 48 }, { 214, 48 }, { 224, 64 }, { 204, 64 }, { 187, 64 }, { 170, 64 },
180 {{0|(12<<4)}, {204, 0}, 4}, 180 //C1-C16
181 {{0|(11<<4)}, {187, 0}, 4}, 181 { 102, 0 }, { 85, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 }, { 0, 16 }, { 17, 16 }, { 34, 16 }, { 51, 16 }, { 68, 16 }, { 85, 16 }, { 102, 16 },
182 {{0|(10<<4)}, {170, 0}, 4}, 182 { 102, 32 }, { 85, 32 },
183 {{0|(9<<4)}, {153, 0}, 4}, 183 //D1-D16
184 {{0|(8<<4)}, {136, 0}, 4}, 184 { 32, 48 }, { 10, 48 }, { 0, 32 }, { 17, 32 }, { 34, 32 }, { 51, 32 }, { 68, 32 }, { 51, 48 }, { 68, 48 }, { 85, 48 }, { 102, 48 }, { 102, 64 }, { 34, 68 }, { 17, 68 },
185 {{0|(7<<4)}, {119, 0}, 4}, 185 { 0, 68 }
186 {{1|(7<<4)}, {119, 16}, 4}, 186}, {
187 {{1|(8<<4)}, {136, 16}, 4}, 187 //A1-A16
188 {{1|(9<<4)}, {153, 16}, 4}, 188 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
189 {{1|(10<<4)}, {170, 16}, 4}, 189 4, 4,
190 {{1|(11<<4)}, {187, 16}, 4}, 190 //B1-B14
191 {{1|(12<<4)}, {204, 16}, 4}, 191 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1,
192 {{2|(13<<4)}, {224, 32}, 1}, 192 //C1-C16
193 {{2|(12<<4)}, {224, 16}, 4}, 193 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4,
194 {{2|(11<<4)}, {197, 32}, 4}, 194 4, 4,
195 195 //D1-D16
196 {{3|(10<<4)}, {170, 48}, 4}, //B1-B14 196 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
197 {{3|(9<<4)}, {153, 48}, 4}, 197 1
198 {{3|(8<<4)}, {136, 48}, 4}, 198} };
199 {{3|(7<<4)}, {119, 48}, 4},
200 {{2|(7<<4)}, {119, 32}, 4},
201 {{2|(8<<4)}, {136, 32}, 4},
202 {{2|(9<<4)}, {153, 32}, 4},
203 {{2|(10<<4)}, {170, 32}, 4},
204 {{3|(11<<4)}, {187, 48}, 4},
205 {{3|(13<<4)}, {214, 48}, 1},
206 {{4|(13<<4)}, {224, 64}, 1},
207 {{4|(12<<4)}, {204, 64}, 1},
208 {{4|(11<<4)}, {187, 64}, 1},
209 {{4|(10<<4)}, {170, 64}, 1},
210
211 {{0|(6<<4)}, {102, 0}, 4}, //C1-C16
212 {{0|(5<<4)}, { 85, 0}, 4},
213 {{0|(4<<4)}, { 68, 0}, 4},
214 {{0|(3<<4)}, { 51, 0}, 4},
215 {{0|(2<<4)}, { 34, 0}, 4},
216 {{0|(1<<4)}, { 17, 0}, 4},
217 {{0|(0<<4)}, { 0, 0}, 1},
218 {{1|(0<<4)}, { 0, 16}, 1},
219 {{1|(1<<4)}, { 17, 16}, 4},
220 {{1|(2<<4)}, { 34, 16}, 4},
221 {{1|(3<<4)}, { 51, 16}, 4},
222 {{1|(4<<4)}, { 68, 16}, 4},
223 {{1|(5<<4)}, { 85, 16}, 4},
224 {{1|(6<<4)}, {102, 16}, 4},
225 {{2|(6<<4)}, {102, 32}, 4},
226 {{2|(5<<4)}, { 85, 32}, 4},
227
228 {{3|(2<<4)}, { 32, 48}, 4}, //D1-D16
229 //D2
230 {{3|(0<<4)}, { 10, 48}, 1},
231 {{2|(0<<4)}, { 0, 32}, 1},
232 {{2|(1<<4)}, { 17, 32}, 4},
233 {{2|(2<<4)}, { 34, 32}, 4},
234 {{2|(3<<4)}, { 51, 32}, 4},
235 {{2|(4<<4)}, { 68, 32}, 4},
236 {{3|(3<<4)}, { 51, 48}, 4},
237 {{3|(4<<4)}, { 68, 48}, 4},
238 {{3|(5<<4)}, { 85, 48}, 4},
239 {{3|(6<<4)}, {102, 48}, 4},
240 {{4|(3<<4)}, {102, 64}, 4},
241 {{4|(2<<4)}, { 34, 68}, 1},
242 {{4|(1<<4)}, { 17, 68}, 1},
243 {{4|(0<<4)}, { 0, 68}, 1}
244};
245 199
246#else 200#else
247 201
@@ -319,83 +273,37 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
319 {1, C9_16, C7_15, C6_15} //D16 273 {1, C9_16, C7_15, C6_15} //D16
320}; 274};
321 275
322rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 276led_config_t g_led_config = { {
323// 277 { 36, 35, 34, 33, 32, 31, 30, 6, 5, 4, 3, 2, 1, 0 },
324// C7, C6, C5, C4, C3, C2, C1, A7, A6, A5, A4, A3, A2, A1, 278 { 37, 38, 39, 40, 41, 42, 43, 7, 8, 9, 10, 11, 12, NO_LED },
325// C8, C9, C10, C11, C12, C13, C14, A8, A9, A10, A11, A12, A13, ---, 279 { 49, 50, 51, 52, 53, 45, 44, 20, 21, 22, 23, 15, 14, 13 },
326// D4, D5, D6, D7, D8, C16, C15, B5, B6, B7, B8, A16, A15, A14, 280 { 48, 47, 46, 54, 55, 56, 57, 19, 18, 17, 16, 24, NO_LED, 25 },
327// D3, D2, D1, D9, D10, D11, D12, B4, B3, B2, B1, B9, ---, B10, 281 { 61, 60, 59, 58, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 29, 28, 27, 26 }
328// D16, D15, D14, ---, ---, ---, D13, ---, ---, ---, B14, B13, B12, B11 282}, {
329/* {row | col << 4} 283 //A1-A16
330 * | {x=0..224, y=0..64} 284 { 224, 0 }, { 204, 0 }, { 187, 0 }, { 170, 0 }, { 153, 0 }, { 136, 0 }, { 119, 0 }, { 119, 16 }, { 136, 16 }, { 153, 16 }, { 170, 16 }, { 187, 16 }, { 204, 16 }, { 224, 8 },
331 * | | flags 285 { 204, 32 }, { 187, 32 },
332 * | | | */ 286 //B1-B14
333 {{0|(13<<4)}, {224, 0}, 1}, //A1-A16 287 { 170, 48 }, { 153, 48 }, { 136, 48 }, { 119, 48 }, { 119, 32 }, { 136, 32 }, { 153, 32 }, { 170, 32 }, { 187, 48 }, { 214, 48 }, { 224, 64 }, { 204, 64 }, { 187, 64 }, { 170, 64 },
334 {{0|(12<<4)}, {204, 0}, 4}, 288 //C1-C16
335 {{0|(11<<4)}, {187, 0}, 4}, 289 { 102, 0 }, { 85, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 }, { 0, 16 }, { 17, 16 }, { 34, 16 }, { 51, 16 }, { 68, 16 }, { 85, 16 }, { 102, 16 },
336 {{0|(10<<4)}, {170, 0}, 4}, 290 { 102, 32 }, { 85, 32 },
337 {{0|(9<<4)}, {153, 0}, 4}, 291 //D1-D16
338 {{0|(8<<4)}, {136, 0}, 4}, 292 { 32, 48 }, { 17, 48 }, { 0, 48 }, { 0, 32 }, { 17, 32 }, { 34, 32 }, { 51, 32 }, { 68, 32 }, { 51, 48 }, { 68, 48 }, { 85, 48 }, { 102, 48 }, { 102, 64 }, { 34, 68 },
339 {{0|(7<<4)}, {119, 0}, 4}, 293 { 17, 68 }, { 0, 68 }
340 {{1|(7<<4)}, {119, 16}, 4}, 294}, {
341 {{1|(8<<4)}, {136, 16}, 4}, 295 //A1-A16
342 {{1|(9<<4)}, {153, 16}, 4}, 296 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
343 {{1|(10<<4)}, {170, 16}, 4}, 297 4, 4,
344 {{1|(11<<4)}, {187, 16}, 4}, 298 //B1-B14
345 {{1|(12<<4)}, {204, 16}, 4}, 299 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1,
346 {{2|(13<<4)}, {224, 8}, 1}, 300 //C1-C16
347 {{2|(12<<4)}, {204, 32}, 4}, 301 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4,
348 {{2|(11<<4)}, {187, 32}, 4}, 302 4, 4,
349 303 //D1-D16
350 {{3|(10<<4)}, {170, 48}, 4}, //B1-B14 304 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
351 {{3|(9<<4)}, {153, 48}, 4}, 305 1, 1
352 {{3|(8<<4)}, {136, 48}, 4}, 306} };
353 {{3|(7<<4)}, {119, 48}, 4},
354 {{2|(7<<4)}, {119, 32}, 4},
355 {{2|(8<<4)}, {136, 32}, 4},
356 {{2|(9<<4)}, {153, 32}, 4},
357 {{2|(10<<4)}, {170, 32}, 4},
358 {{3|(11<<4)}, {187, 48}, 4},
359 {{3|(13<<4)}, {214, 48}, 1},
360 {{4|(13<<4)}, {224, 64}, 1},
361 {{4|(12<<4)}, {204, 64}, 1},
362 {{4|(11<<4)}, {187, 64}, 1},
363 {{4|(10<<4)}, {170, 64}, 1},
364
365 {{0|(6<<4)}, {102, 0}, 4}, //C1-C16
366 {{0|(5<<4)}, { 85, 0}, 4},
367 {{0|(4<<4)}, { 68, 0}, 4},
368 {{0|(3<<4)}, { 51, 0}, 4},
369 {{0|(2<<4)}, { 34, 0}, 4},
370 {{0|(1<<4)}, { 17, 0}, 4},
371 {{0|(0<<4)}, { 0, 0}, 1},
372 {{1|(0<<4)}, { 0, 16}, 1},
373 {{1|(1<<4)}, { 17, 16}, 4},
374 {{1|(2<<4)}, { 34, 16}, 4},
375 {{1|(3<<4)}, { 51, 16}, 4},
376 {{1|(4<<4)}, { 68, 16}, 4},
377 {{1|(5<<4)}, { 85, 16}, 4},
378 {{1|(6<<4)}, {102, 16}, 4},
379 {{2|(6<<4)}, {102, 32}, 4},
380 {{2|(5<<4)}, { 85, 32}, 4},
381
382 {{3|(2<<4)}, { 32, 48}, 4}, //D1-D16
383 {{3|(1<<4)}, { 17, 48}, 4},
384 {{3|(0<<4)}, { 0, 48}, 1},
385 {{2|(0<<4)}, { 0, 32}, 1},
386 {{2|(1<<4)}, { 17, 32}, 4},
387 {{2|(2<<4)}, { 34, 32}, 4},
388 {{2|(3<<4)}, { 51, 32}, 4},
389 {{2|(4<<4)}, { 68, 32}, 4},
390 {{3|(3<<4)}, { 51, 48}, 4},
391 {{3|(4<<4)}, { 68, 48}, 4},
392 {{3|(5<<4)}, { 85, 48}, 4},
393 {{3|(6<<4)}, {102, 48}, 4},
394 {{4|(3<<4)}, {102, 64}, 4},
395 {{4|(2<<4)}, { 34, 68}, 1},
396 {{4|(1<<4)}, { 17, 68}, 1},
397 {{4|(0<<4)}, { 0, 68}, 1}
398};
399 307
400#endif 308#endif
401 309
@@ -492,4 +400,4 @@ void suspend_power_down_kb(void)
492void suspend_wakeup_init_kb(void) 400void suspend_wakeup_init_kb(void)
493{ 401{
494 rgb_matrix_set_suspend_state(false); 402 rgb_matrix_set_suspend_state(false);
495} \ No newline at end of file 403}
diff --git a/keyboards/massdrop/alt/config_led.c b/keyboards/massdrop/alt/config_led.c
index 1a9a539a0..42d4d1474 100644
--- a/keyboards/massdrop/alt/config_led.c
+++ b/keyboards/massdrop/alt/config_led.c
@@ -20,123 +20,34 @@
20// 20//
21// There is a quick-and-dirty implementation of this under ledvis.html 21// There is a quick-and-dirty implementation of this under ledvis.html
22 22
23rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 23led_config_t g_led_config = { {
24 /* 0 */ { { (0)|(0 << 4) }, { 8, 56 }, 4 }, // KC_ESC 24 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
25 /* 1 */ { { (0)|(1 << 4) }, { 22, 56 }, 4 }, // KC_1 25 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
26 /* 2 */ { { (0)|(2 << 4) }, { 35, 56 }, 4 }, // KC_2 26 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
27 /* 3 */ { { (0)|(3 << 4) }, { 49, 56 }, 4 }, // KC_3 27 { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
28 /* 4 */ { { (0)|(4 << 4) }, { 63, 56 }, 4 }, // KC_4 28 { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 }
29 /* 5 */ { { (0)|(5 << 4) }, { 77, 56 }, 4 }, // KC_5 29}, {
30 /* 6 */ { { (0)|(6 << 4) }, { 91, 56 }, 4 }, // KC_6 30 { 8, 56 }, { 22, 56 }, { 35, 56 }, { 49, 56 }, { 63, 56 }, { 77, 56 }, { 91, 56 }, { 105, 56 }, { 118, 56 }, { 132, 56 }, { 146, 56 }, { 160, 56 }, { 174, 56 }, { 195, 56 }, { 215, 56 },
31 /* 7 */ { { (0)|(7 << 4) }, { 105, 56 }, 4 }, // KC_7 31 { 11, 44 }, { 28, 44 }, { 42, 44 }, { 56, 44 }, { 70, 44 }, { 84, 44 }, { 98, 44 }, { 112, 44 }, { 125, 44 }, { 139, 44 }, { 153, 44 }, { 167, 44 }, { 181, 44 }, { 198, 44 }, { 215, 44 },
32 /* 8 */ { { (0)|(8 << 4) }, { 118, 56 }, 4 }, // KC_8 32 { 13, 32 }, { 32, 32 }, { 46, 32 }, { 60, 32 }, { 73, 32 }, { 87, 32 }, { 101, 32 }, { 115, 32 }, { 129, 32 }, { 143, 32 }, { 156, 32 }, { 170, 32 }, { 193, 32 }, { 215, 32 }, { 16, 19 },
33 /* 9 */ { { (0)|(9 << 4) }, { 132, 56 }, 4 }, // KC_9 33 { 39, 19 }, { 53, 19 }, { 67, 19 }, { 80, 19 }, { 94, 19 }, { 108, 19 }, { 122, 19 }, { 136, 19 }, { 150, 19 }, { 163, 19 }, { 182, 19 }, { 201, 19 }, { 215, 19 }, { 9, 7 }, { 27, 7 },
34 /* 10 */ { { (0)|(10 << 4) }, { 146, 56 }, 4 }, // KC_0 34 { 44, 7 }, { 96, 7 }, { 148, 7 }, { 165, 7 }, { 188, 7 }, { 201, 7 }, { 215, 7 },
35 /* 11 */ { { (0)|(11 << 4) }, { 160, 56 }, 4 }, // KC_MINS 35 // Underglow LEDs
36 /* 12 */ { { (0)|(12 << 4) }, { 174, 56 }, 4 }, // KC_EQL 36 { 1, 1 }, { 15, 0 }, { 31, 0 }, { 47, 0 }, { 63, 0 }, { 79, 0 }, { 95, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 222, 1 },
37 /* 13 */ { { (0)|(13 << 4) }, { 195, 56 }, 4 }, // KC_BSPC 37 { 224, 13 }, { 224, 25 }, { 224, 38 }, { 224, 50 }, { 222, 62 }, { 191, 64 }, { 179, 64 }, { 167, 64 }, { 153, 64 }, { 139, 64 }, { 125, 64 }, { 112, 64 }, { 98, 64 }, { 84, 64 }, { 70, 64 },
38 /* 14 */ { { (0)|(14 << 4) }, { 215, 56 }, 4 }, // KC_DEL 38 { 56, 64 }, { 42, 64 }, { 28, 64 }, { 1, 62 }, { 0, 50 }, { 0, 38 }, { 0, 25 }, { 0, 13 }
39 /* 15 */ { { (1)|(0 << 4) }, { 11, 44 }, 4 }, // KC_TAB 39}, {
40 /* 16 */ { { (1)|(1 << 4) }, { 28, 44 }, 4 }, // KC_Q 40 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
41 /* 17 */ { { (1)|(2 << 4) }, { 42, 44 }, 4 }, // KC_W 41 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
42 /* 18 */ { { (1)|(3 << 4) }, { 56, 44 }, 4 }, // KC_E 42 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
43 /* 19 */ { { (1)|(4 << 4) }, { 70, 44 }, 4 }, // KC_R 43 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
44 /* 20 */ { { (1)|(5 << 4) }, { 84, 44 }, 4 }, // KC_T 44 4, 4, 4, 4, 4, 4, 4,
45 /* 21 */ { { (1)|(6 << 4) }, { 98, 44 }, 4 }, // KC_Y
46 /* 22 */ { { (1)|(7 << 4) }, { 112, 44 }, 4 }, // KC_U
47 /* 23 */ { { (1)|(8 << 4) }, { 125, 44 }, 4 }, // KC_I
48 /* 24 */ { { (1)|(9 << 4) }, { 139, 44 }, 4 }, // KC_O
49 /* 25 */ { { (1)|(10 << 4) }, { 153, 44 }, 4 }, // KC_P
50 /* 26 */ { { (1)|(11 << 4) }, { 167, 44 }, 4 }, // KC_LBRC
51 /* 27 */ { { (1)|(12 << 4) }, { 181, 44 }, 4 }, // KC_RBRC
52 /* 28 */ { { (1)|(13 << 4) }, { 198, 44 }, 4 }, // KC_BSLS
53 /* 29 */ { { (1)|(14 << 4) }, { 215, 44 }, 4 }, // KC_HOME
54 /* 30 */ { { (2)|(0 << 4) }, { 13, 32 }, 1 }, // KC_CAPS
55 /* 31 */ { { (2)|(1 << 4) }, { 32, 32 }, 4 }, // KC_A
56 /* 32 */ { { (2)|(2 << 4) }, { 46, 32 }, 4 }, // KC_S
57 /* 33 */ { { (2)|(3 << 4) }, { 60, 32 }, 4 }, // KC_D
58 /* 34 */ { { (2)|(4 << 4) }, { 73, 32 }, 4 }, // KC_F
59 /* 35 */ { { (2)|(5 << 4) }, { 87, 32 }, 4 }, // KC_G
60 /* 36 */ { { (2)|(6 << 4) }, { 101, 32 }, 4 }, // KC_H
61 /* 37 */ { { (2)|(7 << 4) }, { 115, 32 }, 4 }, // KC_J
62 /* 38 */ { { (2)|(8 << 4) }, { 129, 32 }, 4 }, // KC_K
63 /* 39 */ { { (2)|(9 << 4) }, { 143, 32 }, 4 }, // KC_L
64 /* 40 */ { { (2)|(10 << 4) }, { 156, 32 }, 4 }, // KC_SCLN
65 /* 41 */ { { (2)|(11 << 4) }, { 170, 32 }, 4 }, // KC_QUOT
66 /* _________________________________________ */ // ____
67 /* 42 */ { { (2)|(13 << 4) }, { 193, 32 }, 4 }, // KC_ENT
68 /* 43 */ { { (2)|(14 << 4) }, { 215, 32 }, 4 }, // KC_PGUP
69 /* 44 */ { { (3)|(0 << 4) }, { 16, 19 }, 4 }, // KC_LSFT
70 /* 45 */ { { (3)|(2 << 4) }, { 39, 19 }, 4 }, // KC_Z
71 /* 46 */ { { (3)|(3 << 4) }, { 53, 19 }, 4 }, // KC_X
72 /* 47 */ { { (3)|(4 << 4) }, { 67, 19 }, 4 }, // KC_C
73 /* 48 */ { { (3)|(5 << 4) }, { 80, 19 }, 4 }, // KC_V
74 /* 49 */ { { (3)|(6 << 4) }, { 94, 19 }, 4 }, // KC_B
75 /* 50 */ { { (3)|(7 << 4) }, { 108, 19 }, 4 }, // KC_N
76 /* 51 */ { { (3)|(8 << 4) }, { 122, 19 }, 4 }, // KC_M
77 /* 52 */ { { (3)|(9 << 4) }, { 136, 19 }, 4 }, // KC_COMM
78 /* 53 */ { { (3)|(10 << 4) }, { 150, 19 }, 4 }, // KC_DOT
79 /* 54 */ { { (3)|(11 << 4) }, { 163, 19 }, 4 }, // KC_SLSH
80 /* 55 */ { { (3)|(12 << 4) }, { 182, 19 }, 4 }, // KC_RSFT
81 /* _________________________________________ */ // ____
82 /* 56 */ { { (3)|(13 << 4) }, { 201, 19 }, 4 }, // KC_UP
83 /* 57 */ { { (3)|(14 << 4) }, { 215, 19 }, 4 }, // KC_PGDN
84 /* 58 */ { { (4)|(0 << 4) }, { 9, 7 }, 4 }, // KC_LCTL
85 /* 59 */ { { (4)|(1 << 4) }, { 27, 7 }, 4 }, // KC_LGUI
86 /* 60 */ { { (4)|(2 << 4) }, { 44, 7 }, 4 }, // KC_LALT
87 /* _________________________________________ */ // ____
88 /* _________________________________________ */ // ____
89 /* _________________________________________ */ // ____
90 /* 61 */ { { (4)|(6 << 4) }, { 96, 7 }, 4 }, // KC_SPC
91 /* _________________________________________ */ // ____
92 /* _________________________________________ */ // ____
93 /* _________________________________________ */ // ____
94 /* 62 */ { { (4)|(10 << 4) }, { 148, 7 }, 4 }, // KC_RALT
95 /* 63 */ { { (4)|(11 << 4) }, { 165, 7 }, 4 }, // MO(1)
96 /* 64 */ { { (4)|(12 << 4) }, { 188, 7 }, 4 }, // KC_LEFT
97 /* 65 */ { { (4)|(13 << 4) }, { 201, 7 }, 4 }, // KC_DOWN
98 /* 66 */ { { (4)|(14 << 4) }, { 215, 7 }, 4 }, // KC_RGHT
99
100 // Underglow LEDs 45 // Underglow LEDs
101 { { 255 }, { 1, 1 }, 2 }, 46 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
102 { { 255 }, { 15, 0 }, 2 }, 47 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
103 { { 255 }, { 31, 0 }, 2 }, 48 2, 2, 2, 2, 2, 2, 2, 2
104 { { 255 }, { 47, 0 }, 2 }, 49} };
105 { { 255 }, { 63, 0 }, 2 }, 50
106 { { 255 }, { 79, 0 }, 2 },
107 { { 255 }, { 95, 0 }, 2 },
108 { { 255 }, { 112, 0 }, 2 },
109 { { 255 }, { 128, 0 }, 2 },
110 { { 255 }, { 144, 0 }, 2 },
111 { { 255 }, { 160, 0 }, 2 },
112 { { 255 }, { 176, 0 }, 2 },
113 { { 255 }, { 192, 0 }, 2 },
114 { { 255 }, { 208, 0 }, 2 },
115 { { 255 }, { 222, 1 }, 2 },
116 { { 255 }, { 224, 13 }, 2 },
117 { { 255 }, { 224, 25 }, 2 },
118 { { 255 }, { 224, 38 }, 2 },
119 { { 255 }, { 224, 50 }, 2 },
120 { { 255 }, { 222, 62 }, 2 },
121 { { 255 }, { 191, 64 }, 2 },
122 { { 255 }, { 179, 64 }, 2 },
123 { { 255 }, { 167, 64 }, 2 },
124 { { 255 }, { 153, 64 }, 2 },
125 { { 255 }, { 139, 64 }, 2 },
126 { { 255 }, { 125, 64 }, 2 },
127 { { 255 }, { 112, 64 }, 2 },
128 { { 255 }, { 98, 64 }, 2 },
129 { { 255 }, { 84, 64 }, 2 },
130 { { 255 }, { 70, 64 }, 2 },
131 { { 255 }, { 56, 64 }, 2 },
132 { { 255 }, { 42, 64 }, 2 },
133 { { 255 }, { 28, 64 }, 2 },
134 { { 255 }, { 1, 62 }, 2 },
135 { { 255 }, { 0, 50 }, 2 },
136 { { 255 }, { 0, 38 }, 2 },
137 { { 255 }, { 0, 25 }, 2 },
138 { { 255 }, { 0, 13 }, 2 },
139};
140 51
141#ifdef USB_LED_INDICATOR_ENABLE 52#ifdef USB_LED_INDICATOR_ENABLE
142void rgb_matrix_indicators_kb(void) 53void rgb_matrix_indicators_kb(void)
diff --git a/keyboards/massdrop/ctrl/config_led.c b/keyboards/massdrop/ctrl/config_led.c
index 20d9c649e..5f1c45207 100644
--- a/keyboards/massdrop/ctrl/config_led.c
+++ b/keyboards/massdrop/ctrl/config_led.c
@@ -5,134 +5,72 @@
5#include "rgb_matrix.h" 5#include "rgb_matrix.h"
6#include "config_led.h" 6#include "config_led.h"
7 7
8rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 8led_config_t g_led_config = { {
9 { 0, 1, 2, 3, 4, 5, 6, 7 },
10 { 16, 17, 18, 19, 20, 21, 22, 23 },
11 { 33, 34, 35, 36, 37, 38, 39, 40 },
12 { 50, 51, 52, 53, 54, 55, 56, 57 },
13 { 63, 64, 65, 66, 67, 68, 69, 70 },
14 { 76, 77, 78, 79, 80, 81, 82, 83 },
15 { 8, 9, 10, 11, 12, 13, 14, 15 },
16 { 24, 25, 26, 27, 28, 29, 30, 31 },
17 { 41, 42, 43, 44, 45, 46, 47, 48 },
18 { 58, 59, 60, 61, 62, 75, 49, 32 },
19 { 71, 72, 73, 74, 84, 85, 86, NO_LED }
20}, {
9 // KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS 21 // KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS
10 { { 0|(0<<4) }, { 7, 5 }, 4 }, 22 { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 },
11 { { 0|(1<<4) }, { 31, 5 }, 4 }, 23 { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 },
12 { { 0|(2<<4) }, { 43, 5 }, 4 },
13 { { 0|(3<<4) }, { 55, 5 }, 4 },
14 { { 0|(4<<4) }, { 67, 5 }, 4 },
15 { { 0|(5<<4) }, { 85, 5 }, 4 },
16 { { 0|(6<<4) }, { 97, 5 }, 4 },
17 { { 0|(7<<4) }, { 109, 5 }, 4 },
18 { { 6|(0<<4) }, { 121, 5 }, 4 },
19 { { 6|(1<<4) }, { 139, 5 }, 4 },
20 { { 6|(2<<4) }, { 151, 5 }, 4 },
21 { { 6|(3<<4) }, { 163, 5 }, 4 },
22 { { 6|(4<<4) }, { 175, 5 }, 4 },
23 { { 6|(5<<4) }, { 193, 5 }, 4 },
24 { { 6|(6<<4) }, { 205, 5 }, 1 },
25 { { 6|(7<<4) }, { 217, 5 }, 4 },
26 // KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP 24 // KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP
27 { { 1|(0<<4) }, { 7, 20 }, 4 }, 25 { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 },
28 { { 1|(1<<4) }, { 19, 20 }, 4 }, 26 { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 },
29 { { 1|(2<<4) }, { 31, 20 }, 4 }, 27 { 217, 20 },
30 { { 1|(3<<4) }, { 43, 20 }, 4 },
31 { { 1|(4<<4) }, { 55, 20 }, 4 },
32 { { 1|(5<<4) }, { 67, 20 }, 4 },
33 { { 1|(6<<4) }, { 79, 20 }, 4 },
34 { { 1|(7<<4) }, { 91, 20 }, 4 },
35 { { 7|(0<<4) }, { 103, 20 }, 4 },
36 { { 7|(1<<4) }, { 115, 20 }, 4 },
37 { { 7|(2<<4) }, { 127, 20 }, 4 },
38 { { 7|(3<<4) }, { 139, 20 }, 4 },
39 { { 7|(4<<4) }, { 151, 20 }, 4 },
40 { { 7|(5<<4) }, { 169, 20 }, 4 },
41 { { 7|(6<<4) }, { 193, 20 }, 4 },
42 { { 7|(7<<4) }, { 205, 20 }, 4 },
43 { { 9|(7<<4) }, { 217, 20 }, 4 },
44 // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN 28 // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN
45 { { 2|(0<<4) }, { 10, 30 }, 4 }, 29 { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 },
46 { { 2|(1<<4) }, { 25, 30 }, 4 }, 30 { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 },
47 { { 2|(2<<4) }, { 37, 30 }, 4 }, 31 { 217, 30 },
48 { { 2|(3<<4) }, { 49, 30 }, 4 },
49 { { 2|(4<<4) }, { 61, 30 }, 4 },
50 { { 2|(5<<4) }, { 73, 30 }, 4 },
51 { { 2|(6<<4) }, { 85, 30 }, 4 },
52 { { 2|(7<<4) }, { 97, 30 }, 4 },
53 { { 8|(0<<4) }, { 109, 30 }, 4 },
54 { { 8|(1<<4) }, { 121, 30 }, 4 },
55 { { 8|(2<<4) }, { 133, 30 }, 4 },
56 { { 8|(3<<4) }, { 145, 30 }, 4 },
57 { { 8|(4<<4) }, { 157, 30 }, 4 },
58 { { 8|(5<<4) }, { 172, 30 }, 4 },
59 { { 8|(6<<4) }, { 193, 30 }, 4 },
60 { { 8|(7<<4) }, { 205, 30 }, 4 },
61 { { 9|(6<<4) }, { 217, 30 }, 4 },
62 // KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT 32 // KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT
63 { { 3|(0<<4) }, { 11, 39 }, 1 }, 33 { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 },
64 { { 3|(1<<4) }, { 28, 39 }, 4 }, 34 { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 },
65 { { 3|(2<<4) }, { 40, 39 }, 4 },
66 { { 3|(3<<4) }, { 52, 39 }, 4 },
67 { { 3|(4<<4) }, { 64, 39 }, 4 },
68 { { 3|(5<<4) }, { 76, 39 }, 4 },
69 { { 3|(6<<4) }, { 88, 39 }, 4 },
70 { { 3|(7<<4) }, { 100, 39 }, 4 },
71 { { 9|(0<<4) }, { 112, 39 }, 4 },
72 { { 9|(1<<4) }, { 124, 39 }, 4 },
73 { { 9|(2<<4) }, { 136, 39 }, 4 },
74 { { 9|(3<<4) }, { 148, 39 }, 4 },
75 { { 9|(4<<4) }, { 168, 39 }, 4 },
76 // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP 35 // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP
77 { { 4|(0<<4) }, { 14, 49 }, 4 }, 36 { 14, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 },
78 { { 4|(1<<4) }, { 34, 49 }, 4 }, 37 { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 },
79 { { 4|(2<<4) }, { 46, 49 }, 4 },
80 { { 4|(3<<4) }, { 58, 49 }, 4 },
81 { { 4|(4<<4) }, { 70, 49 }, 4 },
82 { { 4|(5<<4) }, { 82, 49 }, 4 },
83 { { 4|(6<<4) }, { 94, 49 }, 4 },
84 { { 4|(7<<4) }, { 106, 49 }, 4 },
85 { { 10|(0<<4) }, { 118, 49 }, 4 },
86 { { 10|(1<<4) }, { 130, 49 }, 4 },
87 { { 10|(2<<4) }, { 142, 49 }, 4 },
88 { { 10|(3<<4) }, { 165, 49 }, 4 },
89 { { 9|(5<<4) }, { 205, 49 }, 4 },
90 // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 38 // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
91 { { 5|(0<<4) }, { 8, 59 }, 4 }, 39 { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 },
92 { { 5|(1<<4) }, { 23, 59 }, 4 }, 40 { 193, 59 }, { 205, 59 }, { 217, 59 },
93 { { 5|(2<<4) }, { 38, 59 }, 4 },
94 { { 5|(3<<4) }, { 83, 59 }, 4 },
95 { { 5|(4<<4) }, { 129, 59 }, 4 },
96 { { 5|(5<<4) }, { 144, 59 }, 4 },
97 { { 5|(6<<4) }, { 159, 59 }, 4 },
98 { { 5|(7<<4) }, { 174, 59 }, 4 },
99 { { 10|(4<<4) }, { 193, 59 }, 4 },
100 { { 10|(5<<4) }, { 205, 59 }, 4 },
101 { { 10|(6<<4) }, { 217, 59 }, 4 },
102 // Underglow / Border 41 // Underglow / Border
103 { { 0xFF }, { 222, 64 }, 2 }, 42 { 222, 64 }, { 204, 64 }, { 186, 64 }, { 167, 64 }, { 149, 64 }, { 130, 64 }, { 112, 64 }, { 94, 64 },
104 { { 0xFF }, { 204, 64 }, 2 }, 43 { 75, 64 }, { 57, 64 }, { 38, 64 }, { 20, 64 }, { 0, 64 }, { 0, 47 }, { 0, 32 }, { 0, 17 },
105 { { 0xFF }, { 186, 64 }, 2 }, 44 { 0, 0 }, { 20, 0 }, { 38, 0 }, { 57, 0 }, { 75, 0 }, { 94, 0 }, { 112, 0 }, { 130, 0 },
106 { { 0xFF }, { 167, 64 }, 2 }, 45 { 149, 0 }, { 167, 0 }, { 186, 0 }, { 204, 0 }, { 222, 1 }, { 224, 17 }, { 224, 32 }, { 224, 47 }
107 { { 0xFF }, { 149, 64 }, 2 }, 46}, {
108 { { 0xFF }, { 130, 64 }, 2 }, 47 // KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS
109 { { 0xFF }, { 112, 64 }, 2 }, 48 4, 4, 4, 4, 4, 4, 4, 4,
110 { { 0xFF }, { 94, 64 }, 2 }, 49 4, 4, 4, 4, 4, 4, 1, 4,
111 { { 0xFF }, { 75, 64 }, 2 }, 50 // KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP
112 { { 0xFF }, { 57, 64 }, 2 }, 51 4, 4, 4, 4, 4, 4, 4, 4,
113 { { 0xFF }, { 38, 64 }, 2 }, 52 4, 4, 4, 4, 4, 4, 4, 4,
114 { { 0xFF }, { 20, 64 }, 2 }, 53 4,
115 { { 0xFF }, { 0, 64 }, 2 }, 54 // KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN
116 { { 0xFF }, { 0, 47 }, 2 }, 55 4, 4, 4, 4, 4, 4, 4, 4,
117 { { 0xFF }, { 0, 32 }, 2 }, 56 4, 4, 4, 4, 4, 4, 4, 4,
118 { { 0xFF }, { 0, 17 }, 2 }, 57 4,
119 { { 0xFF }, { 0, 0 }, 2 }, 58 // KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT
120 { { 0xFF }, { 20, 0 }, 2 }, 59 1, 4, 4, 4, 4, 4, 4, 4,
121 { { 0xFF }, { 38, 0 }, 2 }, 60 4, 4, 4, 4, 4,
122 { { 0xFF }, { 57, 0 }, 2 }, 61 // KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP
123 { { 0xFF }, { 75, 0 }, 2 }, 62 4, 4, 4, 4, 4, 4, 4, 4,
124 { { 0xFF }, { 94, 0 }, 2 }, 63 4, 4, 4, 4, 4,
125 { { 0xFF }, { 112, 0 }, 2 }, 64 // KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
126 { { 0xFF }, { 130, 0 }, 2 }, 65 4, 4, 4, 4, 4, 4, 4, 4,
127 { { 0xFF }, { 149, 0 }, 2 }, 66 4, 4, 4,
128 { { 0xFF }, { 167, 0 }, 2 }, 67 // Underglow / Border
129 { { 0xFF }, { 186, 0 }, 2 }, 68 2, 2, 2, 2, 2, 2, 2, 2,
130 { { 0xFF }, { 204, 0 }, 2 }, 69 2, 2, 2, 2, 2, 2, 2, 2,
131 { { 0xFF }, { 222, 1 }, 2 }, 70 2, 2, 2, 2, 2, 2, 2, 2,
132 { { 0xFF }, { 224, 17 }, 2 }, 71 2, 2, 2, 2, 2, 2, 2, 2
133 { { 0xFF }, { 224, 32 }, 2 }, 72} };
134 { { 0xFF }, { 224, 47 }, 2 }, 73
135};
136 74
137#ifdef USB_LED_INDICATOR_ENABLE 75#ifdef USB_LED_INDICATOR_ENABLE
138void rgb_matrix_indicators_kb(void) 76void rgb_matrix_indicators_kb(void)
diff --git a/keyboards/model01/leds.c b/keyboards/model01/leds.c
index 0abc1f0da..b21c1a5c8 100644
--- a/keyboards/model01/leds.c
+++ b/keyboards/model01/leds.c
@@ -46,72 +46,35 @@ void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b) {
46#ifdef RGB_MATRIX_ENABLE 46#ifdef RGB_MATRIX_ENABLE
47 47
48__attribute__ ((weak)) 48__attribute__ ((weak))
49rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 49led_config_t g_led_config = { {
50 {{0x73}, { 3, 35}, 4}, 50 { 27, 26, 20, 19, 12, 11, 4, 3 },
51 {{0x72}, { 0, 26}, 4}, 51 { 28, 25, 21, 18, 13, 10, 5, 2 },
52 {{0x71}, { 0, 17}, 4}, 52 { 29, 24, 22, 17, 14, 9, 6, 1 },
53 {{0x70}, { 0, 6}, 4}, 53 { 30, 31, 23, 16, 15, 8, 7, 0 },
54 {{0x60}, { 14, 5}, 4}, 54 { 60, 59, 52, 51, 44, 43, 37, 36 },
55 {{0x61}, { 15, 16}, 4}, 55 { 61, 58, 53, 50, 45, 42, 38, 35 },
56 {{0x62}, { 16, 25}, 4}, 56 { 62, 57, 54, 49, 46, 41, 39, 34 },
57 {{0x63}, { 17, 34}, 4}, 57 { 63, 56, 55, 48, 47, 40, 32, 33 }
58 {{0x53}, { 31, 29}, 4}, 58}, {
59 {{0x52}, { 31, 19}, 4}, 59 { 3, 35 }, { 0, 26 }, { 0, 17 }, { 0, 6 }, { 14, 5 }, { 15, 16 }, { 16, 25 }, { 17, 34 },
60 {{0x51}, { 30, 11}, 4}, 60 { 31, 29 }, { 31, 19 }, { 30, 11 }, { 30, 1 }, { 45, 0 }, { 45, 8 }, { 46, 17 }, { 46, 27 },
61 {{0x50}, { 30, 1}, 4}, 61 { 60, 27 }, { 60, 18 }, { 60, 9 }, { 60, 0 }, { 74, 2 }, { 74, 11 }, { 75, 20 }, { 74, 28 },
62 {{0x40}, { 45, 0}, 4}, 62 { 89, 30 }, { 89, 19 }, { 89, 7 }, { 70, 38 }, { 82, 41 }, { 93, 45 }, { 104, 50 }, { 74, 64 },
63 {{0x41}, { 45, 8}, 4}, 63 { 149, 64 }, { 119, 50 }, { 130, 45 }, { 141, 41 }, { 153, 38 }, { 134, 7 }, { 134, 19 }, { 134, 30 },
64 {{0x42}, { 46, 17}, 4}, 64 { 149, 28 }, { 148, 20 }, { 149, 11 }, { 149, 2 }, { 163, 0 }, { 163, 9 }, { 163, 18 }, { 163, 27 },
65 {{0x43}, { 46, 27}, 4}, 65 { 177, 27 }, { 177, 17 }, { 178, 8 }, { 178, 0 }, { 193, 1 }, { 193, 11 }, { 192, 19 }, { 192, 29 },
66 {{0x33}, { 60, 27}, 4}, 66 { 206, 34 }, { 207, 25 }, { 208, 16 }, { 209, 5 }, { 224, 6 }, { 223, 17 }, { 223, 26 }, { 220, 35 }
67 {{0x32}, { 60, 18}, 4}, 67}, {
68 {{0x31}, { 60, 9}, 4}, 68 4, 4, 4, 4, 4, 4, 4, 4,
69 {{0x30}, { 60, 0}, 4}, 69 4, 4, 4, 4, 4, 4, 4, 4,
70 {{0x20}, { 74, 2}, 4}, 70 4, 4, 4, 4, 4, 4, 4, 4,
71 {{0x21}, { 74, 11}, 4}, 71 4, 4, 4, 1, 1, 1, 1, 1,
72 {{0x22}, { 75, 20}, 4}, 72 1, 1, 1, 1, 1, 4, 4, 4,
73 {{0x23}, { 74, 28}, 4}, 73 4, 4, 4, 4, 4, 4, 4, 4,
74 {{0x12}, { 89, 30}, 4}, 74 4, 4, 4, 4, 4, 4, 4, 4,
75 {{0x11}, { 89, 19}, 4}, 75 4, 4, 4, 4, 4, 4, 4, 4
76 {{0x10}, { 89, 7}, 4}, 76} };
77 {{0x00}, { 70, 38}, 1}, 77
78 {{0x01}, { 82, 41}, 1},
79 {{0x02}, { 93, 45}, 1},
80 {{0x03}, {104, 50}, 1},
81 {{0x13}, { 74, 64}, 1},
82 {{0x67}, {149, 64}, 1},
83 {{0x77}, {119, 50}, 1},
84 {{0x76}, {130, 45}, 1},
85 {{0x75}, {141, 41}, 1},
86 {{0x74}, {153, 38}, 1},
87 {{0x64}, {134, 7}, 4},
88 {{0x65}, {134, 19}, 4},
89 {{0x66}, {134, 30}, 4},
90 {{0x57}, {149, 28}, 4},
91 {{0x56}, {148, 20}, 4},
92 {{0x55}, {149, 11}, 4},
93 {{0x54}, {149, 2}, 4},
94 {{0x44}, {163, 0}, 4},
95 {{0x45}, {163, 9}, 4},
96 {{0x46}, {163, 18}, 4},
97 {{0x47}, {163, 27}, 4},
98 {{0x37}, {177, 27}, 4},
99 {{0x36}, {177, 17}, 4},
100 {{0x35}, {178, 8}, 4},
101 {{0x34}, {178, 0}, 4},
102 {{0x24}, {193, 1}, 4},
103 {{0x25}, {193, 11}, 4},
104 {{0x26}, {192, 19}, 4},
105 {{0x27}, {192, 29}, 4},
106 {{0x17}, {206, 34}, 4},
107 {{0x16}, {207, 25}, 4},
108 {{0x15}, {208, 16}, 4},
109 {{0x14}, {209, 5}, 4},
110 {{0x04}, {224, 6}, 4},
111 {{0x05}, {223, 17}, 4},
112 {{0x06}, {223, 26}, 4},
113 {{0x07}, {220, 35}, 4},
114};
115 78
116static struct { 79static struct {
117 uint8_t b; 80 uint8_t b;
diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c
index 94f507189..3ad694c4a 100644
--- a/keyboards/planck/ez/ez.c
+++ b/keyboards/planck/ez/ez.c
@@ -79,63 +79,27 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
79 79
80}; 80};
81 81
82rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 82led_config_t g_led_config = { {
83 83 { 0, 1, 2, 3, 4, 5 },
84 /*{row | col << 4} 84 { 12, 13, 14, 15, 16, 17 },
85 | {x=0..224, y=0..64} 85 { 24, 25, 26, 27, 28, 29 },
86 | | flags 86 { 36, 37, 38, 45, 46, NO_LED },
87 | | | */ 87 { 6, 7, 8, 9, 10, 11 },
88 {{0|(0<<4)}, {20.36*0, 21.33*0}, 1}, 88 { 18, 19, 20, 21, 22, 23 },
89 {{0|(1<<4)}, {20.36*1, 21.33*0}, 4}, 89 { 30, 31, 32, 33, 34, 35 },
90 {{0|(2<<4)}, {20.36*2, 21.33*0}, 4}, 90 { 42, 43, 44, 39, 40, 41 }
91 {{0|(3<<4)}, {20.36*3, 21.33*0}, 4}, 91}, {
92 {{0|(4<<4)}, {20.36*4, 21.33*0}, 4}, 92 { 0, 0 }, { 20, 0 }, { 40, 0 }, { 61, 0 }, { 81, 0 }, { 101, 0 }, { 122, 0 }, { 142, 0 }, { 162, 0 }, { 183, 0 }, { 203, 0 }, { 223, 0 },
93 {{0|(5<<4)}, {20.36*5, 21.33*0}, 4}, 93 { 0, 21 }, { 20, 21 }, { 40, 21 }, { 61, 21 }, { 81, 21 }, { 101, 21 }, { 122, 21 }, { 142, 21 }, { 162, 21 }, { 183, 21 }, { 203, 21 }, { 223, 21 },
94 {{4|(0<<4)}, {20.36*6, 21.33*0}, 4}, 94 { 0, 42 }, { 20, 42 }, { 40, 42 }, { 61, 42 }, { 81, 42 }, { 101, 42 }, { 122, 42 }, { 142, 42 }, { 162, 42 }, { 183, 42 }, { 203, 42 }, { 223, 42 },
95 {{4|(1<<4)}, {20.36*7, 21.33*0}, 4}, 95 { 0, 63 }, { 20, 63 }, { 40, 63 }, { 61, 63 }, { 81, 63 }, { 111, 63 }, { 142, 63 }, { 162, 63 }, { 183, 63 }, { 203, 63 }, { 223, 63 }
96 {{4|(2<<4)}, {20.36*8, 21.33*0}, 4}, 96}, {
97 {{4|(3<<4)}, {20.36*9, 21.33*0}, 4}, 97 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
98 {{4|(4<<4)}, {20.36*10,21.33*0}, 4}, 98 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
99 {{4|(5<<4)}, {20.36*11,21.33*0}, 1}, 99 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
100 100 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1
101 {{1|(0<<4)}, {20.36*0, 21.33*1}, 1}, 101} };
102 {{1|(1<<4)}, {20.36*1, 21.33*1}, 4}, 102
103 {{1|(2<<4)}, {20.36*2, 21.33*1}, 4},
104 {{1|(3<<4)}, {20.36*3, 21.33*1}, 4},
105 {{1|(4<<4)}, {20.36*4, 21.33*1}, 4},
106 {{1|(5<<4)}, {20.36*5, 21.33*1}, 4},
107 {{5|(0<<4)}, {20.36*6, 21.33*1}, 4},
108 {{5|(1<<4)}, {20.36*7, 21.33*1}, 4},
109 {{5|(2<<4)}, {20.36*8, 21.33*1}, 4},
110 {{5|(3<<4)}, {20.36*9, 21.33*1}, 4},
111 {{5|(4<<4)}, {20.36*10,21.33*1}, 4},
112 {{5|(5<<4)}, {20.36*11,21.33*1}, 1},
113
114 {{2|(0<<4)}, {20.36*0, 21.33*2}, 1},
115 {{2|(1<<4)}, {20.36*1, 21.33*2}, 4},
116 {{2|(2<<4)}, {20.36*2, 21.33*2}, 4},
117 {{2|(3<<4)}, {20.36*3, 21.33*2}, 4},
118 {{2|(4<<4)}, {20.36*4, 21.33*2}, 4},
119 {{2|(5<<4)}, {20.36*5, 21.33*2}, 4},
120 {{6|(0<<4)}, {20.36*6, 21.33*2}, 4},
121 {{6|(1<<4)}, {20.36*7, 21.33*2}, 4},
122 {{6|(2<<4)}, {20.36*8, 21.33*2}, 4},
123 {{6|(3<<4)}, {20.36*9, 21.33*2}, 4},
124 {{6|(4<<4)}, {20.36*10,21.33*2}, 4},
125 {{6|(5<<4)}, {20.36*11,21.33*2}, 1},
126
127 {{3|(0<<4)}, {20.36*0, 21.33*3}, 1},
128 {{3|(1<<4)}, {20.36*1, 21.33*3}, 1},
129 {{3|(2<<4)}, {20.36*2, 21.33*3}, 1},
130 {{7|(3<<4)}, {20.36*3, 21.33*3}, 1},
131 {{7|(4<<4)}, {20.36*4, 21.33*3}, 1},
132 {{7|(5<<4)}, {20.36*5.5,21.33*3}, 4},
133 {{7|(0<<4)}, {20.36*7, 21.33*3}, 1},
134 {{7|(1<<4)}, {20.36*8, 21.33*3}, 1},
135 {{7|(2<<4)}, {20.36*9, 21.33*3}, 1},
136 {{3|(3<<4)}, {20.36*10,21.33*3}, 1},
137 {{3|(4<<4)}, {20.36*11,21.33*3}, 1}
138};
139 103
140void matrix_init_kb(void) { 104void matrix_init_kb(void) {
141 matrix_init_user(); 105 matrix_init_user();
diff --git a/keyboards/planck/keymaps/tom/keymap.c b/keyboards/planck/keymaps/tom/keymap.c
index 5b7177c6c..0ffff4e69 100644
--- a/keyboards/planck/keymaps/tom/keymap.c
+++ b/keyboards/planck/keymaps/tom/keymap.c
@@ -224,14 +224,16 @@ bool music_mask_user(uint16_t keycode) {
224 } 224 }
225} 225}
226 226
227#ifdef RGB_MATRIX_ENABLE
228extern led_config_t g_led_config;
229#endif
230
227void rgb_matrix_indicators_user(void) { 231void rgb_matrix_indicators_user(void) {
228 #ifdef RGB_MATRIX_ENABLE 232 #ifdef RGB_MATRIX_ENABLE
229 rgb_led led;
230 switch (biton32(layer_state)) { 233 switch (biton32(layer_state)) {
231 case _RAISE: 234 case _RAISE:
232 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 235 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
233 led = g_rgb_leds[i]; 236 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
234 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
235 rgb_matrix_set_color(i, 0x6B, 0x00, 0x80); 237 rgb_matrix_set_color(i, 0x6B, 0x00, 0x80);
236 } else { 238 } else {
237 rgb_matrix_set_color(i, 0x00, 0xFF, 0x00); 239 rgb_matrix_set_color(i, 0x00, 0xFF, 0x00);
@@ -241,8 +243,7 @@ void rgb_matrix_indicators_user(void) {
241 243
242 case _LOWER: 244 case _LOWER:
243 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 245 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
244 led = g_rgb_leds[i]; 246 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
245 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
246 rgb_matrix_set_color(i, 0xFF, 0xA5, 0x00); 247 rgb_matrix_set_color(i, 0xFF, 0xA5, 0x00);
247 } else { 248 } else {
248 rgb_matrix_set_color(i, 0x00, 0x67, 0xC7); 249 rgb_matrix_set_color(i, 0x00, 0x67, 0xC7);
diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c
index 178d28274..896ec4458 100644
--- a/keyboards/planck/light/light.c
+++ b/keyboards/planck/light/light.c
@@ -77,65 +77,24 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
77 {1, C9_14, C8_14, C7_14} 77 {1, C9_14, C8_14, C7_14}
78}; 78};
79 79
80rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 80led_config_t g_led_config = { {
81 81 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
82 /*{row | col << 4} 82 { 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 },
83 | {x=0..224, y=0..64} 83 { 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 },
84 | | flags 84 { 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48 }
85 | | | */ 85}, {
86 {{0|(0<<4)}, {20.36*0, 21.33*0}, 1}, 86 { 0, 0 }, { 20, 0 }, { 40, 0 }, { 61, 0 }, { 81, 0 }, { 101, 0 }, { 122, 0 }, { 142, 0 }, { 162, 0 }, { 183, 0 }, { 203, 0 }, { 223, 0 },
87 {{0|(1<<4)}, {20.36*1, 21.33*0}, 4}, 87 { 0, 21 }, { 20, 21 }, { 40, 21 }, { 61, 21 }, { 81, 21 }, { 101, 21 }, { 122, 21 }, { 142, 21 }, { 162, 21 }, { 183, 21 }, { 203, 21 }, { 223, 21 },
88 {{0|(2<<4)}, {20.36*2, 21.33*0}, 4}, 88 { 0, 42 }, { 20, 42 }, { 40, 42 }, { 61, 42 }, { 81, 42 }, { 101, 42 }, { 122, 42 }, { 142, 42 }, { 162, 42 }, { 183, 42 }, { 203, 42 }, { 223, 42 },
89 {{0|(3<<4)}, {20.36*3, 21.33*0}, 4}, 89 { 0, 63 }, { 20, 63 }, { 40, 63 }, { 61, 63 }, { 81, 63 }, { 101, 63 }, { 111, 63 }, { 122, 63 }, { 142, 63 }, { 162, 63 }, { 183, 63 }, { 203, 63 },
90 {{0|(4<<4)}, {20.36*4, 21.33*0}, 4}, 90 { 223, 63 }
91 {{0|(5<<4)}, {20.36*5, 21.33*0}, 4}, 91}, {
92 {{0|(6<<4)}, {20.36*6, 21.33*0}, 4}, 92 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
93 {{0|(7<<4)}, {20.36*7, 21.33*0}, 4}, 93 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
94 {{0|(8<<4)}, {20.36*8, 21.33*0}, 4}, 94 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
95 {{0|(9<<4)}, {20.36*9, 21.33*0}, 4}, 95 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1,
96 {{0|(10<<4)}, {20.36*10,21.33*0}, 4}, 96 1
97 {{0|(11<<4)}, {20.36*11,21.33*0}, 1}, 97} };
98
99 {{1|(0<<4)}, {20.36*0, 21.33*1}, 1},
100 {{1|(1<<4)}, {20.36*1, 21.33*1}, 4},
101 {{1|(2<<4)}, {20.36*2, 21.33*1}, 4},
102 {{1|(3<<4)}, {20.36*3, 21.33*1}, 4},
103 {{1|(4<<4)}, {20.36*4, 21.33*1}, 4},
104 {{1|(5<<4)}, {20.36*5, 21.33*1}, 4},
105 {{1|(6<<4)}, {20.36*6, 21.33*1}, 4},
106 {{1|(7<<4)}, {20.36*7, 21.33*1}, 4},
107 {{1|(8<<4)}, {20.36*8, 21.33*1}, 4},
108 {{1|(9<<4)}, {20.36*9, 21.33*1}, 4},
109 {{1|(10<<4)}, {20.36*10,21.33*1}, 4},
110 {{1|(11<<4)}, {20.36*11,21.33*1}, 1},
111
112 {{2|(0<<4)}, {20.36*0, 21.33*2}, 1},
113 {{2|(1<<4)}, {20.36*1, 21.33*2}, 4},
114 {{2|(2<<4)}, {20.36*2, 21.33*2}, 4},
115 {{2|(3<<4)}, {20.36*3, 21.33*2}, 4},
116 {{2|(4<<4)}, {20.36*4, 21.33*2}, 4},
117 {{2|(5<<4)}, {20.36*5, 21.33*2}, 4},
118 {{2|(6<<4)}, {20.36*6, 21.33*2}, 4},
119 {{2|(7<<4)}, {20.36*7, 21.33*2}, 4},
120 {{2|(8<<4)}, {20.36*8, 21.33*2}, 4},
121 {{2|(9<<4)}, {20.36*9, 21.33*2}, 4},
122 {{2|(10<<4)}, {20.36*10,21.33*2}, 4},
123 {{2|(11<<4)}, {20.36*11,21.33*2}, 1},
124
125 {{3|(0<<4)}, {20.36*0, 21.33*3}, 1},
126 {{3|(1<<4)}, {20.36*1, 21.33*3}, 1},
127 {{3|(2<<4)}, {20.36*2, 21.33*3}, 1},
128 {{3|(3<<4)}, {20.36*3, 21.33*3}, 1},
129 {{3|(4<<4)}, {20.36*4, 21.33*3}, 1},
130 {{3|(5<<4)}, {20.36*5, 21.33*3}, 4},
131 {{3|(5<<4)}, {20.36*5.5,21.33*3}, 4},
132 {{3|(6<<4)}, {20.36*6, 21.33*3}, 4},
133 {{3|(7<<4)}, {20.36*7, 21.33*3}, 1},
134 {{3|(8<<4)}, {20.36*8, 21.33*3}, 1},
135 {{3|(9<<4)}, {20.36*9, 21.33*3}, 1},
136 {{3|(10<<4)}, {20.36*10,21.33*3}, 1},
137 {{3|(11<<4)}, {20.36*11,21.33*3}, 1}
138};
139 98
140void matrix_init_kb(void) { 99void matrix_init_kb(void) {
141 100
@@ -151,6 +110,16 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record)
151 return process_record_user(keycode, record); 110 return process_record_user(keycode, record);
152} 111}
153 112
113uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) {
114 // Spacebar has 2 leds 41 & 42, so add 42 to the array here, and 41 will be added
115 // by the default lookup code that runs after this
116 if (row == 3 && column == 5) {
117 led_i[0] = 42;
118 return 1;
119 }
120 return 0;
121}
122
154void matrix_scan_kb(void) 123void matrix_scan_kb(void)
155{ 124{
156 matrix_scan_user(); 125 matrix_scan_user();
diff --git a/keyboards/sol/rev1/rev1.c b/keyboards/sol/rev1/rev1.c
index 23896860e..68e64af79 100644
--- a/keyboards/sol/rev1/rev1.c
+++ b/keyboards/sol/rev1/rev1.c
@@ -1,83 +1,46 @@
1#include "quantum.h" 1#include "quantum.h"
2 2
3#ifdef RGB_MATRIX_ENABLE 3#ifdef RGB_MATRIX_ENABLE
4 rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { 4led_config_t g_led_config = { {
5 { 0, 1, 2, 3, 4, 5, 6 },
6 { 7, 8, 9, 10, 11, 12, 13 },
7 { 14, 15, 16, 17, 18, 19, 20 },
8 { 21, 22, 23, 24, 25, 26, 27 },
9 { 28, 29, 30, 31, 32, 33, 34 },
10 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 },
11 { 35, 36, 37, 38, 39, 40, 41 },
12 { 42, 43, 44, 45, 46, 47, 48 },
13 { 49, 50, 51, 52, 53, 54, 55 },
14 { 56, 57, 58, 59, 60, 61, 62 },
15 { 63, 64, 65, 66, 67, 68, 68 },
16 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 68, 68 }
17}, {
5 // Left Hand Mapped Left to Right 18 // Left Hand Mapped Left to Right
6 { { 0 | (0 << 4) }, { 0, 0 }, 1}, 19 { 0, 0 }, { 22, 0 }, { 37, 0 }, { 37, 0 }, { 67, 0 }, { 82, 0 }, { 104, 0 },
7 { { 0 | (1 << 4) }, { 22, 0 }, 4}, 20 { 0, 16 }, { 22, 16 }, { 37, 16 }, { 37, 16 }, { 67, 16 }, { 82, 16 }, { 104, 16 },
8 { { 0 | (2 << 4) }, { 37, 0 }, 4}, 21 { 0, 32 }, { 22, 32 }, { 37, 32 }, { 37, 32 }, { 67, 32 }, { 82, 32 }, { 104, 32 },
9 { { 0 | (3 << 4) }, { 37, 0 }, 4}, 22 { 0, 48 }, { 22, 48 }, { 37, 48 }, { 37, 48 }, { 67, 48 }, { 82, 48 }, { 104, 48 },
10 { { 0 | (4 << 4) }, { 67, 0 }, 4}, 23 { 0, 64 }, { 22, 64 }, { 37, 64 }, { 37, 64 }, { 67, 64 }, { 89, 45 }, { 97, 55 },
11 { { 0 | (5 << 4) }, { 82, 0 }, 4},
12 { { 0 | (6 << 4) }, { 104, 0 }, 1},
13 { { 1 | (0 << 4) }, { 0, 16 }, 1},
14 { { 1 | (1 << 4) }, { 22, 16 }, 4},
15 { { 1 | (2 << 4) }, { 37, 16 }, 4},
16 { { 1 | (3 << 4) }, { 37, 16 }, 4},
17 { { 1 | (4 << 4) }, { 67, 16 }, 4},
18 { { 1 | (5 << 4) }, { 82, 16 }, 4},
19 { { 1 | (6 << 4) }, { 104, 16 }, 1},
20 { { 2 | (0 << 4) }, { 0, 32 }, 1},
21 { { 2 | (1 << 4) }, { 22, 32 }, 4},
22 { { 2 | (2 << 4) }, { 37, 32 }, 4},
23 { { 2 | (3 << 4) }, { 37, 32 }, 4},
24 { { 2 | (4 << 4) }, { 67, 32 }, 4},
25 { { 2 | (5 << 4) }, { 82, 32 }, 4},
26 { { 2 | (6 << 4) }, { 104, 32 }, 1},
27 { { 3 | (0 << 4) }, { 0, 48 }, 1},
28 { { 3 | (1 << 4) }, { 22, 48 }, 4},
29 { { 3 | (2 << 4) }, { 37, 48 }, 4},
30 { { 3 | (3 << 4) }, { 37, 48 }, 4},
31 { { 3 | (4 << 4) }, { 67, 48 }, 4},
32 { { 3 | (5 << 4) }, { 82, 48 }, 4},
33 { { 3 | (6 << 4) }, { 104, 48 }, 1},
34 { { 4 | (0 << 4) }, { 0, 64 }, 1},
35 { { 4 | (1 << 4) }, { 22, 64 }, 1},
36 { { 4 | (2 << 4) }, { 37, 64 }, 1},
37 { { 4 | (3 << 4) }, { 37, 64 }, 1},
38 { { 4 | (4 << 4) }, { 67, 64 }, 1},
39 // These two control the 4 LEDs in the thumb cluster
40 // Top keys are { 4 | (5 << 4) & { 4 | (6 << 4)
41 { { 5 | (5 << 4) }, { 89, 45 }, 1},
42 { { 5 | (6 << 4) }, { 97, 55 }, 1},
43 // Left Hand Mapped Right to Left 24 // Left Hand Mapped Right to Left
44 { { 6 | (0 << 4) }, { 224, 0 }, 1}, 25 { 224, 0 }, { 202, 0 }, { 187, 0 }, { 172, 0 }, { 157, 0 }, { 142, 0 }, { 120, 0 },
45 { { 6 | (1 << 4) }, { 202, 0 }, 4}, 26 { 224, 16 }, { 202, 16 }, { 187, 16 }, { 172, 16 }, { 157, 16 }, { 142, 16 }, { 120, 16 },
46 { { 6 | (2 << 4) }, { 187, 0 }, 4}, 27 { 224, 32 }, { 202, 32 }, { 187, 32 }, { 172, 32 }, { 157, 32 }, { 142, 32 }, { 120, 32 },
47 { { 6 | (3 << 4) }, { 172, 0 }, 4}, 28 { 224, 48 }, { 202, 48 }, { 187, 48 }, { 172, 48 }, { 157, 48 }, { 142, 48 }, { 120, 48 },
48 { { 6 | (4 << 4) }, { 157, 0 }, 4}, 29 { 224, 64 }, { 202, 64 }, { 187, 64 }, { 172, 64 }, { 157, 64 }, { 135, 45 }, { 127, 55 }
49 { { 6 | (5 << 4) }, { 142, 0 }, 4}, 30}, {
50 { { 6 | (6 << 4) }, { 120, 0 }, 1}, 31 // Left Hand Mapped Left to Right
51 { { 7 | (0 << 4) }, { 224, 16 }, 1}, 32 1, 4, 4, 4, 4, 4, 1,
52 { { 7 | (1 << 4) }, { 202, 16 }, 4}, 33 1, 4, 4, 4, 4, 4, 1,
53 { { 7 | (2 << 4) }, { 187, 16 }, 4}, 34 1, 4, 4, 4, 4, 4, 1,
54 { { 7 | (3 << 4) }, { 172, 16 }, 4}, 35 1, 4, 4, 4, 4, 4, 1,
55 { { 7 | (4 << 4) }, { 157, 16 }, 4}, 36 1, 1, 1, 1, 1, 1, 1,
56 { { 7 | (5 << 4) }, { 142, 16 }, 4}, 37 // Left Hand Mapped Right to Left
57 { { 7 | (6 << 4) }, { 120, 16 }, 1}, 38 1, 4, 4, 4, 4, 4, 1,
58 { { 8 | (0 << 4) }, { 224, 32 }, 1}, 39 1, 4, 4, 4, 4, 4, 1,
59 { { 8 | (1 << 4) }, { 202, 32 }, 4}, 40 1, 4, 4, 4, 4, 4, 1,
60 { { 8 | (2 << 4) }, { 187, 32 }, 4}, 41 1, 4, 4, 4, 4, 4, 1,
61 { { 8 | (3 << 4) }, { 172, 32 }, 4}, 42 1, 1, 1, 1, 1, 1, 1
62 { { 8 | (4 << 4) }, { 157, 32 }, 4}, 43} };
63 { { 8 | (5 << 4) }, { 142, 32 }, 4}, 44
64 { { 8 | (6 << 4) }, { 120, 32 }, 1},
65 { { 9 | (0 << 4) }, { 224, 48 }, 1},
66 { { 9 | (1 << 4) }, { 202, 48 }, 4},
67 { { 9 | (2 << 4) }, { 187, 48 }, 4},
68 { { 9 | (3 << 4) }, { 172, 48 }, 4},
69 { { 9 | (4 << 4) }, { 157, 48 }, 4},
70 { { 9 | (5 << 4) }, { 142, 48 }, 4},
71 { { 9 | (6 << 4) }, { 120, 48 }, 1},
72 { { 10 | (0 << 4) }, { 224, 64 }, 1},
73 { { 10 | (1 << 4) }, { 202, 64 }, 1},
74 { { 10 | (2 << 4) }, { 187, 64 }, 1},
75 { { 10 | (3 << 4) }, { 172, 64 }, 1},
76 { { 10 | (4 << 4) }, { 157, 64 }, 1},
77 // These two control the 4 LEDs in the thumb cluster
78 // Top keys are { 10 | (5 << 4) & { 10 | (6 << 4)
79 { { 11 | (5 << 4) }, { 135, 45 }, 1},
80 { { 11 | (6 << 4) }, { 127, 55 }, 1}
81 };
82#endif 45#endif
83 46
diff --git a/keyboards/sol/sol.c b/keyboards/sol/sol.c
index a65d4c15f..5945cc60a 100644
--- a/keyboards/sol/sol.c
+++ b/keyboards/sol/sol.c
@@ -1,20 +1 @@
1#include "sol.h" #include "sol.h"
2
3#if defined(RGB_MATRIX_ENABLE)
4uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) {
5 if (row == 4 && column == 5) {
6 led_i[0] = 33;
7 return 1;
8 } else if (row == 4 && column == 6) {
9 led_i[0] = 34;
10 return 1;
11 } else if (row == 10 && column == 5) {
12 led_i[0] = 68;
13 return 1;
14 } else if (row == 10 && column == 6) {
15 led_i[0] = 69;
16 return 1;
17 }
18 return 0;
19}
20#endif
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
index eeb21501b..3cfce966b 100644
--- a/layouts/community/ergodox/drashna/keymap.c
+++ b/layouts/community/ergodox/drashna/keymap.c
@@ -403,11 +403,10 @@ void suspend_wakeup_init_keymap(void) {
403 rgb_matrix_set_suspend_state(false); 403 rgb_matrix_set_suspend_state(false);
404} 404}
405 405
406void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { 406extern led_config_t g_led_config;
407 rgb_led led; 407void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
408 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 408 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
409 led = g_rgb_leds[i]; 409 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
410 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
411 rgb_matrix_set_color( i, red, green, blue ); 410 rgb_matrix_set_color( i, red, green, blue );
412 } 411 }
413 } 412 }
diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c
index 5eef2e023..e8dc185a1 100644
--- a/layouts/community/ortho_4x12/drashna/keymap.c
+++ b/layouts/community/ortho_4x12/drashna/keymap.c
@@ -184,11 +184,10 @@ void suspend_wakeup_init_keymap(void) {
184 rgb_matrix_set_suspend_state(false); 184 rgb_matrix_set_suspend_state(false);
185} 185}
186 186
187extern led_config_t g_led_config;
187void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { 188void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) {
188 rgb_led led;
189 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 189 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
190 led = g_rgb_leds[i]; 190 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
191 if (HAS_FLAGS(led.flags, LED_FLAG_MODIFIER)) {
192 rgb_matrix_set_color( i, red, green, blue ); 191 rgb_matrix_set_color( i, red, green, blue );
193 } 192 }
194 } 193 }
diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c
index 5528a0834..edbcee9cd 100644
--- a/quantum/rgb_matrix.c
+++ b/quantum/rgb_matrix.c
@@ -105,6 +105,7 @@
105 105
106bool g_suspend_state = false; 106bool g_suspend_state = false;
107 107
108extern led_config_t g_led_config;
108rgb_config_t rgb_matrix_config; 109rgb_config_t rgb_matrix_config;
109 110
110rgb_counters_t g_rgb_counters; 111rgb_counters_t g_rgb_counters;
@@ -150,14 +151,11 @@ uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t
150} 151}
151 152
152uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i) { 153uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i) {
153 // TODO: This is kinda expensive, fix this soonish
154 uint8_t led_count = rgb_matrix_map_row_column_to_led_kb(row, column, led_i); 154 uint8_t led_count = rgb_matrix_map_row_column_to_led_kb(row, column, led_i);
155 for (uint8_t i = 0; i < DRIVER_LED_TOTAL && led_count < LED_HITS_TO_REMEMBER; i++) { 155 uint8_t led_index = g_led_config.matrix_co[row][column];
156 matrix_co_t matrix_co = g_rgb_leds[i].matrix_co; 156 if (led_index != NO_LED) {
157 if (row == matrix_co.row && column == matrix_co.col) { 157 led_i[led_count] = led_index;
158 led_i[led_count] = i; 158 led_count++;
159 led_count++;
160 }
161 } 159 }
162 return led_count; 160 return led_count;
163} 161}
@@ -201,8 +199,8 @@ bool process_rgb_matrix(uint16_t keycode, keyrecord_t *record) {
201 199
202 for(uint8_t i = 0; i < led_count; i++) { 200 for(uint8_t i = 0; i < led_count; i++) {
203 uint8_t index = last_hit_buffer.count; 201 uint8_t index = last_hit_buffer.count;
204 last_hit_buffer.x[index] = g_rgb_leds[led[i]].point.x; 202 last_hit_buffer.x[index] = g_led_config.point[led[i]].x;
205 last_hit_buffer.y[index] = g_rgb_leds[led[i]].point.y; 203 last_hit_buffer.y[index] = g_led_config.point[led[i]].y;
206 last_hit_buffer.index[index] = led[i]; 204 last_hit_buffer.index[index] = led[i];
207 last_hit_buffer.tick[index] = 0; 205 last_hit_buffer.tick[index] = 0;
208 last_hit_buffer.count++; 206 last_hit_buffer.count++;
diff --git a/quantum/rgb_matrix.h b/quantum/rgb_matrix.h
index 33665ffff..365a92bbf 100644
--- a/quantum/rgb_matrix.h
+++ b/quantum/rgb_matrix.h
@@ -54,9 +54,7 @@
54 uint8_t max = DRIVER_LED_TOTAL; 54 uint8_t max = DRIVER_LED_TOTAL;
55#endif 55#endif
56 56
57#define RGB_MATRIX_TEST_LED_FLAGS() if (!HAS_ANY_FLAGS(g_rgb_leds[i].flags, params->flags)) continue 57#define RGB_MATRIX_TEST_LED_FLAGS() if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) continue
58
59extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL];
60 58
61typedef struct 59typedef struct
62{ 60{
diff --git a/quantum/rgb_matrix_animations/alpha_mods_anim.h b/quantum/rgb_matrix_animations/alpha_mods_anim.h
index 4bd01c4fc..d7f6f4655 100644
--- a/quantum/rgb_matrix_animations/alpha_mods_anim.h
+++ b/quantum/rgb_matrix_animations/alpha_mods_anim.h
@@ -1,7 +1,7 @@
1#pragma once 1#pragma once
2#ifndef DISABLE_RGB_MATRIX_ALPHAS_MODS 2#ifndef DISABLE_RGB_MATRIX_ALPHAS_MODS
3 3
4extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 4extern led_config_t g_led_config;
5extern rgb_config_t rgb_matrix_config; 5extern rgb_config_t rgb_matrix_config;
6 6
7// alphas = color1, mods = color2 7// alphas = color1, mods = color2
@@ -15,7 +15,7 @@ bool rgb_matrix_alphas_mods(effect_params_t* params) {
15 15
16 for (uint8_t i = led_min; i < led_max; i++) { 16 for (uint8_t i = led_min; i < led_max; i++) {
17 RGB_MATRIX_TEST_LED_FLAGS(); 17 RGB_MATRIX_TEST_LED_FLAGS();
18 if (HAS_FLAGS(g_rgb_leds[i].flags, LED_FLAG_MODIFIER)) { 18 if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
19 rgb_matrix_set_color(i, rgb2.r, rgb2.g, rgb2.b); 19 rgb_matrix_set_color(i, rgb2.r, rgb2.g, rgb2.b);
20 } else { 20 } else {
21 rgb_matrix_set_color(i, rgb1.r, rgb1.g, rgb1.b); 21 rgb_matrix_set_color(i, rgb1.r, rgb1.g, rgb1.b);
diff --git a/quantum/rgb_matrix_animations/cycle_all_anim.h b/quantum/rgb_matrix_animations/cycle_all_anim.h
index 513dff128..e93798f90 100644
--- a/quantum/rgb_matrix_animations/cycle_all_anim.h
+++ b/quantum/rgb_matrix_animations/cycle_all_anim.h
@@ -2,7 +2,7 @@
2#ifndef DISABLE_RGB_MATRIX_CYCLE_ALL 2#ifndef DISABLE_RGB_MATRIX_CYCLE_ALL
3 3
4extern rgb_counters_t g_rgb_counters; 4extern rgb_counters_t g_rgb_counters;
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7 7
8bool rgb_matrix_cycle_all(effect_params_t* params) { 8bool rgb_matrix_cycle_all(effect_params_t* params) {
diff --git a/quantum/rgb_matrix_animations/cycle_left_right_anim.h b/quantum/rgb_matrix_animations/cycle_left_right_anim.h
index 428adea22..4b09d5826 100644
--- a/quantum/rgb_matrix_animations/cycle_left_right_anim.h
+++ b/quantum/rgb_matrix_animations/cycle_left_right_anim.h
@@ -2,7 +2,7 @@
2#ifndef DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT 2#ifndef DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
3 3
4extern rgb_counters_t g_rgb_counters; 4extern rgb_counters_t g_rgb_counters;
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7 7
8bool rgb_matrix_cycle_left_right(effect_params_t* params) { 8bool rgb_matrix_cycle_left_right(effect_params_t* params) {
@@ -12,8 +12,7 @@ bool rgb_matrix_cycle_left_right(effect_params_t* params) {
12 uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 4); 12 uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 4);
13 for (uint8_t i = led_min; i < led_max; i++) { 13 for (uint8_t i = led_min; i < led_max; i++) {
14 RGB_MATRIX_TEST_LED_FLAGS(); 14 RGB_MATRIX_TEST_LED_FLAGS();
15 point_t point = g_rgb_leds[i].point; 15 hsv.h = g_led_config.point[i].x - time;
16 hsv.h = point.x - time;
17 RGB rgb = hsv_to_rgb(hsv); 16 RGB rgb = hsv_to_rgb(hsv);
18 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 17 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
19 } 18 }
diff --git a/quantum/rgb_matrix_animations/cycle_up_down_anim.h b/quantum/rgb_matrix_animations/cycle_up_down_anim.h
index ea63095d2..403214bb7 100644
--- a/quantum/rgb_matrix_animations/cycle_up_down_anim.h
+++ b/quantum/rgb_matrix_animations/cycle_up_down_anim.h
@@ -2,7 +2,7 @@
2#ifndef DISABLE_RGB_MATRIX_CYCLE_UP_DOWN 2#ifndef DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
3 3
4extern rgb_counters_t g_rgb_counters; 4extern rgb_counters_t g_rgb_counters;
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7 7
8bool rgb_matrix_cycle_up_down(effect_params_t* params) { 8bool rgb_matrix_cycle_up_down(effect_params_t* params) {
@@ -12,8 +12,7 @@ bool rgb_matrix_cycle_up_down(effect_params_t* params) {
12 uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 4); 12 uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 4);
13 for (uint8_t i = led_min; i < led_max; i++) { 13 for (uint8_t i = led_min; i < led_max; i++) {
14 RGB_MATRIX_TEST_LED_FLAGS(); 14 RGB_MATRIX_TEST_LED_FLAGS();
15 point_t point = g_rgb_leds[i].point; 15 hsv.h = g_led_config.point[i].y - time;
16 hsv.h = point.y - time;
17 RGB rgb = hsv_to_rgb(hsv); 16 RGB rgb = hsv_to_rgb(hsv);
18 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 17 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
19 } 18 }
diff --git a/quantum/rgb_matrix_animations/dual_beacon_anim.h b/quantum/rgb_matrix_animations/dual_beacon_anim.h
index 00f6e5088..dcb594029 100644
--- a/quantum/rgb_matrix_animations/dual_beacon_anim.h
+++ b/quantum/rgb_matrix_animations/dual_beacon_anim.h
@@ -2,7 +2,7 @@
2#ifndef DISABLE_RGB_MATRIX_DUAL_BEACON 2#ifndef DISABLE_RGB_MATRIX_DUAL_BEACON
3 3
4extern rgb_counters_t g_rgb_counters; 4extern rgb_counters_t g_rgb_counters;
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7 7
8bool rgb_matrix_dual_beacon(effect_params_t* params) { 8bool rgb_matrix_dual_beacon(effect_params_t* params) {
@@ -14,8 +14,7 @@ bool rgb_matrix_dual_beacon(effect_params_t* params) {
14 int8_t sin_value = sin8(time) - 128; 14 int8_t sin_value = sin8(time) - 128;
15 for (uint8_t i = led_min; i < led_max; i++) { 15 for (uint8_t i = led_min; i < led_max; i++) {
16 RGB_MATRIX_TEST_LED_FLAGS(); 16 RGB_MATRIX_TEST_LED_FLAGS();
17 point_t point = g_rgb_leds[i].point; 17 hsv.h = ((g_led_config.point[i].y - 32) * cos_value + (g_led_config.point[i].x - 112) * sin_value) / 128 + rgb_matrix_config.hue;
18 hsv.h = ((point.y - 32) * cos_value + (point.x - 112) * sin_value) / 128 + rgb_matrix_config.hue;
19 RGB rgb = hsv_to_rgb(hsv); 18 RGB rgb = hsv_to_rgb(hsv);
20 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 19 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
21 } 20 }
diff --git a/quantum/rgb_matrix_animations/gradient_up_down_anim.h b/quantum/rgb_matrix_animations/gradient_up_down_anim.h
index 05117540a..7a6ed1421 100644
--- a/quantum/rgb_matrix_animations/gradient_up_down_anim.h
+++ b/quantum/rgb_matrix_animations/gradient_up_down_anim.h
@@ -1,7 +1,7 @@
1#pragma once 1#pragma once
2#ifndef DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN 2#ifndef DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
3 3
4extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 4extern led_config_t g_led_config;
5extern rgb_config_t rgb_matrix_config; 5extern rgb_config_t rgb_matrix_config;
6 6
7bool rgb_matrix_gradient_up_down(effect_params_t* params) { 7bool rgb_matrix_gradient_up_down(effect_params_t* params) {
@@ -11,10 +11,9 @@ bool rgb_matrix_gradient_up_down(effect_params_t* params) {
11 uint8_t scale = scale8(64, rgb_matrix_config.speed); 11 uint8_t scale = scale8(64, rgb_matrix_config.speed);
12 for (uint8_t i = led_min; i < led_max; i++) { 12 for (uint8_t i = led_min; i < led_max; i++) {
13 RGB_MATRIX_TEST_LED_FLAGS(); 13 RGB_MATRIX_TEST_LED_FLAGS();
14 point_t point = g_rgb_leds[i].point;
15 // The y range will be 0..64, map this to 0..4 14 // The y range will be 0..64, map this to 0..4
16 // Relies on hue being 8-bit and wrapping 15 // Relies on hue being 8-bit and wrapping
17 hsv.h = rgb_matrix_config.hue + scale * (point.y >> 4); 16 hsv.h = rgb_matrix_config.hue + scale * (g_led_config.point[i].y >> 4);
18 RGB rgb = hsv_to_rgb(hsv); 17 RGB rgb = hsv_to_rgb(hsv);
19 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 18 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
20 } 19 }
diff --git a/quantum/rgb_matrix_animations/jellybean_raindrops_anim.h b/quantum/rgb_matrix_animations/jellybean_raindrops_anim.h
index dffa53264..5ea971435 100644
--- a/quantum/rgb_matrix_animations/jellybean_raindrops_anim.h
+++ b/quantum/rgb_matrix_animations/jellybean_raindrops_anim.h
@@ -2,11 +2,11 @@
2#ifndef DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS 2#ifndef DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
3 3
4extern rgb_counters_t g_rgb_counters; 4extern rgb_counters_t g_rgb_counters;
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7 7
8static void jellybean_raindrops_set_color(int i, effect_params_t* params) { 8static void jellybean_raindrops_set_color(int i, effect_params_t* params) {
9 if (!HAS_ANY_FLAGS(g_rgb_leds[i].flags, params->flags)) return; 9 if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
10 HSV hsv = { rand() & 0xFF , rand() & 0xFF, rgb_matrix_config.val }; 10 HSV hsv = { rand() & 0xFF , rand() & 0xFF, rgb_matrix_config.val };
11 RGB rgb = hsv_to_rgb(hsv); 11 RGB rgb = hsv_to_rgb(hsv);
12 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 12 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
diff --git a/quantum/rgb_matrix_animations/rainbow_beacon_anim.h b/quantum/rgb_matrix_animations/rainbow_beacon_anim.h
index 89f6965c3..d46288073 100644
--- a/quantum/rgb_matrix_animations/rainbow_beacon_anim.h
+++ b/quantum/rgb_matrix_animations/rainbow_beacon_anim.h
@@ -2,7 +2,7 @@
2#ifndef DISABLE_RGB_MATRIX_RAINBOW_BEACON 2#ifndef DISABLE_RGB_MATRIX_RAINBOW_BEACON
3 3
4extern rgb_counters_t g_rgb_counters; 4extern rgb_counters_t g_rgb_counters;
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7 7
8bool rgb_matrix_rainbow_beacon(effect_params_t* params) { 8bool rgb_matrix_rainbow_beacon(effect_params_t* params) {
@@ -14,8 +14,7 @@ bool rgb_matrix_rainbow_beacon(effect_params_t* params) {
14 int16_t sin_value = 2 * (sin8(time) - 128); 14 int16_t sin_value = 2 * (sin8(time) - 128);
15 for (uint8_t i = led_min; i < led_max; i++) { 15 for (uint8_t i = led_min; i < led_max; i++) {
16 RGB_MATRIX_TEST_LED_FLAGS(); 16 RGB_MATRIX_TEST_LED_FLAGS();
17 point_t point = g_rgb_leds[i].point; 17 hsv.h = ((g_led_config.point[i].y - 32) * cos_value + (g_led_config.point[i].x - 112) * sin_value) / 128 + rgb_matrix_config.hue;
18 hsv.h = ((point.y - 32) * cos_value + (point.x - 112) * sin_value) / 128 + rgb_matrix_config.hue;
19 RGB rgb = hsv_to_rgb(hsv); 18 RGB rgb = hsv_to_rgb(hsv);
20 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 19 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
21 } 20 }
diff --git a/quantum/rgb_matrix_animations/rainbow_moving_chevron_anim.h b/quantum/rgb_matrix_animations/rainbow_moving_chevron_anim.h
index 0d57aef57..3b7d9689f 100644
--- a/quantum/rgb_matrix_animations/rainbow_moving_chevron_anim.h
+++ b/quantum/rgb_matrix_animations/rainbow_moving_chevron_anim.h
@@ -2,7 +2,7 @@
2#ifndef DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON 2#ifndef DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
3 3
4extern rgb_counters_t g_rgb_counters; 4extern rgb_counters_t g_rgb_counters;
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7 7
8bool rgb_matrix_rainbow_moving_chevron(effect_params_t* params) { 8bool rgb_matrix_rainbow_moving_chevron(effect_params_t* params) {
@@ -12,8 +12,7 @@ bool rgb_matrix_rainbow_moving_chevron(effect_params_t* params) {
12 uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 4); 12 uint8_t time = scale16by8(g_rgb_counters.tick, rgb_matrix_config.speed / 4);
13 for (uint8_t i = led_min; i < led_max; i++) { 13 for (uint8_t i = led_min; i < led_max; i++) {
14 RGB_MATRIX_TEST_LED_FLAGS(); 14 RGB_MATRIX_TEST_LED_FLAGS();
15 point_t point = g_rgb_leds[i].point; 15 hsv.h = abs8(g_led_config.point[i].y - 32) + (g_led_config.point[i].x - time) + rgb_matrix_config.hue;
16 hsv.h = abs8(point.y - 32) + (point.x - time) + rgb_matrix_config.hue;
17 RGB rgb = hsv_to_rgb(hsv); 16 RGB rgb = hsv_to_rgb(hsv);
18 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 17 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
19 } 18 }
diff --git a/quantum/rgb_matrix_animations/rainbow_pinwheels_anim.h b/quantum/rgb_matrix_animations/rainbow_pinwheels_anim.h
index 03652758c..e92f35176 100644
--- a/quantum/rgb_matrix_animations/rainbow_pinwheels_anim.h
+++ b/quantum/rgb_matrix_animations/rainbow_pinwheels_anim.h
@@ -2,7 +2,7 @@
2#ifndef DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS 2#ifndef DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
3 3
4extern rgb_counters_t g_rgb_counters; 4extern rgb_counters_t g_rgb_counters;
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7 7
8bool rgb_matrix_rainbow_pinwheels(effect_params_t* params) { 8bool rgb_matrix_rainbow_pinwheels(effect_params_t* params) {
@@ -14,8 +14,7 @@ bool rgb_matrix_rainbow_pinwheels(effect_params_t* params) {
14 int16_t sin_value = 3 * (sin8(time) - 128); 14 int16_t sin_value = 3 * (sin8(time) - 128);
15 for (uint8_t i = led_min; i < led_max; i++) { 15 for (uint8_t i = led_min; i < led_max; i++) {
16 RGB_MATRIX_TEST_LED_FLAGS(); 16 RGB_MATRIX_TEST_LED_FLAGS();
17 point_t point = g_rgb_leds[i].point; 17 hsv.h = ((g_led_config.point[i].y - 32) * cos_value + (56 - abs8(g_led_config.point[i].x - 112)) * sin_value) / 128 + rgb_matrix_config.hue;
18 hsv.h = ((point.y - 32) * cos_value + (56 - abs8(point.x - 112)) * sin_value) / 128 + rgb_matrix_config.hue;
19 RGB rgb = hsv_to_rgb(hsv); 18 RGB rgb = hsv_to_rgb(hsv);
20 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 19 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
21 } 20 }
diff --git a/quantum/rgb_matrix_animations/raindrops_anim.h b/quantum/rgb_matrix_animations/raindrops_anim.h
index 0e3a87864..4ce1d65e5 100644
--- a/quantum/rgb_matrix_animations/raindrops_anim.h
+++ b/quantum/rgb_matrix_animations/raindrops_anim.h
@@ -3,10 +3,11 @@
3#include "rgb_matrix_types.h" 3#include "rgb_matrix_types.h"
4 4
5extern rgb_counters_t g_rgb_counters; 5extern rgb_counters_t g_rgb_counters;
6extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 7extern rgb_config_t rgb_matrix_config;
7 8
8static void raindrops_set_color(int i, effect_params_t* params) { 9static void raindrops_set_color(int i, effect_params_t* params) {
9 if (!HAS_ANY_FLAGS(g_rgb_leds[i].flags, params->flags)) return; 10 if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
10 HSV hsv = { 0 , rgb_matrix_config.sat, rgb_matrix_config.val }; 11 HSV hsv = { 0 , rgb_matrix_config.sat, rgb_matrix_config.val };
11 12
12 // Take the shortest path between hues 13 // Take the shortest path between hues
diff --git a/quantum/rgb_matrix_animations/solid_color_anim.h b/quantum/rgb_matrix_animations/solid_color_anim.h
index 033c1f933..ba2cea15e 100644
--- a/quantum/rgb_matrix_animations/solid_color_anim.h
+++ b/quantum/rgb_matrix_animations/solid_color_anim.h
@@ -1,5 +1,6 @@
1#pragma once 1#pragma once
2 2
3extern led_config_t g_led_config;
3extern rgb_config_t rgb_matrix_config; 4extern rgb_config_t rgb_matrix_config;
4 5
5bool rgb_matrix_solid_color(effect_params_t* params) { 6bool rgb_matrix_solid_color(effect_params_t* params) {
diff --git a/quantum/rgb_matrix_animations/solid_reactive_anim.h b/quantum/rgb_matrix_animations/solid_reactive_anim.h
index 82483653a..c3dba8a5a 100644
--- a/quantum/rgb_matrix_animations/solid_reactive_anim.h
+++ b/quantum/rgb_matrix_animations/solid_reactive_anim.h
@@ -2,6 +2,7 @@
2#if defined(RGB_MATRIX_KEYREACTIVE_ENABLED) 2#if defined(RGB_MATRIX_KEYREACTIVE_ENABLED)
3#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE 3#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE
4 4
5extern led_config_t g_led_config;
5extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
6extern last_hit_t g_last_hit_tracker; 7extern last_hit_t g_last_hit_tracker;
7 8
diff --git a/quantum/rgb_matrix_animations/solid_reactive_cross.h b/quantum/rgb_matrix_animations/solid_reactive_cross.h
index 1dec1886d..8858f71e6 100644
--- a/quantum/rgb_matrix_animations/solid_reactive_cross.h
+++ b/quantum/rgb_matrix_animations/solid_reactive_cross.h
@@ -2,7 +2,7 @@
2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED 2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
3#if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS) 3#if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS)
4 4
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7extern last_hit_t g_last_hit_tracker; 7extern last_hit_t g_last_hit_tracker;
8 8
@@ -13,11 +13,10 @@ static bool rgb_matrix_solid_reactive_multicross_range(uint8_t start, effect_par
13 uint8_t count = g_last_hit_tracker.count; 13 uint8_t count = g_last_hit_tracker.count;
14 for (uint8_t i = led_min; i < led_max; i++) { 14 for (uint8_t i = led_min; i < led_max; i++) {
15 hsv.v = 0; 15 hsv.v = 0;
16 point_t point = g_rgb_leds[i].point;
17 for (uint8_t j = start; j < count; j++) { 16 for (uint8_t j = start; j < count; j++) {
18 RGB_MATRIX_TEST_LED_FLAGS(); 17 RGB_MATRIX_TEST_LED_FLAGS();
19 int16_t dx = point.x - g_last_hit_tracker.x[j]; 18 int16_t dx = g_led_config.point[i].x - g_last_hit_tracker.x[j];
20 int16_t dy = point.y - g_last_hit_tracker.y[j]; 19 int16_t dy = g_led_config.point[i].y - g_last_hit_tracker.y[j];
21 uint8_t dist = sqrt16(dx * dx + dy * dy); 20 uint8_t dist = sqrt16(dx * dx + dy * dy);
22 int16_t dist2 = 16; 21 int16_t dist2 = 16;
23 uint8_t dist3; 22 uint8_t dist3;
diff --git a/quantum/rgb_matrix_animations/solid_reactive_nexus.h b/quantum/rgb_matrix_animations/solid_reactive_nexus.h
index 8952a1e2b..c0e3c2450 100644
--- a/quantum/rgb_matrix_animations/solid_reactive_nexus.h
+++ b/quantum/rgb_matrix_animations/solid_reactive_nexus.h
@@ -2,7 +2,7 @@
2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED 2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
3#if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS) 3#if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS)
4 4
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7extern last_hit_t g_last_hit_tracker; 7extern last_hit_t g_last_hit_tracker;
8 8
@@ -13,11 +13,10 @@ static bool rgb_matrix_solid_reactive_multinexus_range(uint8_t start, effect_par
13 uint8_t count = g_last_hit_tracker.count; 13 uint8_t count = g_last_hit_tracker.count;
14 for (uint8_t i = led_min; i < led_max; i++) { 14 for (uint8_t i = led_min; i < led_max; i++) {
15 hsv.v = 0; 15 hsv.v = 0;
16 point_t point = g_rgb_leds[i].point;
17 for (uint8_t j = start; j < count; j++) { 16 for (uint8_t j = start; j < count; j++) {
18 RGB_MATRIX_TEST_LED_FLAGS(); 17 RGB_MATRIX_TEST_LED_FLAGS();
19 int16_t dx = point.x - g_last_hit_tracker.x[j]; 18 int16_t dx = g_led_config.point[i].x - g_last_hit_tracker.x[j];
20 int16_t dy = point.y - g_last_hit_tracker.y[j]; 19 int16_t dy = g_led_config.point[i].y - g_last_hit_tracker.y[j];
21 uint8_t dist = sqrt16(dx * dx + dy * dy); 20 uint8_t dist = sqrt16(dx * dx + dy * dy);
22 int16_t dist2 = 8; 21 int16_t dist2 = 8;
23 uint16_t effect = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed) - dist; 22 uint16_t effect = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed) - dist;
diff --git a/quantum/rgb_matrix_animations/solid_reactive_simple_anim.h b/quantum/rgb_matrix_animations/solid_reactive_simple_anim.h
index 9fc4d527a..abc7e36a8 100644
--- a/quantum/rgb_matrix_animations/solid_reactive_simple_anim.h
+++ b/quantum/rgb_matrix_animations/solid_reactive_simple_anim.h
@@ -2,6 +2,7 @@
2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED 2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
3#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE 3#ifndef DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
4 4
5extern led_config_t g_led_config;
5extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
6extern last_hit_t g_last_hit_tracker; 7extern last_hit_t g_last_hit_tracker;
7 8
diff --git a/quantum/rgb_matrix_animations/solid_reactive_wide.h b/quantum/rgb_matrix_animations/solid_reactive_wide.h
index d86cb1284..3d1d38e80 100644
--- a/quantum/rgb_matrix_animations/solid_reactive_wide.h
+++ b/quantum/rgb_matrix_animations/solid_reactive_wide.h
@@ -2,7 +2,7 @@
2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED 2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
3#if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE) 3#if !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE) || !defined(DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE)
4 4
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7extern last_hit_t g_last_hit_tracker; 7extern last_hit_t g_last_hit_tracker;
8 8
@@ -13,11 +13,10 @@ static bool rgb_matrix_solid_reactive_multiwide_range(uint8_t start, effect_para
13 uint8_t count = g_last_hit_tracker.count; 13 uint8_t count = g_last_hit_tracker.count;
14 for (uint8_t i = led_min; i < led_max; i++) { 14 for (uint8_t i = led_min; i < led_max; i++) {
15 hsv.v = 0; 15 hsv.v = 0;
16 point_t point = g_rgb_leds[i].point;
17 for (uint8_t j = start; j < count; j++) { 16 for (uint8_t j = start; j < count; j++) {
18 RGB_MATRIX_TEST_LED_FLAGS(); 17 RGB_MATRIX_TEST_LED_FLAGS();
19 int16_t dx = point.x - g_last_hit_tracker.x[j]; 18 int16_t dx = g_led_config.point[i].x - g_last_hit_tracker.x[j];
20 int16_t dy = point.y - g_last_hit_tracker.y[j]; 19 int16_t dy = g_led_config.point[i].y - g_last_hit_tracker.y[j];
21 uint8_t dist = sqrt16(dx * dx + dy * dy); 20 uint8_t dist = sqrt16(dx * dx + dy * dy);
22 uint16_t effect = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed) + dist * 5; 21 uint16_t effect = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed) + dist * 5;
23 if (effect > 255) 22 if (effect > 255)
diff --git a/quantum/rgb_matrix_animations/solid_splash_anim.h b/quantum/rgb_matrix_animations/solid_splash_anim.h
index 14312f33d..4e5565d0d 100644
--- a/quantum/rgb_matrix_animations/solid_splash_anim.h
+++ b/quantum/rgb_matrix_animations/solid_splash_anim.h
@@ -2,7 +2,7 @@
2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED 2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
3#if !defined(DISABLE_RGB_MATRIX_SOLID_SPLASH) || !defined(DISABLE_RGB_MATRIX_SOLID_MULTISPLASH) 3#if !defined(DISABLE_RGB_MATRIX_SOLID_SPLASH) || !defined(DISABLE_RGB_MATRIX_SOLID_MULTISPLASH)
4 4
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7extern last_hit_t g_last_hit_tracker; 7extern last_hit_t g_last_hit_tracker;
8 8
@@ -14,10 +14,9 @@ static bool rgb_matrix_solid_multisplash_range(uint8_t start, effect_params_t* p
14 for (uint8_t i = led_min; i < led_max; i++) { 14 for (uint8_t i = led_min; i < led_max; i++) {
15 RGB_MATRIX_TEST_LED_FLAGS(); 15 RGB_MATRIX_TEST_LED_FLAGS();
16 hsv.v = 0; 16 hsv.v = 0;
17 point_t point = g_rgb_leds[i].point;
18 for (uint8_t j = start; j < count; j++) { 17 for (uint8_t j = start; j < count; j++) {
19 int16_t dx = point.x - g_last_hit_tracker.x[j]; 18 int16_t dx = g_led_config.point[i].x - g_last_hit_tracker.x[j];
20 int16_t dy = point.y - g_last_hit_tracker.y[j]; 19 int16_t dy = g_led_config.point[i].y - g_last_hit_tracker.y[j];
21 uint8_t dist = sqrt16(dx * dx + dy * dy); 20 uint8_t dist = sqrt16(dx * dx + dy * dy);
22 uint16_t effect = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed) - dist; 21 uint16_t effect = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed) - dist;
23 if (effect > 255) 22 if (effect > 255)
diff --git a/quantum/rgb_matrix_animations/splash_anim.h b/quantum/rgb_matrix_animations/splash_anim.h
index 3c96d451e..fbe776111 100644
--- a/quantum/rgb_matrix_animations/splash_anim.h
+++ b/quantum/rgb_matrix_animations/splash_anim.h
@@ -2,7 +2,7 @@
2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED 2#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
3#if !defined(DISABLE_RGB_MATRIX_SPLASH) || !defined(DISABLE_RGB_MATRIX_MULTISPLASH) 3#if !defined(DISABLE_RGB_MATRIX_SPLASH) || !defined(DISABLE_RGB_MATRIX_MULTISPLASH)
4 4
5extern rgb_led g_rgb_leds[DRIVER_LED_TOTAL]; 5extern led_config_t g_led_config;
6extern rgb_config_t rgb_matrix_config; 6extern rgb_config_t rgb_matrix_config;
7extern last_hit_t g_last_hit_tracker; 7extern last_hit_t g_last_hit_tracker;
8 8
@@ -15,10 +15,9 @@ static bool rgb_matrix_multisplash_range(uint8_t start, effect_params_t* params)
15 RGB_MATRIX_TEST_LED_FLAGS(); 15 RGB_MATRIX_TEST_LED_FLAGS();
16 hsv.h = rgb_matrix_config.hue; 16 hsv.h = rgb_matrix_config.hue;
17 hsv.v = 0; 17 hsv.v = 0;
18 point_t point = g_rgb_leds[i].point;
19 for (uint8_t j = start; j < count; j++) { 18 for (uint8_t j = start; j < count; j++) {
20 int16_t dx = point.x - g_last_hit_tracker.x[j]; 19 int16_t dx = g_led_config.point[i].x - g_last_hit_tracker.x[j];
21 int16_t dy = point.y - g_last_hit_tracker.y[j]; 20 int16_t dy = g_led_config.point[i].y - g_last_hit_tracker.y[j];
22 uint8_t dist = sqrt16(dx * dx + dy * dy); 21 uint8_t dist = sqrt16(dx * dx + dy * dy);
23 uint16_t effect = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed) - dist; 22 uint16_t effect = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed) - dist;
24 if (effect > 255) 23 if (effect > 255)
diff --git a/quantum/rgb_matrix_types.h b/quantum/rgb_matrix_types.h
index 7a3bc6714..f890edd94 100644
--- a/quantum/rgb_matrix_types.h
+++ b/quantum/rgb_matrix_types.h
@@ -59,14 +59,6 @@ typedef struct PACKED {
59 uint8_t y; 59 uint8_t y;
60} point_t; 60} point_t;
61 61
62typedef union {
63 uint8_t raw;
64 struct {
65 uint8_t row:4; // 16 max
66 uint8_t col:4; // 16 max
67 };
68} matrix_co_t;
69
70#define HAS_FLAGS(bits, flags) ((bits & flags) == flags) 62#define HAS_FLAGS(bits, flags) ((bits & flags) == flags)
71#define HAS_ANY_FLAGS(bits, flags) ((bits & flags) != 0x00) 63#define HAS_ANY_FLAGS(bits, flags) ((bits & flags) != 0x00)
72 64
@@ -76,11 +68,13 @@ typedef union {
76#define LED_FLAG_UNDERGLOW 0x02 68#define LED_FLAG_UNDERGLOW 0x02
77#define LED_FLAG_KEYLIGHT 0x04 69#define LED_FLAG_KEYLIGHT 0x04
78 70
71#define NO_LED 255
72
79typedef struct PACKED { 73typedef struct PACKED {
80 matrix_co_t matrix_co; 74 uint8_t matrix_co[MATRIX_ROWS][MATRIX_COLS];
81 point_t point; 75 point_t point[DRIVER_LED_TOTAL];
82 uint8_t flags; 76 uint8_t flags[DRIVER_LED_TOTAL];
83} rgb_led; 77} led_config_t;
84 78
85typedef union { 79typedef union {
86 uint32_t raw; 80 uint32_t raw;
diff --git a/tmk_core/protocol/arm_atsam/led_matrix.c b/tmk_core/protocol/arm_atsam/led_matrix.c
index a2eab1b56..ea067a743 100644
--- a/tmk_core/protocol/arm_atsam/led_matrix.c
+++ b/tmk_core/protocol/arm_atsam/led_matrix.c
@@ -431,6 +431,7 @@ static void led_run_pattern(led_setup_t *f, float* ro, float* go, float* bo, flo
431 } 431 }
432} 432}
433 433
434extern led_config_t g_led_config;
434static void led_matrix_massdrop_config_override(int i) 435static void led_matrix_massdrop_config_override(int i)
435{ 436{
436 float ro = 0; 437 float ro = 0;
@@ -438,14 +439,14 @@ static void led_matrix_massdrop_config_override(int i)
438 float bo = 0; 439 float bo = 0;
439 440
440 float po = (led_animation_orientation) 441 float po = (led_animation_orientation)
441 ? (float)g_rgb_leds[i].point.y / 64.f * 100 442 ? (float)g_led_config.point[i].y / 64.f * 100
442 : (float)g_rgb_leds[i].point.x / 224.f * 100; 443 : (float)g_led_config.point[i].x / 224.f * 100;
443 444
444 uint8_t highest_active_layer = biton32(layer_state); 445 uint8_t highest_active_layer = biton32(layer_state);
445 446
446 if (led_lighting_mode == LED_MODE_KEYS_ONLY && HAS_FLAGS(g_rgb_leds[i].flags, LED_FLAG_UNDERGLOW)) { 447 if (led_lighting_mode == LED_MODE_KEYS_ONLY && HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
447 //Do not act on this LED 448 //Do not act on this LED
448 } else if (led_lighting_mode == LED_MODE_NON_KEYS_ONLY && !HAS_FLAGS(g_rgb_leds[i].flags, LED_FLAG_UNDERGLOW)) { 449 } else if (led_lighting_mode == LED_MODE_NON_KEYS_ONLY && !HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
449 //Do not act on this LED 450 //Do not act on this LED
450 } else if (led_lighting_mode == LED_MODE_INDICATORS_ONLY) { 451 } else if (led_lighting_mode == LED_MODE_INDICATORS_ONLY) {
451 //Do not act on this LED (Only show indicators) 452 //Do not act on this LED (Only show indicators)