kb03.c (1790B)
1 // Copyright (C) 2025 DOIO 2 // Copyright (C) 2025 ClownFish (@clownfish-og) 3 // SPDX-License-Identifier: GPL-2.0-or-later 4 5 #include "quantum.h" 6 7 #ifdef RGB_MATRIX_ENABLE 8 9 bool process_record_kb(uint16_t keycode, keyrecord_t *record) { 10 if (!process_record_user(keycode, record)) { 11 return false; 12 } 13 switch (keycode) { 14 case RM_TOGG: 15 if (record->event.pressed) { 16 switch (rgb_matrix_get_flags()) { 17 case LED_FLAG_ALL: { 18 rgb_matrix_set_flags(LED_FLAG_NONE); 19 rgb_matrix_set_color_all(0, 0, 0); 20 } break; 21 default: { 22 rgb_matrix_set_flags(LED_FLAG_ALL); 23 } break; 24 } 25 } 26 if (!rgb_matrix_is_enabled()) { 27 rgb_matrix_set_flags(LED_FLAG_ALL); 28 rgb_matrix_enable(); 29 } 30 return false; 31 } 32 return true; 33 } 34 35 bool rgb_matrix_indicators_kb(void) { 36 if (!rgb_matrix_indicators_user()) { 37 return false; 38 } 39 40 hsv_t hsv = {0, 255, 100}; 41 switch (get_highest_layer(layer_state)) { 42 case 0: 43 hsv = (hsv_t){HSV_RED}; 44 break; 45 case 1: 46 hsv = (hsv_t){HSV_GREEN}; 47 break; 48 case 2: 49 hsv = (hsv_t){HSV_BLUE}; 50 break; 51 case 3: 52 hsv = (hsv_t){HSV_WHITE}; 53 break; 54 default: 55 hsv = (hsv_t){HSV_YELLOW}; 56 break; 57 } 58 hsv.v = (rgb_matrix_get_val() * 70 / 200) + 30; //set indicator brightness range 30-100, vary based on RGB Matrix brightness 59 rgb_t rgb = hsv_to_rgb(hsv); 60 rgb_matrix_set_color(9, rgb.r, rgb.g, rgb.b); 61 return false; 62 } 63 64 #endif