Quantum Keycodes

Quantum keycodes allow for easier customization of your keymap than the basic ones provide, without having to define custom actions.

All keycodes within quantum are numbers between 0x0000 and 0xFFFF. Within your keymap.c it may look like you have functions and other special cases, but ultimately the C preprocessor will translate those into a single 4 byte integer. QMK has reserved 0x0000 through 0x00FF for standard keycodes. These are keycodes such as KC_A, KC_1, and KC_LCTL, which are basic keys defined in the USB HID specification.

On this page we have documented keycodes between 0x00FF and 0xFFFF which are used to implement advanced quantum features. If you define your own custom keycodes they will be put into this range as well.

QMK Keycodes

Key

Aliases

Description

RESET

Put the keyboard into DFU mode for flashing

DEBUG

Toggle debug mode

EEPROM_RESET

EEP_RST

Resets EEPROM state by reinitializing it

KC_GESC

GRAVE_ESC

Escape when tapped, ` when pressed with Shift or GUI

KC_LSPO

Left Shift when held, ( when tapped

KC_RSPC

Right Shift when held, ) when tapped

KC_LCPO

Left Control when held, ( when tapped

KC_RCPC

Right Control when held, ) when tapped

KC_LAPO

Left Alt when held, ( when tapped

KC_RAPC

Right Alt when held, ) when tapped

KC_SFTENT

Right Shift when held, Enter when tapped

KC_LEAD

The Leader key

KC_LOCK

The Lock key

FUNC(n)

F(n)

Call fn_action(n) (deprecated)

M(n)

Call macro n

MACROTAP(n)

Macro-tap n idk FIXME