Clean up SEND_STRING keycodes and add media keys (#3214)
[jackhill/qmk/firmware.git] / docs / keycodes.md
CommitLineData
4c675a83 1# Keycodes Overview
ca01d940 2
4c675a83 3When defining a [keymap](keymap.md) each key needs a valid key definition. This page documents the symbols that correspond to keycodes that are available to you in QMK.
ca01d940 4
4c675a83 5This is a reference only. Each group of keys links to the page documenting their functionality in more detail.
ca01d940 6
4c675a83 7## [Basic Keycodes](keycodes_basic.md)
8
a2e12faa 9|Key |Aliases |Description |
10|-----------------------|--------------------|-----------------------------------------------|
11|`KC_1` | |`1` and `!` |
12|`KC_2` | |`2` and `@` |
13|`KC_3` | |`3` and `#` |
14|`KC_4` | |`4` and `$` |
15|`KC_5` | |`5` and `%` |
16|`KC_6` | |`6` and `^` |
17|`KC_7` | |`7` and `&` |
18|`KC_8` | |`8` and `*` |
19|`KC_9` | |`9` and `(` |
20|`KC_0` | |`0` and `)` |
21|`KC_F1` | | |
22|`KC_F2` | | |
23|`KC_F3` | | |
24|`KC_F4` | | |
25|`KC_F5` | | |
26|`KC_F6` | | |
27|`KC_F7` | | |
28|`KC_F8` | | |
29|`KC_F9` | | |
30|`KC_F10` | | |
31|`KC_F11` | | |
32|`KC_F12` | | |
33|`KC_F13` | | |
34|`KC_F14` | | |
35|`KC_F15` | | |
36|`KC_F16` | | |
37|`KC_F17` | | |
38|`KC_F18` | | |
39|`KC_F19` | | |
40|`KC_F20` | | |
41|`KC_F21` | | |
42|`KC_F22` | | |
43|`KC_F23` | | |
44|`KC_F24` | | |
45|`KC_A` | |`a` and `A` |
46|`KC_B` | |`b` and `B` |
47|`KC_C` | |`c` and `C` |
48|`KC_D` | |`d` and `D` |
49|`KC_E` | |`e` and `E` |
50|`KC_F` | |`f` and `F` |
51|`KC_G` | |`g` and `G` |
52|`KC_H` | |`h` and `H` |
53|`KC_I` | |`i` and `I` |
54|`KC_J` | |`j` and `J` |
55|`KC_K` | |`k` and `K` |
56|`KC_L` | |`l` and `L` |
57|`KC_M` | |`m` and `M` |
58|`KC_N` | |`n` and `N` |
59|`KC_O` | |`o` and `O` |
60|`KC_P` | |`p` and `P` |
61|`KC_Q` | |`q` and `Q` |
62|`KC_R` | |`r` and `R` |
63|`KC_S` | |`s` and `S` |
64|`KC_T` | |`t` and `T` |
65|`KC_U` | |`u` and `U` |
66|`KC_V` | |`v` and `V` |
67|`KC_W` | |`w` and `W` |
68|`KC_X` | |`x` and `X` |
69|`KC_Y` | |`y` and `Y` |
70|`KC_Z` | |`z` and `Z` |
71|`KC_ENTER` |`KC_ENT` |Return (Enter) |
72|`KC_ESCAPE` |`KC_ESC` |Escape |
73|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |
74|`KC_TAB` | |Tab |
75|`KC_SPACE` |`KC_SPC` |Spacebar |
76|`KC_MINUS` |`KC_MINS` |`-` and `_` |
77|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
78|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` |
79|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |
80|`KC_BSLASH` |`KC_BSLS` |`\` and <code>&#124;</code> |
81|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
82|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and <code>&#124;</code> |
83|`KC_INT1` |`KC_RO` |JIS `\` and <code>&#124;</code> |
84|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |
85|`KC_INT3` |`KC_JYEN` |JIS `¥` |
86|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
87|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
88|`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~` |
89|`KC_COMMA` |`KC_COMM` |`,` and `<` |
90|`KC_DOT` | |`.` and `>` |
91|`KC_SLASH` |`KC_SLSH` |`/` and `?` |
92|`KC_CAPSLOCK` |`KC_CAPS` |Caps Lock |
93|`KC_LCTRL` |`KC_LCTL` |Left Control |
94|`KC_LSHIFT` |`KC_LSFT` |Left Shift |
95|`KC_LALT` | |Left Alt |
96|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
97|`KC_RCTRL` |`KC_RCTL` |Right Control |
98|`KC_RSHIFT` |`KC_RSFT` |Right Shift |
99|`KC_RALT` | |Right Alt |
100|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key) |
101|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
102|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
103|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock |
104|`KC_INT4` |`KC_HENK` |JIS Henkan |
105|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
106|`KC_PSCREEN` |`KC_PSCR` |Print Screen |
107|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock |
108|`KC_PAUSE` |`KC_PAUS` |Pause |
109|`KC_INSERT` |`KC_INS` |Insert |
110|`KC_HOME` | |Home |
111|`KC_PGUP` | |Page Up |
112|`KC_DELETE` |`KC_DEL` |Forward Delete |
113|`KC_END` | |End |
114|`KC_PGDOWN` |`KC_PGDN` |Page Down |
115|`KC_RIGHT` |`KC_RGHT` |Right Arrow |
116|`KC_LEFT` | |Left Arrow |
117|`KC_DOWN` | |Down Arrow |
118|`KC_UP` | |Up Arrow |
119|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) |
120|`KC_POWER` | |Deprecated by MS in favor of `KC_SYSTEM_POWER`.|
121|`KC_EXECUTE` | |Execute |
122|`KC_HELP` | |Help |
123|`KC_MENU` | |Menu |
124|`KC_SELECT` | |Select |
125|`KC_AGAIN` | |Again |
126|`KC_UNDO` | |Undo |
127|`KC_CUT` | |Cut |
128|`KC_COPY` | |Copy |
129|`KC_PASTE` | |Paste |
130|`KC_FIND` | |Find |
131|`KC_ALT_ERASE` | |Alternate Erase |
132|`KC_SYSREQ` | |SysReq/Attention |
133|`KC_CANCEL` | |Cancel |
134|`KC_CLEAR` | |Clear |
135|`KC_PRIOR` | |Prior |
136|`KC_RETURN` | |Return |
137|`KC_SEPARATOR` | |Separator |
138|`KC_OUT` | |Out |
139|`KC_OPER` | |Oper |
140|`KC_CLEAR_AGAIN` | |Clear/Again |
141|`KC_CRSEL` | |CrSel/Props |
142|`KC_EXSEL` | |ExSel |
143|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down. Recommended over `KC_POWER`.|
144|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |
145|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake |
146|`KC_MAIL` |`KC_MAIL` | |
147|`KC_CALCULATOR` |`KC_CALC` | |
148|`KC_MY_COMPUTER` |`KC_MYCM` | |
149|`KC_WWW_SEARCH` |`KC_WSCH` | |
150|`KC_WWW_HOME` |`KC_WHOM` | |
151|`KC_WWW_BACK` |`KC_WBAK` | |
152|`KC_WWW_FORWARD` |`KC_WFWD` | |
153|`KC_WWW_STOP` |`KC_WSTP` | |
154|`KC_WWW_REFRESH` |`KC_WREF` | |
155|`KC_WWW_FAVORITES` |`KC_WFAV` | |
156|`KC_STOP` | |Stop |
157|`KC__MUTE` | |Mute (macOS) |
158|`KC__VOLUP` | |Volume Up (macOS) |
159|`KC__VOLDOWN` | |Volume Down (macOS) |
160|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute (Windows/macOS/Linux) |
161|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up (Windows/macOS/Linux) |
162|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down (Windows/macOS/Linux) |
163|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track (Windows) |
164|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) |
165|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) |
166|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) |
167|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |
168|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
169|`KC_MEDIA_SELECT` |`KC_MSEL` | |
6590f3c8 170|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject (macOS) |
a2e12faa 171|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
172|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
173|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
174|`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` |
175|`KC_KP_PLUS` |`KC_PPLS` |Keypad `+` |
176|`KC_KP_ENTER` |`KC_PENT` |Keypad Enter |
177|`KC_KP_1` |`KC_P1` |Keypad `1` and End |
178|`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow |
179|`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down |
180|`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow |
181|`KC_KP_5` |`KC_P5` |Keypad `5` |
182|`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow |
183|`KC_KP_7` |`KC_P7` |Keypad `7` and Home |
184|`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow |
185|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |
186|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |
187|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |
188|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |
189|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` |
190|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards |
191|`KC_NO` | |Ignore this key (NOOP) |
192|`KC_TRANSPARENT` |`KC_TRNS` |Use the next lowest non-transparent key |
4c675a83 193
194## [Mouse Keys](feature_mouse_keys.md)
195
196|Key |Aliases |Description |
197|----------------|---------|---------------------------|
198|`KC_MS_UP` |`KC_MS_U`|Mouse Cursor Up |
199|`KC_MS_DOWN` |`KC_MS_D`|Mouse Cursor Down |
200|`KC_MS_LEFT` |`KC_MS_L`|Mouse Cursor Left |
201|`KC_MS_RIGHT` |`KC_MS_R`|Mouse Cursor Right |
202|`KC_MS_BTN1` |`KC_BTN1`|Mouse Button 1 |
203|`KC_MS_BTN2` |`KC_BTN2`|Mouse Button 2 |
204|`KC_MS_BTN3` |`KC_BTN3`|Mouse Button 3 |
205|`KC_MS_BTN4` |`KC_BTN4`|Mouse Button 4 |
206|`KC_MS_BTN5` |`KC_BTN5`|Mouse Button 5 |
207|`KC_MS_WH_UP` |`KC_WH_U`|Mouse Wheel Up |
208|`KC_MS_WH_DOWN` |`KC_WH_D`|Mouse Wheel Down |
209|`KC_MS_WH_LEFT` |`KC_WH_L`|Mouse Wheel Left |
210|`KC_MS_WH_RIGHT`|`KC_WH_R`|Mouse Wheel Right |
211|`KC_MS_ACCEL0` |`KC_ACL0`|Set mouse acceleration to 0|
212|`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
213|`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
214
215## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
216
217|Key |Aliases |Description |
218|-------------|-----------|---------------------------------------------------------------------|
219|`RESET` | |Put the keyboard into DFU mode for flashing |
220|`DEBUG` | |Toggle debug mode |
221|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>&#96;</code> when pressed with Shift or GUI|
222|`KC_LSPO` | |Left Shift when held, `(` when tapped |
223|`KC_RSPC` | |Right Shift when held, `)` when tapped |
224|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
225|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
226|`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
227|`M(n)` | |Call macro `n` |
228|`MACROTAP(n)`| |Macro-tap `n` idk FIXME |
229
230## [Bootmagic](feature_bootmagic.md)
231
232|Key |Aliases |Description |
233|----------------------------------|---------|------------------------------------|
234|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Caps Lock and Left Control |
235|`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control |
236|`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI |
237|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI |
238|`MAGIC_NO_GUI` | |Disable the GUI key |
239|`MAGIC_SWAP_GRAVE_ESC` | |Swap <code>&#96;</code> and Escape |
240|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
241|`MAGIC_HOST_NKRO` | |Force NKRO on |
242|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
243|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Caps Lock and Left Control |
244|`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating Caps Lock as Control |
245|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI |
246|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI |
247|`MAGIC_UNNO_GUI` | |Enable the GUI key |
248|`MAGIC_UNSWAP_GRAVE_ESC` | |Unswap <code>&#96;</code> and Escape|
249|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
250|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
251|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
252|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
253
254## [Backlighting](feature_backlight.md)
255
256|Key |Description |
257|---------|------------------------------------------|
258|`BL_TOGG`|Turn the backlight on or off |
259|`BL_STEP`|Cycle through backlight levels |
cfcf0fd3 260|`BL_ON` |Set the backlight to max brightness |
261|`BL_OFF` |Turn the backlight off |
262|`BL_INC` |Increase the backlight level |
263|`BL_DEC` |Decrease the backlight level |
264|`BL_BRTG`|Toggle backlight breathing |
4c675a83 265
266## [RGB Lighting](feature_rgblight.md)
267
268|Key |Aliases |Description |
269|-------------------|----------|--------------------------------------------------------------------|
270|`RGB_TOG` | |Toggle RGB lighting on or off |
271|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
272|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
273|`RGB_HUI` | |Increase hue |
274|`RGB_HUD` | |Decrease hue |
275|`RGB_SAI` | |Increase saturation |
276|`RGB_SAD` | |Decrease saturation |
277|`RGB_VAI` | |Increase value (brightness) |
278|`RGB_VAD` | |Decrease value (brightness) |
279|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
280|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
281|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
282|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
283|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
284|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
285|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
286|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
52297346 287|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red,Green,Blue test animation mode |
4c675a83 288
470c50dd 289## [RGB Matrix Lighting](feature_rgb_matrix.md)
290
291|Key |Aliases |Description |
292|-------------------|----------|--------------------------------------------------------------------|
293|`RGB_TOG` | |Toggle RGB lighting on or off |
294|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
295|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
296|`RGB_HUI` | |Increase hue |
297|`RGB_HUD` | |Decrease hue |
298|`RGB_SAI` | |Increase saturation |
299|`RGB_SAD` | |Decrease saturation |
300|`RGB_VAI` | |Increase value (brightness) |
301|`RGB_VAD` | |Decrease value (brightness) |
302|`RGB_SPI` | |Increase effect speed (does no support eeprom yet) |
303|`RGB_SPD` | |Decrease effect speed (does no support eeprom yet) |
304
4c675a83 305## [Thermal Printer](feature_thermal_printer.md)
306
307|Key |Description |
308|-----------|----------------------------------------|
309|`PRINT_ON` |Start printing everything the user types|
310|`PRINT_OFF`|Stop printing everything the user types |
311
312## [Bluetooth](feature_bluetooth.md)
313
314|Key |Description |
315|----------|----------------------------------------------|
316|`OUT_AUTO`|Automatically switch between USB and Bluetooth|
317|`OUT_USB` |USB only |
318|`OUT_BT` |Bluetooth only |
319
320## [Modifiers](quantum_keycodes.md#modifiers)
321
a2e12faa 322|Key |Aliases |Description |
323|----------|---------- |----------------------------------------------------|
324|`KC_HYPR` | |Hold Left Control, Shift, Alt and GUI |
325|`KC_MEH` | |Hold Left Control, Shift and Alt |
326|`LCTL(kc)`| |Hold Left Control and press `kc` |
327|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
328|`LALT(kc)`| |Hold Left Alt and press `kc` |
329|`LGUI(kc)`|`LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
330|`RCTL(kc)`| |Hold Right Control and press `kc` |
331|`RSFT(kc)`| |Hold Right Shift and press `kc` |
332|`RALT(kc)`| |Hold Right Alt and press `kc` |
333|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)`|Hold Right GUI and press `kc` |
334|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
335|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
336|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
337|`ALTG(kc)`| |Hold Right Control and Alt and press `kc` |
338|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
339|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
4c675a83 340
341## [Mod-Tap Keys](quantum_keycodes.md#mod-tap-keys)
342
a2e12faa 343|Key |Aliases |Description |
344|------------|---------------------------------------|-------------------------------------------------------|
345|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped |
346|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
347|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
348|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
349|`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped |
350|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
351|`LGUI_T(kc)`|`LCMD_T(kc)`, `RWIN_T(kc)`, `GUI_T(kc)`|Left GUI when held, `kc` when tapped |
352|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped |
353|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
354|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
355|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
356|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
357|`ALL_T(kc)` | |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
358|`SCMD_T(kc)`|`SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped |
359|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped |
4c675a83 360
361## [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
362
363|Key |Aliases |Description |
364|------------------------|------------------|-------------------|
365|`KC_TILDE` |`KC_TILD` |`~` |
366|`KC_EXCLAIM` |`KC_EXLM` |`!` |
367|`KC_AT` | |`@` |
368|`KC_HASH` | |`#` |
369|`KC_DOLLAR` |`KC_DLR` |`$` |
370|`KC_PERCENT` |`KC_PERC` |`%` |
371|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
372|`KC_AMPERSAND` |`KC_AMPR` |`&` |
373|`KC_ASTERISK` |`KC_ASTR` |`*` |
374|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
375|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
376|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
377|`KC_PLUS` | |`+` |
378|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
379|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
380|`KC_PIPE` | |<code>&#124;</code>|
381|`KC_COLON` |`KC_COLN` |`:` |
382|`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
383|`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
384|`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
385|`KC_QUESTION` |`KC_QUES` |`?` |
386
8e99fbc8 387## [Switching and Toggling Layers](feature_advanced_keycodes.md#switching-and-toggling-layers)
4c675a83 388
7a5ce36f 389|Key |Description |
390|----------------|----------------------------------------------------------------------------------|
391|`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped |
392|`TO(layer)` |Turn on `layer` when pressed |
393|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)|
394|`DF(layer)` |Set the base (default) layer |
395|`TG(layer)` |Toggle `layer` on or off |
396|`TT(layer)` |Normally acts like MO unless it's tapped multiple times, which toggles `layer` on |
397|`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. |
4c675a83 398
399## [One Shot Keys](quantum_keycodes.md#one-shot-keys)
400
401|Key |Description |
402|------------|----------------------------------|
403|`OSM(mod)` |Hold `mod` for one keypress |
404|`OSL(layer)`|Switch to `layer` for one keypress|
405
406## [Unicode Support](feature_unicode.md)
407
408|Key |Aliases| |
409|------------|-------|-------------------------------------------------|
410|`UNICODE(n)`|`UC(n)`|Send Unicode character `n` |
411|`X(n)` | |Send Unicode character `n` via a different method|
23ac2a02
JW
412
413## [Swap Hands](feature_swap_hands.md)
414
415|Key |Description |
416|-----------|-------------------------------------------------------------------------|
417|`SH_T(key)`|Sends `key` with a tap; momentary swap when held. |
418|`SW_ON` |Turns on swapping and leaves it on. |
419|`SW_OFF` |Turn off swapping and leaves it off. Good for returning to a known state.|
420|`SH_MON` |Swaps hands when pressed, returns to normal when released (momentary). |
421|`SH_MOFF` |Momentarily turns off swap. |
422|`SH_TG` |Toggles swap on and off with every key press. |
423|`SH_TT` |Toggles with a tap; momentary when held. |