import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js"; const __pageData = JSON.parse('{"title":"info.json Reference","description":"","frontmatter":{},"headers":[],"relativePath":"reference_info_json.md","filePath":"reference_info_json.md"}'); const _sfc_main = { name: "reference_info_json.md" }; const _hoisted_1 = /* @__PURE__ */ createStaticVNode('

info.json Reference ​

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, and contains the information QMK Configurator needs to display a representation of your keyboard. Its key/value pairs are ruled by the data/schemas/keyboard.jsonschema file. To learn more about the why and how of the schema file see the Data Driven Configuration page.

You can create info.json files at every level under qmk_firmware/keyboards/<keyboard_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 information common to all Clueboard products, such as manufacturer and maintainer, while qmk_firmware/keyboards/clueboard/66/info.json contains more specific information about Clueboard 66%.

General Metadata ​

Hardware Configuration ​

Firmware Configuration ​

APA102 ​

Configures the APA102 driver.

Audio ​

Configures the Audio feature.

Backlight ​

Configures the Backlight feature.

Bluetooth ​

Configures the Bluetooth feature.

Bootmagic ​

Configures the Bootmagic feature.

Caps Word ​

Configures the Caps Word feature.

Combo ​

Configures the Combo feature.

DIP Switches ​

Configures the DIP Switches feature.

EEPROM ​

Configures the EEPROM driver.

Encoder ​

Configures the Encoder feature.

Indicators ​

Configures the LED Indicators feature.

Layouts ​

The layouts portion of the dictionary contains several nested dictionaries. The outer layer consists of QMK layout names, for example LAYOUT_60_ansi or LAYOUT_60_iso.

Each key dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Data format for Keyboard Layout Editor, you will find many of the concepts the same. Key names and layout choices are reused wherever possible, but unlike KLE each key is stateless, inheriting no properties from the keys that came before it.

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.

The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize info.json layout data (such as qmk info -l and the QMK Configurator) should display this key as expected.

Leader Key ​

Configures the Leader Key feature.

LED Matrix ​

Configures the LED Matrix feature.

Matrix ​

Mouse Keys ​

Configures the Mouse Keys feature.

One Shot ​

Configures One Shot keys.

PS/2 ​

Configures the PS/2 feature.

QMK LUFA Bootloader ​

RGBLight ​

Configures the RGB Lighting feature.

RGB Matrix ​

Configures the RGB Matrix feature.

Secure ​

Configures the Secure feature.

Split Keyboard ​

Configures the Split Keyboard feature.

Stenography ​

Configures the Stenography feature.

USB ​

WS2812 ​

Configures the WS2812 driver.

', 87); const _hoisted_88 = [ _hoisted_1 ]; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", null, _hoisted_88); } const reference_info_json = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); export { __pageData, reference_info_json as default };