Basic Keycodes
The basic set of keycodes are based on the HID Keyboard/Keypad Usage Page (0x07) with the exception of KC_NO, KC_TRNS and keycodes in the 0xA5-DF range. See below for more details.
Letters and Numbers
| Key | 
Description | 
KC_A | 
a and A | 
KC_B | 
b and B | 
KC_C | 
c and C | 
KC_D | 
d and D | 
KC_E | 
e and E | 
KC_F | 
f and F | 
KC_G | 
g and G | 
KC_H | 
h and H | 
KC_I | 
i and I | 
KC_J | 
j and J | 
KC_K | 
k and K | 
KC_L | 
l and L | 
KC_M | 
m and M | 
KC_N | 
n and N | 
KC_O | 
o and O | 
KC_P | 
p and P | 
KC_Q | 
q and Q | 
KC_R | 
r and R | 
KC_S | 
s and S | 
KC_T | 
t and T | 
KC_U | 
u and U | 
KC_V | 
v and V | 
KC_W | 
w and W | 
KC_X | 
x and X | 
KC_Y | 
y and Y | 
KC_Z | 
z and Z | 
KC_1 | 
1 and ! | 
KC_2 | 
2 and @ | 
KC_3 | 
3 and # | 
KC_4 | 
4 and $ | 
KC_5 | 
5 and % | 
KC_6 | 
6 and ^ | 
KC_7 | 
7 and & | 
KC_8 | 
8 and * | 
KC_9 | 
9 and ( | 
KC_0 | 
0 and ) | 
F Keys
| Key | 
Description | 
KC_F1 | 
F1 | 
KC_F2 | 
F2 | 
KC_F3 | 
F3 | 
KC_F4 | 
F4 | 
KC_F5 | 
F5 | 
KC_F6 | 
F6 | 
KC_F7 | 
F7 | 
KC_F8 | 
F8 | 
KC_F9 | 
F9 | 
KC_F10 | 
F10 | 
KC_F11 | 
F11 | 
KC_F12 | 
F12 | 
KC_F13 | 
F13 | 
KC_F14 | 
F14 | 
KC_F15 | 
F15 | 
KC_F16 | 
F16 | 
KC_F17 | 
F17 | 
KC_F18 | 
F18 | 
KC_F19 | 
F19 | 
KC_F20 | 
F20 | 
KC_F21 | 
F21 | 
KC_F22 | 
F22 | 
KC_F23 | 
F23 | 
KC_F24 | 
F24 | 
Punctuation
| Key | 
Aliases | 
Description | 
KC_ENTER | 
KC_ENT | 
Return (Enter) | 
KC_ESCAPE | 
KC_ESC | 
Escape | 
KC_BACKSPACE | 
KC_BSPC | 
Delete (Backspace) | 
KC_TAB | 
 | 
Tab | 
KC_SPACE | 
KC_SPC | 
Spacebar | 
KC_MINUS | 
KC_MINS | 
- and _ | 
KC_EQUAL | 
KC_EQL | 
= and + | 
KC_LEFT_BRACKET | 
KC_LBRC | 
[ and { | 
KC_RIGHT_BRACKET | 
KC_RBRC | 
] and } | 
KC_BACKSLASH | 
KC_BSLS | 
\ and | | 
KC_NONUS_HASH | 
KC_NUHS | 
Non-US # and ~ | 
KC_SEMICOLON | 
KC_SCLN | 
; and : | 
KC_QUOTE | 
KC_QUOT | 
' and " | 
KC_GRAVE | 
KC_GRV | 
` and ~ | 
KC_COMMA | 
KC_COMM | 
, and < | 
KC_DOT | 
 | 
. and > | 
KC_SLASH | 
KC_SLSH | 
/ and ? | 
KC_NONUS_BACKSLASH | 
KC_NUBS | 
Non-US \ and | | 
Lock Keys
| Key | 
Aliases | 
Description | 
KC_CAPS_LOCK | 
KC_CAPS | 
Caps Lock | 
KC_SCROLL_LOCK | 
KC_SCRL, KC_BRMD | 
Scroll Lock, Brightness Down (macOS) | 
KC_NUM_LOCK | 
KC_NUM | 
Keypad Num Lock and Clear | 
KC_LOCKING_CAPS_LOCK | 
KC_LCAP | 
Locking Caps Lock | 
KC_LOCKING_NUM_LOCK | 
KC_LNUM | 
Locking Num Lock | 
KC_LOCKING_SCROLL_LOCK | 
KC_LSCR | 
Locking Scroll Lock | 
Modifiers
| Key | 
Aliases | 
Description | 
KC_LEFT_CTRL | 
KC_LCTL | 
Left Control | 
KC_LEFT_SHIFT | 
KC_LSFT | 
Left Shift | 
KC_LEFT_ALT | 
KC_LALT, KC_LOPT | 
Left Alt (Option) | 
KC_LEFT_GUI | 
KC_LGUI, KC_LCMD, KC_LWIN | 
Left GUI (Windows/Command/Super key) | 
KC_RIGHT_CTRL | 
KC_RCTL | 
Right Control | 
KC_RIGHT_SHIFT | 
KC_RSFT | 
Right Shift | 
KC_RIGHT_ALT | 
KC_RALT, KC_ROPT, KC_ALGR | 
Right Alt (Option/AltGr) | 
KC_RIGHT_GUI | 
KC_RGUI, KC_RCMD, KC_RWIN | 
Right GUI (Windows/Command/Super key) | 
International
| Key | 
Aliases | 
Description | 
KC_INTERNATIONAL_1 | 
KC_INT1 | 
JIS \ and _ | 
KC_INTERNATIONAL_2 | 
KC_INT2 | 
JIS Katakana/Hiragana | 
KC_INTERNATIONAL_3 | 
KC_INT3 | 
JIS ¥ and | | 
KC_INTERNATIONAL_4 | 
KC_INT4 | 
JIS Henkan | 
KC_INTERNATIONAL_5 | 
KC_INT5 | 
JIS Muhenkan | 
KC_INTERNATIONAL_6 | 
KC_INT6 | 
JIS Numpad , | 
KC_INTERNATIONAL_7 | 
KC_INT7 | 
International 7 | 
KC_INTERNATIONAL_8 | 
KC_INT8 | 
International 8 | 
KC_INTERNATIONAL_9 | 
KC_INT9 | 
International 9 | 
KC_LANGUAGE_1 | 
KC_LNG1 | 
Hangul/English | 
KC_LANGUAGE_2 | 
KC_LNG2 | 
Hanja | 
KC_LANGUAGE_3 | 
KC_LNG3 | 
JIS Katakana | 
KC_LANGUAGE_4 | 
KC_LNG4 | 
JIS Hiragana | 
KC_LANGUAGE_5 | 
KC_LNG5 | 
JIS Zenkaku/Hankaku | 
KC_LANGUAGE_6 | 
KC_LNG6 | 
Language 6 | 
KC_LANGUAGE_7 | 
KC_LNG7 | 
Language 7 | 
KC_LANGUAGE_8 | 
KC_LNG8 | 
Language 8 | 
KC_LANGUAGE_9 | 
KC_LNG9 | 
Language 9 | 
Commands
| Key | 
Aliases | 
Description | 
KC_PRINT_SCREEN | 
KC_PSCR | 
Print Screen | 
KC_PAUSE | 
KC_PAUS, KC_BRK, KC_BRMU | 
Pause, Brightness Up (macOS) | 
KC_INSERT | 
KC_INS | 
Insert | 
KC_HOME | 
 | 
Home | 
KC_PAGE_UP | 
KC_PGUP | 
Page Up | 
KC_DELETE | 
KC_DEL | 
Forward Delete | 
KC_END | 
 | 
End | 
KC_PAGE_DOWN | 
KC_PGDN | 
Page Down | 
KC_RIGHT | 
KC_RGHT | 
Right Arrow | 
KC_LEFT | 
 | 
Left Arrow | 
KC_DOWN | 
 | 
Down Arrow | 
KC_UP | 
 | 
Up Arrow | 
KC_APPLICATION | 
KC_APP | 
Application (Windows Context Menu Key) | 
KC_KB_POWER | 
 | 
System Power | 
KC_EXECUTE | 
KC_EXEC | 
Execute | 
KC_HELP | 
 | 
Help | 
KC_MENU | 
 | 
Menu | 
KC_SELECT | 
KC_SLCT | 
Select | 
KC_STOP | 
 | 
Stop | 
KC_AGAIN | 
KC_AGIN | 
Again | 
KC_UNDO | 
 | 
Undo | 
KC_CUT | 
 | 
Cut | 
KC_COPY | 
 | 
Copy | 
KC_PASTE | 
KC_PSTE | 
Paste | 
KC_FIND | 
 | 
Find | 
KC_KB_MUTE | 
 | 
Mute | 
KC_KB_VOLUME_UP | 
 | 
Volume Up | 
KC_KB_VOLUME_DOWN | 
 | 
Volume Down | 
KC_ALTERNATE_ERASE | 
KC_ERAS | 
Alternate Erase | 
KC_SYSTEM_REQUEST | 
KC_SYRQ | 
SysReq/Attention | 
KC_CANCEL | 
KC_CNCL | 
Cancel | 
KC_CLEAR | 
KC_CLR | 
Clear | 
KC_PRIOR | 
KC_PRIR | 
Prior | 
KC_RETURN | 
KC_RETN | 
Return | 
KC_SEPARATOR | 
KC_SEPR | 
Separator | 
KC_OUT | 
 | 
Out | 
KC_OPER | 
 | 
Oper | 
KC_CLEAR_AGAIN | 
KC_CLAG | 
Clear/Again | 
KC_CRSEL | 
KC_CRSL | 
CrSel/Props | 
KC_EXSEL | 
KC_EXSL | 
ExSel | 
Media Keys
These keycodes are not part of the Keyboard/Keypad usage page. The SYSTEM_ keycodes are found in the Generic Desktop page, and the rest are located in the Consumer page.
::: tip
Some of these keycodes may behave differently depending on the OS. For example, on macOS, the keycodes KC_MEDIA_FAST_FORWARD, KC_MEDIA_REWIND, KC_MEDIA_NEXT_TRACK and KC_MEDIA_PREV_TRACK skip within the current track when held, but skip the entire track when tapped.
:::
| Key | 
Aliases | 
Description | 
KC_SYSTEM_POWER | 
KC_PWR | 
System Power Down | 
KC_SYSTEM_SLEEP | 
KC_SLEP | 
System Sleep | 
KC_SYSTEM_WAKE | 
KC_WAKE | 
System Wake | 
KC_AUDIO_MUTE | 
KC_MUTE | 
Mute | 
KC_AUDIO_VOL_UP | 
KC_VOLU | 
Volume Up | 
KC_AUDIO_VOL_DOWN | 
KC_VOLD | 
Volume Down | 
KC_MEDIA_NEXT_TRACK | 
KC_MNXT | 
Next Track | 
KC_MEDIA_PREV_TRACK | 
KC_MPRV | 
Previous Track | 
KC_MEDIA_STOP | 
KC_MSTP | 
Stop Track | 
KC_MEDIA_PLAY_PAUSE | 
KC_MPLY | 
Play/Pause Track | 
KC_MEDIA_SELECT | 
KC_MSEL | 
Launch Media Player | 
KC_MEDIA_EJECT | 
KC_EJCT | 
Eject | 
KC_MAIL | 
 | 
Launch Mail | 
KC_CALCULATOR | 
KC_CALC | 
Launch Calculator | 
KC_MY_COMPUTER | 
KC_MYCM | 
Launch My Computer | 
KC_WWW_SEARCH | 
KC_WSCH | 
Browser Search | 
KC_WWW_HOME | 
KC_WHOM | 
Browser Home | 
KC_WWW_BACK | 
KC_WBAK | 
Browser Back | 
KC_WWW_FORWARD | 
KC_WFWD | 
Browser Forward | 
KC_WWW_STOP | 
KC_WSTP | 
Browser Stop | 
KC_WWW_REFRESH | 
KC_WREF | 
Browser Refresh | 
KC_WWW_FAVORITES | 
KC_WFAV | 
Browser Favorites | 
KC_MEDIA_FAST_FORWARD | 
KC_MFFD | 
Next Track | 
KC_MEDIA_REWIND | 
KC_MRWD | 
Previous Track | 
KC_BRIGHTNESS_UP | 
KC_BRIU | 
Brightness Up | 
KC_BRIGHTNESS_DOWN | 
KC_BRID | 
Brightness Down | 
KC_CONTROL_PANEL | 
KC_CPNL | 
Open Control Panel | 
KC_ASSISTANT | 
KC_ASST | 
Launch Assistant | 
KC_MISSION_CONTROL | 
KC_MCTL | 
Open Mission Control | 
KC_LAUNCHPAD | 
KC_LPAD | 
Open Launchpad | 
Number Pad
| Key | 
Aliases | 
Description | 
KC_KP_SLASH | 
KC_PSLS | 
Keypad / | 
KC_KP_ASTERISK | 
KC_PAST | 
Keypad * | 
KC_KP_MINUS | 
KC_PMNS | 
Keypad - | 
KC_KP_PLUS | 
KC_PPLS | 
Keypad + | 
KC_KP_ENTER | 
KC_PENT | 
Keypad Enter | 
KC_KP_1 | 
KC_P1 | 
Keypad 1 and End | 
KC_KP_2 | 
KC_P2 | 
Keypad 2 and Down Arrow | 
KC_KP_3 | 
KC_P3 | 
Keypad 3 and Page Down | 
KC_KP_4 | 
KC_P4 | 
Keypad 4 and Left Arrow | 
KC_KP_5 | 
KC_P5 | 
Keypad 5 | 
KC_KP_6 | 
KC_P6 | 
Keypad 6 and Right Arrow | 
KC_KP_7 | 
KC_P7 | 
Keypad 7 and Home | 
KC_KP_8 | 
KC_P8 | 
Keypad 8 and Up Arrow | 
KC_KP_9 | 
KC_P9 | 
Keypad 9 and Page Up | 
KC_KP_0 | 
KC_P0 | 
Keypad 0 and Insert | 
KC_KP_DOT | 
KC_PDOT | 
Keypad . and Delete | 
KC_KP_EQUAL | 
KC_PEQL | 
Keypad = | 
KC_KP_COMMA | 
KC_PCMM | 
Keypad , | 
KC_KP_EQUAL_AS400 | 
 | 
Keypad = on AS/400 keyboards | 
Special Keys
In addition to these, keycodes in the range of 0xA5-DF are reserved for internal use.
| Key | 
Aliases | 
Description | 
KC_NO | 
XXXXXXX | 
Ignore this key (NOOP) | 
KC_TRANSPARENT | 
KC_TRNS, _______ | 
Use the next lowest non-transparent key |