info.json
Reference :id=info-json-referenceThe 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%.
keyboard_name
(Required)
\u03A8
(Ψ)."Clueboard 66%"
maintainer
(Required)
qmk
for community maintained boards."skullydazed"
manufacturer
(Required)
\u03A8
(Ψ)."Clueboard"
url
(Required)
"https://clueboard.co"
bootloader_instructions
"Press the button marked RESET on the back of the PCB"
tags
["ortho", "split", "rgb"]
board
"BLACKPILL_STM32_F411"
bootloader
development_board
is not specified.development_board
"promicro"
pin_compatible
elite_c
, promicro
.processor
development_board
is not specified.build
debounce_type
asym_eager_defer_pk
, custom
, sym_defer_g
, sym_defer_pk
, sym_defer_pr
, sym_eager_pk
, sym_eager_pr
.firmware_format
bin
, hex
, uf2
.lto
false
features
{
"rgb_matrix": true,
"rgblight": false
}
qmk
tap_capslock_delay
80
(80 ms)tap_keycode_delay
0
(no delay)tapping
hold_on_other_key_press
false
hold_on_other_key_press_per_key
false
permissive_hold
false
permissive_hold_per_key
false
retro
false
retro_per_key
false
term
200
(200 ms)term_per_key
false
toggle
5
Configures the APA102 driver.
apa102
clock_pin
(Required)
CI
on the first LED in the chain.data_pin
(Required)
DI
on the first LED in the chain.default_brightness
31
Configures the Audio feature.
audio
macro_beep
\a
(ASCII BEL
) characters in Send String macros.false
pins
(Required)
voices
false
Configures the Backlight feature.
backlight
as_caps_lock
false
breathing
false
breathing_period
6
(6 seconds)driver
custom
, pwm
, software
, timer
."pwm"
levels
3
max_brightness
255
on_state
1
(on = high)pin
pins
software
and timer
drivers only).Configures the Bluetooth feature.
bluetooth
driver
custom
, bluefruit_le
, rn42
.Configures the Bootmagic feature.
bootmagic
enabled
false
matrix
[0, 0]
Configures the Caps Word feature.
caps_word
both_shifts_turns_on
false
double_tap_shift_turns_on
false
enabled
false
idle_timeout
5000
(5 seconds)invert_on_shift
false
Configures the Combo feature.
combo
term
50
(50 ms)Configures the EEPROM driver.
eeprom
driver
custom
, i2c
, legacy_stm32_flash
, spi
, transient
, vendor
, wear_leveling
."vendor"
Configures the Encoder feature.
encoder
rotary
pin_a
(Required)
A
pin.pin_b
(Required)
B
pin.resolution
4
Configures the LED Indicators feature.
indicators
caps_lock
compose
kana
num_lock
on_state
1
(on = high)scroll_lock
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
["60_ansi", "60_iso"]
layout_aliases
{
"LAYOUT_ansi": "LAYOUT_60_ansi",
"LAYOUT_iso": "LAYOUT_60_iso"
}
layouts
LAYOUT_<layout_name>
layout
matrix
(Required)
[0, 4]
(row 0, column 4)x
(Required)
y
(Required)
h
1
(1u)label
"Escape"
r
rx
ry
w
1
(1u){"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}
Configures the Leader Key feature.
leader_key
timing
timeout
on each keypress.false
strict_processing
false
timeout
300
(300 ms)Configures the LED Matrix feature.
led_matrix
animations
false
.{
"alpha_mods": true,
"breathing": true,
"cycle_left_right": false
}
center_point
[112, 32]
driver
(Required)
ckled2001
, custom
, is31fl3731
, is31fl3742a
, is31fl3743a
, is31fl3745
, is31fl3746a
.layout
(Required)
flags
(Required)
x
(Required)
y
(Required)
matrix
[0, 2]
{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}
max_brightness
255
speed_steps
16
split_count
[16, 16]
timeout
0
(no timeout)val_steps
8
debounce
5
(5 ms)diode_direction
matrix_pins.direct
. Must be one of COL2ROW
, ROW2COL
.matrix_pins
cols
["A0", "A1", "A2"]
custom
false
custom_lite
false
direct
[
["A0", "A1", "A2"],
["B0", "B1", "B2"],
["C0", "C1", "C2"]
]
ghost
false
input_pressed_state
0
(pressed = low)io_delay
30
(30 µs)rows
["B0", "B1", "B2"]
Configures the Mouse Keys feature.
mouse_key
delay
enabled
false
interval
max_speed
time_to_max
wheel_delay
Configures One Shot keys.
oneshot
tap_toggle
timeout
Configures the PS/2 feature.
ps2
clock_pin
CLK
on the PS/2 device.data_pin
DATA
on the PS/2 device.driver
busywait
, interrupt
, usart
, vendor
."busywait"
enabled
false
mouse_enabled
false
qmk_lufa_bootloader
esc_input
(Required)
COL2ROW
).esc_output
(Required)
COL2ROW
).led
speaker
Configures the RGB Lighting feature.
rgblight
led_count
(Required)
animations
false
.{
"breathing": true,
"rainbow_mood": true,
"snake": false
}
brightness_steps
17
driver
apa102
, custom
, ws2812
."ws2812"
hue_steps
8
layers
blink
false
enabled
false
max
8
led_map
[4, 3, 2, 1, 0]
max_brightness
255
rgbw
false
saturation_steps
17
sleep
false
split
false
split_count
rgblight.split
is enabled, the number of LEDs on each half.[10, 10]
Configures the RGB Matrix feature.
rgb_matrix
animations
false
.{
"alpha_mods": true,
"breathing": true,
"cycle_left_right": false
}
center_point
[112, 32]
driver
(Required)
aw20216
, ckled2001
, custom
, is31fl3731
, is31fl3733
, is31fl3736
, is31fl3737
, is31fl3741
, is31fl3742a
, is31fl3743a
, is31fl3745
, is31fl3746a
, ws2812
.hue_steps
8
layout
(Required)
flags
(Required)
x
(Required)
y
(Required)
matrix
[0, 2]
{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}
max_brightness
255
sat_steps
16
speed_steps
16
split_count
[16, 16]
timeout
0
(no timeout)val_steps
16
Configures the Secure feature.
secure
enabled
false
idle_timeout
0
to disable.60000
(1 minute)unlock_sequence
[[0, 0], [0, 1], [4, 3]]
unlock_timeout
0
to disable.5000
(5 seconds)Configures the Split Keyboard feature.
split
bootmagic
matrix
enabled
false
encoder
right
rotary
matrix_pins
right
soft_serial_pin
serial
transport protocol only).soft_serial_speed
0
to 5
(serial
transport protocol only).1
transport
protocol
custom
, i2c
, serial
, serial_usart
.sync_matrix_state
false
sync_modifiers
false
watchdog
false
watchdog_timeout
usb_detect
enabled
polling_interval
10
(10 ms)timeout
2000
(2 seconds)Configures the Stenography feature.
stenography
enabled
false
protocol
all
, geminipr
, txbolt
."all"
usb
device_version
(Required)
MM.m.r
(up to 99.9.9
)."1.0.0"
pid
(Required)
"0x23B0"
vid
(Required)
"0xC1ED"
force_nkro
false
max_power
500
(500 mA)no_startup_check
false
polling_interval
1
(1 ms/1000 Hz)shared_endpoint
keyboard
false
mouse
true
suspend_wakeup_delay
0
(disabled)wait_for
false
Configures the WS2812 driver.
ws2812
driver
bitbang
, custom
, i2c
, pwm
, spi
, vendor
."bitbang"
pin
(Required)
DI
on the first LED in the chain (bitbang
, pwm
, spi
and vendor
drivers only).i2c_address
i2c
driver only)."0xB0"
i2c_timeout
i2c
driver only).100
(100 ms)