]> git.donarmstrong.com Git - qmk_firmware.git/blob - docs/keycodes_basic.md
Remove obsolete note about media keys in MacOS (#6631)
[qmk_firmware.git] / docs / keycodes_basic.md
1 # Basic Keycodes
2
3 The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07)](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) with the exception of `KC_NO`, `KC_TRNS` and keycodes in the `0xA5-DF` range. See below for more details.
4
5 ## Letters and Numbers
6
7 |Key   |Description|
8 |------|-----------|
9 |`KC_A`|`a` and `A`|
10 |`KC_B`|`b` and `B`|
11 |`KC_C`|`c` and `C`|
12 |`KC_D`|`d` and `D`|
13 |`KC_E`|`e` and `E`|
14 |`KC_F`|`f` and `F`|
15 |`KC_G`|`g` and `G`|
16 |`KC_H`|`h` and `H`|
17 |`KC_I`|`i` and `I`|
18 |`KC_J`|`j` and `J`|
19 |`KC_K`|`k` and `K`|
20 |`KC_L`|`l` and `L`|
21 |`KC_M`|`m` and `M`|
22 |`KC_N`|`n` and `N`|
23 |`KC_O`|`o` and `O`|
24 |`KC_P`|`p` and `P`|
25 |`KC_Q`|`q` and `Q`|
26 |`KC_R`|`r` and `R`|
27 |`KC_S`|`s` and `S`|
28 |`KC_T`|`t` and `T`|
29 |`KC_U`|`u` and `U`|
30 |`KC_V`|`v` and `V`|
31 |`KC_W`|`w` and `W`|
32 |`KC_X`|`x` and `X`|
33 |`KC_Y`|`y` and `Y`|
34 |`KC_Z`|`z` and `Z`|
35 |`KC_1`|`1` and `!`|
36 |`KC_2`|`2` and `@`|
37 |`KC_3`|`3` and `#`|
38 |`KC_4`|`4` and `$`|
39 |`KC_5`|`5` and `%`|
40 |`KC_6`|`6` and `^`|
41 |`KC_7`|`7` and `&`|
42 |`KC_8`|`8` and `*`|
43 |`KC_9`|`9` and `(`|
44 |`KC_0`|`0` and `)`|
45
46 ## F Keys
47
48 |Key     |Description|
49 |--------|-----------|
50 |`KC_F1` |F1         |
51 |`KC_F2` |F2         |
52 |`KC_F3` |F3         |
53 |`KC_F4` |F4         |
54 |`KC_F5` |F5         |
55 |`KC_F6` |F6         |
56 |`KC_F7` |F7         |
57 |`KC_F8` |F8         |
58 |`KC_F9` |F9         |
59 |`KC_F10`|F10        |
60 |`KC_F11`|F11        |
61 |`KC_F12`|F12        |
62 |`KC_F13`|F13        |
63 |`KC_F14`|F14        |
64 |`KC_F15`|F15        |
65 |`KC_F16`|F16        |
66 |`KC_F17`|F17        |
67 |`KC_F18`|F18        |
68 |`KC_F19`|F19        |
69 |`KC_F20`|F20        |
70 |`KC_F21`|F21        |
71 |`KC_F22`|F22        |
72 |`KC_F23`|F23        |
73 |`KC_F24`|F24        |
74
75 ## Punctuation
76
77 |Key              |Aliases            |Description                                    |
78 |-----------------|-------------------|-----------------------------------------------|
79 |`KC_ENTER`       |`KC_ENT`           |Return (Enter)                                 |
80 |`KC_ESCAPE`      |`KC_ESC`           |Escape                                         |
81 |`KC_BSPACE`      |`KC_BSPC`          |Delete (Backspace)                             |
82 |`KC_TAB`         |                   |Tab                                            |
83 |`KC_SPACE`       |`KC_SPC`           |Spacebar                                       |
84 |`KC_MINUS`       |`KC_MINS`          |`-` and `_`                                    |
85 |`KC_EQUAL`       |`KC_EQL`           |`=` and `+`                                    |
86 |`KC_LBRACKET`    |`KC_LBRC`          |`[` and `{`                                    |
87 |`KC_RBRACKET`    |`KC_RBRC`          |`]` and `}`                                    |
88 |`KC_BSLASH`      |`KC_BSLS`          |`\` and `\|`                                   |
89 |`KC_NONUS_HASH`  |`KC_NUHS`          |Non-US `#` and `~`                             |
90 |`KC_SCOLON`      |`KC_SCLN`          |`;` and `:`                                    |
91 |`KC_QUOTE`       |`KC_QUOT`          |`'` and `"`                                    |
92 |`KC_GRAVE`       |`KC_GRV`, `KC_ZKHK`|<code>&#96;</code> and `~`, JIS Zenkaku/Hankaku|
93 |`KC_COMMA`       |`KC_COMM`          |`,` and `<`                                    |
94 |`KC_DOT`         |                   |`.` and `>`                                    |
95 |`KC_SLASH`       |`KC_SLSH`          |`/` and `?`                                    |
96 |`KC_NONUS_BSLASH`|`KC_NUBS`          |Non-US `\` and `\|`                            |
97
98 ## Lock Keys
99
100 |Key                |Aliases             |Description                         |
101 |-------------------|--------------------|------------------------------------|
102 |`KC_CAPSLOCK`      |`KC_CLCK`, `KC_CAPS`|Caps Lock                           |
103 |`KC_SCROLLLOCK`    |`KC_SLCK`, `KC_BRMD`|Scroll Lock, Brightness Down (macOS)|
104 |`KC_NUMLOCK`       |`KC_NLCK`           |Keypad Num Lock and Clear           |
105 |`KC_LOCKING_CAPS`  |`KC_LCAP`           |Locking Caps Lock                   |
106 |`KC_LOCKING_NUM`   |`KC_LNUM`           |Locking Num Lock                    |
107 |`KC_LOCKING_SCROLL`|`KC_LSCR`           |Locking Scroll Lock                 |
108
109 ## Modifiers
110
111 |Key        |Aliases             |Description                         |
112 |-----------|--------------------|------------------------------------|
113 |`KC_LCTRL` |`KC_LCTL`           |Left Control                        |
114 |`KC_LSHIFT`|`KC_LSFT`           |Left Shift                          |
115 |`KC_LALT`  |                    |Left Alt                            |
116 |`KC_LGUI`  |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
117 |`KC_RCTRL` |`KC_RCTL`           |Right Control                       |
118 |`KC_RSHIFT`|`KC_RSFT`           |Right Shift                         |
119 |`KC_RALT`  |`KC_ALGR`           |Right Alt (AltGr)                   |
120 |`KC_RGUI`  |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)|
121
122 ## International
123
124 |Key       |Aliases  |Description          |
125 |----------|---------|---------------------|
126 |`KC_INT1` |`KC_RO`  |JIS `\` and `_`      |
127 |`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana|
128 |`KC_INT3` |`KC_JYEN`|JIS `¥` and `\|`     |
129 |`KC_INT4` |`KC_HENK`|JIS Henkan           |
130 |`KC_INT5` |`KC_MHEN`|JIS Muhenkan         |
131 |`KC_INT6` |         |JIS Numpad `,`       |
132 |`KC_INT7` |         |International 7      |
133 |`KC_INT8` |         |International 8      |
134 |`KC_INT9` |         |International 9      |
135 |`KC_LANG1`|`KC_HAEN`|Hangul/English       |
136 |`KC_LANG2`|`KC_HANJ`|Hanja                |
137 |`KC_LANG3`|         |JIS Katakana         |
138 |`KC_LANG4`|         |JIS Hiragana         |
139 |`KC_LANG5`|         |JIS Zenkaku/Hankaku  |
140 |`KC_LANG6`|         |Language 6           |
141 |`KC_LANG7`|         |Language 7           |
142 |`KC_LANG8`|         |Language 8           |
143 |`KC_LANG9`|         |Language 9           |
144
145 ## Commands
146
147 |Key               |Aliases                       |Description                   |
148 |------------------|------------------------------|------------------------------|
149 |`KC_PSCREEN`      |`KC_PSCR`                     |Print Screen                  |
150 |`KC_PAUSE`        |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS)  |
151 |`KC_INSERT`       |`KC_INS`                      |Insert                        |
152 |`KC_HOME`         |                              |Home                          |
153 |`KC_PGUP`         |                              |Page Up                       |
154 |`KC_DELETE`       |`KC_DEL`                      |Forward Delete                |
155 |`KC_END`          |                              |End                           |
156 |`KC_PGDOWN`       |`KC_PGDN`                     |Page Down                     |
157 |`KC_RIGHT`        |`KC_RGHT`                     |Right Arrow                   |
158 |`KC_LEFT`         |                              |Left Arrow                    |
159 |`KC_DOWN`         |                              |Down Arrow                    |
160 |`KC_UP`           |                              |Up Arrow                      |
161 |`KC_APPLICATION`  |`KC_APP`                      |Application (Windows Menu Key)|
162 |`KC_POWER`        |                              |System Power (macOS/Linux)    |
163 |`KC_EXECUTE`      |`KC_EXEC`                     |Execute                       |
164 |`KC_HELP`         |                              |Help                          |
165 |`KC_MENU`         |                              |Menu                          |
166 |`KC_SELECT`       |`KC_SLCT`                     |Select                        |
167 |`KC_STOP`         |                              |Stop                          |
168 |`KC_AGAIN`        |`KC_AGIN`                     |Again                         |
169 |`KC_UNDO`         |                              |Undo                          |
170 |`KC_CUT`          |                              |Cut                           |
171 |`KC_COPY`         |                              |Copy                          |
172 |`KC_PASTE`        |`KC_PSTE`                     |Paste                         |
173 |`KC_FIND`         |                              |Find                          |
174 |`KC__MUTE`        |                              |Mute (macOS)                  |
175 |`KC__VOLUP`       |                              |Volume Up (macOS)             |
176 |`KC__VOLDOWN`     |                              |Volume Down (macOS)           |
177 |`KC_ALT_ERASE`    |`KC_ERAS`                     |Alternate Erase               |
178 |`KC_SYSREQ`       |                              |SysReq/Attention              |
179 |`KC_CANCEL`       |                              |Cancel                        |
180 |`KC_CLEAR`        |`KC_CLR`                      |Clear                         |
181 |`KC_PRIOR`        |                              |Prior                         |
182 |`KC_RETURN`       |                              |Return                        |
183 |`KC_SEPARATOR`    |                              |Separator                     |
184 |`KC_OUT`          |                              |Out                           |
185 |`KC_OPER`         |                              |Oper                          |
186 |`KC_CLEAR_AGAIN`  |                              |Clear/Again                   |
187 |`KC_CRSEL`        |                              |CrSel/Props                   |
188 |`KC_EXSEL`        |                              |ExSel                         |
189
190 ## Media Keys
191
192 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.
193
194 ?> 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.
195
196 |Key                    |Aliases  |Description                  |
197 |-----------------------|---------|-----------------------------|
198 |`KC_SYSTEM_POWER`      |`KC_PWR` |System Power Down            |
199 |`KC_SYSTEM_SLEEP`      |`KC_SLEP`|System Sleep                 |
200 |`KC_SYSTEM_WAKE`       |`KC_WAKE`|System Wake                  |
201 |`KC_AUDIO_MUTE`        |`KC_MUTE`|Mute                         |
202 |`KC_AUDIO_VOL_UP`      |`KC_VOLU`|Volume Up                    |
203 |`KC_AUDIO_VOL_DOWN`    |`KC_VOLD`|Volume Down                  |
204 |`KC_MEDIA_NEXT_TRACK`  |`KC_MNXT`|Next Track                   |
205 |`KC_MEDIA_PREV_TRACK`  |`KC_MPRV`|Previous Track               |
206 |`KC_MEDIA_STOP`        |`KC_MSTP`|Stop Track (Windows)         |
207 |`KC_MEDIA_PLAY_PAUSE`  |`KC_MPLY`|Play/Pause Track             |
208 |`KC_MEDIA_SELECT`      |`KC_MSEL`|Launch Media Player (Windows)|
209 |`KC_MEDIA_EJECT`       |`KC_EJCT`|Eject (macOS)                |
210 |`KC_MAIL`              |         |Launch Mail (Windows)        |
211 |`KC_CALCULATOR`        |`KC_CALC`|Launch Calculator (Windows)  |
212 |`KC_MY_COMPUTER`       |`KC_MYCM`|Launch My Computer (Windows) |
213 |`KC_WWW_SEARCH`        |`KC_WSCH`|Browser Search (Windows)     |
214 |`KC_WWW_HOME`          |`KC_WHOM`|Browser Home (Windows)       |
215 |`KC_WWW_BACK`          |`KC_WBAK`|Browser Back (Windows)       |
216 |`KC_WWW_FORWARD`       |`KC_WFWD`|Browser Forward (Windows)    |
217 |`KC_WWW_STOP`          |`KC_WSTP`|Browser Stop (Windows)       |
218 |`KC_WWW_REFRESH`       |`KC_WREF`|Browser Refresh (Windows)    |
219 |`KC_WWW_FAVORITES`     |`KC_WFAV`|Browser Favorites (Windows)  |
220 |`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS)           |
221 |`KC_MEDIA_REWIND`      |`KC_MRWD`|Previous Track (macOS)       |
222 |`KC_BRIGHTNESS_UP`     |`KC_BRIU`|Brightness Up                |
223 |`KC_BRIGHTNESS_DOWN`   |`KC_BRID`|Brightness Down              |
224
225 ## Number Pad
226
227 |Key                |Aliases  |Description                   |
228 |-------------------|---------|------------------------------|
229 |`KC_KP_SLASH`      |`KC_PSLS`|Keypad `/`                    |
230 |`KC_KP_ASTERISK`   |`KC_PAST`|Keypad `*`                    |
231 |`KC_KP_MINUS`      |`KC_PMNS`|Keypad `-`                    |
232 |`KC_KP_PLUS`       |`KC_PPLS`|Keypad `+`                    |
233 |`KC_KP_ENTER`      |`KC_PENT`|Keypad Enter                  |
234 |`KC_KP_1`          |`KC_P1`  |Keypad `1` and End            |
235 |`KC_KP_2`          |`KC_P2`  |Keypad `2` and Down Arrow     |
236 |`KC_KP_3`          |`KC_P3`  |Keypad `3` and Page Down      |
237 |`KC_KP_4`          |`KC_P4`  |Keypad `4` and Left Arrow     |
238 |`KC_KP_5`          |`KC_P5`  |Keypad `5`                    |
239 |`KC_KP_6`          |`KC_P6`  |Keypad `6` and Right Arrow    |
240 |`KC_KP_7`          |`KC_P7`  |Keypad `7` and Home           |
241 |`KC_KP_8`          |`KC_P8`  |Keypad `8` and Up Arrow       |
242 |`KC_KP_9`          |`KC_P9`  |Keypad `9` and Page Up        |
243 |`KC_KP_0`          |`KC_P0`  |Keypad `0` and Insert         |
244 |`KC_KP_DOT`        |`KC_PDOT`|Keypad `.` and Delete         |
245 |`KC_KP_EQUAL`      |`KC_PEQL`|Keypad `=`                    |
246 |`KC_KP_COMMA`      |`KC_PCMM`|Keypad `,`                    |
247 |`KC_KP_EQUAL_AS400`|         |Keypad `=` on AS/400 keyboards|
248
249 ## Special Keys
250
251 In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK.
252
253 |Key             |Aliases             |Description                            |
254 |----------------|--------------------|---------------------------------------|
255 |`KC_NO`         |`XXXXXXX`           |Ignore this key (NOOP)                 |
256 |`KC_TRANSPARENT`|`KC_TRNS`, `_______`|Use the next lowest non-transparent key|