diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/achrovisual/rgb_matrix_user.inc b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/achrovisual/rgb_matrix_user.inc index 1f247da9..26e242c9 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/achrovisual/rgb_matrix_user.inc +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/achrovisual/rgb_matrix_user.inc @@ -47,39 +47,31 @@ const rgb_t colors[] = { {0x00, 0xb2, 0xff} }; +#define NUM_COLORS (sizeof(colors) / sizeof(colors[0])) +static uint8_t current_color_index = 0; + // This is a side lights only configuration where the color is set to a static gradient. static bool HOLOGRAPHICS_UNDERGLOW(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); for (uint8_t i = led_min; i < led_max; i++) { - if (HAS_FLAGS(g_led_config.flags[i], 0x02)) { // 0x02 == LED_FLAG_UNDERGLOW - // RIGHT-HAND SIDE LEDS || LEFT-HAND SIDE LEDS - if (i == 67 || i == 77) { - rgb_matrix_set_color(i, colors[0].r, colors[0].g, colors[0].b); - } else if (i == 68 || i == 78) { - rgb_matrix_set_color(i, colors[1].r, colors[1].g, colors[1].b); - } else if (i == 69 || i == 79) { - rgb_matrix_set_color(i, colors[2].r, colors[2].g, colors[2].b); - } else if (i == 70 || i == 80) { - rgb_matrix_set_color(i, colors[3].r, colors[3].g, colors[3].b); - } else if (i == 71 || i == 81) { - rgb_matrix_set_color(i, colors[4].r, colors[4].g, colors[4].b); - } else if (i == 72 || i == 82) { - rgb_matrix_set_color(i, colors[5].r, colors[5].g, colors[5].b); - } else if (i == 73 || i == 83) { - rgb_matrix_set_color(i, colors[6].r, colors[6].g, colors[6].b); - } else if (i == 74 || i == 84) { - rgb_matrix_set_color(i, colors[7].r, colors[7].g, colors[7].b); - } else if (i == 75 || i == 85) { - rgb_matrix_set_color(i, colors[8].r, colors[8].g, colors[8].b); - } else if (i == 76 || i == 86) { - rgb_matrix_set_color(i, colors[9].r, colors[9].g, colors[9].b); - } - } - else { - rgb_matrix_set_color(i, 0x00, 0x00, 0x00); - } + rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } + + for (uint8_t i = 67; i <= 76; i++) { + rgb_matrix_set_color(i, + colors[(current_color_index + (i - 67)) % NUM_COLORS].r, + colors[(current_color_index + (i - 67)) % NUM_COLORS].g, + colors[(current_color_index + (i - 67)) % NUM_COLORS].b); + } + + for (uint8_t i = 77; i <= 86; i++) { + rgb_matrix_set_color(i, + colors[(current_color_index + (i - 77)) % NUM_COLORS].r, + colors[(current_color_index + (i - 77)) % NUM_COLORS].g, + colors[(current_color_index + (i - 77)) % NUM_COLORS].b); + } + return rgb_matrix_check_finished_leds(led_max); }