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