Skip to content

Commit 29ec2d8

Browse files
authored
[Docs] Add examples to RGB Matrix Indicators docs (qmk#12797)
1 parent 7e1634e commit 29ec2d8

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

docs/feature_rgb_matrix.md

+39
Original file line numberDiff line numberDiff line change
@@ -741,3 +741,42 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
741741
}
742742
}
743743
```
744+
745+
#### Examples :id=indicator-examples
746+
747+
This example sets the modifiers to be a specific color based on the layer state. You can use a switch case here, instead, if you would like. This uses HSV and then converts to RGB, because this allows the brightness to be limited (important when using the WS2812 driver).
748+
749+
```c
750+
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
751+
HSV hsv = {0, 255, 255};
752+
753+
if (layer_state_is(layer_state, 2)) {
754+
hsv = {130, 255, 255};
755+
} else {
756+
hsv = {30, 255, 255};
757+
}
758+
759+
if (hsv.v > rgb_matrix_get_val()) {
760+
hsv.v = rgb_matrix_get_val();
761+
}
762+
RGB rgb = hsv_to_rgb(hsv);
763+
764+
for (uint8_t i = led_min; i <= led_max; i++) {
765+
if (HAS_FLAGS(g_led_config.flags[i], 0x01)) { // 0x01 == LED_FLAG_MODIFIER
766+
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
767+
}
768+
}
769+
}
770+
```
771+
772+
If you want to indicate a Host LED status (caps lock, num lock, etc), you can use something like this to light up the caps lock key:
773+
774+
```c
775+
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
776+
if (host_keyboard_led_state().caps_lock) {
777+
RGB_MATRIX_INDICATOR_SET_COLOR(5, 255, 255, 255); // assuming caps lock is at led #5
778+
} else {
779+
RGB_MATRIX_INDICATOR_SET_COLOR(5, 0, 0, 0);
780+
}
781+
}
782+
```

0 commit comments

Comments
 (0)