aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Y <76888457+filterpaper@users.noreply.github.com>2021-12-27 11:16:18 +0800
committerGitHub <noreply@github.com>2021-12-27 14:16:18 +1100
commite3073be4884c53bbd922477a83553d03f4eb7ebb (patch)
treeceb7266bbe85d45654cfcb65d907ea5a792f2535
parent58f7aefadd075d9cb335b99d24629744164013c7 (diff)
downloadqmk_firmware-e3073be4884c53bbd922477a83553d03f4eb7ebb.tar.gz
qmk_firmware-e3073be4884c53bbd922477a83553d03f4eb7ebb.zip
RGB Matrix layer key indicator (#14626)
* Add layer key indicator example * Update description * Deobfuscate with index variable * Add missing layer variable * Correct color name and indicator function * Function typo * Place layer variable outside loops to save firmware space Co-authored-by: filterpaper <filterpaper@localhost>
-rw-r--r--docs/feature_rgb_matrix.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index 8ba39b476..3132360a3 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -790,6 +790,26 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
790} 790}
791``` 791```
792 792
793Layer indicator with only configured keys:
794```c
795void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
796 if (get_highest_layer(layer_state) > 0) {
797 uint8_t layer = get_highest_layer(layer_state);
798
799 for (uint8_t row = 0; row < MATRIX_ROWS; ++row) {
800 for (uint8_t col = 0; col < MATRIX_COLS; ++col) {
801 uint8_t index = g_led_config.matrix_co[row][col];
802
803 if (index >= led_min && index <= led_max && index != NO_LED &&
804 keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS) {
805 rgb_matrix_set_color(index, RGB_GREEN);
806 }
807 }
808 }
809 }
810}
811```
812
793#### Examples :id=indicator-examples 813#### Examples :id=indicator-examples
794 814
795This 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). 815This 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).