~ruther/qmk_firmware

80ccbdfd86b75689561c43d9344ccb3f15e4d094 — Joel Challis 1 year, 7 months ago d202355
More data driven RGB/LED Matrix config (#21939)

3 files changed, 40 insertions(+), 0 deletions(-)

M data/mappings/info_config.hjson
M data/schemas/keyboard.jsonschema
M docs/reference_info_json.md
M data/mappings/info_config.hjson => data/mappings/info_config.hjson +8 -0
@@ 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"},


@@ 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"},

M data/schemas/keyboard.jsonschema => data/schemas/keyboard.jsonschema +8 -0
@@ 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,


@@ 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,

M docs/reference_info_json.md => docs/reference_info_json.md +24 -0
@@ 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`


@@ 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`

Do not follow this link