Skip to content

Commit

Permalink
More data driven RGB/LED Matrix config (qmk#21939)
Browse files Browse the repository at this point in the history
  • Loading branch information
zvecr authored and christrotter committed Nov 28, 2023
1 parent 7ae5113 commit cc8056e
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
8 changes: 8 additions & 0 deletions data/mappings/info_config.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,11 @@
"LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"},

// LED Matrix
"LED_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "led_matrix.sleep", "value_type": "bool"},
"LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"},
"LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "bool"},
"LED_MATRIX_LED_FLUSH_LIMIT": {"info_key": "led_matrix.led_flush_limit", "value_type": "int"},
"LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false},
"LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"},
"LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"},
"LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"},
Expand Down Expand Up @@ -104,8 +108,12 @@
"PS2_DATA_PIN": {"info_key": "ps2.data_pin"},

// RGB Matrix
"RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "rgb_matrix.sleep", "value_type": "bool"},
"RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"},
"RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"},
"RGB_MATRIX_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "bool"},
"RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"},
"RGB_MATRIX_LED_PROCESS_LIMIT": {"info_key": "rgb_matrix.led_process_limit", "value_type": "int", "to_json": false},
"RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"},
"RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"},
"RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"},
Expand Down
8 changes: 8 additions & 0 deletions data/schemas/keyboard.jsonschema
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,10 @@
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"react_on_keyup": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
Expand Down Expand Up @@ -454,6 +458,10 @@
"sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"react_on_keyup": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
Expand Down
24 changes: 24 additions & 0 deletions docs/reference_info_json.md
Original file line number Diff line number Diff line change
Expand Up @@ -342,9 +342,21 @@ Configures the [LED Matrix](feature_led_matrix.md) feature.
* The key matrix position associated with the LED.
* Example: `[0, 2]`
* Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}`
* `led_flush_limit`
* Limits in milliseconds how frequently an animation will update the LEDs.
* Default: `16`
* `led_process_limit`
* Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
* Default: `led_count / 5`
* `max_brightness`
* The maximum value which brightness is scaled to, from 0 to 255.
* Default: `255`
* `react_on_keyup`
* Animations react to keyup instead of keydown.
* Default: `false`
* `sleep`
* Turn off the LEDs when the host goes to sleep.
* Default: `false`
* `speed_steps`
* The number of speed adjustment steps.
* Default: `16`
Expand Down Expand Up @@ -546,12 +558,24 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature.
* The key matrix position associated with the LED.
* Example: `[0, 2]`
* Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}`
* `led_flush_limit`
* Limits in milliseconds how frequently an animation will update the LEDs.
* Default: `16`
* `led_process_limit`
* Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
* Default: `led_count / 5`
* `max_brightness`
* The maximum value which the HSV "V" component is scaled to, from 0 to 255.
* Default: `255`
* `react_on_keyup`
* Animations react to keyup instead of keydown.
* Default: `false`
* `sat_steps`
* The number of saturation adjustment steps.
* Default: `16`
* `sleep`
* Turn off the LEDs when the host goes to sleep.
* Default: `false`
* `speed_steps`
* The number of speed adjustment steps.
* Default: `16`
Expand Down

0 comments on commit cc8056e

Please sign in to comment.