Skip to content

Keycode

tmk edited this page Jun 7, 2017 · 10 revisions

Keycode Symbol Table

Keycodes are defined in tmk_core/common/keycode.h.

Range of 04-A4 and E0-E7 are identical to HID Usage of Keyboard/Keypad Page(0x07): http://www.usb.org/developers/hidpage/Hut1_12v2.pdf

Virtual keycodes are defined outside of the range above 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
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
80  KC__VOLUP                           Keyboard Volume Up
81  KC__VOLDOWN                         Keyboard Volume Down
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 can be used as TMK vertual keycode in Keymap. 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 virtual 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                                      Reserved
BE                                      Reserved
BF  KC_BOOTLOADER       KC_BTLD         Jump to bootloader

/* Fn key to define custom action */
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
Clone this wiki locally