You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

564 lines
55 KiB

  1. # Keycodes Overview
  2. When 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.
  3. This is a reference only. Each group of keys links to the page documenting their functionality in more detail.
  4. ## Basic Keycodes :id=basic-keycodes
  5. See also: [Basic Keycodes](keycodes_basic.md)
  6. |Key |Aliases |Description |Windows |macOS |Linux<sup>1</sup>|
  7. |-----------------------|------------------------------|-----------------------------------------------|-------------|-------------|-----------------|
  8. |`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) |*N/A* |*N/A* |*N/A* |
  9. |`KC_TRANSPARENT` |`KC_TRNS`, `_______` |Use the next lowest non-transparent key |*N/A* |*N/A* |*N/A* |
  10. |`KC_A` | |`a` and `A` |✔ |✔ |✔ |
  11. |`KC_B` | |`b` and `B` |✔ |✔ |✔ |
  12. |`KC_C` | |`c` and `C` |✔ |✔ |✔ |
  13. |`KC_D` | |`d` and `D` |✔ |✔ |✔ |
  14. |`KC_E` | |`e` and `E` |✔ |✔ |✔ |
  15. |`KC_F` | |`f` and `F` |✔ |✔ |✔ |
  16. |`KC_G` | |`g` and `G` |✔ |✔ |✔ |
  17. |`KC_H` | |`h` and `H` |✔ |✔ |✔ |
  18. |`KC_I` | |`i` and `I` |✔ |✔ |✔ |
  19. |`KC_J` | |`j` and `J` |✔ |✔ |✔ |
  20. |`KC_K` | |`k` and `K` |✔ |✔ |✔ |
  21. |`KC_L` | |`l` and `L` |✔ |✔ |✔ |
  22. |`KC_M` | |`m` and `M` |✔ |✔ |✔ |
  23. |`KC_N` | |`n` and `N` |✔ |✔ |✔ |
  24. |`KC_O` | |`o` and `O` |✔ |✔ |✔ |
  25. |`KC_P` | |`p` and `P` |✔ |✔ |✔ |
  26. |`KC_Q` | |`q` and `Q` |✔ |✔ |✔ |
  27. |`KC_R` | |`r` and `R` |✔ |✔ |✔ |
  28. |`KC_S` | |`s` and `S` |✔ |✔ |✔ |
  29. |`KC_T` | |`t` and `T` |✔ |✔ |✔ |
  30. |`KC_U` | |`u` and `U` |✔ |✔ |✔ |
  31. |`KC_V` | |`v` and `V` |✔ |✔ |✔ |
  32. |`KC_W` | |`w` and `W` |✔ |✔ |✔ |
  33. |`KC_X` | |`x` and `X` |✔ |✔ |✔ |
  34. |`KC_Y` | |`y` and `Y` |✔ |✔ |✔ |
  35. |`KC_Z` | |`z` and `Z` |✔ |✔ |✔ |
  36. |`KC_1` | |`1` and `!` |✔ |✔ |✔ |
  37. |`KC_2` | |`2` and `@` |✔ |✔ |✔ |
  38. |`KC_3` | |`3` and `#` |✔ |✔ |✔ |
  39. |`KC_4` | |`4` and `$` |✔ |✔ |✔ |
  40. |`KC_5` | |`5` and `%` |✔ |✔ |✔ |
  41. |`KC_6` | |`6` and `^` |✔ |✔ |✔ |
  42. |`KC_7` | |`7` and `&` |✔ |✔ |✔ |
  43. |`KC_8` | |`8` and `*` |✔ |✔ |✔ |
  44. |`KC_9` | |`9` and `(` |✔ |✔ |✔ |
  45. |`KC_0` | |`0` and `)` |✔ |✔ |✔ |
  46. |`KC_ENTER` |`KC_ENT` |Return (Enter) |✔ |✔ |✔ |
  47. |`KC_ESCAPE` |`KC_ESC` |Escape |✔ |✔ |✔ |
  48. |`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |✔ |✔ |✔ |
  49. |`KC_TAB` | |Tab |✔ |✔ |✔ |
  50. |`KC_SPACE` |`KC_SPC` |Spacebar |✔ |✔ |✔ |
  51. |`KC_MINUS` |`KC_MINS` |`-` and `_` |✔ |✔ |✔ |
  52. |`KC_EQUAL` |`KC_EQL` |`=` and `+` |✔ |✔ |✔ |
  53. |`KC_LBRACKET` |`KC_LBRC` |`[` and `{` |✔ |✔ |✔ |
  54. |`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |✔ |✔ |✔ |
  55. |`KC_BSLASH` |`KC_BSLS` |`\` and `\|` |✔ |✔ |✔ |
  56. |`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |✔ |✔ |✔ |
  57. |`KC_SCOLON` |`KC_SCLN` |`;` and `:` |✔ |✔ |✔ |
  58. |`KC_QUOTE` |`KC_QUOT` |`'` and `"` |✔ |✔ |✔ |
  59. |`KC_GRAVE` |`KC_GRV`, `KC_ZKHK` |<code>&#96;</code> and `~`, JIS Zenkaku/Hankaku|✔ |✔ |✔ |
  60. |`KC_COMMA` |`KC_COMM` |`,` and `<` |✔ |✔ |✔ |
  61. |`KC_DOT` | |`.` and `>` |✔ |✔ |✔ |
  62. |`KC_SLASH` |`KC_SLSH` |`/` and `?` |✔ |✔ |✔ |
  63. |`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS` |Caps Lock |✔ |✔ |✔ |
  64. |`KC_F1` | |F1 |✔ |✔ |✔ |
  65. |`KC_F2` | |F2 |✔ |✔ |✔ |
  66. |`KC_F3` | |F3 |✔ |✔ |✔ |
  67. |`KC_F4` | |F4 |✔ |✔ |✔ |
  68. |`KC_F5` | |F5 |✔ |✔ |✔ |
  69. |`KC_F6` | |F6 |✔ |✔ |✔ |
  70. |`KC_F7` | |F7 |✔ |✔ |✔ |
  71. |`KC_F8` | |F8 |✔ |✔ |✔ |
  72. |`KC_F9` | |F9 |✔ |✔ |✔ |
  73. |`KC_F10` | |F10 |✔ |✔ |✔ |
  74. |`KC_F11` | |F11 |✔ |✔ |✔ |
  75. |`KC_F12` | |F12 |✔ |✔ |✔ |
  76. |`KC_PSCREEN` |`KC_PSCR` |Print Screen |✔ |✔<sup>2</sup>|✔ |
  77. |`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD` |Scroll Lock, Brightness Down (macOS) |✔ |✔<sup>2</sup>|✔ |
  78. |`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) |✔ |✔<sup>2</sup>|✔ |
  79. |`KC_INSERT` |`KC_INS` |Insert |✔ | |✔ |
  80. |`KC_HOME` | |Home |✔ |✔ |✔ |
  81. |`KC_PGUP` | |Page Up |✔ |✔ |✔ |
  82. |`KC_DELETE` |`KC_DEL` |Forward Delete |✔ |✔ |✔ |
  83. |`KC_END` | |End |✔ |✔ |✔ |
  84. |`KC_PGDOWN` |`KC_PGDN` |Page Down |✔ |✔ |✔ |
  85. |`KC_RIGHT` |`KC_RGHT` |Right Arrow |✔ |✔ |✔ |
  86. |`KC_LEFT` | |Left Arrow |✔ |✔ |✔ |
  87. |`KC_DOWN` | |Down Arrow |✔ |✔ |✔ |
  88. |`KC_UP` | |Up Arrow |✔ |✔ |✔ |
  89. |`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |✔ |✔ |✔ |
  90. |`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |✔ |✔ |✔ |
  91. |`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |✔ |✔ |✔ |
  92. |`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` |✔ |✔ |✔ |
  93. |`KC_KP_PLUS` |`KC_PPLS` |Keypad `+` |✔ |✔ |✔ |
  94. |`KC_KP_ENTER` |`KC_PENT` |Keypad Enter |✔ |✔ |✔ |
  95. |`KC_KP_1` |`KC_P1` |Keypad `1` and End |✔ |✔ |✔ |
  96. |`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow |✔ |✔ |✔ |
  97. |`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down |✔ |✔ |✔ |
  98. |`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow |✔ |✔ |✔ |
  99. |`KC_KP_5` |`KC_P5` |Keypad `5` |✔ |✔ |✔ |
  100. |`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow |✔ |✔ |✔ |
  101. |`KC_KP_7` |`KC_P7` |Keypad `7` and Home |✔ |✔ |✔ |
  102. |`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow |✔ |✔ |✔ |
  103. |`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |✔ |✔ |✔ |
  104. |`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |✔ |✔ |✔ |
  105. |`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |✔ |✔ |✔ |
  106. |`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and `\|` |✔ |✔ |✔ |
  107. |`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key) |✔ | |✔ |
  108. |`KC_POWER` | |System Power | |✔<sup>3</sup>|✔ |
  109. |`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |✔ |✔ |✔ |
  110. |`KC_F13` | |F13 |✔ |✔ |✔ |
  111. |`KC_F14` | |F14 |✔ |✔ |✔ |
  112. |`KC_F15` | |F15 |✔ |✔ |✔ |
  113. |`KC_F16` | |F16 |✔ |✔ |✔ |
  114. |`KC_F17` | |F17 |✔ |✔ |✔ |
  115. |`KC_F18` | |F18 |✔ |✔ |✔ |
  116. |`KC_F19` | |F19 |✔ |✔ |✔ |
  117. |`KC_F20` | |F20 |✔ | |✔ |
  118. |`KC_F21` | |F21 |✔ | |✔ |
  119. |`KC_F22` | |F22 |✔ | |✔ |
  120. |`KC_F23` | |F23 |✔ | |✔ |
  121. |`KC_F24` | |F24 |✔ | |✔ |
  122. |`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ |
  123. |`KC_HELP` | |Help | | |✔ |
  124. |`KC_MENU` | |Menu | | |✔ |
  125. |`KC_SELECT` |`KC_SLCT` |Select | | |✔ |
  126. |`KC_STOP` | |Stop | | |✔ |
  127. |`KC_AGAIN` |`KC_AGIN` |Again | | |✔ |
  128. |`KC_UNDO` | |Undo | | |✔ |
  129. |`KC_CUT` | |Cut | | |✔ |
  130. |`KC_COPY` | |Copy | | |✔ |
  131. |`KC_PASTE` |`KC_PSTE` |Paste | | |✔ |
  132. |`KC_FIND` | |Find | | |✔ |
  133. |`KC__MUTE` | |Mute | |✔ |✔ |
  134. |`KC__VOLUP` | |Volume Up | |✔ |✔ |
  135. |`KC__VOLDOWN` | |Volume Down | |✔ |✔ |
  136. |`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |✔ |✔ | |
  137. |`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |✔ |✔ | |
  138. |`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock |✔ |✔ | |
  139. |`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` | | |✔ |
  140. |`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards | | | |
  141. |`KC_INT1` |`KC_RO` |JIS `\` and `_` |✔ | |✔ |
  142. |`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |✔ | |✔ |
  143. |`KC_INT3` |`KC_JYEN` |JIS `¥` and `\|` |✔ | |✔ |
  144. |`KC_INT4` |`KC_HENK` |JIS Henkan |✔ | |✔ |
  145. |`KC_INT5` |`KC_MHEN` |JIS Muhenkan |✔ | |✔ |
  146. |`KC_INT6` | |JIS Numpad `,` | | |✔ |
  147. |`KC_INT7` | |International 7 | | | |
  148. |`KC_INT8` | |International 8 | | | |
  149. |`KC_INT9` | |International 9 | | | |
  150. |`KC_LANG1` |`KC_HAEN` |Hangul/English | | |✔ |
  151. |`KC_LANG2` |`KC_HANJ` |Hanja | | |✔ |
  152. |`KC_LANG3` | |JIS Katakana | | |✔ |
  153. |`KC_LANG4` | |JIS Hiragana | | |✔ |
  154. |`KC_LANG5` | |JIS Zenkaku/Hankaku | | |✔ |
  155. |`KC_LANG6` | |Language 6 | | | |
  156. |`KC_LANG7` | |Language 7 | | | |
  157. |`KC_LANG8` | |Language 8 | | | |
  158. |`KC_LANG9` | |Language 9 | | | |
  159. |`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | | | |
  160. |`KC_SYSREQ` | |SysReq/Attention | | | |
  161. |`KC_CANCEL` | |Cancel | | | |
  162. |`KC_CLEAR` |`KC_CLR` |Clear | | |✔ |
  163. |`KC_PRIOR` | |Prior | | | |
  164. |`KC_RETURN` | |Return | | | |
  165. |`KC_SEPARATOR` | |Separator | | | |
  166. |`KC_OUT` | |Out | | | |
  167. |`KC_OPER` | |Oper | | | |
  168. |`KC_CLEAR_AGAIN` | |Clear/Again | | | |
  169. |`KC_CRSEL` | |CrSel/Props | | | |
  170. |`KC_EXSEL` | |ExSel | | | |
  171. |`KC_LCTRL` |`KC_LCTL` |Left Control |✔ |✔ |✔ |
  172. |`KC_LSHIFT` |`KC_LSFT` |Left Shift |✔ |✔ |✔ |
  173. |`KC_LALT` |`KC_LOPT` |Left Alt (Option) |✔ |✔ |✔ |
  174. |`KC_LGUI` |`KC_LCMD`, `KC_LWIN` |Left GUI (Windows/Command/Meta key) |✔ |✔ |✔ |
  175. |`KC_RCTRL` |`KC_RCTL` |Right Control |✔ |✔ |✔ |
  176. |`KC_RSHIFT` |`KC_RSFT` |Right Shift |✔ |✔ |✔ |
  177. |`KC_RALT` |`KC_ROPT`, `KC_ALGR` |Right Alt (Option/AltGr) |✔ |✔ |✔ |
  178. |`KC_RGUI` |`KC_RCMD`, `KC_RWIN` |Right GUI (Windows/Command/Meta key) |✔ |✔ |✔ |
  179. |`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |✔ |✔<sup>3</sup>|✔ |
  180. |`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |✔ |✔<sup>3</sup>|✔ |
  181. |`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake | |✔<sup>3</sup>|✔ |
  182. |`KC_AUDIO_MUTE` |`KC_MUTE` |Mute |✔ |✔ |✔ |
  183. |`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up |✔ |✔<sup>4</sup>|✔ |
  184. |`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down |✔ |✔<sup>4</sup>|✔ |
  185. |`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track |✔ |✔<sup>5</sup>|✔ |
  186. |`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track |✔ |✔<sup>5</sup>|✔ |
  187. |`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |✔ | |✔ |
  188. |`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |✔ |✔ |✔ |
  189. |`KC_MEDIA_SELECT` |`KC_MSEL` |Launch Media Player |✔ | |✔ |
  190. |`KC_MEDIA_EJECT` |`KC_EJCT` |Eject | |✔ |✔ |
  191. |`KC_MAIL` | |Launch Mail |✔ | |✔ |
  192. |`KC_CALCULATOR` |`KC_CALC` |Launch Calculator |✔ | |✔ |
  193. |`KC_MY_COMPUTER` |`KC_MYCM` |Launch My Computer |✔ | |✔ |
  194. |`KC_WWW_SEARCH` |`KC_WSCH` |Browser Search |✔ | |✔ |
  195. |`KC_WWW_HOME` |`KC_WHOM` |Browser Home |✔ | |✔ |
  196. |`KC_WWW_BACK` |`KC_WBAK` |Browser Back |✔ | |✔ |
  197. |`KC_WWW_FORWARD` |`KC_WFWD` |Browser Forward |✔ | |✔ |
  198. |`KC_WWW_STOP` |`KC_WSTP` |Browser Stop |✔ | |✔ |
  199. |`KC_WWW_REFRESH` |`KC_WREF` |Browser Refresh |✔ | |✔ |
  200. |`KC_WWW_FAVORITES` |`KC_WFAV` |Browser Favorites |✔ | |✔ |
  201. |`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track |✔ |✔<sup>5</sup>|✔ |
  202. |`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track |✔<sup>6</sup>|✔<sup>5</sup>|✔ |
  203. |`KC_BRIGHTNESS_UP` |`KC_BRIU` |Brightness Up |✔ |✔ |✔ |
  204. |`KC_BRIGHTNESS_DOWN` |`KC_BRID` |Brightness Down |✔ |✔ |✔ |
  205. <sup>1. The Linux kernel HID driver recognizes [nearly all keycodes](https://github.com/torvalds/linux/blob/master/drivers/hid/hid-input.c), but the default bindings depend on the DE/WM.</sup><br/>
  206. <sup>2. Treated as F13-F15.</sup><br/>
  207. <sup>3. Must be held for about three seconds, and will display a prompt instead.</sup><br/>
  208. <sup>4. Holding Shift+Option allows for finer control of volume level.</sup><br/>
  209. <sup>5. Skips the entire track in iTunes when tapped, seeks within the current track when held.</sup><br/>
  210. <sup>6. WMP does not recognize the Rewind key, but both alter playback speed in VLC.</sup>
  211. ## Quantum Keycodes :id=quantum-keycodes
  212. See also: [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
  213. |Key |Aliases |Description |
  214. |--------------|---------|-------------------------------------------------------|
  215. |`RESET` | |Put the keyboard into bootloader mode for flashing |
  216. |`DEBUG` | |Toggle debug mode |
  217. |`EEPROM_RESET`|`EEP_RST`|Reinitializes the keyboard's EEPROM (persistent memory)|
  218. ## Audio Keys :id=audio-keys
  219. See also: [Audio](feature_audio.md)
  220. |Key |Aliases |Description |
  221. |----------------|---------|----------------------------------|
  222. |`AU_ON` | |Turns on Audio Feature |
  223. |`AU_OFF` | |Turns off Audio Feature |
  224. |`AU_TOG` | |Toggles Audio state |
  225. |`CLICKY_TOGGLE` |`CK_TOGG`|Toggles Audio clicky mode |
  226. |`CLICKY_UP` |`CK_UP` |Increases frequency of the clicks |
  227. |`CLICKY_DOWN` |`CK_DOWN`|Decreases frequency of the clicks |
  228. |`CLICKY_RESET` |`CK_RST` |Resets frequency to default |
  229. |`MU_ON` | |Turns on Music Mode |
  230. |`MU_OFF` | |Turns off Music Mode |
  231. |`MU_TOG` | |Toggles Music Mode |
  232. |`MU_MOD` | |Cycles through the music modes |
  233. ## Backlighting :id=backlighting
  234. See also: [Backlighting](feature_backlight.md)
  235. |Key |Description |
  236. |---------|------------------------------------------|
  237. |`BL_TOGG`|Turn the backlight on or off |
  238. |`BL_STEP`|Cycle through backlight levels |
  239. |`BL_ON` |Set the backlight to max brightness |
  240. |`BL_OFF` |Turn the backlight off |
  241. |`BL_INC` |Increase the backlight level |
  242. |`BL_DEC` |Decrease the backlight level |
  243. |`BL_BRTG`|Toggle backlight breathing |
  244. ## Bootmagic :id=bootmagic
  245. See also: [Bootmagic](feature_bootmagic.md)
  246. |Key |Aliases |Description |
  247. |----------------------------------|---------|--------------------------------------------------------------------------|
  248. |`MAGIC_SWAP_CONTROL_CAPSLOCK` |`CL_SWAP`|Swap Caps Lock and Left Control |
  249. |`MAGIC_UNSWAP_CONTROL_CAPSLOCK` |`CL_NORM`|Unswap Caps Lock and Left Control |
  250. |`MAGIC_CAPSLOCK_TO_CONTROL` |`CL_CTRL`|Treat Caps Lock as Control |
  251. |`MAGIC_UNCAPSLOCK_TO_CONTROL` |`CL_CAPS`|Stop treating Caps Lock as Control |
  252. |`MAGIC_SWAP_LCTL_LGUI` |`LCG_SWP`|Swap Left Control and GUI |
  253. |`MAGIC_UNSWAP_LCTL_LGUI` |`LCG_NRM`|Unswap Left Control and GUI |
  254. |`MAGIC_SWAP_RCTL_RGUI` |`RCG_SWP`|Swap Right Control and GUI |
  255. |`MAGIC_UNSWAP_RCTL_RGUI` |`RCG_NRM`|Unswap Right Control and GUI |
  256. |`MAGIC_SWAP_CTL_GUI` |`CG_SWAP`|Swap Control and GUI on both sides |
  257. |`MAGIC_UNSWAP_CTL_GUI` |`CG_NORM`|Unswap Control and GUI on both sides |
  258. |`MAGIC_TOGGLE_CTL_GUI` |`CG_TOGG`|Toggle Control and GUI swap on both sides |
  259. |`MAGIC_SWAP_LALT_LGUI` |`LAG_SWP`|Swap Left Alt and GUI |
  260. |`MAGIC_UNSWAP_LALT_LGUI` |`LAG_NRM`|Unswap Left Alt and GUI |
  261. |`MAGIC_SWAP_RALT_RGUI` |`RAG_SWP`|Swap Right Alt and GUI |
  262. |`MAGIC_UNSWAP_RALT_RGUI` |`RAG_NRM`|Unswap Right Alt and GUI |
  263. |`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
  264. |`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
  265. |`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap on both sides |
  266. |`MAGIC_NO_GUI` |`GUI_OFF`|Disable the GUI keys |
  267. |`MAGIC_UNNO_GUI` |`GUI_ON` |Enable the GUI keys |
  268. |`MAGIC_SWAP_GRAVE_ESC` |`GE_SWAP`|Swap <code>&#96;</code> and Escape |
  269. |`MAGIC_UNSWAP_GRAVE_ESC` |`GE_NORM`|Unswap <code>&#96;</code> and Escape |
  270. |`MAGIC_SWAP_BACKSLASH_BACKSPACE` |`BS_SWAP`|Swap `\` and Backspace |
  271. |`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|`BS_NORM`|Unswap `\` and Backspace |
  272. |`MAGIC_HOST_NKRO` |`NK_ON` |Enable N-key rollover |
  273. |`MAGIC_UNHOST_NKRO` |`NK_OFF` |Disable N-key rollover |
  274. |`MAGIC_TOGGLE_NKRO` |`NK_TOGG`|Toggle N-key rollover |
  275. |`MAGIC_EE_HANDS_LEFT` |`EH_LEFT`|Set the master half of a split keyboard as the left hand (for `EE_HANDS`) |
  276. |`MAGIC_EE_HANDS_RIGHT` |`EH_RGHT`|Set the master half of a split keyboard as the right hand (for `EE_HANDS`)|
  277. ## Bluetooth :id=bluetooth
  278. See also: [Bluetooth](feature_bluetooth.md)
  279. |Key |Description |
  280. |----------|----------------------------------------------|
  281. |`OUT_AUTO`|Automatically switch between USB and Bluetooth|
  282. |`OUT_USB` |USB only |
  283. |`OUT_BT` |Bluetooth only |
  284. ## Dynamic Macros :id=dynamic-macros
  285. See also: [Dynamic Macros](feature_dynamic_macros.md)
  286. |Key |Aliases |Description |
  287. |-----------------|---------|--------------------------------------------------|
  288. |`DYN_REC_START1` |`DM_REC1`|Start recording Macro 1 |
  289. |`DYN_REC_START2` |`DM_REC2`|Start recording Macro 2 |
  290. |`DYN_MACRO_PLAY1`|`DM_PLY1`|Replay Macro 1 |
  291. |`DYN_MACRO_PLAY2`|`DM_PLY2`|Replay Macro 2 |
  292. |`DYN_REC_STOP` |`DM_RSTP`|Finish the macro that is currently being recorded.|
  293. ## Grave Escape :id=grave-escape
  294. See also: [Grave Escape](feature_grave_esc.md)
  295. |Key |Aliases |Description |
  296. |-----------|---------|------------------------------------------------------------------|
  297. |`GRAVE_ESC`|`KC_GESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
  298. ## Key Lock :id=key-lock
  299. See also: [Key Lock](feature_key_lock.md)
  300. |Key |Description |
  301. |---------|--------------------------------------------------------------|
  302. |`KC_LOCK`|Hold down the next key pressed, until the key is pressed again|
  303. ## Layer Switching :id=layer-switching
  304. See also: [Layer Switching](feature_layers.md#switching-and-toggling-layers)
  305. |Key |Description |
  306. |----------------|----------------------------------------------------------------------------------|
  307. |`DF(layer)` |Set the base (default) layer |
  308. |`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)|
  309. |`OSL(layer)` |Momentarily activates `layer` until a key is pressed. See [One Shot Keys](one_shot_keys.md) for details. |
  310. |`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. Where `mod` is a mods_bit. Mods can be viewed [here](mod_tap.md). Example Implementation: `LM(LAYER_1, MOD_LALT)`|
  311. |`LT(layer, kc)` |Turn on `layer` when held, `kc` when tapped |
  312. |`TG(layer)` |Toggle `layer` on or off |
  313. |`TO(layer)` |Turns on `layer` and turns off all other layers, except the default layer |
  314. |`TT(layer)` |Normally acts like MO unless it's tapped multiple times, which toggles `layer` on |
  315. ## Leader Key :id=leader-key
  316. See also: [Leader Key](feature_leader_key.md)
  317. |Key |Description |
  318. |---------|------------------------|
  319. |`KC_LEAD`|Begins a leader sequence|
  320. ## Mouse Keys :id=mouse-keys
  321. See also: [Mouse Keys](feature_mouse_keys.md)
  322. |Key |Aliases |Description |
  323. |----------------|---------|---------------------------|
  324. |`KC_MS_UP` |`KC_MS_U`|Mouse Cursor Up |
  325. |`KC_MS_DOWN` |`KC_MS_D`|Mouse Cursor Down |
  326. |`KC_MS_LEFT` |`KC_MS_L`|Mouse Cursor Left |
  327. |`KC_MS_RIGHT` |`KC_MS_R`|Mouse Cursor Right |
  328. |`KC_MS_BTN1` |`KC_BTN1`|Mouse Button 1 |
  329. |`KC_MS_BTN2` |`KC_BTN2`|Mouse Button 2 |
  330. |`KC_MS_BTN3` |`KC_BTN3`|Mouse Button 3 |
  331. |`KC_MS_BTN4` |`KC_BTN4`|Mouse Button 4 |
  332. |`KC_MS_BTN5` |`KC_BTN5`|Mouse Button 5 |
  333. |`KC_MS_WH_UP` |`KC_WH_U`|Mouse Wheel Up |
  334. |`KC_MS_WH_DOWN` |`KC_WH_D`|Mouse Wheel Down |
  335. |`KC_MS_WH_LEFT` |`KC_WH_L`|Mouse Wheel Left |
  336. |`KC_MS_WH_RIGHT`|`KC_WH_R`|Mouse Wheel Right |
  337. |`KC_MS_ACCEL0` |`KC_ACL0`|Set mouse acceleration to 0|
  338. |`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
  339. |`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
  340. ## Modifiers :id=modifiers
  341. See also: [Modifier Keys](feature_advanced_keycodes.md#modifier-keys)
  342. |Key |Aliases |Description |
  343. |----------|-------------------------------|------------------------------------------------------|
  344. |`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
  345. |`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
  346. |`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
  347. |`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
  348. |`RCTL(kc)`| |Hold Right Control and press `kc` |
  349. |`RSFT(kc)`| |Hold Right Shift and press `kc` |
  350. |`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt (AltGr) and press `kc` |
  351. |`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
  352. |`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
  353. |`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
  354. |`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` |
  355. |`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` |
  356. |`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` |
  357. |`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
  358. |`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
  359. |`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` |
  360. |`KC_MEH` | |Left Control, Shift and Alt |
  361. |`KC_HYPR` | |Left Control, Shift, Alt and GUI |
  362. ## Mod-Tap Keys :id=mod-tap-keys
  363. See also: [Mod-Tap](mod_tap.md)
  364. |Key |Aliases |Description |
  365. |-------------|-----------------------------------------------------------------|--------------------------------------------------------------|
  366. |`MT(mod, kc)`| |`mod` when held, `kc` when tapped |
  367. |`LCTL_T(kc)` |`CTL_T(kc)` |Left Control when held, `kc` when tapped |
  368. |`LSFT_T(kc)` |`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
  369. |`LALT_T(kc)` |`LOPT_T(kc)`, `ALT_T(kc)`, `OPT_T(kc)` |Left Alt when held, `kc` when tapped |
  370. |`LGUI_T(kc)` |`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped |
  371. |`RCTL_T(kc)` | |Right Control when held, `kc` when tapped |
  372. |`RSFT_T(kc)` | |Right Shift when held, `kc` when tapped |
  373. |`RALT_T(kc)` |`ROPT_T(kc)`, `ALGR_T(kc)` |Right Alt (AltGr) when held, `kc` when tapped |
  374. |`RGUI_T(kc)` |`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped |
  375. |`SGUI_T(kc)` |`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped |
  376. |`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped |
  377. |`LSA_T(kc)` | |Left Shift and Left Alt when held, `kc` when tapped |
  378. |`RSA_T(kc)` |`SAGR_T(kc)` |Right Shift and Right Alt (AltGr) when held, `kc` when tapped |
  379. |`RCS_T(kc)` | |Right Control and Right Shift when held, `kc` when tapped |
  380. |`LCAG_T(kc)` | |Left Control, Alt and GUI when held, `kc` when tapped |
  381. |`RCAG_T(kc)` | |Right Control, Alt and GUI when held, `kc` when tapped |
  382. |`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
  383. |`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped |
  384. |`HYPR_T(kc)` |`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
  385. ## RGB Lighting :id=rgb-lighting
  386. See also: [RGB Lighting](feature_rgblight.md)
  387. |Key |Aliases |Description |
  388. |-------------------|----------|--------------------------------------------------------------------|
  389. |`RGB_TOG` | |Toggle RGB lighting on or off |
  390. |`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
  391. |`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
  392. |`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
  393. |`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
  394. |`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
  395. |`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
  396. |`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
  397. |`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
  398. |`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
  399. |`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
  400. |`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
  401. |`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
  402. |`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
  403. |`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
  404. |`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
  405. |`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
  406. |`RGB_MODE_RGBTEST` |`RGB_M_T` |Red,Green,Blue test animation mode |
  407. ## RGB Matrix Lighting :id=rgb-matrix-lighting
  408. See also: [RGB Matrix Lighting](feature_rgb_matrix.md)
  409. |Key |Aliases |Description |
  410. |-------------------|----------|--------------------------------------------------------------------------------------|
  411. |`RGB_TOG` | |Toggle RGB lighting on or off |
  412. |`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
  413. |`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held |
  414. |`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
  415. |`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
  416. |`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
  417. |`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
  418. |`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
  419. |`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
  420. |`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held|
  421. |`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held|
  422. ## Thermal Printer :id=thermal-printer
  423. See also: [Thermal Printer](feature_thermal_printer.md)
  424. |Key |Description |
  425. |-----------|----------------------------------------|
  426. |`PRINT_ON` |Start printing everything the user types|
  427. |`PRINT_OFF`|Stop printing everything the user types |
  428. ## US ANSI Shifted Symbols :id=us-ansi-shifted-symbols
  429. See also: [US ANSI Shifted Symbols](keycodes_us_ansi_shifted.md)
  430. |Key |Aliases |Description|
  431. |------------------------|-------------------|-----------|
  432. |`KC_TILDE` |`KC_TILD` |`~` |
  433. |`KC_EXCLAIM` |`KC_EXLM` |`!` |
  434. |`KC_AT` | |`@` |
  435. |`KC_HASH` | |`#` |
  436. |`KC_DOLLAR` |`KC_DLR` |`$` |
  437. |`KC_PERCENT` |`KC_PERC` |`%` |
  438. |`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
  439. |`KC_AMPERSAND` |`KC_AMPR` |`&` |
  440. |`KC_ASTERISK` |`KC_ASTR` |`*` |
  441. |`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
  442. |`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
  443. |`KC_UNDERSCORE` |`KC_UNDS` |`_` |
  444. |`KC_PLUS` | |`+` |
  445. |`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
  446. |`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
  447. |`KC_PIPE` | |`\|` |
  448. |`KC_COLON` |`KC_COLN` |`:` |
  449. |`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
  450. |`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
  451. |`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
  452. |`KC_QUESTION` |`KC_QUES` |`?` |
  453. ## One Shot Keys :id=one-shot-keys
  454. See also: [One Shot Keys](one_shot_keys.md)
  455. |Key |Description |
  456. |------------|----------------------------------|
  457. |`OSM(mod)` |Hold `mod` for one keypress |
  458. |`OSL(layer)`|Switch to `layer` for one keypress|
  459. ## Space Cadet :id=space-cadet
  460. See also: [Space Cadet](feature_space_cadet.md)
  461. |Key |Description |
  462. |-----------|----------------------------------------|
  463. |`KC_LCPO` |Left Control when held, `(` when tapped |
  464. |`KC_RCPC` |Right Control when held, `)` when tapped|
  465. |`KC_LSPO` |Left Shift when held, `(` when tapped |
  466. |`KC_RSPC` |Right Shift when held, `)` when tapped |
  467. |`KC_LAPO` |Left Alt when held, `(` when tapped |
  468. |`KC_RAPC` |Right Alt when held, `)` when tapped |
  469. |`KC_SFTENT`|Right Shift when held, Enter when tapped|
  470. ## Swap Hands :id=swap-hands
  471. See also: [Swap Hands](feature_swap_hands.md)
  472. |Key |Description |
  473. |-----------|-------------------------------------------------------------------------|
  474. |`SH_T(key)`|Sends `key` with a tap; momentary swap when held. |
  475. |`SW_ON` |Turns on swapping and leaves it on. |
  476. |`SW_OFF` |Turn off swapping and leaves it off. Good for returning to a known state.|
  477. |`SH_MON` |Swaps hands when pressed, returns to normal when released (momentary). |
  478. |`SH_MOFF` |Momentarily turns off swap. |
  479. |`SH_TG` |Toggles swap on and off with every key press. |
  480. |`SH_TT` |Toggles with a tap; momentary when held. |
  481. |`SH_OS` |One shot swap hands: toggle while pressed or until next key press. |
  482. ## Unicode Support :id=unicode-support
  483. See also: [Unicode Support](feature_unicode.md)
  484. |Key |Aliases |Description |
  485. |----------------------|---------|----------------------------------------------------------------|
  486. |`UC(c)` | |Send Unicode code point `c` |
  487. |`X(i)` | |Send Unicode code point at index `i` in `unicode_map` |
  488. |`XP(i, j)` | |Send Unicode code point at index `i`, or `j` if Shift/Caps is on|
  489. |`UNICODE_MODE_FORWARD`|`UC_MOD` |Cycle through selected input modes |
  490. |`UNICODE_MODE_REVERSE`|`UC_RMOD`|Cycle through selected input modes in reverse |
  491. |`UNICODE_MODE_MAC` |`UC_M_MA`|Switch to macOS input |
  492. |`UNICODE_MODE_LNX` |`UC_M_LN`|Switch to Linux input |
  493. |`UNICODE_MODE_WIN` |`UC_M_WI`|Switch to Windows input |
  494. |`UNICODE_MODE_BSD` |`UC_M_BS`|Switch to BSD input (not implemented) |
  495. |`UNICODE_MODE_WINC` |`UC_M_WC`|Switch to Windows input using WinCompose |