fix corne v4.1 rgb brightness

This commit is contained in:
Buliway 2025-09-24 05:24:59 +03:00
parent c2fdd3a870
commit 47d504abc9
3 changed files with 33 additions and 50 deletions

Binary file not shown.

View file

@ -31,12 +31,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define LANG_CHANGE_DEFAULT LANG_CHANGE_CTRL_SHIFT // #define LANG_CHANGE_DEFAULT LANG_CHANGE_CTRL_SHIFT
// #define LANG_CHANGE_DEFAULT LANG_CHANGE_WIN_SPACE // #define LANG_CHANGE_DEFAULT LANG_CHANGE_WIN_SPACE
// #define RGB_MATRIX_ENABLE
// #define RGBLIGHT_LAYERS
#define RGB_MATRIX_DRIVER ws2812 #define RGB_MATRIX_DRIVER ws2812
// #define ENABLE_RGB_MATRIX_SOLID_COLOR
#define SPLIT_LAYER_STATE_ENABLE #define SPLIT_LAYER_STATE_ENABLE
#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 64
// #define RGB_MATRIX_DEFAULT_VAL 32
// Holding mouse movement keys moves the cursor at constant speeds // Holding mouse movement keys moves the cursor at constant speeds
#define MK_3_SPEED #define MK_3_SPEED

View file

@ -653,59 +653,41 @@ void user_timer(void) {
// Lighting Layers // Lighting Layers
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
for (uint8_t i = led_min; i < led_max; i++) { // https://github.com/qmk/qmk_firmware/blob/master/quantum/color.h
switch(get_highest_layer(layer_state|default_layer_state)) { hsv_t hsv = {255, 255, 255};
case L_ENG:
rgb_matrix_set_color(i, RGB_PINK);
break;
case L_RU:
rgb_matrix_set_color(i, RGB_PURPLE);
break;
case L_MEDIA:
rgb_matrix_set_color(i, RGB_MAGENTA);
break;
case L_NAV:
rgb_matrix_set_color(i, RGB_CYAN);
break;
case L_MOUSE:
rgb_matrix_set_color(i, RGB_YELLOW);
break;
case L_SYM:
rgb_matrix_set_color(i, RGB_GREEN);
break;
case L_NUM:
rgb_matrix_set_color(i, RGB_BLUE);
break;
case L_FUN:
rgb_matrix_set_color(i, RGB_RED);
break;
case L_GAME:
rgb_matrix_set_color(i, RGB_ORANGE);
break;
default: // for any other layers, or the default layer // Определяем цвет слоя в HSV
rgb_matrix_set_color(i, RGB_WHITE); switch (get_highest_layer(layer_state | default_layer_state)) {
break; case L_ENG: hsv = (hsv_t){HSV_PINK}; break; // PINK
} case L_RU: hsv = (hsv_t){HSV_PURPLE}; break; // PURPLE
case L_MEDIA: hsv = (hsv_t){HSV_MAGENTA}; break; // MAGENTA
case L_NAV: hsv = (hsv_t){HSV_CYAN}; break; // CYAN
case L_MOUSE: hsv = (hsv_t){HSV_YELLOW}; break; // YELLOW
case L_SYM: hsv = (hsv_t){HSV_GREEN}; break; // GREEN
case L_NUM: hsv = (hsv_t){HSV_BLUE}; break; // BLUE
case L_FUN: hsv = (hsv_t){HSV_RED}; break; // RED
case L_GAME: hsv = (hsv_t){HSV_ORANGE}; break; // ORANGE
default: hsv = (hsv_t){HSV_WHITE}; break; // WHITE
} }
// Ограничиваем яркость глобальной настройкой
if (hsv.v > rgb_matrix_get_val()) {
hsv.v = rgb_matrix_get_val();
}
// Конвертируем HSV в RGB
rgb_t rgb = hsv_to_rgb(hsv);
// Применяем цвет ко всем светодиодам
for (uint8_t i = led_min; i < led_max; i++) {
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return false; return false;
} }
void matrix_scan_user(void) { void matrix_scan_user(void) {
user_timer(); user_timer();
// // Проверяем, активен ли слой
// if (!layer_state_cmp(layer_state, L_MEDIA) &&
// !layer_state_cmp(layer_state, L_NAV) &&
// !layer_state_cmp(layer_state, L_MOUSE) &&
// !layer_state_cmp(layer_state, L_SYM) &&
// !layer_state_cmp(layer_state, L_NUM) &&
// !layer_state_cmp(layer_state, L_FUN) &&
// !layer_state_cmp(layer_state, L_RU)) {
// // Если ни один из этих слоев не активен, обновляем подсветку на основе текущего базового слоя
// default_layer_state_set_user(default_layer_state);
// }
} }