-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Keycode
hasu@tmk edited this page Sep 18, 2021
·
10 revisions
Keycodes are defined in source code file tmk_core/common/keycode.h
.
Range of 04-A4 and E0-E7 are identical to HID Usage of Keyboard/Keypad Page(0x07). TMK specific keycodes are defined outside of the range to support special actions.
Hex Keycode Symbol Short name Description
--------------------------------------------------------------------------------
00 KC_NO No event indicated
01 KC_TRANSPARENT KC_TRNS Transparent; refer to lower layer
02 KC_POST_FAIL Reserved
03 KC_UNDEFINED Reserved
04 KC_A Keyboard a and A
05 KC_B Keyboard b and B
06 KC_C Keyboard c and C
07 KC_D Keyboard d and D
08 KC_E Keyboard e and E
09 KC_F Keyboard f and F
0A KC_G Keyboard g and G
0B KC_H Keyboard h and H
0C KC_I Keyboard i and I
0D KC_J Keyboard j and J
0E KC_K Keyboard k and K
0F KC_L Keyboard l and L
10 KC_M Keyboard m and M
11 KC_N Keyboard n and N
12 KC_O Keyboard o and O
13 KC_P Keyboard p and P
14 KC_Q Keyboard q and Q
15 KC_R Keyboard r and R
16 KC_S Keyboard s and S
17 KC_T Keyboard t and T
18 KC_U Keyboard u and U
19 KC_V Keyboard v and V
1A KC_W Keyboard w and W
1B KC_X Keyboard x and X
1C KC_Y Keyboard y and Y
1D KC_Z Keyboard z and Z
1E KC_1 Keyboard 1 and !
1F KC_2 Keyboard 2 and @
20 KC_3 Keyboard 3 and #
21 KC_4 Keyboard 4 and $
22 KC_5 Keyboard 5 and %
23 KC_6 Keyboard 6 and ^
24 KC_7 Keyboard 7 and &
25 KC_8 Keyboard 8 and *
26 KC_9 Keyboard 9 and (
27 KC_0 Keyboard 0 and )
28 KC_ENTER KC_ENT Keyboard Return (ENTER)
29 KC_ESCAPE KC_ESC Keyboard ESCAPE
2A KC_BSPACE KC_BSPC Keyboard DELETE (Backspace)
2B KC_TAB Keyboard Tab
2C KC_SPACE KC_SPC Keyboard Spacebar
2D KC_MINUS KC_MINS Keyboard - and (underscore)
2E KC_EQUAL KC_EQL Keyboard = and +
2F KC_LBRACKET KC_LBRC Keyboard [ and {
30 KC_RBRACKET KC_RBRC Keyboard ] and }
31 KC_BSLASH KC_BSLS Keyboard \ and |
32 KC_NONUS_HASH KC_NUHS Keyboard Non-US # and ~
33 KC_SCOLON KC_SCLN Keyboard ; and :
34 KC_QUOTE KC_QUOT Keyboard ‘ and “
35 KC_GRAVE KC_GRV Keyboard Grave Accent and Tilde
36 KC_COMMA KC_COMM Keyboard, and <
37 KC_DOT Keyboard . and >
38 KC_SLASH KC_SLSH Keyboard / and ?
39 KC_CAPSLOCK KC_CAPS Keyboard Caps Lock
3A KC_F1 Keyboard F1
3B KC_F2 Keyboard F2
3C KC_F3 Keyboard F3
3D KC_F4 Keyboard F4
3E KC_F5 Keyboard F5
3F KC_F6 Keyboard F6
40 KC_F7 Keyboard F7
41 KC_F8 Keyboard F8
42 KC_F9 Keyboard F9
43 KC_F10 Keyboard F10
44 KC_F11 Keyboard F11
45 KC_F12 Keyboard F12
46 KC_PSCREEN KC_PSCR Keyboard PrintScreen1
47 KC_SCKLOCK KC_SLCK Keyboard Scroll Lock11
48 KC_PAUSE KC_PAUS Keyboard Pause1
49 KC_INSERT KC_INS Keyboard Insert1
4A KC_HOME Keyboard Home1
4B KC_PGUP Keyboard PageUp1
4C KC_DELETE KC_DELETE Keyboard Delete Forward
4D KC_END Keyboard End1
4E KC_PGDOWN KC_PGDN Keyboard PageDown1
4F KC_RIGHT KC_RGHT Keyboard RightArrow1
50 KC_LEFT Keyboard LeftArrow1
51 KC_DOWN Keyboard DownArrow1
52 KC_UP Keyboard UpArrow1
53 KC_NUMLOCK KC_NLCK Keypad Num Lock and Clear11
54 KC_KP_SLASH KC_PSLS Keypad /1
55 KC_KP_ASTERISK KC_PAST Keypad *
56 KC_KP_MINUS KC_PMNS Keypad -
57 KC_KP_PLUS KC_PPLS Keypad +
58 KC_KP_ENTER KC_PENT Keypad ENTER5
59 KC_KP_1 KC_P1 Keypad 1 and End
5A KC_KP_2 KC_P2 Keypad 2 and Down Arrow
5B KC_KP_3 KC_P3 Keypad 3 and PageDn
5C KC_KP_4 KC_P4 Keypad 4 and Left Arrow
5D KC_KP_5 KC_P5 Keypad 5
5E KC_KP_6 KC_P6 Keypad 6 and Right Arrow
5F KC_KP_7 KC_P7 Keypad 7 and Home
60 KC_KP_8 KC_P8 Keypad 8 and Up Arrow
61 KC_KP_9 KC_P9 Keypad 9 and PageUp
62 KC_KP_0 KC_P0 Keypad 0 and Insert
63 KC_KP_DOT KC_PDOT Keypad . and Delete
64 KC_NONUS_BSLASH KC_NUBS Keyboard Non-US \ and |
65 KC_APPLICATION KC_APP Keyboard Application10
66 KC_POWER Keyboard Power9 - For Windows use KC_PWR instead
67 KC_KP_EQUAL KC_PEQL Keypad =
68 KC_F13 Keyboard F13
69 KC_F14 Keyboard F14
6A KC_F15 Keyboard F15
6B KC_F16 Keyboard F16
6C KC_F17 Keyboard F17
6D KC_F18 Keyboard F18
6E KC_F19 Keyboard F19
6F KC_F20 Keyboard F20
70 KC_F21 Keyboard F21
71 KC_F22 Keyboard F22
72 KC_F23 Keyboard F23
73 KC_F24 Keyboard F24
74 KC_EXECUTE Keyboard Execute
75 KC_HELP Keyboard Help
76 KC_MENU Keyboard Menu
77 KC_SELECT Keyboard Select
78 KC_STOP Keyboard Stop
79 KC_AGAIN Keyboard Again
7A KC_UNDO Keyboard Undo
7B KC_CUT Keyboard Cut
7C KC_COPY Keyboard Copy
7D KC_PASTE Keyboard Paste
7E KC_FIND Keyboard Find
7F KC__MUTE Keyboard Mute - For Windows use KC_MUTE instead
80 KC__VOLUP Keyboard Volume Up - For Windows use KC_VOLU instead
81 KC__VOLDOWN Keyboard Volume Down - For Windows use KC_VOLD instead
82 KC_LOCKING_CAPS Keyboard Locking Caps Lock12
83 KC_LOCKING_NUM Keyboard Locking Num Lock12
84 KC_LOCKING_SCROLL Keyboard Locking Scroll Lock12
85 KC_KP_COMMA KC_PCMM Keypad Comma27
86 KC_KP_EQUAL_AS400 Keypad Equal Sign29
87 KC_INT1 KC_RO Keyboard International115,28
88 KC_INT2 KC_KANA Keyboard International216
89 KC_INT3 KC_JYEN Keyboard International317
8A KC_INT4 KC_HENK Keyboard International418
8B KC_INT5 KC_MHEN Keyboard International519
8C KC_INT6 Keyboard International620
8D KC_INT7 Keyboard International721
8E KC_INT8 Keyboard International822
8F KC_INT9 Keyboard International922
90 KC_LANG1 Keyboard LANG125
91 KC_LANG2 Keyboard LANG226
92 KC_LANG3 Keyboard LANG330
93 KC_LANG4 Keyboard LANG431
94 KC_LANG5 Keyboard LANG532
95 KC_LANG6 Keyboard LANG68
96 KC_LANG7 Keyboard LANG78
97 KC_LANG8 Keyboard LANG88
98 KC_LANG9 Keyboard LANG98
99 KC_ALT_ERASE Keyboard Alternate Erase7
9A KC_SYSREQ Keyboard SysReq/Attention1
9B KC_CANCEL Keyboard Cancel
9C KC_CLEAR Keyboard Clear
9D KC_PRIOR Keyboard Prior
9E KC_RETURN Keyboard Return
9F KC_SEPARATOR Keyboard Separator
A0 KC_OUT Keyboard Out
A1 KC_OPER Keyboard Oper
A2 KC_CLEAR_AGAIN Keyboard Clear/Again
A3 KC_CRSEL Keyboard CrSel/Props
A4 KC_EXSEL Keyboard ExSel
/* A5-DF are redefined as TMK specific keycodes. See below. */
B0 KC_KP_00 Keypad 00
B1 KC_KP_000 Keypad 000
B2 KC_THOUSANDS_SEPARATOR Thousands Separator
B3 KC_DECIMAL_SEPARATOR Decimal Separator
B4 KC_CURRENCY_UNIT Currency Unit
B5 KC_CURRENCY_SUB_UNIT Currency Sub-unit
B6 KC_KP_LPAREN Keypad (
B7 KC_KP_RPAREN Keypad )
B8 KC_KP_LCBRACKET Keypad {
B9 KC_KP_RCBRACKET Keypad }
BA KC_KP_TAB Keypad Tab
BB KC_KP_BSPACE Keypad Backspace
BC KC_KP_A Keypad A
BD KC_KP_B Keypad B
BE KC_KP_C Keypad C
BF KC_KP_D Keypad D
C0 KC_KP_E Keypad E
C1 KC_KP_F Keypad F
C2 KC_KP_XOR Keypad XOR
C3 KC_KP_HAT Keypad ^
C4 KC_KP_PERC Keypad %
C5 KC_KP_LT Keypad <
C6 KC_KP_GT Keypad >
C7 KC_KP_AND Keypad &
C8 KC_KP_LAZYAND Keypad &&
C9 KC_KP_OR Keypad |
CA KC_KP_LAZYOR Keypad ||
CB KC_KP_COLON Keypad :
CC KC_KP_HASH Keypad #
CD KC_KP_SPACE Keypad Space
CE KC_KP_ATMARK Keypad @
CF KC_KP_EXCLAMATION Keypad !
D0 KC_KP_MEM_STORE Keypad Memory Store
D1 KC_KP_MEM_RECALL Keypad Memory Recall
D2 KC_KP_MEM_CLEAR Keypad Memory Clear
D3 KC_KP_MEM_ADD Keypad Memory Add
D4 KC_KP_MEM_SUB Keypad Memory Subtract
D5 KC_KP_MEM_MUL Keypad Memory Multiply
D6 KC_KP_MEM_DIV Keypad Memory Divide
D7 KC_KP_PLUS_MINUS Keypad +/-
D8 KC_KP_CLEAR Keypad Clear
D9 KC_KP_CLEAR_ENTRY Keypad Clear Entry
DA KC_KP_BINARY Keypad Binary
DB KC_KP_OCTAL Keypad Octal
DC KC_KP_DECIMAL Keypad Decimal
DD KC_KP_HEXADECIMAL Keypad Hexadecimal
E0 KC_LCTRL KC_LCTL Keyboard LeftControl
E1 KC_LSHIFT KC_LSFT Keyboard LeftShift
E2 KC_LALT Keyboard LeftAlt
E3 KC_LGUI Keyboard Left GUI(Windows/Apple/Meta key)
E4 KC_RCTRL KC_RCTL Keyboard RightControl
E5 KC_RSHIFT KC_RSFT Keyboard RightShift
E6 KC_RALT Keyboard RightAlt
E7 KC_RGUI Keyboard Right GUI(Windows/Apple/Meta key)
/* E8-FF can be used as TMK vertual keycode in Keymap. See below. */
/************************/
/* TMK specific keycode */
/************************/
/* Generic Desktop Page(0x01) - System Control */
A5 KC_SYSTEM_POWER KC_PWR System Power Down
A6 KC_SYSTEM_SLEEP KC_SLEP System Sleep
A7 KC_SYSTEM_WAKE KC_WAKE System Wake
/* Consumer Page(0x07) */
A8 KC_AUDIO_MUTE KC_MUTE Mute
A9 KC_AUDIO_VOL_UP KC_VOLU Volume Increment
AA KC_AUDIO_VOL_DOWN KC_VOLD Volume Decrement
AB KC_MEDIA_NEXT_TRACK KC_MNXT Scan Next Track
AC KC_MEDIA_PREV_TRACK KC_MPRV Scan Previous Track
AD KC_MEDIA_STOP KC_MSTP Stop
AE KC_MEDIA_FAST_FORWARD KC_MFFD Fast Forward
AF KC_MEDIA_REWIND KC_MRWD Rewind
B0 KC_MEDIA_PLAY_PAUSE KC_MPLY Play/Pause
B1 KC_EJCT KC_MEDIA_EJECT Stop/Eject
B2 KC_MEDIA_SELECT KC_MSEL AL Consumer Control Configuration
B3 KC_MAIL KC_MAIL AL Email Reader
B4 KC_CALCULATOR KC_CALC AL Calculator
B5 KC_MY_COMPUTER KC_MYCM AL Local Machine Browser
B6 KC_WWW_SEARCH KC_WSCH AC Search
B7 KC_WWW_HOME KC_WHOM AC Home
B8 KC_WWW_BACK KC_WBAK AC Back
B9 KC_WWW_FORWARD KC_WFWD AC Forward
BA KC_WWW_STOP KC_WSTP AC Stop
BB KC_WWW_REFRESH KC_WREF AC Refresh
BC KC_WWW_FAVORITES KC_WFAV AC Bookmarks
BD KC_BRIGHTNESS_INC KC_BRTI Display Brightness Control
BE KC_BRIGHTNESS_DEC KC_BRTD Display Brightness Control
BF KC_BOOTLOADER KC_BTLD Jump to bootloader
/* Fn key to define custom action in 8-bit keymap */
C0 KC_FN0
C1 KC_FN1
C2 KC_FN2
C3 KC_FN3
C4 KC_FN4
C5 KC_FN5
C6 KC_FN6
C7 KC_FN7
C8 KC_FN8
C9 KC_FN9
CA KC_FN10
CB KC_FN11
CC KC_FN12
CD KC_FN13
CE KC_FN14
CF KC_FN15
D0 KC_FN16
D1 KC_FN17
D2 KC_FN18
D3 KC_FN19
D4 KC_FN20
D5 KC_FN21
D6 KC_FN22
D7 KC_FN23
D8 KC_FN24
D9 KC_FN25
DA KC_FN26
DB KC_FN27
DC KC_FN28
DD KC_FN29
DE KC_FN30
DF KC_FN31
/* Mousekey */
F0 KC_MS_UP KC_MS_U Mouse Cursor Up
F1 KC_MS_DOWN KC_MS_D Mouse Cursor Down
F2 KC_MS_LEFT KC_MS_L Mouse Cursor Left
F3 KC_MS_RIGHT KC_MS_R Mouse Cursor Right
F4 KC_MS_BTN1 KC_BTN1 Mouse Button 1
F5 KC_MS_BTN2 KC_BTN2 Mouse Button 2
F6 KC_MS_BTN3 KC_BTN3 Mouse Button 3
F7 KC_MS_BTN4 KC_BTN4 Mouse Button 4
F8 KC_MS_BTN5 KC_BTN5 Mouse Button 5
F9 KC_MS_WH_UP KC_WH_U Mouse Wheel Up
FA KC_MS_WH_DOWN KC_WH_D Mouse Wheel Down
FB KC_MS_WH_LEFT KC_WH_L Mouse Wheel Left
FC KC_MS_WH_RIGHT KC_WH_R Mouse Wheel Right
FD KC_MS_ACCEL0 KC_ACL0 Mouse Acceleration 0
FE KC_MS_ACCEL1 KC_ACL1 Mouse Acceleration 1
FF KC_MS_ACCEL2 KC_ACL2 Mouse Acceleration 2
Check this for OS specific info.
https://github.com/tmk/tmk_keyboard/issues/332
It seems Keycodes(USB HID usages) in range 0xB0-DD are virtually unuseful on most of computers with default configuration if not completely.
This firmware doesn't support to send them currently, the range is used for TMK specific actions instead.