docs/reference_info_json.md
info.json Reference {#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>. 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%.
keyboard_name <Badge type="info">String</Badge> <Badge>Required</Badge>
\u03A8 (Ψ)."Clueboard 66%"maintainer <Badge type="info">String</Badge> <Badge>Required</Badge>
qmk for community maintained boards."skullydazed"manufacturer <Badge type="info">String</Badge> <Badge>Required</Badge>
\u03A8 (Ψ)."Clueboard"url <Badge type="info">String</Badge> <Badge>Required</Badge>
"https://clueboard.co"bootloader_instructions <Badge type="info">String</Badge>
"Press the button marked RESET on the back of the PCB"tags <Badge type="info">Array: String</Badge>
["ortho", "split", "rgb"]board <Badge type="info">String</Badge>
"BLACKPILL_STM32_F411"bootloader <Badge type="info">String</Badge>
development_board is not specified.development_board <Badge type="info">String</Badge>
"promicro"pin_compatible <Badge type="info">String</Badge>
elite_c, promicro.processor <Badge type="info">String</Badge>
development_board is not specified.build
debounce_type<Badge type="info">String</Badge>
asym_eager_defer_pk, custom, sym_defer_g, sym_defer_pk, sym_defer_pr, sym_eager_pk, sym_eager_pr.firmware_format<Badge type="info">String</Badge>
bin, hex, uf2.lto<Badge type="info">Boolean</Badge>
falsefeatures<Badge type="info">Object: Boolean</Badge>
{
"rgb_matrix": true,
"rgblight": false
}
qmk
locking
enabled <Badge type="info">Boolean</Badge>
falseresync <Badge type="info">Boolean</Badge>
falsetap_capslock_delay <Badge type="info">Number</Badge>
80 (80 ms)tap_keycode_delay <Badge type="info">Number</Badge>
0 (no delay)tapping
chordal_hold <Badge type="info">Boolean</Badge>
falsehold_on_other_key_press <Badge type="info">Boolean</Badge>
falsehold_on_other_key_press_per_key <Badge type="info">Boolean</Badge>
falsepermissive_hold <Badge type="info">Boolean</Badge>
falsepermissive_hold_per_key <Badge type="info">Boolean</Badge>
falseretro <Badge type="info">Boolean</Badge>
falseretro_per_key <Badge type="info">Boolean</Badge>
falseterm <Badge type="info">Number</Badge>
200 (200 ms)term_per_key <Badge type="info">Boolean</Badge>
falsetoggle <Badge type="info">Number</Badge>
5Configures the APA102 driver.
apa102
clock_pin <Badge type="info">Pin</Badge> <Badge>Required</Badge>
CI on the first LED in the chain.data_pin <Badge type="info">Pin</Badge> <Badge>Required</Badge>
DI on the first LED in the chain.default_brightness <Badge type="info">Number</Badge>
31Configures the Audio feature.
audio
default
on <Badge type="info">Boolean</Badge>
trueclicky <Badge type="info">Boolean</Badge>
truedriver <Badge type="info">String</Badge>
dac_additive, dac_basic, pwm_software, pwm_hardware.macro_beep <Badge type="info">Boolean</Badge>
\a (ASCII BEL) characters in Send String macros.falsepins <Badge type="info">Array: Pin</Badge> <Badge>Required</Badge>
power_control
on_state <Badge type="info">0|1</Badge>
1 (on = high)pin <Badge type="info">Pin</Badge>
voices <Badge type="info">Boolean</Badge>
falseConfigures the Backlight feature.
backlight
as_caps_lock <Badge type="info">Boolean</Badge>
falsebreathing <Badge type="info">Boolean</Badge>
falsebreathing_period <Badge type="info">Number</Badge>
6 (6 seconds)default
on <Badge type="info">Boolean</Badge>
truebreathing <Badge type="info">Boolean</Badge>
falsebrightness <Badge type="info">Number</Badge>
max_brightnessdriver <Badge type="info">String</Badge>
custom, pwm, software, timer."pwm"levels <Badge type="info">Number</Badge>
3max_brightness <Badge type="info">Number</Badge>
255on_state <Badge type="info">0|1</Badge>
1 (on = high)pin <Badge type="info">Pin</Badge>
pins <Badge type="info">Array: Pin</Badge>
software and timer drivers only).Configures the Battery feature.
battery
adc
pin <Badge type="info">Pin</Badge> <Badge>Required</Badge>
reference_voltage <Badge type="info">Number</Badge>
3300divider_r1 <Badge type="info">Number</Badge>
100divider_r2 <Badge type="info">Number</Badge>
100resolution <Badge type="info">Number</Badge>
10driver <Badge type="info">String</Badge> <Badge>Required</Badge>
adc, custom, vendor.sample_interval <Badge type="info">Number</Badge>
30000 (30 s)Configures the Wireless feature.
bluetooth
driver <Badge type="info">String</Badge>
custom, bluefruit_le, rn42.Configures the Bootmagic feature.
bootmagic
enabled <Badge type="info">Boolean</Badge>
falsematrix <Badge type="info">Matrix</Badge>
[0, 0]Configures the Caps Word feature.
caps_word
both_shifts_turns_on <Badge type="info">Boolean</Badge>
falsedouble_tap_shift_turns_on <Badge type="info">Boolean</Badge>
falseenabled <Badge type="info">Boolean</Badge>
falseidle_timeout <Badge type="info">Number</Badge>
5000 (5 seconds)invert_on_shift <Badge type="info">Boolean</Badge>
falseConfigures the Combo feature.
combo
term <Badge type="info">Number</Badge>
50 (50 ms)Configures the DIP Switches feature.
dip_switch
enabled <Badge type="info">Boolean</Badge>
falsepins <Badge type="info">Array: Pin</Badge>
matrix_grid <Badge type="info">Array: Matrix</Badge>
[ [0,6], [1,6], [2,6] ]Configures the EEPROM driver.
eeprom
driver <Badge type="info">String</Badge>
custom, i2c, legacy_stm32_flash, spi, transient, vendor, wear_leveling."vendor"wear_leveling
driver <Badge type="info">String</Badge>
embedded_flash, legacy, rp2040_flash, spi_flash, custom.backing_size <Badge type="info">Number</Badge>
logical_size <Badge type="info">Number</Badge>
Configures the Encoder feature.
encoder
rotary <Badge type="info">Array: Object</Badge>
pin_a <Badge type="info">Pin</Badge> <Badge>Required</Badge>
A pin.pin_b <Badge type="info">Pin</Badge> <Badge>Required</Badge>
B pin.resolution <Badge type="info">Number</Badge>
4host
default
nkro <Badge type="info">Boolean</Badge>
falseConfigures the LED Indicators feature.
indicators
caps_lock <Badge type="info">Pin</Badge>
compose <Badge type="info">Pin</Badge>
kana <Badge type="info">Pin</Badge>
num_lock <Badge type="info">Pin</Badge>
on_state <Badge type="info">0|1</Badge>
1 (on = high)scroll_lock <Badge type="info">Pin</Badge>
Defines custom keycodes for use within keymaps.
keycodes <Badge type="info">Array: Object</Badge>
key <Badge type="info">String</Badge> <Badge>Required</Badge>
LAYER_CHANGE_BEEP_ONlabel <Badge type="info">String</Badge>
aliases <Badge type="info">Array: String</Badge>
["LCBON", "LCB_ON"]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.
community_layouts <Badge type="info">Array: String</Badge>
["60_ansi", "60_iso"]layout_aliases <Badge type="info">Object: String</Badge>
{
"LAYOUT_ansi": "LAYOUT_60_ansi",
"LAYOUT_iso": "LAYOUT_60_iso"
}
layouts <Badge type="info">Object</Badge>
LAYOUT_<layout_name> <Badge type="info">Object</Badge>
layout <Badge type="info">Array: Object</Badge>
matrix <Badge type="info">Matrix</Badge> <Badge>Required</Badge>
[0, 4] (row 0, column 4)x <Badge type="info">KeyUnit</Badge> <Badge>Required</Badge>
y <Badge type="info">KeyUnit</Badge> <Badge>Required</Badge>
h <Badge type="info">KeyUnit</Badge>
1 (1u)hand <Badge type="info">String</Badge>
"L" (left hand), "R" (right hand), or "*" (either or exempted handedness).label <Badge type="info">String</Badge>
"Escape"r <Badge type="info">Number</Badge>
rx <Badge type="info">Number</Badge>
ry <Badge type="info">Number</Badge>
w <Badge type="info">KeyUnit</Badge>
1 (1u)encoder <Badge type="info">Number</Badge>
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}Configures the Leader Key feature.
leader_key
timing <Badge type="info">Boolean</Badge>
timeout on each keypress.falsestrict_processing <Badge type="info">Boolean</Badge>
falsetimeout <Badge type="info">Number</Badge>
300 (300 ms)Configures the LED Matrix feature.
led_matrix
animations <Badge type="info">Object: Boolean</Badge>
false.{
"alphas_mods": true,
"breathing": true,
"cycle_left_right": false
}
center_point <Badge type="info">Array: Number</Badge>
[112, 32]flag_steps <Badge type="info">Array: Number</Badge>
[255, 5, 0]default
animation <Badge type="info">String</Badge>
led_matrix.animations"solid"on <Badge type="info">Boolean</Badge>
trueval <Badge type="info">Number</Badge>
max_brightnessspeed <Badge type="info">Number</Badge>
128flags <Badge type="info">Number</Badge>
255driver <Badge type="info">String</Badge> <Badge>Required</Badge>
custom, is31fl3218, is31fl3731, is31fl3733, is31fl3736, is31fl3737, is31fl3741, is31fl3742a, is31fl3743a, is31fl3745, is31fl3746a, snled27351.layout <Badge type="info">Array: Object</Badge> <Badge>Required</Badge>
flags <Badge type="info">Number</Badge> <Badge>Required</Badge>
x <Badge type="info">Number</Badge> <Badge>Required</Badge>
y <Badge type="info">Number</Badge> <Badge>Required</Badge>
matrix <Badge type="info">Matrix</Badge>
[0, 2]{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}led_flush_limit <Badge type="info">Number</Badge>
16led_process_limit <Badge type="info">Number</Badge>
(led_count + 4) / 5max_brightness <Badge type="info">Number</Badge>
255react_on_keyup <Badge type="info">Boolean</Badge>
falsesleep <Badge type="info">Boolean</Badge>
falsespeed_steps <Badge type="info">Number</Badge>
16split_count <Badge type="info">Array: Number</Badge>
[16, 16]timeout <Badge type="info">Number</Badge>
0 (no timeout)val_steps <Badge type="info">Number</Badge>
8debounce <Badge type="info">Number</Badge>
5 (5 ms)diode_direction <Badge type="info">String</Badge>
matrix_pins.direct. Must be one of COL2ROW, ROW2COL.matrix_pins
cols <Badge type="info">Array: Pin</Badge>
["A0", "A1", "A2"]custom <Badge type="info">Boolean</Badge>
falsecustom_lite <Badge type="info">Boolean</Badge>
falsedirect <Badge type="info">Array: Array: Pin</Badge>
[
["A0", "A1", "A2"],
["B0", "B1", "B2"],
["C0", "C1", "C2"]
]
ghost <Badge type="info">Boolean</Badge>
falseinput_pressed_state <Badge type="info">0|1</Badge>
0 (pressed = low)io_delay <Badge type="info">Number</Badge>
30 (30 µs)masked <Badge type="info">Boolean</Badge>
falserows <Badge type="info">Array: Pin</Badge>
["B0", "B1", "B2"]Configures the Mouse Keys feature.
mouse_key
delay <Badge type="info">Number</Badge>enabled <Badge type="info">Boolean</Badge>
falseinterval <Badge type="info">Number</Badge>max_speed <Badge type="info">Number</Badge>time_to_max <Badge type="info">Number</Badge>wheel_delay <Badge type="info">Number</Badge>Configures One Shot keys.
oneshot
tap_toggle <Badge type="info">Number</Badge>
timeout <Badge type="info">Number</Badge>
Configures the PS/2 feature.
ps2
clock_pin <Badge type="info">Pin</Badge>
CLK on the PS/2 device.data_pin <Badge type="info">Pin</Badge>
DATA on the PS/2 device.driver <Badge type="info">String</Badge>
busywait, interrupt, usart, vendor."busywait"enabled <Badge type="info">Boolean</Badge>
falsemouse_enabled <Badge type="info">Boolean</Badge>
falseqmk_lufa_bootloader
esc_input <Badge type="info">Pin</Badge> <Badge>Required</Badge>
COL2ROW).esc_output <Badge type="info">Pin</Badge> <Badge>Required</Badge>
COL2ROW).led <Badge type="info">Pin</Badge>
speaker <Badge type="info">Pin</Badge>
Configures the RGB Lighting feature.
rgblight
led_count <Badge type="info">Number</Badge> <Badge>Required</Badge>
animations <Badge type="info">Object: Boolean</Badge>
false.{
"breathing": true,
"rainbow_mood": true,
"snake": false
}
brightness_steps <Badge type="info">Number</Badge>
17default
animation <Badge type="info">String</Badge>
rgblight.animations"static_light"on <Badge type="info">Boolean</Badge>
truehue <Badge type="info">Number</Badge>
0sat <Badge type="info">Number</Badge>
255val <Badge type="info">Number</Badge>
max_brightnessspeed <Badge type="info">Number</Badge>
0driver <Badge type="info">String</Badge>
apa102, custom, ws2812."ws2812"hue_steps <Badge type="info">Number</Badge>
8layers
blink <Badge type="info">Boolean</Badge>
falseenabled <Badge type="info">Boolean</Badge>
falsemax <Badge type="info">Number</Badge>
8led_map <Badge type="info">Array: Number</Badge>
[4, 3, 2, 1, 0]max_brightness <Badge type="info">Number</Badge>
255saturation_steps <Badge type="info">Number</Badge>
17sleep <Badge type="info">Boolean</Badge>
falsesplit <Badge type="info">Boolean</Badge>
falsesplit_count <Badge type="info">Array: Number</Badge>
rgblight.split is enabled, the number of LEDs on each half.[10, 10]Configures the RGB Matrix feature.
rgb_matrix
animations <Badge type="info">Object: Boolean</Badge>
false.{
"alphas_mods": true,
"breathing": true,
"cycle_left_right": false
}
center_point <Badge type="info">Array: Number</Badge>
[112, 32]flag_steps <Badge type="info">Array: Number</Badge>
[255, 5, 2, 0]default
animation <Badge type="info">String</Badge>
rgb_matrix.animations"solid_color"on <Badge type="info">Boolean</Badge>
truehue <Badge type="info">Number</Badge>
0sat <Badge type="info">Number</Badge>
255val <Badge type="info">Number</Badge>
max_brightnessspeed <Badge type="info">Number</Badge>
128flags <Badge type="info">Number</Badge>
255driver <Badge type="info">String</Badge> <Badge>Required</Badge>
aw20216s, custom, is31fl3218, is31fl3236, is31fl3729, is31fl3731, is31fl3733, is31fl3736, is31fl3737, is31fl3741, is31fl3742a, is31fl3743a, is31fl3745, is31fl3746a, snled27351, ws2812.hue_steps <Badge type="info">Number</Badge>
8layout <Badge type="info">Array: Object</Badge> <Badge>Required</Badge>
flags <Badge type="info">Number</Badge> <Badge>Required</Badge>
x <Badge type="info">Number</Badge> <Badge>Required</Badge>
y <Badge type="info">Number</Badge> <Badge>Required</Badge>
matrix <Badge type="info">Matrix</Badge>
[0, 2]{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}led_flush_limit <Badge type="info">Number</Badge>
16led_process_limit <Badge type="info">Number</Badge>
(led_count + 4) / 5max_brightness <Badge type="info">Number</Badge>
255react_on_keyup <Badge type="info">Boolean</Badge>
falsesat_steps <Badge type="info">Number</Badge>
16sleep <Badge type="info">Boolean</Badge>
falsespeed_steps <Badge type="info">Number</Badge>
16split_count <Badge type="info">Array: Number</Badge>
[16, 16]timeout <Badge type="info">Number</Badge>
0 (no timeout)val_steps <Badge type="info">Number</Badge>
16Configures the Secure feature.
secure
enabled <Badge type="info">Boolean</Badge>
falseidle_timeout <Badge type="info">Number</Badge>
0 to disable.60000 (1 minute)unlock_sequence <Badge type="info">Array: Matrix</Badge>
[[0, 0], [0, 1], [4, 3]]unlock_timeout <Badge type="info">Number</Badge>
0 to disable.5000 (5 seconds)Configures the Split Keyboard feature.
split
bootmagic
matrix
dip_switch
right
pins
enabled <Badge type="info">Boolean</Badge>
falseencoder
right
rotary
handedness
pin <Badge type="info">Pin</Badge>
matrix_grid <Badge type="info">Array: Pin</Badge>
["A1", "B5"]matrix_pins
right
serial
driver <Badge type="info">String</Badge>
bitbang, usart, vendor."bitbang"pin <Badge type="info">Pin</Badge>
speed <Badge type="info">Number</Badge>
0 to 5 (fastest to slowest).1transport
protocol <Badge type="info">String</Badge>
custom, i2c, serial.sync
activity <Badge type="info">Boolean</Badge>
falsedetected_os <Badge type="info">Boolean</Badge>
falsehaptic <Badge type="info">Boolean</Badge>
falselayer_state <Badge type="info">Boolean</Badge>
falseindicators <Badge type="info">Boolean</Badge>
falsematrix_state <Badge type="info">Boolean</Badge>
falsemodifiers <Badge type="info">Boolean</Badge>
falseoled <Badge type="info">Boolean</Badge>
falsest7565 <Badge type="info">Boolean</Badge>
falsewpm <Badge type="info">Boolean</Badge>
falsewatchdog <Badge type="info">Boolean</Badge>
falsewatchdog_timeout <Badge type="info">Number</Badge>
usb_detect
enabled <Badge type="info">Boolean</Badge>
polling_interval <Badge type="info">Number</Badge>
10 (10 ms)timeout <Badge type="info">Number</Badge>
2000 (2 seconds)Configures the Stenography feature.
stenography
enabled <Badge type="info">Boolean</Badge>
falseprotocol <Badge type="info">String</Badge>
all, geminipr, txbolt."all"usb
device_version <Badge type="info">String</Badge> <Badge>Required</Badge>
MM.m.r (up to 99.9.9)."1.0.0"pid <Badge type="info">String</Badge> <Badge>Required</Badge>
"0x23B0"vid <Badge type="info">String</Badge> <Badge>Required</Badge>
"0xC1ED"max_power <Badge type="info">Number</Badge>
500 (500 mA)no_startup_check <Badge type="info">Boolean</Badge>
falsepolling_interval <Badge type="info">Number</Badge>
1 (1 ms/1000 Hz)shared_endpoint
keyboard <Badge type="info">Boolean</Badge>
falsemouse <Badge type="info">Boolean</Badge>
truesuspend_wakeup_delay <Badge type="info">Number</Badge>
0 (disabled)wait_for_enumeration <Badge type="info">Boolean</Badge>
falseConfigures the WS2812 driver.
ws2812
driver <Badge type="info">String</Badge>
bitbang, custom, i2c, pwm, spi, vendor."bitbang"pin <Badge type="info">Pin</Badge> <Badge>Required</Badge>
DI on the first LED in the chain (bitbang, pwm, spi and vendor drivers only).i2c_address <Badge type="info">String</Badge>
i2c driver only)."0xB0"i2c_timeout <Badge type="info">Number</Badge>
i2c driver only).100 (100 ms)rgbw <Badge type="info">Boolean</Badge>
false