Format keycode tables

pjrc_hid
fauxpark 7 years ago committed by Jack Humbert
parent 7b0356d1d4
commit 4c675a83ba

@ -75,29 +75,29 @@ You can also chain these, like this:
The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols.
|Name|Description| |Key |Aliases |Description |
|----|-----------| |------------------------|------------------|-------------------|
| KC_TILD | ~ | |`KC_TILDE` |`KC_TILD` |`~` |
| KC_EXLM | ! | |`KC_EXCLAIM` |`KC_EXLM` |`!` |
| KC_QUES | ? | |`KC_AT` | |`@` |
| KC_AT | @ | |`KC_HASH` | |`#` |
| KC_HASH | # | |`KC_DOLLAR` |`KC_DLR` |`$` |
| KC_DLR | $ | |`KC_PERCENT` |`KC_PERC` |`%` |
| KC_PERC | % | |`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
| KC_CIRC | ^ | |`KC_AMPERSAND` |`KC_AMPR` |`&` |
| KC_AMPR | & | |`KC_ASTERISK` |`KC_ASTR` |`*` |
| KC_ASTR | * | |`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
| KC_LPRN | ( | |`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
| KC_RPRN | ) | |`KC_UNDERSCORE` |`KC_UNDS` |`_` |
| KC_UNDS | _ | |`KC_PLUS` | |`+` |
| KC_PLUS | + | |`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
| KC_DQUO | " | |`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
| KC_LCBR | { | |`KC_PIPE` | |<code>&#124;</code>|
| KC_RCBR | } | |`KC_COLON` |`KC_COLN` |`:` |
| KC_LABK | < | |`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
| KC_RABK | > | |`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
| KC_PIPE | &#x7C; | |`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
| KC_COLN | : | |`KC_QUESTION` |`KC_QUES` |`?` |
# Mod Tap # Mod Tap

@ -6,12 +6,12 @@
These keycodes control the backlight. Most keyboards use this for single color in-switch lighting. These keycodes control the backlight. Most keyboards use this for single color in-switch lighting.
|Name|Description| |Key |Description |
|----|-----------| |---------|------------------------------------------|
|`BL_TOGG`|Turn the backlight on or off |
|`BL_STEP`|Cycle through backlight levels |
|`BL_x` |Set a specific backlight level between 0-9| |`BL_x` |Set a specific backlight level between 0-9|
|`BL_ON` |An alias for `BL_9` | |`BL_ON` |An alias for `BL_9` |
|`BL_OFF` |An alias for `BL_0` | |`BL_OFF` |An alias for `BL_0` |
|`BL_DEC`|Turn the backlight level down by 1| |`BL_INC` |Increase backlight level |
|`BL_INC`|Turn the backlight level up by 1| |`BL_DEC` |Decrease backlight level |
|`BL_TOGG`|Toggle the backlight on or off|
|`BL_STEP`|Step through backlight levels, wrapping around to 0 when you reach the top.|

@ -11,7 +11,7 @@ This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboar
This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both. This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
|Name |Description | |Name |Description |
|----|-----------| |----------|----------------------------------------------|
|`OUT_AUTO`|auto mode| |`OUT_AUTO`|Automatically switch between USB and Bluetooth|
|`OUT_USB`|usb only| |`OUT_USB` |USB only |
|`OUT_BT`|bluetooth| |`OUT_BT` |Bluetooth only |

@ -6,24 +6,24 @@
Shortcuts for bootmagic options. You can use these even when bootmagic is off. Shortcuts for bootmagic options. You can use these even when bootmagic is off.
|Name|Description| |Key |Aliases |Description |
|----|-----------| |----------------------------------|---------|------------------------------------|
|`MAGIC_SWAP_CONTROL_CAPSLOCK`|Swap Capslock and Left Control| |`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock |
|`MAGIC_CAPSLOCK_TO_CONTROL`|Treat Capslock like a Control Key| |`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control |
|`MAGIC_SWAP_LALT_LGUI`|Swap the left Alt and GUI keys| |`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI |
|`MAGIC_SWAP_RALT_RGUI`|Swap the right Alt and GUI keys| |`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI |
|`MAGIC_NO_GUI`|Disable the GUI key| |`MAGIC_NO_GUI` | |Disable the GUI key |
|`MAGIC_SWAP_GRAVE_ESC`|Swap the Grave and Esc key.| |`MAGIC_SWAP_GRAVE_ESC` | |Swap <code>&#96;</code> and Escape |
|`MAGIC_SWAP_BACKSLASH_BACKSPACE`|Swap backslash and backspace| |`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap Backslash and Backspace |
|`MAGIC_HOST_NKRO`|Force NKRO on| |`MAGIC_HOST_NKRO` | |Force NKRO on |
|`MAGIC_SWAP_ALT_GUI`/`AG_SWAP`|Swap Alt and Gui on both sides| |`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK`|Disable the Control/Capslock swap| |`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Left Control and Caps Lock |
|`MAGIC_UNCAPSLOCK_TO_CONTROL`|Disable treating Capslock like Control | |`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating CapsLock as Control |
|`MAGIC_UNSWAP_LALT_LGUI`|Disable Left Alt and GUI switching| |`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI |
|`MAGIC_UNSWAP_RALT_RGUI`|Disable Right Alt and GUI switching| |`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI |
|`MAGIC_UNNO_GUI`|Enable the GUI key | |`MAGIC_UNNO_GUI` | |Enable the GUI key |
|`MAGIC_UNSWAP_GRAVE_ESC`|Disable the Grave/Esc swap | |`MAGIC_UNSWAP_GRAVE_ESC` | |Unswap <code>&#96;</code> and Escape|
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|Disable the backslash/backspace swap| |`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap Backslash and Backspace |
|`MAGIC_UNHOST_NKRO`|Force NKRO off| |`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|`MAGIC_UNSWAP_ALT_GUI`/`AG_NORM`|Disable the Alt/GUI switching| |`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and GUI |
|`MAGIC_TOGGLE_NKRO`|Turn NKRO on or off| |`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |

@ -3,9 +3,9 @@
Grave Escape is a feature that allows you to share the grave key (<code>&#96;</code> and `~`) on the same key as Escape. When `KC_GESC` is used it will act as `KC_ESC`, unless Shift or GUI is pressed, in which case it will act as `KC_GRAVE`. Grave Escape is a feature that allows you to share the grave key (<code>&#96;</code> and `~`) on the same key as Escape. When `KC_GESC` is used it will act as `KC_ESC`, unless Shift or GUI is pressed, in which case it will act as `KC_GRAVE`.
| Key | Alias | Description | |Key |Aliases |Description |
|-----|-------|-------------| |---------|-----------|------------------------------------------------------------------|
| `GRAVE_ESC` | `KC_GESC` | Act as `KC_ESC` normally, or `KC_GRAVE` when GUI or Shift are held. | |`KC_GESC`|`GRAVE_ESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
There are several possible key combinations this will break, among them Ctrl+Shift+Esc on Windows and Cmd+Opt+Esc on macOS. You can use these options in your `config.h` to work around this: There are several possible key combinations this will break, among them Ctrl+Shift+Esc on Windows and Cmd+Opt+Esc on macOS. You can use these options in your `config.h` to work around this:

@ -21,24 +21,24 @@ You can see an example here: https://github.com/qmk/qmk_firmware/blob/master/key
You can use these keycodes within your keymap to map button presses to mouse actions: You can use these keycodes within your keymap to map button presses to mouse actions:
|Long Name|Short Name|Description| |Key |Aliases |Description |
|---------|----------|-----------| |----------------|---------|---------------------------|
|KC_MS_UP|KC_MS_U|Mouse Cursor Up| |`KC_MS_UP` |`KC_MS_U`|Mouse Cursor Up |
|KC_MS_DOWN|KC_MS_D|Mouse Cursor Down| |`KC_MS_DOWN` |`KC_MS_D`|Mouse Cursor Down |
|KC_MS_LEFT|KC_MS_L|Mouse Cursor Left| |`KC_MS_LEFT` |`KC_MS_L`|Mouse Cursor Left |
|KC_MS_RIGHT|KC_MS_R|Mouse Cursor Right| |`KC_MS_RIGHT` |`KC_MS_R`|Mouse Cursor Right |
|KC_MS_BTN1|KC_BTN1|Mouse Button 1| |`KC_MS_BTN1` |`KC_BTN1`|Mouse Button 1 |
|KC_MS_BTN2|KC_BTN2|Mouse Button 2| |`KC_MS_BTN2` |`KC_BTN2`|Mouse Button 2 |
|KC_MS_BTN3|KC_BTN3|Mouse Button 3| |`KC_MS_BTN3` |`KC_BTN3`|Mouse Button 3 |
|KC_MS_BTN4|KC_BTN4|Mouse Button 4| |`KC_MS_BTN4` |`KC_BTN4`|Mouse Button 4 |
|KC_MS_BTN5|KC_BTN5|Mouse Button 5| |`KC_MS_BTN5` |`KC_BTN5`|Mouse Button 5 |
|KC_MS_WH_UP|KC_WH_U|Mouse Wheel Up| |`KC_MS_WH_UP` |`KC_WH_U`|Mouse Wheel Up |
|KC_MS_WH_DOWN|KC_WH_D|Mouse Wheel Down| |`KC_MS_WH_DOWN` |`KC_WH_D`|Mouse Wheel Down |
|KC_MS_WH_LEFT|KC_WH_L|Mouse Wheel Left| |`KC_MS_WH_LEFT` |`KC_WH_L`|Mouse Wheel Left |
|KC_MS_WH_RIGHT|KC_WH_R|Mouse Wheel Right| |`KC_MS_WH_RIGHT`|`KC_WH_R`|Mouse Wheel Right |
|KC_MS_ACCEL0|KC_ACL0|Set Mouse Acceleration Speed to 0| |`KC_MS_ACCEL0` |`KC_ACL0`|Set mouse acceleration to 0|
|KC_MS_ACCEL1|KC_ACL1|Set Mouse Acceleration Speed to 1| |`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
|KC_MS_ACCEL2|KC_ACL2|Set Mouse Acceleration Speed to 2| |`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
You can see an example in the `_ML` here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/mouse_keys/keymap.c#L46 You can see an example in the `_ML` here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/mouse_keys/keymap.c#L46

@ -98,25 +98,25 @@ rgblight_sethsv_at(h,s,v, LED); // control a single LED. 0 <= LED < RGBLED_NUM
These control the RGB Lighting functionality. These control the RGB Lighting functionality.
| Long Name | Short Name | Description | |Key |Aliases |Description |
|-----------|------------|-------------| |-------------------|----------|--------------------------------------------------------------------|
||`RGB_TOG`|toggle on/off| |`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD`|`RGB_MOD`|cycle through modes, use reverse direction when shift is held| |`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE`|`RGB_RMOD`|cycle through modes in reverse (also suppost shift to go forward)| |`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
||`RGB_HUI`|hue increase| |`RGB_HUI` | |Increase hue |
||`RGB_HUD`|hue decrease| |`RGB_HUD` | |Decrease hue |
||`RGB_SAI`|saturation increase| |`RGB_SAI` | |Increase saturation |
||`RGB_SAD`|saturation decrease| |`RGB_SAD` | |Decrease saturation |
||`RGB_VAI`|value (brightness) increase| |`RGB_VAI` | |Increase value (brightness) |
||`RGB_VAD`|value (brightness) decrease| |`RGB_VAD` | |Decrease value (brightness) |
|`RGB_MODE_PLAIN`|`RGB_M_P `| Switch to the static no animation mode | |`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE`|`RGB_M_B`| Switch to the breathing mode | |`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW`|`RGB_M_R`| Switch to the rainbow mode || |`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|`RGB_MODE_SWIRL`|`RGB_M_SW`| Switch to the swirl mode | |`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|`RGB_MODE_SNAKE`|`RGB_M_SN`| Switch to the snake mode | |`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|`RGB_MODE_KNIGHT`|`RGB_M_K`| Switch to the knight animation | |`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|`RGB_MODE_XMAS`|`RGB_M_X`| Switch to the Christmas animation | |`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|`RGB_MODE_GRADIENT`|`RGB_M_G`| Switch to the static gradient mode | |`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
note: for backwards compatibility, `RGB_SMOD` is an alias for `RGB_MOD`. note: for backwards compatibility, `RGB_SMOD` is an alias for `RGB_MOD`.

@ -4,7 +4,7 @@
## Thermal Printer Keycodes ## Thermal Printer Keycodes
|Name|Description| |Key |Description |
|----|-----------| |-----------|----------------------------------------|
|`PRINT_ON` |Start printing everything the user types| |`PRINT_ON` |Start printing everything the user types|
|`PRINT_OFF`|Stop printing everything the user types | |`PRINT_OFF`|Stop printing everything the user types |

@ -1,75 +1,77 @@
# Overview # Keycodes Overview
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. This is a reference only. Where possible keys link to the page documenting their functionality. 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.
## Keycode Index This is a reference only. Each group of keys links to the page documenting their functionality in more detail.
|Long Name|Short Name|Description| ## [Basic Keycodes](keycodes_basic.md)
|---------|----------|-----------|
|`KC_1`|||| |Key |Aliases |Description |
|`KC_2`|||| |-----------------------|----------|-----------------------------------------------|
|`KC_3`|||| |`KC_1` | |`1` and `!` |
|`KC_4`|||| |`KC_2` | |`2` and `@` |
|`KC_5`|||| |`KC_3` | |`3` and `#` |
|`KC_6`|||| |`KC_4` | |`4` and `$` |
|`KC_7`|||| |`KC_5` | |`5` and `%` |
|`KC_8`|||| |`KC_6` | |`6` and `^` |
|`KC_9`|||| |`KC_7` | |`7` and `&` |
|`KC_0`|||| |`KC_8` | |`8` and `*` |
|`KC_F1`|||| |`KC_9` | |`9` and `(` |
|`KC_F2`|||| |`KC_0` | |`0` and `)` |
|`KC_F3`|||| |`KC_F1` | | |
|`KC_F4`|||| |`KC_F2` | | |
|`KC_F5`|||| |`KC_F3` | | |
|`KC_F6`|||| |`KC_F4` | | |
|`KC_F7`|||| |`KC_F5` | | |
|`KC_F8`|||| |`KC_F6` | | |
|`KC_F9`|||| |`KC_F7` | | |
|`KC_F10`|||| |`KC_F8` | | |
|`KC_F11`|||| |`KC_F9` | | |
|`KC_F12`|||| |`KC_F10` | | |
|`KC_F13`|||| |`KC_F11` | | |
|`KC_F14`|||| |`KC_F12` | | |
|`KC_F15`|||| |`KC_F13` | | |
|`KC_F16`|||| |`KC_F14` | | |
|`KC_F17`|||| |`KC_F15` | | |
|`KC_F18`|||| |`KC_F16` | | |
|`KC_F19`|||| |`KC_F17` | | |
|`KC_F20`|||| |`KC_F18` | | |
|`KC_F21`|||| |`KC_F19` | | |
|`KC_F22`|||| |`KC_F20` | | |
|`KC_F23`|||| |`KC_F21` | | |
|`KC_F24`|||| |`KC_F22` | | |
|`KC_A`|||| |`KC_F23` | | |
|`KC_B`|||| |`KC_F24` | | |
|`KC_C`|||| |`KC_A` | |`a` and `A` |
|`KC_D`|||| |`KC_B` | |`b` and `B` |
|`KC_E`|||| |`KC_C` | |`c` and `C` |
|`KC_F`|||| |`KC_D` | |`d` and `D` |
|`KC_G`|||| |`KC_E` | |`e` and `E` |
|`KC_H`|||| |`KC_F` | |`f` and `F` |
|`KC_I`|||| |`KC_G` | |`g` and `G` |
|`KC_J`|||| |`KC_H` | |`h` and `H` |
|`KC_K`|||| |`KC_I` | |`i` and `I` |
|`KC_L`|||| |`KC_J` | |`j` and `J` |
|`KC_M`|||| |`KC_K` | |`k` and `K` |
|`KC_N`|||| |`KC_L` | |`l` and `L` |
|`KC_O`|||| |`KC_M` | |`m` and `M` |
|`KC_P`|||| |`KC_N` | |`n` and `N` |
|`KC_Q`|||| |`KC_O` | |`o` and `O` |
|`KC_R`|||| |`KC_P` | |`p` and `P` |
|`KC_S`|||| |`KC_Q` | |`q` and `Q` |
|`KC_T`|||| |`KC_R` | |`r` and `R` |
|`KC_U`|||| |`KC_S` | |`s` and `S` |
|`KC_V`|||| |`KC_T` | |`t` and `T` |
|`KC_W`|||| |`KC_U` | |`u` and `U` |
|`KC_X`|||| |`KC_V` | |`v` and `V` |
|`KC_Y`|||| |`KC_W` | |`w` and `W` |
|`KC_Z`|||| |`KC_X` | |`x` and `X` |
|`KC_ENTER`|`KC_ENT`|`Return (ENTER)`| |`KC_Y` | |`y` and `Y` |
|`KC_ESCAPE`|`KC_ESC`|`ESCAPE`| |`KC_Z` | |`z` and `Z` |
|`KC_BSPACE`|`KC_BSPC`|`DELETE (Backspace)`| |`KC_ENTER` |`KC_ENT` |Return (Enter) |
|`KC_TAB`||`Tab`| |`KC_ESCAPE` |`KC_ESC` |Escape |
|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |
|`KC_TAB` | |Tab |
|`KC_SPACE` |`KC_SPC` |Spacebar | |`KC_SPACE` |`KC_SPC` |Spacebar |
|`KC_MINUS` |`KC_MINS` |`-` and `_` | |`KC_MINUS` |`KC_MINS` |`-` and `_` |
|`KC_EQUAL` |`KC_EQL` |`=` and `+` | |`KC_EQUAL` |`KC_EQL` |`=` and `+` |
@ -79,11 +81,11 @@ When defining a [keymap](keymap.md) each key needs a valid key definition. This
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` | |`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and <code>&#124;</code> | |`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and <code>&#124;</code> |
|`KC_INT1` |`KC_RO` |JIS `\` and <code>&#124;</code> | |`KC_INT1` |`KC_RO` |JIS `\` and <code>&#124;</code> |
|`KC_INT2`|`KC_KANA`|International216| |`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |
|`KC_INT3`|`KC_JYEN`|Yen Symbol (`¥`)| |`KC_INT3` |`KC_JYEN` |JIS `¥` |
|`KC_SCOLON` |`KC_SCLN` |`;` and `:` | |`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
|`KC_QUOTE`|`KC_QUOT`|`` and `“`| |`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
|`KC_GRAVE`|`KC_GRV`|Grave Accent and Tilde| |`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~` |
|`KC_COMMA` |`KC_COMM` |`,` and `<` | |`KC_COMMA` |`KC_COMM` |`,` and `<` |
|`KC_DOT` | |`.` and `>` | |`KC_DOT` | |`.` and `>` |
|`KC_SLASH` |`KC_SLSH` |`/` and `?` | |`KC_SLASH` |`KC_SLSH` |`/` and `?` |
@ -91,31 +93,31 @@ When defining a [keymap](keymap.md) each key needs a valid key definition. This
|`KC_LCTRL` |`KC_LCTL` |Left Control | |`KC_LCTRL` |`KC_LCTL` |Left Control |
|`KC_LSHIFT` |`KC_LSFT` |Left Shift | |`KC_LSHIFT` |`KC_LSFT` |Left Shift |
|`KC_LALT` | |Left Alt | |`KC_LALT` | |Left Alt |
|`KC_LGUI`||Left GUI(Windows/Apple/Meta key)| |`KC_LGUI` | |Left GUI (Windows/Command/Meta key) |
|`KC_RCTRL` |`KC_RCTL` |Right Control | |`KC_RCTRL` |`KC_RCTL` |Right Control |
|`KC_RSHIFT` |`KC_RSFT` |Right Shift | |`KC_RSHIFT` |`KC_RSFT` |Right Shift |
|`KC_RALT` | |Right Alt | |`KC_RALT` | |Right Alt |
|`KC_RGUI`||Right GUI(Windows/Apple/Meta key)| |`KC_RGUI` | |Right GUI (Windows/Command/Meta key) |
|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock | |`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock | |`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock | |`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock |
|`KC_INT4`|`KC_HENK`|JIS Henken| |`KC_INT4` |`KC_HENK` |JIS Henkan |
|`KC_INT5`|`KC_MHEN`|JIS Muhenken| |`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
|`KC_PSCREEN` |`KC_PSCR` |Print Screen | |`KC_PSCREEN` |`KC_PSCR` |Print Screen |
|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock | |`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock |
|`KC_PAUSE` |`KC_PAUS` |Pause | |`KC_PAUSE` |`KC_PAUS` |Pause |
|`KC_INSERT` |`KC_INS` |Insert | |`KC_INSERT` |`KC_INS` |Insert |
|`KC_HOME` | |Home | |`KC_HOME` | |Home |
|`KC_PGUP` | |Page Up | |`KC_PGUP` | |Page Up |
|`KC_DELETE`|`KC_DEL`|Delete Forward| |`KC_DELETE` |`KC_DEL` |Forward Delete |
|`KC_END` | |End | |`KC_END` | |End |
|`KC_PGDOWN` |`KC_PGDN` |Page Down | |`KC_PGDOWN` |`KC_PGDN` |Page Down |
|`KC_RIGHT` |`KC_RGHT` |Right Arrow | |`KC_RIGHT` |`KC_RGHT` |Right Arrow |
|`KC_LEFT` | |Left Arrow | |`KC_LEFT` | |Left Arrow |
|`KC_DOWN` | |Down Arrow | |`KC_DOWN` | |Down Arrow |
|`KC_UP` | |Up Arrow | |`KC_UP` | |Up Arrow |
|`KC_APPLICATION`|`KC_APP`|Application| |`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) |
|`KC_POWER`||Old power button scancode. MS has deprecated this in favor of `KC_SYSTEM_POWER`.| |`KC_POWER` | |Deprecated by MS in favor of `KC_SYSTEM_POWER`.|
|`KC_EXECUTE` | |Execute | |`KC_EXECUTE` | |Execute |
|`KC_HELP` | |Help | |`KC_HELP` | |Help |
|`KC_MENU` | |Menu | |`KC_MENU` | |Menu |
@ -162,154 +164,229 @@ When defining a [keymap](keymap.md) each key needs a valid key definition. This
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) | |`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) |
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) | |`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) |
|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) | |`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) |
|`KC_MEDIA_STOP`|`KC_MSTP`|| |`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |
|`KC_MEDIA_PLAY_PAUSE`|`KC_MPLY`|| |`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
|`KC_MEDIA_SELECT` |`KC_MSEL` | | |`KC_MEDIA_SELECT` |`KC_MSEL` | |
|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear | |`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
|`KC_KP_SLASH`|`KC_PSLS`|Keypad /| |`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
|`KC_KP_ASTERISK`|`KC_PAST`|Keypad *| |`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
|`KC_KP_MINUS`|`KC_PMNS`|Keypad -| |`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` |
|`KC_KP_PLUS`|`KC_PPLS`|Keypad +| |`KC_KP_PLUS` |`KC_PPLS` |Keypad `+` |
|`KC_KP_ENTER`|`KC_PENT`|Keypad ENTER`| |`KC_KP_ENTER` |`KC_PENT` |Keypad Enter |
|`KC_KP_1`|`KC_P1`|Keypad 1 and End| |`KC_KP_1` |`KC_P1` |Keypad `1` and End |
|`KC_KP_2`|`KC_P2`|Keypad 2 and Down Arrow| |`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow |
|`KC_KP_3`|`KC_P3`|Keypad 3 and PageDn| |`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down |
|`KC_KP_4`|`KC_P4`|Keypad 4 and Left Arrow| |`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow |
|`KC_KP_5`|`KC_P5`|Keypad 5| |`KC_KP_5` |`KC_P5` |Keypad `5` |
|`KC_KP_6`|`KC_P6`|Keypad 6 and Right Arrow| |`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow |
|`KC_KP_7`|`KC_P7`|Keypad 7 and Home| |`KC_KP_7` |`KC_P7` |Keypad `7` and Home |
|`KC_KP_8`|`KC_P8`|Keypad 8 and Up Arrow| |`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow |
|`KC_KP_9`|`KC_P9`|Keypad 9 and PageUp| |`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |
|`KC_KP_0`|`KC_P0`|Keypad 0 and Insert| |`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |
|`KC_KP_DOT`|`KC_PDOT`|Keypad . and Delete| |`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |
|`KC_KP_EQUAL`|`KC_PEQL`|Keypad =| |`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |
|`KC_KP_COMMA`|`KC_PCMM`|Keypad Comma| |`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` |
|`KC_KP_EQUAL_AS400`||Keypad Equal Sign| |`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards |
|`KC_NO`||Ignore this key. (NOOP) | |`KC_NO` | |Ignore this key (NOOP) |
|`KC_TRNS`||Make this key transparent to find the key on a lower layer.| |`KC_TRANSPARENT` |`KC_TRNS` |Use the next lowest non-transparent key |
|[`KC_MS_UP`](feature_mouse_keys.md)|`KC_MS_U`|Mouse Cursor Up|
|[`KC_MS_DOWN`](feature_mouse_keys.md)|`KC_MS_D`|Mouse Cursor Down| ## [Mouse Keys](feature_mouse_keys.md)
|[`KC_MS_LEFT`](feature_mouse_keys.md)|`KC_MS_L`|Mouse Cursor Left|
|[`KC_MS_RIGHT`](feature_mouse_keys.md)|`KC_MS_R`|Mouse Cursor Right| |Key |Aliases |Description |
|[`KC_MS_BTN1`](feature_mouse_keys.md)|`KC_BTN1`|Mouse Button 1| |----------------|---------|---------------------------|
|[`KC_MS_BTN2`](feature_mouse_keys.md)|`KC_BTN2`|Mouse Button 2| |`KC_MS_UP` |`KC_MS_U`|Mouse Cursor Up |
|[`KC_MS_BTN3`](feature_mouse_keys.md)|`KC_BTN3`|Mouse Button 3| |`KC_MS_DOWN` |`KC_MS_D`|Mouse Cursor Down |
|[`KC_MS_BTN4`](feature_mouse_keys.md)|`KC_BTN4`|Mouse Button 4| |`KC_MS_LEFT` |`KC_MS_L`|Mouse Cursor Left |
|[`KC_MS_BTN5`](feature_mouse_keys.md)|`KC_BTN5`|Mouse Button 5| |`KC_MS_RIGHT` |`KC_MS_R`|Mouse Cursor Right |
|[`KC_MS_WH_UP`](feature_mouse_keys.md)|`KC_WH_U`|Mouse Wheel Up| |`KC_MS_BTN1` |`KC_BTN1`|Mouse Button 1 |
|[`KC_MS_WH_DOWN`](feature_mouse_keys.md)|`KC_WH_D`|Mouse Wheel Down| |`KC_MS_BTN2` |`KC_BTN2`|Mouse Button 2 |
|[`KC_MS_WH_LEFT`](feature_mouse_keys.md)|`KC_WH_L`|Mouse Wheel Left| |`KC_MS_BTN3` |`KC_BTN3`|Mouse Button 3 |
|[`KC_MS_WH_RIGHT`](feature_mouse_keys.md)|`KC_WH_R`|Mouse Wheel Right| |`KC_MS_BTN4` |`KC_BTN4`|Mouse Button 4 |
|[`KC_MS_ACCEL0`](feature_mouse_keys.md)|`KC_ACL0`|Mouse Acceleration 0| |`KC_MS_BTN5` |`KC_BTN5`|Mouse Button 5 |
|[`KC_MS_ACCEL1`](feature_mouse_keys.md)|`KC_ACL1`|Mouse Acceleration 1| |`KC_MS_WH_UP` |`KC_WH_U`|Mouse Wheel Up |
|[`KC_MS_ACCEL2`](feature_mouse_keys.md)|`KC_ACL2`|Mouse Acceleration 2| |`KC_MS_WH_DOWN` |`KC_WH_D`|Mouse Wheel Down |
|[`RESET`](quantum_keycodes.md#qmk-keycodes)||Put the keyboard into DFU mode for flashing| |`KC_MS_WH_LEFT` |`KC_WH_L`|Mouse Wheel Left |
|[`DEBUG`](quantum_keycodes.md#qmk-keycodes)||Toggles debug mode| |`KC_MS_WH_RIGHT`|`KC_WH_R`|Mouse Wheel Right |
|[`KC_GESC`](quantum_keycodes.md#qmk-keycodes)|`GRAVE_ESC`|Acts as escape when pressed normally but when pressed with Shift or GUI will send a `~`| |`KC_MS_ACCEL0` |`KC_ACL0`|Set mouse acceleration to 0|
|[`KC_LSPO`](quantum_keycodes.md#qmk-keycodes)||Left shift when held, open paranthesis when tapped| |`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
|[`KC_RSPC`](quantum_keycodes.md#qmk-keycodes)||Right shift when held, close paranthesis when tapped| |`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
|[`KC_LEAD`](feature_leader_key.md)||The leader key|
|[`FUNC(n)`](quantum_keycodes.md#qmk-keycodes)|`F(n)`|Call `fn_action(n)`| ## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
|[`M(n)`](quantum_keycodes.md#qmk-keycodes)||to call macro n|
|[`MACROTAP(n)`](quantum_keycodes.md#qmk-keycodes)||to macro-tap n idk FIXME`| |Key |Aliases |Description |
|[`MAGIC_SWAP_CONTROL_CAPSLOCK`](feature_bootmagic.md)||Swap Capslock and Left Control| |-------------|-----------|---------------------------------------------------------------------|
|[`MAGIC_CAPSLOCK_TO_CONTROL`](feature_bootmagic.md)||Treat Capslock like a Control Key| |`RESET` | |Put the keyboard into DFU mode for flashing |
|[`MAGIC_SWAP_LALT_LGUI`](feature_bootmagic.md)||Swap the left Alt and GUI keys| |`DEBUG` | |Toggle debug mode |
|[`MAGIC_SWAP_RALT_RGUI`](feature_bootmagic.md)||Swap the right Alt and GUI keys| |`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>&#96;</code> when pressed with Shift or GUI|
|[`MAGIC_NO_GUI`](feature_bootmagic.md)||Disable the GUI key| |`KC_LSPO` | |Left Shift when held, `(` when tapped |
|[`MAGIC_SWAP_GRAVE_ESC`](feature_bootmagic.md)||Swap the Grave and Esc key.| |`KC_RSPC` | |Right Shift when held, `)` when tapped |
|[`MAGIC_SWAP_BACKSLASH_BACKSPACE`](feature_bootmagic.md)||Swap backslack and backspace| |`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
|[`MAGIC_HOST_NKRO`](feature_bootmagic.md)||Force NKRO on| |`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
|[`MAGIC_SWAP_ALT_GUI`/`AG_SWAP`](feature_bootmagic.md)||Swap Alt and Gui on both sides| |`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
|[`MAGIC_UNSWAP_CONTROL_CAPSLOCK`](feature_bootmagic.md)||Disable the Control/Capslock swap| |`M(n)` | |Call macro `n` |
|[`MAGIC_UNCAPSLOCK_TO_CONTROL`](feature_bootmagic.md)||Disable treating Capslock like Control | |`MACROTAP(n)`| |Macro-tap `n` idk FIXME |
|[`MAGIC_UNSWAP_LALT_LGUI`](feature_bootmagic.md)||Disable Left Alt and GUI switching|
|[`MAGIC_UNSWAP_RALT_RGUI`](feature_bootmagic.md)||Disable Right Alt and GUI switching| ## [Bootmagic](feature_bootmagic.md)
|[`MAGIC_UNNO_GUI`](feature_bootmagic.md)||Enable the GUI key |
|[`MAGIC_UNSWAP_GRAVE_ESC`](feature_bootmagic.md)||Disable the Grave/Esc swap | |Key |Aliases |Description |
|[`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`](feature_bootmagic.md)||Disable the backslash/backspace swap| |----------------------------------|---------|------------------------------------|
|[`MAGIC_UNHOST_NKRO`](feature_bootmagic.md)||Force NKRO off| |`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Caps Lock and Left Control |
|[`MAGIC_UNSWAP_ALT_GUI`/`AG_NORM`](feature_bootmagic.md)||Disable the Alt/GUI switching| |`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control |
|[`MAGIC_TOGGLE_NKRO`](feature_bootmagic.md)||Turn NKRO on or off| |`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI |
|[`BL_x`](feature_backlight.md)||Set a specific backlight level between 0-9| |`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI |
|[`BL_ON`](feature_backlight.md)||An alias for `BL_9`| |`MAGIC_NO_GUI` | |Disable the GUI key |
|[`BL_OFF`](feature_backlight.md)||An alias for `BL_0`| |`MAGIC_SWAP_GRAVE_ESC` | |Swap <code>&#96;</code> and Escape |
|[`BL_DEC`](feature_backlight.md)||Turn the backlight level down by 1| |`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|[`BL_INC`](feature_backlight.md)||Turn the backlight level up by 1| |`MAGIC_HOST_NKRO` | |Force NKRO on |
|[`BL_TOGG`](feature_backlight.md)||Toggle the backlight on or off| |`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
|[`BL_STEP`](feature_backlight.md)||Step through backlight levels, wrapping around to 0 when you reach the top.| |`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Caps Lock and Left Control |
|[`RGB_TOG`](feature_rgblight.md)||toggle on/off| |`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating Caps Lock as Control |
|[`RGB_MOD`](feature_rgblight.md)||cycle through modes| |`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI |
|[`RGB_HUI`](feature_rgblight.md)||hue increase| |`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI |
|[`RGB_HUD`](feature_rgblight.md)||hue decrease| |`MAGIC_UNNO_GUI` | |Enable the GUI key |
|[`RGB_SAI`](feature_rgblight.md)||saturation increase| |`MAGIC_UNSWAP_GRAVE_ESC` | |Unswap <code>&#96;</code> and Escape|
|[`RGB_SAD`](feature_rgblight.md)||saturation decrease| |`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|[`RGB_VAI`](feature_rgblight.md)||value increase| |`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|[`RGB_VAD`](feature_rgblight.md)||value decrease| |`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
|[`PRINT_ON`](feature_thermal_printer.md)||Start printing everything the user types| |`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
|[`PRINT_OFF`](feature_thermal_printer.md)||Stop printing everything the user types|
|[`OUT_AUTO`](feature_bluetooth.md)||auto mode| ## [Backlighting](feature_backlight.md)
|[`OUT_USB`](feature_bluetooth.md)||usb only|
|[`OUT_BT`](feature_bluetooth.md)||bluetooth (when `BLUETOOTH_ENABLE`)| |Key |Description |
|[`KC_HYPR`](quantum_keycodes.md#modifiers)||Hold down LCTL + LSFT + LALT + LGUI`| |---------|------------------------------------------|
|[`KC_MEH`](quantum_keycodes.md#modifiers)||Hold down LCTL + LSFT + LALT`| |`BL_TOGG`|Turn the backlight on or off |
|[`LCTL(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `kc`| |`BL_STEP`|Cycle through backlight levels |
|[`LSFT(kc)`](quantum_keycodes.md#modifiers)|[`S(kc)`](quantum_keycodes.md#modifiers)|`LSFT` + `kc`| |`BL_x` |Set a specific backlight level between 0-9|
|[`LALT(kc)`](quantum_keycodes.md#modifiers)||`LALT` + `kc`| |`BL_ON` |An alias for `BL_9` |
|[`LGUI(kc)`](quantum_keycodes.md#modifiers)||`LGUI` + `kc`| |`BL_OFF` |An alias for `BL_0` |
|[`RCTL(kc)`](quantum_keycodes.md#modifiers)||`RCTL` + `kc`| |`BL_INC` |Increase backlight level |
|[`RSFT(kc)`](quantum_keycodes.md#modifiers)||`RSFT` + `kc`| |`BL_DEC` |Decrease backlight level |
|[`RALT(kc)`](quantum_keycodes.md#modifiers)||`RALT` + `kc`|
|[`RGUI(kc)`](quantum_keycodes.md#modifiers)||`RGUI` + `kc`| ## [RGB Lighting](feature_rgblight.md)
|[`HYPR(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `LSFT` + `LALT` + `LGUI` + `kc`|
|[`MEH(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `LSFT` + `LALT` + `kc`| |Key |Aliases |Description |
|[`LCAG(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `LALT` + `LGUI` + `kc`| |-------------------|----------|--------------------------------------------------------------------|
|[`ALTG(kc)`](quantum_keycodes.md#modifiers)||`RCTL` + `RALT` + `kc`| |`RGB_TOG` | |Toggle RGB lighting on or off |
|[`SCMD(kc)`](quantum_keycodes.md#modifiers)|[`SWIN(kc)`](quantum_keycodes.md#modifiers)|`LGUI` + `LSFT` + `kc`| |`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|[`LCA(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `LALT` + `kc`| |`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|[`CTL_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`LCTL_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LCTL` when held, `kc` when tapped| |`RGB_HUI` | |Increase hue |
|[`RCTL_T(kc)`](quantum_keycodes.md#mod-tap-keys)||[`RCTL` when held, `kc` when tapped| |`RGB_HUD` | |Decrease hue |
|[`SFT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`LSFT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LSFT` when held, `kc` when tapped| |`RGB_SAI` | |Increase saturation |
|[`RSFT_T(kc)`](quantum_keycodes.md#mod-tap-keys)||[`RSFT` when held, `kc` when tapped| |`RGB_SAD` | |Decrease saturation |
|[`ALT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`LALT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LALT` when held, `kc` when tapped| |`RGB_VAI` | |Increase value (brightness) |
|[`RALT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`ALGR_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`RALT` when held, `kc` when tapped| |`RGB_VAD` | |Decrease value (brightness) |
|[`GUI_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`LGUI_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LGUI` when held, `kc` when tapped| |`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|[`RGUI_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`RGUI` when held, `kc` when tapped| |`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|[`C_S_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`LCTL` + `LSFT` when held, `kc` when tapped| |`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|[`MEH_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`LCTL` + `LSFT` + `LALT` when held, `kc` when tapped| |`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|[`LCAG_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`LCTL` + `LALT` + `LGUI` when held, `kc` when tapped| |`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|[`RCAG_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`RCTL` + `RALT` + `RGUI` when held, `kc` when tapped| |`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|[`ALL_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`LCTL` + `LSFT` + `LALT` + `LGUI` when held, `kc` when tapped [more info](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| |`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|[`SCMD_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`SWIN_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LGUI` + `LSFT` when held, `kc` when tapped| |`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|[`LCA_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`LCTL` + `LALT` when held, `kc` when tapped|
|[`KC_TILD`](keycodes_us_ansi_shifted.md)|`KC_TILDE`|tilde `~`| ## [Thermal Printer](feature_thermal_printer.md)
|[`KC_EXLM`](keycodes_us_ansi_shifted.md)|`KC_EXCLAIM`|exclamation mark `!`|
|[`KC_AT`](keycodes_us_ansi_shifted.md)||at sign `@`| |Key |Description |
|[`KC_HASH`](keycodes_us_ansi_shifted.md)||hash sign `#`| |-----------|----------------------------------------|
|[`KC_DLR`](keycodes_us_ansi_shifted.md)|`KC_DOLLAR`|dollar sign `$`| |`PRINT_ON` |Start printing everything the user types|
|[`KC_PERC`](keycodes_us_ansi_shifted.md)|`KC_PERCENT`|percent sign `%`| |`PRINT_OFF`|Stop printing everything the user types |
|[`KC_CIRC`](keycodes_us_ansi_shifted.md)|`KC_CIRCUMFLEX`|circumflex `^`|
|[`KC_AMPR`](keycodes_us_ansi_shifted.md)|`KC_AMPERSAND`|ampersand `&`| ## [Bluetooth](feature_bluetooth.md)
|[`KC_ASTR`](keycodes_us_ansi_shifted.md)|`KC_ASTERISK`|asterisk `*`|
|[`KC_LPRN`](keycodes_us_ansi_shifted.md)|`KC_LEFT_PAREN`|left parenthesis `(`| |Key |Description |
|[`KC_RPRN`](keycodes_us_ansi_shifted.md)|`KC_RIGHT_PAREN`|right parenthesis `)`| |----------|----------------------------------------------|
|[`KC_UNDS`](keycodes_us_ansi_shifted.md)|`KC_UNDERSCORE`|underscore `_`| |`OUT_AUTO`|Automatically switch between USB and Bluetooth|
|[`KC_PLUS`](keycodes_us_ansi_shifted.md)||plus sign `+`| |`OUT_USB` |USB only |
|[`KC_LCBR`](keycodes_us_ansi_shifted.md)|`KC_LEFT_CURLY_BRACE`|left curly brace `{`| |`OUT_BT` |Bluetooth only |
|[`KC_RCBR`](keycodes_us_ansi_shifted.md)|`KC_RIGHT_CURLY_BRACE`|right curly brace `}`|
|[`KC_LT`/`KC_LABK`](keycodes_us_ansi_shifted.md)|`KC_LEFT_ANGLE_BRACKET`|left angle bracket `<`| ## [Modifiers](quantum_keycodes.md#modifiers)
|[`KC_GT`/`KC_RABK`](keycodes_us_ansi_shifted.md)|`KC_RIGHT_ANGLE_BRACKET`|right angle bracket `>`|
|[`KC_COLN`](keycodes_us_ansi_shifted.md)|`KC_COLON`|colon `:`| |Key |Aliases |Description |
|[`KC_PIPE`](keycodes_us_ansi_shifted.md)||pipe `\|`| |----------|----------|----------------------------------------------------|
|[`KC_QUES`](keycodes_us_ansi_shifted.md)|`KC_QUESTION`|question mark `?`| |`KC_HYPR` | |Hold Left Control, Shift, Alt and GUI |
|[`KC_DQT`/`KC_DQUO`](keycodes_us_ansi_shifted.md)|`KC_DOUBLE_QUOTE`|double quote `"`| |`KC_MEH` | |Hold Left Control, Shift and Alt |
|[`LT(layer, kc)`](feature_common_shortcuts.md#switching-and-toggling-layers)||turn on layer (0-15) when held, kc ([basic keycodes](keycodes_basic.md)) when tapped| |`LCTL(kc)`| |Hold Left Control and press `kc` |
|[`TO(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||turn on layer when depressed| |`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|[`MO(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||momentarily turn on layer when depressed (requires `KC_TRNS` on destination layer)| |`LALT(kc)`| |Hold Left Alt and press `kc` |
|[`DF(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||sets the base (default) layer| |`LGUI(kc)`| |Hold Left GUI and press `kc` |
|[`TG(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||toggle layer on/off| |`RCTL(kc)`| |Hold Right Control and press `kc` |
|[`TT(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||tap toggle? idk FIXME`| |`RSFT(kc)`| |Hold Right Shift and press `kc` |
|[`OSM(mod)`](quantum_keycodes.md#one-shot-keys)||hold mod for one keypress| |`RALT(kc)`| |Hold Right Alt and press `kc` |
|[`OSL(layer)`](quantum_keycodes.md#one-shot-keys)||switch to layer for one keypress| |`RGUI(kc)`| |Hold Right GUI and press `kc` |
|[`UNICODE(n)`](feature_unicode.md)|[`UC(n)`](feature_unicode.md)|if `UNICODE_ENABLE`, this will send characters up to `0x7FFF`| |`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
|[`X(n)`](feature_unicode.md)||if `UNICODEMAP_ENABLE`, also sends unicode via a different method| |`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`ALTG(kc)`| |Hold Right Control and Alt and press `kc` |
|`SCMD(kc)`|`SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
## [Mod-Tap Keys](quantum_keycodes.md#mod-tap-keys)
|Key |Aliases |Description |
|------------|------------|-------------------------------------------------------|
|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
|`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)`|Right Alt when held, `kc` when tapped |
|`LGUI_T(kc)`|`GUI_T(kc)` |Left GUI when held, `kc` when tapped |
|`RGUI_T(kc)`| |Right GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`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/)|
|`SCMD_T(kc)`|`SWIN_T(kc)`|Left Shift and GUI when held, `kc` when tapped |
|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped |
## [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
|Key |Aliases |Description |
|------------------------|------------------|-------------------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |<code>&#124;</code>|
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |
## [Switching and Toggling Layers](feature_common_shortcuts.md#switching-and-toggling-layers)
|Key |Description |
|---------------|----------------------------------------------------------------------------------|
|`LT(layer, kc)`|Turn on `layer` when held, `kc` when tapped |
|`TO(layer)` |Turn on `layer` when pressed |
|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)|
|`DF(layer)` |Set the base (default) layer |
|`TG(layer)` |Toggle `layer` on or off |
|`TT(layer)` |Tap toggle? idk FIXME |
## [One Shot Keys](quantum_keycodes.md#one-shot-keys)
|Key |Description |
|------------|----------------------------------|
|`OSM(mod)` |Hold `mod` for one keypress |
|`OSL(layer)`|Switch to `layer` for one keypress|
## [Unicode Support](feature_unicode.md)
|Key |Aliases| |
|------------|-------|-------------------------------------------------|
|`UNICODE(n)`|`UC(n)`|Send Unicode character `n` |
|`X(n)` | |Send Unicode character `n` via a different method|

@ -1,192 +1,230 @@
# Basic Keycodes # Basic Keycodes
Basic keycodes are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) with following exceptions: The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07)](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) with the exception of `KC_NO`, `KC_TRNS` and keycodes in the `0xA5-DF` range. See below for more details.
* `KC_NO` = 0 for no action
* `KC_TRNS` = 1 for layer transparency
* internal special keycodes in the `0xA5-DF` range (tmk heritage).
## Letters and Numbers ## Letters and Numbers
|KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8| |Key |Description|
|----|----|----|----|----|----|----|----| |------|-----------|
|KC_9|KC_0|KC_F1|KC_F2|KC_F3|KC_F4|KC_F5|KC_F6| |`KC_A`|`a` and `A`|
|KC_F7|KC_F8|KC_F9|KC_F10|KC_F11|KC_F12|KC_F13|KC_F14| |`KC_B`|`b` and `B`|
|KC_F15|KC_F16|KC_F17|KC_F18|KC_F19|KC_F20|KC_F21|KC_F22| |`KC_C`|`c` and `C`|
|KC_F23|KC_F24|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F| |`KC_D`|`d` and `D`|
|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L|KC_M|KC_N| |`KC_E`|`e` and `E`|
|KC_O|KC_P|KC_Q|KC_R|KC_S|KC_T|KC_U|KC_V| |`KC_F`|`f` and `F`|
|KC_W|KC_X|KC_Y|KC_Z||||| |`KC_G`|`g` and `G`|
|`KC_H`|`h` and `H`|
|`KC_I`|`i` and `I`|
|`KC_J`|`j` and `J`|
|`KC_K`|`k` and `K`|
|`KC_L`|`l` and `L`|
|`KC_M`|`m` and `M`|
|`KC_N`|`n` and `N`|
|`KC_O`|`o` and `O`|
|`KC_P`|`p` and `P`|
|`KC_Q`|`q` and `Q`|
|`KC_R`|`r` and `R`|
|`KC_S`|`s` and `S`|
|`KC_T`|`t` and `T`|
|`KC_U`|`u` and `U`|
|`KC_V`|`v` and `V`|
|`KC_W`|`w` and `W`|
|`KC_X`|`x` and `X`|
|`KC_Y`|`y` and `Y`|
|`KC_Z`|`z` and `Z`|
|`KC_1`|`1` and `!`|
|`KC_2`|`2` and `@`|
|`KC_3`|`3` and `#`|
|`KC_4`|`4` and `$`|
|`KC_5`|`5` and `%`|
|`KC_6`|`6` and `^`|
|`KC_7`|`7` and `&`|
|`KC_8`|`8` and `*`|
|`KC_9`|`9` and `(`|
|`KC_0`|`0` and `)`|
## F Keys
|Key |Description|
|--------|-----------|
|`KC_F1` | |
|`KC_F2` | |
|`KC_F3` | |
|`KC_F4` | |
|`KC_F5` | |
|`KC_F6` | |
|`KC_F7` | |
|`KC_F8` | |
|`KC_F9` | |
|`KC_F10`| |
|`KC_F11`| |
|`KC_F12`| |
|`KC_F13`| |
|`KC_F14`| |
|`KC_F15`| |
|`KC_F16`| |
|`KC_F17`| |
|`KC_F18`| |
|`KC_F19`| |
|`KC_F20`| |
|`KC_F21`| |
|`KC_F22`| |
|`KC_F23`| |
|`KC_F24`| |
## Punctuation ## Punctuation
|Long Name|Short Name|Description| |Key |Aliases |Description |
|---------|----------|-----------| |-----------------|---------|----------------------------------|
|KC_ENTER|KC_ENT|`Return (ENTER)`| |`KC_ENTER` |`KC_ENT` |Return (Enter) |
|KC_ESCAPE|KC_ESC|`ESCAPE`| |`KC_ESCAPE` |`KC_ESC` |Escape |
|KC_BSPACE|KC_BSPC|`DELETE (Backspace)`| |`KC_BSPACE` |`KC_BSPC`|Delete (Backspace) |
|KC_TAB||`Tab`| |`KC_TAB` | |Tab |
|KC_SPACE|KC_SPC|Spacebar| |`KC_SPACE` |`KC_SPC` |Spacebar |
|KC_MINUS|KC_MINS|`-` and `_`| |`KC_MINUS` |`KC_MINS`|`-` and `_` |
|KC_EQUAL|KC_EQL|`=` and `+`| |`KC_EQUAL` |`KC_EQL` |`=` and `+` |
|KC_LBRACKET|KC_LBRC|`[` and `{`| |`KC_LBRACKET` |`KC_LBRC`|`[` and `{` |
|KC_RBRACKET|KC_RBRC|`]` and `}`| |`KC_RBRACKET` |`KC_RBRC`|`]` and `}` |
|KC_BSLASH|KC_BSLS|`\` and <code>&#124;</code> | |`KC_BSLASH` |`KC_BSLS`|`\` and <code>&#124;</code> |
|KC_NONUS_HASH|KC_NUHS|Non-US `#` and `~`| |`KC_NONUS_HASH` |`KC_NUHS`|Non-US `#` and `~` |
|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and <code>&#124;</code> | |`KC_NONUS_BSLASH`|`KC_NUBS`|Non-US `\` and <code>&#124;</code>|
|KC_INT1|KC_RO|JIS `\` and <code>&#124;</code> | |`KC_INT1` |`KC_RO` |JIS `\` and <code>&#124;</code> |
|KC_INT2|KC_KANA|International216| |`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana |
|KC_INT3|KC_JYEN|Yen Symbol (`¥`)| |`KC_INT3` |`KC_JYEN`|JIS `¥` |
|KC_SCOLON|KC_SCLN|`;` and `:`| |`KC_SCOLON` |`KC_SCLN`|`;` and `:` |
|KC_QUOTE|KC_QUOT|`` and `“`| |`KC_QUOTE` |`KC_QUOT`|`'` and `"` |
|KC_GRAVE|KC_GRV|Grave Accent and Tilde| |`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~` |
|KC_COMMA|KC_COMM|`,` and `<`| |`KC_COMMA` |`KC_COMM`|`,` and `<` |
|KC_DOT||`.` and `>`| |`KC_DOT` | |`.` and `>` |
|KC_SLASH|KC_SLSH|`/` and `?`| |`KC_SLASH` |`KC_SLSH`|`/` and `?` |
|KC_CAPSLOCK|KC_CAPS|Caps Lock| |`KC_CAPSLOCK` |`KC_CAPS`|Caps Lock |
## Modifiers ## Modifiers
|Long Name|Short Name|Description| |Key |Aliases |Description |
|---------|----------|-----------| |-------------------|---------|------------------------------------|
|KC_LCTRL|KC_LCTL|LeftControl| |`KC_LCTRL` |`KC_LCTL`|Left Control |
|KC_LSHIFT|KC_LSFT|LeftShift| |`KC_LSHIFT` |`KC_LSFT`|Left Shift |
|KC_LALT||LeftAlt| |`KC_LALT` | |Left Alt |
|KC_LGUI||Left GUI(Windows/Apple/Meta key)| |`KC_LGUI` | |Left GUI (Windows/Command/Meta key) |
|KC_RCTRL|KC_RCTL|RightControl| |`KC_RCTRL` |`KC_RCTL`|Right Control |
|KC_RSHIFT|KC_RSFT|RightShift| |`KC_RSHIFT` |`KC_RSFT`|Right Shift |
|KC_RALT||RightAlt| |`KC_RALT` | |Right Alt |
|KC_RGUI||Right GUI(Windows/Apple/Meta key)| |`KC_RGUI` | |Right GUI (Windows/Command/Meta key)|
|KC_LOCKING_CAPS|KC_LCAP|Locking Caps Lock| |`KC_LOCKING_CAPS` |`KC_LCAP`|Locking Caps Lock |
|KC_LOCKING_NUM|KC_LNUM|Locking Num Lock| |`KC_LOCKING_NUM` |`KC_LNUM`|Locking Num Lock |
|KC_LOCKING_SCROLL|KC_LSCR|Locking Scroll Lock| |`KC_LOCKING_SCROLL`|`KC_LSCR`|Locking Scroll Lock |
|KC_INT4|KC_HENK|JIS Henken| |`KC_INT4` |`KC_HENK`|JIS Henkan |
|KC_INT5|KC_MHEN|JIS Muhenken| |`KC_INT5` |`KC_MHEN`|JIS Muhenkan |
## Commands ## Commands
|Long Name|Short Name|Description| |Key |Aliases |Description |
|---------|----------|-----------| |------------------|---------|------------------------------|
|KC_PSCREEN|KC_PSCR|PrintScreen| |`KC_PSCREEN` |`KC_PSCR`|Print Screen |
|KC_SCROLLLOCK|KC_SLCK|Scroll Lock| |`KC_SCROLLLOCK` |`KC_SLCK`|Scroll Lock |
|KC_PAUSE|KC_PAUS|Pause| |`KC_PAUSE` |`KC_PAUS`|Pause |
|KC_INSERT|KC_INS|Insert| |`KC_INSERT` |`KC_INS` |Insert |
|KC_HOME||Home| |`KC_HOME` | |Home |
|KC_PGUP||PageUp| |`KC_PGUP` | |Page Up |
|KC_DELETE|KC_DEL|Delete Forward| |`KC_DELETE` |`KC_DEL` |Forward Delete |
|KC_END||End| |`KC_END` | |End |
|KC_PGDOWN|KC_PGDN|PageDown| |`KC_PGDOWN` |`KC_PGDN`|Page Down |
|KC_RIGHT|KC_RGHT|RightArrow| |`KC_RIGHT` |`KC_RGHT`|Right Arrow |
|KC_LEFT||LeftArrow| |`KC_LEFT` | |Left Arrow |
|KC_DOWN||DownArrow| |`KC_DOWN` | |Down Arrow |
|KC_UP||UpArrow| |`KC_UP` | |Up Arrow |
|KC_APPLICATION|KC_APP|Application| |`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key)|
|KC_POWER||Power| |`KC_POWER` | |Power |
|KC_EXECUTE||Execute| |`KC_EXECUTE` | |Execute |
|KC_HELP||Help| |`KC_HELP` | |Help |
|KC_MENU||Menu| |`KC_MENU` | |Menu |
|KC_SELECT||Select| |`KC_SELECT` | |Select |
|KC_AGAIN||Again| |`KC_AGAIN` | |Again |
|KC_UNDO||Undo| |`KC_UNDO` | |Undo |
|KC_CUT||Cut| |`KC_CUT` | |Cut |
|KC_COPY||Copy| |`KC_COPY` | |Copy |
|KC_PASTE||Paste| |`KC_PASTE` | |Paste |
|KC_FIND||Find| |`KC_FIND` | |Find |
|KC_ALT_ERASE||Alternate Erase| |`KC_ALT_ERASE` | |Alternate Erase |
|KC_SYSREQ||SysReq/Attention| |`KC_SYSREQ` | |SysReq/Attention |
|KC_CANCEL||Cancel| |`KC_CANCEL` | |Cancel |
|KC_CLEAR||Clear| |`KC_CLEAR` | |Clear |
|KC_PRIOR||Prior| |`KC_PRIOR` | |Prior |
|KC_RETURN||Return| |`KC_RETURN` | |Return |
|KC_SEPARATOR||Separator| |`KC_SEPARATOR` | |Separator |
|KC_OUT||Out| |`KC_OUT` | |Out |
|KC_OPER||Oper| |`KC_OPER` | |Oper |
|KC_CLEAR_AGAIN||Clear/Again| |`KC_CLEAR_AGAIN` | |Clear/Again |
|KC_CRSEL||CrSel/Props| |`KC_CRSEL` | |CrSel/Props |
|KC_EXSEL||ExSel| |`KC_EXSEL` | |ExSel |
|KC_SYSTEM_POWER|KC_PWR|System Power Down|
|KC_SYSTEM_SLEEP|KC_SLEP|System Sleep|
|KC_SYSTEM_WAKE|KC_WAKE|System Wake|
|KC_MAIL|KC_MAIL||
|KC_CALCULATOR|KC_CALC||
|KC_MY_COMPUTER|KC_MYCM||
|KC_WWW_SEARCH|KC_WSCH||
|KC_WWW_HOME|KC_WHOM||
|KC_WWW_BACK|KC_WBAK||
|KC_WWW_FORWARD|KC_WFWD||
|KC_WWW_STOP|KC_WSTP||
|KC_WWW_REFRESH|KC_WREF||
|KC_WWW_FAVORITES|KC_WFAV||
## Media Keys ## Media Keys
Windows and Mac use different key codes for next track and previous track. Make sure you choose the keycode that corresponds to your OS. 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.
|Long Name|Short Name|Description| Windows and macOS use different keycodes for "next track" and "previous track". Make sure you choose the keycode that corresponds to your OS.
|---------|----------|-----------|
|KC_STOP||Stop| |Key |Aliases |Description |
|KC__MUTE||Mute (macOS)| |-----------------------|---------|---------------------------------|
|KC__VOLUP||Volume Up (macOS)| |`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |
|KC__VOLDOWN||Volume Down (macOS)| |`KC_SYSTEM_SLEEP` |`KC_SLEP`|System Sleep |
|KC_AUDIO_MUTE|KC_MUTE|Mute (Windows/macOS/Linux)| |`KC_SYSTEM_WAKE` |`KC_WAKE`|System Wake |
|KC_AUDIO_VOL_UP|KC_VOLU|Volume Up (Windows/macOS/Linux)| |`KC_MAIL` |`KC_MAIL`| |
|KC_AUDIO_VOL_DOWN|KC_VOLD|Volume Down (Windows/macOS/Linux)| |`KC_CALCULATOR` |`KC_CALC`| |
|KC_MEDIA_NEXT_TRACK|KC_MNXT|Next Track (Windows)| |`KC_MY_COMPUTER` |`KC_MYCM`| |
|KC_MEDIA_PREV_TRACK|KC_MPRV|Previous Track (Windows)| |`KC_WWW_SEARCH` |`KC_WSCH`| |
|KC_MEDIA_FAST_FORWARD|KC_MFFD|Next Track (macOS)| |`KC_WWW_HOME` |`KC_WHOM`| |
|KC_MEDIA_REWIND|KC_MRWD|Previous Track (macOS)| |`KC_WWW_BACK` |`KC_WBAK`| |
|KC_MEDIA_STOP|KC_MSTP|| |`KC_WWW_FORWARD` |`KC_WFWD`| |
|KC_MEDIA_PLAY_PAUSE|KC_MPLY|| |`KC_WWW_STOP` |`KC_WSTP`| |
|KC_MEDIA_SELECT|KC_MSEL|| |`KC_WWW_REFRESH` |`KC_WREF`| |
|`KC_STOP` | |Stop |
## Numpad |`KC_WWW_FAVORITES` |`KC_WFAV`| |
|`KC__MUTE` | |Mute (macOS) |
|Long Name|Short Name|Description| |`KC__VOLUP` | |Volume Up (macOS) |
|---------|----------|-----------| |`KC__VOLDOWN` | |Volume Down (macOS) |
|KC_NUMLOCK|KC_NLCK|Keypad Num Lock and Clear| |`KC_AUDIO_MUTE` |`KC_MUTE`|Mute (Windows/macOS/Linux) |
|KC_KP_SLASH|KC_PSLS|Keypad /| |`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up (Windows/macOS/Linux) |
|KC_KP_ASTERISK|KC_PAST|Keypad *| |`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down (Windows/macOS/Linux)|
|KC_KP_MINUS|KC_PMNS|Keypad -| |`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track (Windows) |
|KC_KP_PLUS|KC_PPLS|Keypad +| |`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track (Windows) |
|KC_KP_ENTER|KC_PENT|Keypad ENTER| |`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) |
|KC_KP_1|KC_P1|Keypad 1 and End| |`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) |
|KC_KP_2|KC_P2|Keypad 2 and Down Arrow| |`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track |
|KC_KP_3|KC_P3|Keypad 3 and PageDn| |`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
|KC_KP_4|KC_P4|Keypad 4 and Left Arrow| |`KC_MEDIA_SELECT` |`KC_MSEL`| |
|KC_KP_5|KC_P5|Keypad 5|
|KC_KP_6|KC_P6|Keypad 6 and Right Arrow| ## Number Pad
|KC_KP_7|KC_P7|Keypad 7 and Home|
|KC_KP_8|KC_P8|Keypad 8 and Up Arrow| |Key |Aliases |Description |
|KC_KP_9|KC_P9|Keypad 9 and PageUp| |-------------------|---------|------------------------------|
|KC_KP_0|KC_P0|Keypad 0 and Insert| |`KC_NUMLOCK` |`KC_NLCK`|Keypad Num Lock and Clear |
|KC_KP_DOT|KC_PDOT|Keypad . and Delete| |`KC_KP_SLASH` |`KC_PSLS`|Keypad `/` |
|KC_KP_EQUAL|KC_PEQL|Keypad =| |`KC_KP_ASTERISK` |`KC_PAST`|Keypad `*` |
|KC_KP_COMMA|KC_PCMM|Keypad Comma| |`KC_KP_MINUS` |`KC_PMNS`|Keypad `-` |
|KC_KP_EQUAL_AS400||Keypad Equal Sign| |`KC_KP_PLUS` |`KC_PPLS`|Keypad `+` |
|`KC_KP_ENTER` |`KC_PENT`|Keypad Enter |
|`KC_KP_1` |`KC_P1` |Keypad `1` and End |
|`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow |
|`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down |
|`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow |
|`KC_KP_5` |`KC_P5` |Keypad `5` |
|`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow |
|`KC_KP_7` |`KC_P7` |Keypad `7` and Home |
|`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow |
|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |
|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |
|`KC_KP_DOT` |`KC_PDOT`|Keypad `.` and Delete |
|`KC_KP_EQUAL` |`KC_PEQL`|Keypad `=` |
|`KC_KP_COMMA` |`KC_PCMM`|Keypad `,` |
|`KC_KP_EQUAL_AS400`| |Keypad `=` on AS/400 keyboards|
## Special Keys ## Special Keys
|Long Name|Short Name|Description| In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK.
|---------|----------|-----------|
|KC_NO||Ignore this key. (NOOP) | |Key |Aliases |Description |
|----------------|---------|---------------------------------------|
## Mousekey |`KC_NO` | |Ignore this key (NOOP) |
|`KC_TRANSPARENT`|`KC_TRNS`|Use the next lowest non-transparent key|
|Long Name|Short Name|Description|
|---------|----------|-----------|
|KC_MS_UP|KC_MS_U|Mouse Cursor Up|
|KC_MS_DOWN|KC_MS_D|Mouse Cursor Down|
|KC_MS_LEFT|KC_MS_L|Mouse Cursor Left|
|KC_MS_RIGHT|KC_MS_R|Mouse Cursor Right|
|KC_MS_BTN1|KC_BTN1|Mouse Button 1|
|KC_MS_BTN2|KC_BTN2|Mouse Button 2|
|KC_MS_BTN3|KC_BTN3|Mouse Button 3|
|KC_MS_BTN4|KC_BTN4|Mouse Button 4|
|KC_MS_BTN5|KC_BTN5|Mouse Button 5|
|KC_MS_WH_UP|KC_WH_U|Mouse Wheel Up|
|KC_MS_WH_DOWN|KC_WH_D|Mouse Wheel Down|
|KC_MS_WH_LEFT|KC_WH_L|Mouse Wheel Left|
|KC_MS_WH_RIGHT|KC_WH_R|Mouse Wheel Right|
|KC_MS_ACCEL0|KC_ACL0|Mouse Acceleration 0|
|KC_MS_ACCEL1|KC_ACL1|Mouse Acceleration 1|
|KC_MS_ACCEL2|KC_ACL2|Mouse Acceleration 2|

@ -6,26 +6,26 @@ It's important to remember that all of these keycodes send a left shift - this m
## US ANSI Shifted Keycodes ## US ANSI Shifted Keycodes
|Short Name|Long Name|Description| |Key |Aliases |Description |
|----------|---------|-----------| |------------------------|------------------|-------------------|
|`KC_TILD`|`KC_TILDE`|tilde `~`| |`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXLM`|`KC_EXCLAIM`|exclamation mark `!`| |`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT`||at sign `@`| |`KC_AT` | |`@` |
|`KC_HASH`||hash sign `#`| |`KC_HASH` | |`#` |
|`KC_DLR`|`KC_DOLLAR`|dollar sign `$`| |`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERC`|`KC_PERCENT`|percent sign `%`| |`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRC`|`KC_CIRCUMFLEX`|circumflex `^`| |`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPR`|`KC_AMPERSAND`|ampersand `&`| |`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTR`|`KC_ASTERISK`|asterisk `*`| |`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LPRN`|`KC_LEFT_PAREN`|left parenthesis `(`| |`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RPRN`|`KC_RIGHT_PAREN`|right parenthesis `)`| |`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDS`|`KC_UNDERSCORE`|underscore `_`| |`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS`||plus sign `+`| |`KC_PLUS` | |`+` |
|`KC_LCBR`|`KC_LEFT_CURLY_BRACE`|left curly brace `{`| |`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RCBR`|`KC_RIGHT_CURLY_BRACE`|right curly brace `}`| |`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_LT`/`KC_LABK`|`KC_LEFT_ANGLE_BRACKET`|left angle bracket `<`| |`KC_PIPE` | |<code>&#124;</code>|
|`KC_GT`/`KC_RABK`|`KC_RIGHT_ANGLE_BRACKET`|right angle bracket `>`| |`KC_COLON` |`KC_COLN` |`:` |
|`KC_COLN`|`KC_COLON`|colon `:`| |`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
|`KC_PIPE`||pipe `\|`| |`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
|`KC_QUES`|`KC_QUESTION`|question mark `?`| |`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
|`KC_DQT`/`KC_DQUO`|`KC_DOUBLE_QUOTE`|double quote `"`| |`KC_QUESTION` |`KC_QUES` |`?` |

@ -8,15 +8,15 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
## QMK Keycodes ## QMK Keycodes
|Name|Description| |Key |Aliases |Description |
|----|-----------| |-------------|-----------|---------------------------------------------------------------------|
|`RESET`|Put the keyboard into DFU mode for flashing| |`RESET` | |Put the keyboard into DFU mode for flashing |
|`DEBUG`|Toggles debug mode| |`DEBUG` | |Toggle debug mode |
|`KC_GESC`/`GRAVE_ESC`|Acts as escape when pressed normally but when pressed with Shift or GUI will send a ```| |`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>&#96;</code> when pressed with Shift or GUI|
|`KC_LSPO`|Left shift when held, open paranthesis when tapped| |`KC_LSPO` | |Left Shift when held, `(` when tapped |
|`KC_RSPC`|Right shift when held, close paranthesis when tapped| |`KC_RSPC` | |Right Shift when held, `)` when tapped |
|`KC_LEAD`|The [leader key](feature_leader_key.md)| |`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
|`KC_LOCK`|The [lock key](feature_key_lock.md)| |`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
|`FUNC(n)`/`F(n)`|Call `fn_action(n)` (deprecated)| |`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
|`M(n)`|to call macro n| |`M(n)` | |Call macro `n` |
|`MACROTAP(n)`|to macro-tap n idk FIXME| |`MACROTAP(n)`| |Macro-tap `n` idk FIXME |

Loading…
Cancel
Save