]> git.donarmstrong.com Git - qmk_firmware.git/blob - docs/Keycodes.md
SCKLCK is now SCROLLLOCK (#1376)
[qmk_firmware.git] / docs / Keycodes.md
1 # Overview
2
3 When defining a [keymap](Keymap.md) each key needs a valid key definition.
4
5 This page documents the symbols that correspond to keycodes that are available to you in QMK.
6
7 To customize your board, they can be used by themselves or as **action codes** in combination with one of the [many C macros](https://github.com/qmk/qmk_firmware/wiki#c-macros-for-action-code).
8
9 The source of truth for these codes is [tmk_core/common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h) file in the qmk source code.
10
11 # The Keycodes
12
13 Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) with following exceptions:
14
15 * `KC_NO` = 0 for no action
16 * `KC_TRNS` = 1 for layer transparency
17 * internal special keycodes in the `0xA5-DF` range (tmk heritage).
18
19 ## Letters and Numbers
20
21 |KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8|
22 |----|----|----|----|----|----|----|----|
23 |KC_9|KC_0|KC_F1|KC_F2|KC_F3|KC_F4|KC_F5|KC_F6|
24 |KC_F7|KC_F8|KC_F9|KC_F10|KC_F11|KC_F12|KC_F13|KC_F14|
25 |KC_F15|KC_F16|KC_F17|KC_F18|KC_F19|KC_F20|KC_F21|KC_F22|
26 |KC_F23|KC_F24|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|
27 |KC_G|KC_H|KC_I|KC_J|KC_K|KC_L|KC_M|KC_N|
28 |KC_O|KC_P|KC_Q|KC_R|KC_S|KC_T|KC_U|KC_V|
29 |KC_W|KC_X|KC_Y|KC_Z|||||
30
31 ## Punctuation
32
33 |Long Name|Short Name|Description|
34 |---------|----------|-----------|
35 |KC_ENTER|KC_ENT|`Return (ENTER)`|
36 |KC_ESCAPE|KC_ESC|`ESCAPE`|
37 |KC_BSPACE|KC_BSPC|`DELETE (Backspace)`|
38 |KC_TAB||`Tab`|
39 |KC_SPACE|KC_SPC|Spacebar|
40 |KC_MINUS|KC_MINS|`-` and `_`|
41 |KC_EQUAL|KC_EQL|`=` and `+`|
42 |KC_LBRACKET|KC_LBRC|`[` and `{`|
43 |KC_RBRACKET|KC_RBRC|`]` and `}`|
44 |KC_BSLASH|KC_BSLS|`\` and <code>&#124;</code> |
45 |KC_NONUS_HASH|KC_NUHS|Non-US `#` and `~`|
46 |KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and <code>&#124;</code> |
47 |KC_INT1|KC_RO|JIS `\` and <code>&#124;</code> |
48 |KC_INT2|KC_KANA|International216|
49 |KC_INT3|KC_JYEN|Yen Symbol (`¥`)|
50 |KC_SCOLON|KC_SCLN|`;` and `:`|
51 |KC_QUOTE|KC_QUOT|`‘` and `“`|
52 |KC_GRAVE|KC_GRV|Grave Accent and Tilde|
53 |KC_COMMA|KC_COMM|`,` and `<`|
54 |KC_DOT||`.` and `>`|
55 |KC_SLASH|KC_SLSH|`/` and `?`|
56 |KC_CAPSLOCK|KC_CAPS|Caps Lock|
57
58 ## Modifiers
59
60 |Long Name|Short Name|Description|
61 |---------|----------|-----------|
62 |KC_LCTRL|KC_LCTL|LeftControl|
63 |KC_LSHIFT|KC_LSFT|LeftShift|
64 |KC_LALT||LeftAlt|
65 |KC_LGUI||Left GUI(Windows/Apple/Meta key)|
66 |KC_RCTRL|KC_RCTL|RightControl|
67 |KC_RSHIFT|KC_RSFT|RightShift|
68 |KC_RALT||RightAlt|
69 |KC_RGUI||Right GUI(Windows/Apple/Meta key)|
70 |KC_LOCKING_CAPS||Locking Caps Lock12|
71 |KC_LOCKING_NUM||Locking Num Lock12|
72 |KC_LOCKING_SCROLL||Locking Scroll Lock12|
73 |KC_INT4|KC_HENK|JIS Henken|
74 |KC_INT5|KC_MHEN|JIS Muhenken|
75
76 ## Commands
77
78 |Long Name|Short Name|Description|
79 |---------|----------|-----------|
80 |KC_PSCREEN|KC_PSCR|PrintScreen1|
81 |KC_SCROLLLOCK|KC_SLCK|Scroll Lock11|
82 |KC_PAUSE|KC_PAUS|Pause1|
83 |KC_INSERT|KC_INS|Insert1|
84 |KC_HOME||Home1|
85 |KC_PGUP||PageUp1|
86 |KC_DELETE|KC_DEL|Delete Forward|
87 |KC_END||End1|
88 |KC_PGDOWN|KC_PGDN|PageDown1|
89 |KC_RIGHT|KC_RGHT|RightArrow1|
90 |KC_LEFT||LeftArrow1|
91 |KC_DOWN||DownArrow1|
92 |KC_UP||UpArrow1|
93 |KC_APPLICATION|KC_APP|Application10|
94 |KC_POWER||Power9|
95 |KC_EXECUTE||Execute|
96 |KC_HELP||Help|
97 |KC_MENU||Menu|
98 |KC_SELECT||Select|
99 |KC_AGAIN||Again|
100 |KC_UNDO||Undo|
101 |KC_CUT||Cut|
102 |KC_COPY||Copy|
103 |KC_PASTE||Paste|
104 |KC_FIND||Find|
105 |KC_ALT_ERASE||Alternate Erase7|
106 |KC_SYSREQ||SysReq/Attention1|
107 |KC_CANCEL||Cancel|
108 |KC_CLEAR||Clear|
109 |KC_PRIOR||Prior|
110 |KC_RETURN||Return|
111 |KC_SEPARATOR||Separator|
112 |KC_OUT||Out|
113 |KC_OPER||Oper|
114 |KC_CLEAR_AGAIN||Clear/Again|
115 |KC_CRSEL||CrSel/Props|
116 |KC_EXSEL||ExSel|
117 |KC_SYSTEM_POWER|KC_PWR|System Power Down|
118 |KC_SYSTEM_SLEEP|KC_SLEP|System Sleep|
119 |KC_SYSTEM_WAKE|KC_WAKE|System Wake|
120 |KC_MAIL|KC_MAIL||
121 |KC_CALCULATOR|KC_CALC||
122 |KC_MY_COMPUTER|KC_MYCM||
123 |KC_WWW_SEARCH|KC_WSCH||
124 |KC_WWW_HOME|KC_WHOM||
125 |KC_WWW_BACK|KC_WBAK||
126 |KC_WWW_FORWARD|KC_WFWD||
127 |KC_WWW_STOP|KC_WSTP||
128 |KC_WWW_REFRESH|KC_WREF||
129 |KC_WWW_FAVORITES|KC_WFAV||
130
131 ## Media Keys
132
133 Windows and Mac use different key codes for next track and previous track. Make sure you choose the keycode that corresponds to your OS.
134
135 |Long Name|Short Name|Description|
136 |---------|----------|-----------|
137 |KC_STOP||Stop|
138 |KC__MUTE||Mute|
139 |KC__VOLUP||Volume Up|
140 |KC__VOLDOWN||Volume Down|
141 |KC_AUDIO_MUTE|KC_MUTE||
142 |KC_AUDIO_VOL_UP|KC_VOLU||
143 |KC_AUDIO_VOL_DOWN|KC_VOLD||
144 |KC_MEDIA_NEXT_TRACK|KC_MNXT|Next Track (Windows)|
145 |KC_MEDIA_PREV_TRACK|KC_MPRV|Previous Track (Windows)|
146 |KC_MEDIA_FAST_FORWARD|KC_MFFD|Next Track (macOS)|
147 |KC_MEDIA_REWIND|KC_MRWD|Previous Track (macOS)|
148 |KC_MEDIA_STOP|KC_MSTP||
149 |KC_MEDIA_PLAY_PAUSE|KC_MPLY||
150 |KC_MEDIA_SELECT|KC_MSEL||
151
152 ## Numpad
153
154 |Long Name|Short Name|Description|
155 |---------|----------|-----------|
156 |KC_NUMLOCK|KC_NLCK|Keypad Num Lock and Clear11|
157 |KC_KP_SLASH|KC_PSLS|Keypad /|
158 |KC_KP_ASTERISK|KC_PAST|Keypad *|
159 |KC_KP_MINUS|KC_PMNS|Keypad -|
160 |KC_KP_PLUS|KC_PPLS|Keypad +|
161 |KC_KP_ENTER|KC_PENT|Keypad ENTER5|
162 |KC_KP_1|KC_P1|Keypad 1 and End|
163 |KC_KP_2|KC_P2|Keypad 2 and Down Arrow|
164 |KC_KP_3|KC_P3|Keypad 3 and PageDn|
165 |KC_KP_4|KC_P4|Keypad 4 and Left Arrow|
166 |KC_KP_5|KC_P5|Keypad 5|
167 |KC_KP_6|KC_P6|Keypad 6 and Right Arrow|
168 |KC_KP_7|KC_P7|Keypad 7 and Home|
169 |KC_KP_8|KC_P8|Keypad 8 and Up Arrow|
170 |KC_KP_9|KC_P9|Keypad 9 and PageUp|
171 |KC_KP_0|KC_P0|Keypad 0 and Insert|
172 |KC_KP_DOT|KC_PDOT|Keypad . and Delete|
173 |KC_KP_EQUAL|KC_PEQL|Keypad =|
174 |KC_KP_COMMA|KC_PCMM|Keypad Comma27|
175 |KC_KP_EQUAL_AS400||Keypad Equal Sign29|
176
177 ## Special Keys
178
179 |Long Name|Short Name|Description|
180 |---------|----------|-----------|
181 |KC_NO||Ignore this key. (NOOP) |
182
183 ## Mousekey
184
185 |Long Name|Short Name|Description|
186 |---------|----------|-----------|
187 |KC_MS_UP|KC_MS_U|Mouse Cursor Up|
188 |KC_MS_DOWN|KC_MS_D|Mouse Cursor Down|
189 |KC_MS_LEFT|KC_MS_L|Mouse Cursor Left|
190 |KC_MS_RIGHT|KC_MS_R|Mouse Cursor Right|
191 |KC_MS_BTN1|KC_BTN1|Mouse Button 1|
192 |KC_MS_BTN2|KC_BTN2|Mouse Button 2|
193 |KC_MS_BTN3|KC_BTN3|Mouse Button 3|
194 |KC_MS_BTN4|KC_BTN4|Mouse Button 4|
195 |KC_MS_BTN5|KC_BTN5|Mouse Button 5|
196 |KC_MS_WH_UP|KC_WH_U|Mouse Wheel Up|
197 |KC_MS_WH_DOWN|KC_WH_D|Mouse Wheel Down|
198 |KC_MS_WH_LEFT|KC_WH_L|Mouse Wheel Left|
199 |KC_MS_WH_RIGHT|KC_WH_R|Mouse Wheel Right|
200 |KC_MS_ACCEL0|KC_ACL0|Mouse Acceleration 0|
201 |KC_MS_ACCEL1|KC_ACL1|Mouse Acceleration 1|
202 |KC_MS_ACCEL2|KC_ACL2|Mouse Acceleration 2|
203
204 ## Magic Keys
205
206 The following keys can be used to turn on and off various "Magic" features. These include Boot Magic (holding certain keys down while plugging the keyboard in) and the Magic Key.
207
208 |Long Name|Short Name|Description|
209 |---------|----------|-----------|
210 |MAGIC_SWAP_CONTROL_CAPSLOCK||Swap Capslock and Control|
211 |MAGIC_CAPSLOCK_TO_CONTROL||Change Capslock to Control|
212 |MAGIC_SWAP_ALT_GUI||Swap ALT and GUI|
213 |MAGIC_SWAP_LALT_LGUI||Swap LALT and LGUI|
214 |MAGIC_SWAP_RALT_RGUI||Swap RALT and RGUI|
215 |MAGIC_NO_GUI||Disable off the GUI key|
216 |MAGIC_SWAP_GRAVE_ESC||Swap the GRAVE (~ `) and Esc keys|
217 |MAGIC_SWAP_BACKSLASH_BACKSPACE||Swap Backslash and Backspace|
218 |MAGIC_UNSWAP_CONTROL_CAPSLOCK||Disable the Control/Caps Swap|
219 |MAGIC_UNCAPSLOCK_TO_CONTROL||Turn Capslock back into Capslock|
220 |MAGIC_UNSWAP_ALT_GUI||Turn the ALT/GUI swap off|
221 |MAGIC_UNSWAP_LALT_LGUI||Turn the LALT/LGUI swap off|
222 |MAGIC_UNSWAP_RALT_RGUI||Turn the RALT/RGUI swap off|
223 |MAGIC_UNNO_GUI||Enable the GUI key|
224 |MAGIC_UNSWAP_GRAVE_ESC||Turn the GRAVE/ESC swap off|
225 |MAGIC_UNSWAP_BACKSLASH_BACKSPACE||Turn the Backslash/Backspace swap off|
226 |MAGIC_HOST_NKRO||Turn NKRO on|
227 |MAGIC_UNHOST_NKRO||Turn NKRO off|
228 |MAGIC_TOGGLE_NKRO||Toggle NKRO on or off|