summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2021-08-26 13:41:33 -0700
committerGitHub <noreply@github.com>2021-08-27 06:41:33 +1000
commit29ec2d8f4283212cf45c926c288f652a6727acb7 (patch)
tree940bd04c7a380b4d9fa6b306e125c107b5d4c78e /docs
parent7e1634e2a6abac5fbdf7778ea7734a10b84ca49a (diff)
[Docs] Add examples to RGB Matrix Indicators docs (#12797)
Diffstat (limited to 'docs')
-rw-r--r--docs/feature_rgb_matrix.md39
1 files changed, 39 insertions, 0 deletions
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index 31fa9ed36e..42a57aec19 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -741,3 +741,42 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
}
```
+
+#### Examples :id=indicator-examples
+
+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).
+
+```c
+void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
+ HSV hsv = {0, 255, 255};
+
+ if (layer_state_is(layer_state, 2)) {
+ hsv = {130, 255, 255};
+ } else {
+ hsv = {30, 255, 255};
+ }
+
+ if (hsv.v > rgb_matrix_get_val()) {
+ hsv.v = rgb_matrix_get_val();
+ }
+ RGB rgb = hsv_to_rgb(hsv);
+
+ for (uint8_t i = led_min; i <= led_max; i++) {
+ if (HAS_FLAGS(g_led_config.flags[i], 0x01)) { // 0x01 == LED_FLAG_MODIFIER
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ }
+}
+```
+
+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:
+
+```c
+void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
+ if (host_keyboard_led_state().caps_lock) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(5, 255, 255, 255); // assuming caps lock is at led #5
+ } else {
+ RGB_MATRIX_INDICATOR_SET_COLOR(5, 0, 0, 0);
+ }
+}
+```