diff options
| author | Less/Rikki <86894501+lesshonor@users.noreply.github.com> | 2022-09-29 13:08:45 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-29 13:08:45 -0400 |
| commit | 00dc764f7268bd2780645eb07ce59892faba0341 (patch) | |
| tree | 4a07236a3e2a905905f68e06e5a7e6d1e65a73ba /docs/reference_info_json.md | |
| parent | bfcbcfe3c7efad948a026ad8c365007bb82d9b6a (diff) | |
[docs] Improve documentation regarding info.json (#18508)
* docs: raise info.json awareness
* docs: note that DD migration is WIP
Diffstat (limited to 'docs/reference_info_json.md')
| -rw-r--r-- | docs/reference_info_json.md | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 34c536b329..05d4ef1113 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | # `info.json` | 1 | # `info.json` |
| 2 | 2 | ||
| 3 | This file is used by the [QMK API](https://github.com/qmk/qmk_api). It contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. You can also set metadata here. | 3 | The information contained in `info.json` is combined with the `config.h` and `rules.mk` files, dynamically generating the necessary configuration for your keyboard at compile time. It is also used by the [QMK API](https://github.com/qmk/qmk_api), and contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. |
| 4 | 4 | ||
| 5 | You can create `info.json` files at every level under `qmk_firmware/keyboards/<name>` to specify this metadata. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%. | 5 | You can create `info.json` files at every level under `qmk_firmware/keyboards/<name>`. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%. |
| 6 | 6 | ||
| 7 | ## `info.json` Format | 7 | ## `info.json` Format |
| 8 | 8 | ||
| 9 | The `info.json` file is a JSON formatted dictionary with the following keys available to be set. You do not have to set all of them, merely the keys that apply to your keyboard. | 9 | The `info.json` file is a JSON formatted dictionary. The first six keys noted here must be defined in `info.json`, or your keyboard will not be accepted into the QMK repository. |
| 10 | 10 | ||
| 11 | * `keyboard_name` | 11 | * `keyboard_name` |
| 12 | * A free-form text string describing the keyboard. | 12 | * A free-form text string describing the keyboard. |
| @@ -20,6 +20,11 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai | |||
| 20 | * `maintainer` | 20 | * `maintainer` |
| 21 | * GitHub username of the maintainer, or `qmk` for community maintained boards. | 21 | * GitHub username of the maintainer, or `qmk` for community maintained boards. |
| 22 | * Example: `skullydazed` | 22 | * Example: `skullydazed` |
| 23 | * `usb` | ||
| 24 | * Configure USB VID, PID, and device version. See the [USB](#USB) section for more detail. | ||
| 25 | |||
| 26 | There are many more optional keys, some of which are described below. Others may be found by examining `data/schemas`. | ||
| 27 | |||
| 23 | * `debounce` | 28 | * `debounce` |
| 24 | * The amount of time in milliseconds to wait for debounce to happen. | 29 | * The amount of time in milliseconds to wait for debounce to happen. |
| 25 | * Default: `5` | 30 | * Default: `5` |
| @@ -33,8 +38,6 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai | |||
| 33 | * Configure the pins corresponding to columns and rows, or direct pins. See the [Matrix Pins](#matrix-pins) section for more detail. | 38 | * Configure the pins corresponding to columns and rows, or direct pins. See the [Matrix Pins](#matrix-pins) section for more detail. |
| 34 | * `rgblight` | 39 | * `rgblight` |
| 35 | * Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb-lighting) section for more detail. | 40 | * Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb-lighting) section for more detail. |
| 36 | * `usb` | ||
| 37 | * Configure USB VID, PID, and other parameters. See the [USB](#USB) section for more detail. | ||
| 38 | 41 | ||
| 39 | ### Layout Format | 42 | ### Layout Format |
| 40 | 43 | ||
| @@ -45,7 +48,7 @@ Within our `info.json` file the `layouts` portion of the dictionary contains sev | |||
| 45 | 48 | ||
| 46 | ### Key Dictionary Format | 49 | ### Key Dictionary Format |
| 47 | 50 | ||
| 48 | Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Code for <https://keyboard-layout-editor.com> you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. | 51 | Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Data for <https://keyboard-layout-editor.com> you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. |
| 49 | 52 | ||
| 50 | All key positions and rotations are specified in relation to the top-left corner of the keyboard, and the top-left corner of each key. | 53 | All key positions and rotations are specified in relation to the top-left corner of the keyboard, and the top-left corner of each key. |
| 51 | 54 | ||
| @@ -115,7 +118,7 @@ Example: | |||
| 115 | This section controls basic 2-pin LEDs, which typically pass through keyswitches and are soldered into the PCB, or are placed in PCB sockets. | 118 | This section controls basic 2-pin LEDs, which typically pass through keyswitches and are soldered into the PCB, or are placed in PCB sockets. |
| 116 | ### Backlight | 119 | ### Backlight |
| 117 | 120 | ||
| 118 | Enable by setting | 121 | Enable by setting |
| 119 | 122 | ||
| 120 | ```json | 123 | ```json |
| 121 | "features": { | 124 | "features": { |
| @@ -155,6 +158,13 @@ Used for indicating Num Lock, Caps Lock, and Scroll Lock. May be soldered in-swi | |||
| 155 | * The pin that controls the `Caps Lock` LED | 158 | * The pin that controls the `Caps Lock` LED |
| 156 | * `scroll_lock` | 159 | * `scroll_lock` |
| 157 | * The pin that controls the `Scroll Lock` LED | 160 | * The pin that controls the `Scroll Lock` LED |
| 161 | * `compose` | ||
| 162 | * The pin that controls the `Compose` LED | ||
| 163 | * `kana` | ||
| 164 | * The pin that controls the `Kana` LED | ||
| 165 | * `on_state` | ||
| 166 | * The state of the indicator pins when the LED is "on" - `1` for high, `0` for low | ||
| 167 | * Default: `1` | ||
| 158 | 168 | ||
| 159 | Example: | 169 | Example: |
| 160 | 170 | ||
| @@ -208,7 +218,8 @@ Example: | |||
| 208 | "saturation_steps": 17, | 218 | "saturation_steps": 17, |
| 209 | "brightness_steps": 17, | 219 | "brightness_steps": 17, |
| 210 | "animations": { | 220 | "animations": { |
| 211 | "all": true | 221 | "knight": true, |
| 222 | "rainbow_swirl": true | ||
| 212 | } | 223 | } |
| 213 | } | 224 | } |
| 214 | } | 225 | } |
| @@ -254,7 +265,7 @@ The device version is a BCD (binary coded decimal) value, in the format `MMmr`, | |||
| 254 | 265 | ||
| 255 | This section controls the basic [rotary encoder](feature_encoders.md) support. | 266 | This section controls the basic [rotary encoder](feature_encoders.md) support. |
| 256 | 267 | ||
| 257 | Enable by setting | 268 | Enable by setting |
| 258 | 269 | ||
| 259 | ```json | 270 | ```json |
| 260 | "features": { | 271 | "features": { |
