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/Meta 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/Meta 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.
?> 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
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.