summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/feature_advanced_keycodes.md46
-rw-r--r--docs/feature_backlight.md18
-rw-r--r--docs/feature_bluetooth.md10
-rw-r--r--docs/feature_bootmagic.md42
-rw-r--r--docs/feature_grave_esc.md6
-rw-r--r--docs/feature_mouse_keys.md36
-rw-r--r--docs/feature_rgblight.md38
-rw-r--r--docs/feature_thermal_printer.md8
-rw-r--r--docs/keycodes.md701
-rw-r--r--docs/keycodes_basic.md382
-rw-r--r--docs/keycodes_us_ansi_shifted.md46
-rw-r--r--docs/quantum_keycodes.md24
12 files changed, 736 insertions, 621 deletions
diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md
index c9b5312e68..3ea28ca4e8 100644
--- a/docs/feature_advanced_keycodes.md
+++ b/docs/feature_advanced_keycodes.md
@@ -75,29 +75,29 @@ You can also chain these, like this:
The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols.
-|Name|Description|
-|----|-----------|
-| KC_TILD | ~ |
-| KC_EXLM | ! |
-| KC_QUES | ? |
-| KC_AT | @ |
-| KC_HASH | # |
-| KC_DLR | $ |
-| KC_PERC | % |
-| KC_CIRC | ^ |
-| KC_AMPR | & |
-| KC_ASTR | * |
-| KC_LPRN | ( |
-| KC_RPRN | ) |
-| KC_UNDS | _ |
-| KC_PLUS | + |
-| KC_DQUO | " |
-| KC_LCBR | { |
-| KC_RCBR | } |
-| KC_LABK | < |
-| KC_RABK | > |
-| KC_PIPE | &#x7C; |
-| KC_COLN | : |
+|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` |`?` |
# Mod Tap
diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md
index c419b7cccb..aa747f90e7 100644
--- a/docs/feature_backlight.md
+++ b/docs/feature_backlight.md
@@ -6,12 +6,12 @@
These keycodes control the backlight. Most keyboards use this for single color in-switch lighting.
-|Name|Description|
-|----|-----------|
-|`BL_x`|Set a specific backlight level between 0-9|
-|`BL_ON`|An alias for `BL_9`|
-|`BL_OFF`|An alias for `BL_0`|
-|`BL_DEC`|Turn the backlight level down by 1|
-|`BL_INC`|Turn the backlight level up by 1|
-|`BL_TOGG`|Toggle the backlight on or off|
-|`BL_STEP`|Step through backlight levels, wrapping around to 0 when you reach the top.|
+|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_ON` |An alias for `BL_9` |
+|`BL_OFF` |An alias for `BL_0` |
+|`BL_INC` |Increase backlight level |
+|`BL_DEC` |Decrease backlight level |
diff --git a/docs/feature_bluetooth.md b/docs/feature_bluetooth.md
index 0c8f24a080..f647adc727 100644
--- a/docs/feature_bluetooth.md
+++ b/docs/feature_bluetooth.md
@@ -10,8 +10,8 @@ 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.
-|Name|Description|
-|----|-----------|
-|`OUT_AUTO`|auto mode|
-|`OUT_USB`|usb only|
-|`OUT_BT`|bluetooth|
+|Name |Description |
+|----------|----------------------------------------------|
+|`OUT_AUTO`|Automatically switch between USB and Bluetooth|
+|`OUT_USB` |USB only |
+|`OUT_BT` |Bluetooth only |
diff --git a/docs/feature_bootmagic.md b/docs/feature_bootmagic.md
index c8459e3504..037830c4df 100644
--- a/docs/feature_bootmagic.md
+++ b/docs/feature_bootmagic.md
@@ -6,24 +6,24 @@
Shortcuts for bootmagic options. You can use these even when bootmagic is off.
-|Name|Description|
-|----|-----------|
-|`MAGIC_SWAP_CONTROL_CAPSLOCK`|Swap Capslock and Left Control|
-|`MAGIC_CAPSLOCK_TO_CONTROL`|Treat Capslock like a Control Key|
-|`MAGIC_SWAP_LALT_LGUI`|Swap the left Alt and GUI keys|
-|`MAGIC_SWAP_RALT_RGUI`|Swap the right Alt and GUI keys|
-|`MAGIC_NO_GUI`|Disable the GUI key|
-|`MAGIC_SWAP_GRAVE_ESC`|Swap the Grave and Esc key.|
-|`MAGIC_SWAP_BACKSLASH_BACKSPACE`|Swap backslash and backspace|
-|`MAGIC_HOST_NKRO`|Force NKRO on|
-|`MAGIC_SWAP_ALT_GUI`/`AG_SWAP`|Swap Alt and Gui on both sides|
-|`MAGIC_UNSWAP_CONTROL_CAPSLOCK`|Disable the Control/Capslock swap|
-|`MAGIC_UNCAPSLOCK_TO_CONTROL`|Disable treating Capslock like Control |
-|`MAGIC_UNSWAP_LALT_LGUI`|Disable Left Alt and GUI switching|
-|`MAGIC_UNSWAP_RALT_RGUI`|Disable Right Alt and GUI switching|
-|`MAGIC_UNNO_GUI`|Enable the GUI key |
-|`MAGIC_UNSWAP_GRAVE_ESC`|Disable the Grave/Esc swap |
-|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|Disable the backslash/backspace swap|
-|`MAGIC_UNHOST_NKRO`|Force NKRO off|
-|`MAGIC_UNSWAP_ALT_GUI`/`AG_NORM`|Disable the Alt/GUI switching|
-|`MAGIC_TOGGLE_NKRO`|Turn NKRO on or off|
+|Key |Aliases |Description |
+|----------------------------------|---------|------------------------------------|
+|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock |
+|`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control |
+|`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI |
+|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI |
+|`MAGIC_NO_GUI` | |Disable the GUI key |
+|`MAGIC_SWAP_GRAVE_ESC` | |Swap <code>&#96;</code> and Escape |
+|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap Backslash and Backspace |
+|`MAGIC_HOST_NKRO` | |Force NKRO on |
+|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
+|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Left Control and Caps Lock |
+|`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating CapsLock as Control |
+|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI |
+|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI |
+|`MAGIC_UNNO_GUI` | |Enable the GUI key |
+|`MAGIC_UNSWAP_GRAVE_ESC` | |Unswap <code>&#96;</code> and Escape|
+|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap Backslash and Backspace |
+|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
+|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and GUI |
+|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
diff --git a/docs/feature_grave_esc.md b/docs/feature_grave_esc.md
index 9a14daf2af..a8e45f3a9a 100644
--- a/docs/feature_grave_esc.md
+++ b/docs/feature_grave_esc.md
@@ -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`.
-| Key | Alias | Description |
-|-----|-------|-------------|
-| `GRAVE_ESC` | `KC_GESC` | Act as `KC_ESC` normally, or `KC_GRAVE` when GUI or Shift are held. |
+|Key |Aliases |Description |
+|---------|-----------|------------------------------------------------------------------|
+|`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:
diff --git a/docs/feature_mouse_keys.md b/docs/feature_mouse_keys.md
index 78c44b3e66..dd846e096a 100644
--- a/docs/feature_mouse_keys.md
+++ b/docs/feature_mouse_keys.md
@@ -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:
-|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|Set Mouse Acceleration Speed to 0|
-|KC_MS_ACCEL1|KC_ACL1|Set Mouse Acceleration Speed to 1|
-|KC_MS_ACCEL2|KC_ACL2|Set Mouse Acceleration Speed to 2|
+|Key |Aliases |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`|Set mouse acceleration to 0|
+|`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
+|`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
diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md
index 8f4f080248..554eb2dcdf 100644
--- a/docs/feature_rgblight.md
+++ b/docs/feature_rgblight.md
@@ -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.
-| Long Name | Short Name | Description |
-|-----------|------------|-------------|
-||`RGB_TOG`|toggle on/off|
-|`RGB_MODE_FORWARD`|`RGB_MOD`|cycle through modes, use reverse direction when shift is held|
-|`RGB_MODE_REVERSE`|`RGB_RMOD`|cycle through modes in reverse (also suppost shift to go forward)|
-||`RGB_HUI`|hue increase|
-||`RGB_HUD`|hue decrease|
-||`RGB_SAI`|saturation increase|
-||`RGB_SAD`|saturation decrease|
-||`RGB_VAI`|value (brightness) increase|
-||`RGB_VAD`|value (brightness) decrease|
-|`RGB_MODE_PLAIN`|`RGB_M_P `| Switch to the static no animation mode |
-|`RGB_MODE_BREATHE`|`RGB_M_B`| Switch to the breathing mode |
-|`RGB_MODE_RAINBOW`|`RGB_M_R`| Switch to the rainbow mode ||
-|`RGB_MODE_SWIRL`|`RGB_M_SW`| Switch to the swirl mode |
-|`RGB_MODE_SNAKE`|`RGB_M_SN`| Switch to the snake mode |
-|`RGB_MODE_KNIGHT`|`RGB_M_K`| Switch to the knight animation |
-|`RGB_MODE_XMAS`|`RGB_M_X`| Switch to the Christmas animation |
-|`RGB_MODE_GRADIENT`|`RGB_M_G`| Switch to the static gradient mode |
+|Key |Aliases |Description |
+|-------------------|----------|--------------------------------------------------------------------|
+|`RGB_TOG` | |Toggle RGB lighting on or off |
+|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
+|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
+|`RGB_HUI` | |Increase hue |
+|`RGB_HUD` | |Decrease hue |
+|`RGB_SAI` | |Increase saturation |
+|`RGB_SAD` | |Decrease saturation |
+|`RGB_VAI` | |Increase value (brightness) |
+|`RGB_VAD` | |Decrease value (brightness) |
+|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
+|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
+|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
+|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
+|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
+|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
+|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
+|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
note: for backwards compatibility, `RGB_SMOD` is an alias for `RGB_MOD`.
diff --git a/docs/feature_thermal_printer.md b/docs/feature_thermal_printer.md
index 0c5d15116a..3f496646d4 100644
--- a/docs/feature_thermal_printer.md
+++ b/docs/feature_thermal_printer.md
@@ -4,7 +4,7 @@
## Thermal Printer Keycodes
-|Name|Description|
-|----|-----------|
-|`PRINT_ON`|Start printing everything the user types|
-|`PRINT_OFF`|Stop printing everything the user types|
+|Key |Description |
+|-----------|----------------------------------------|
+|`PRINT_ON` |Start printing everything the user types|
+|`PRINT_OFF`|Stop printing everything the user types |
diff --git a/docs/keycodes.md b/docs/keycodes.md
index f1da845ca4..1dc0e62c27 100644
--- a/docs/keycodes.md
+++ b/docs/keycodes.md
@@ -1,315 +1,392 @@
-# 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|
-|---------|----------|-----------|
-|`KC_1`||||
-|`KC_2`||||
-|`KC_3`||||
-|`KC_4`||||
-|`KC_5`||||
-|`KC_6`||||
-|`KC_7`||||
-|`KC_8`||||
-|`KC_9`||||
-|`KC_0`||||
-|`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`||||
-|`KC_A`||||
-|`KC_B`||||
-|`KC_C`||||
-|`KC_D`||||
-|`KC_E`||||
-|`KC_F`||||
-|`KC_G`||||
-|`KC_H`||||
-|`KC_I`||||
-|`KC_J`||||
-|`KC_K`||||
-|`KC_L`||||
-|`KC_M`||||
-|`KC_N`||||
-|`KC_O`||||
-|`KC_P`||||
-|`KC_Q`||||
-|`KC_R`||||
-|`KC_S`||||
-|`KC_T`||||
-|`KC_U`||||
-|`KC_V`||||
-|`KC_W`||||
-|`KC_X`||||
-|`KC_Y`||||
-|`KC_Z`||||
-|`KC_ENTER`|`KC_ENT`|`Return (ENTER)`|
-|`KC_ESCAPE`|`KC_ESC`|`ESCAPE`|
-|`KC_BSPACE`|`KC_BSPC`|`DELETE (Backspace)`|
-|`KC_TAB`||`Tab`|
-|`KC_SPACE`|`KC_SPC`|Spacebar|
-|`KC_MINUS`|`KC_MINS`|`-` and `_`|
-|`KC_EQUAL`|`KC_EQL`|`=` and `+`|
-|`KC_LBRACKET`|`KC_LBRC`|`[` and `{`|
-|`KC_RBRACKET`|`KC_RBRC`|`]` and `}`|
-|`KC_BSLASH`|`KC_BSLS`|`\` and <code>&#124;</code> |
-|`KC_NONUS_HASH`|`KC_NUHS`|Non-US `#` and `~`|
-|`KC_NONUS_BSLASH`|`KC_NUBS`|Non-US `\` and <code>&#124;</code> |
-|`KC_INT1`|`KC_RO`|JIS `\` and <code>&#124;</code> |
-|`KC_INT2`|`KC_KANA`|International216|
-|`KC_INT3`|`KC_JYEN`|Yen Symbol (`¥`)|
-|`KC_SCOLON`|`KC_SCLN`|`;` and `:`|
-|`KC_QUOTE`|`KC_QUOT`|`‘` and `“`|
-|`KC_GRAVE`|`KC_GRV`|Grave Accent and Tilde|
-|`KC_COMMA`|`KC_COMM`|`,` and `<`|
-|`KC_DOT`||`.` and `>`|
-|`KC_SLASH`|`KC_SLSH`|`/` and `?`|
-|`KC_CAPSLOCK`|`KC_CAPS`|Caps Lock|
-|`KC_LCTRL`|`KC_LCTL`|LeftControl|
-|`KC_LSHIFT`|`KC_LSFT`|LeftShift|
-|`KC_LALT`||LeftAlt|
-|`KC_LGUI`||Left GUI(Windows/Apple/Meta key)|
-|`KC_RCTRL`|`KC_RCTL`|RightControl|
-|`KC_RSHIFT`|`KC_RSFT`|RightShift|
-|`KC_RALT`||RightAlt|
-|`KC_RGUI`||Right GUI(Windows/Apple/Meta key)|
-|`KC_LOCKING_CAPS`|`KC_LCAP`|Locking Caps Lock|
-|`KC_LOCKING_NUM`|`KC_LNUM`|Locking Num Lock|
-|`KC_LOCKING_SCROLL`|`KC_LSCR`|Locking Scroll Lock|
-|`KC_INT4`|`KC_HENK`|JIS Henken|
-|`KC_INT5`|`KC_MHEN`|JIS Muhenken|
-|`KC_PSCREEN`|`KC_PSCR`|PrintScreen|
-|`KC_SCROLLLOCK`|`KC_SLCK`|Scroll Lock|
-|`KC_PAUSE`|`KC_PAUS`|Pause|
-|`KC_INSERT`|`KC_INS`|Insert|
-|`KC_HOME`||Home|
-|`KC_PGUP`||PageUp|
-|`KC_DELETE`|`KC_DEL`|Delete Forward|
-|`KC_END`||End|
-|`KC_PGDOWN`|`KC_PGDN`|PageDown|
-|`KC_RIGHT`|`KC_RGHT`|RightArrow|
-|`KC_LEFT`||LeftArrow|
-|`KC_DOWN`||DownArrow|
-|`KC_UP`||UpArrow|
-|`KC_APPLICATION`|`KC_APP`|Application|
-|`KC_POWER`||Old power button scancode. MS has deprecated this in favor of `KC_SYSTEM_POWER`.|
-|`KC_EXECUTE`||Execute|
-|`KC_HELP`||Help|
-|`KC_MENU`||Menu|
-|`KC_SELECT`||Select|
-|`KC_AGAIN`||Again|
-|`KC_UNDO`||Undo|
-|`KC_CUT`||Cut|
-|`KC_COPY`||Copy|
-|`KC_PASTE`||Paste|
-|`KC_FIND`||Find|
-|`KC_ALT_ERASE`||Alternate Erase|
-|`KC_SYSREQ`||SysReq/Attention|
-|`KC_CANCEL`||Cancel|
-|`KC_CLEAR`||Clear|
-|`KC_PRIOR`||Prior|
-|`KC_RETURN`||Return|
-|`KC_SEPARATOR`||Separator|
-|`KC_OUT`||Out|
-|`KC_OPER`||Oper|
-|`KC_CLEAR_AGAIN`||Clear/Again|
-|`KC_CRSEL`||CrSel/Props|
-|`KC_EXSEL`||ExSel|
-|`KC_SYSTEM_POWER`|`KC_PWR`|System Power Down. Recommended over `KC_POWER`.|
-|`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`||
-|`KC_STOP`||Stop|
-|`KC__MUTE`||Mute (macOS)|
-|`KC__VOLUP`||Volume Up (macOS)|
-|`KC__VOLDOWN`||Volume Down (macOS)|
-|`KC_AUDIO_MUTE`|`KC_MUTE`|Mute (Windows/macOS/Linux)|
-|`KC_AUDIO_VOL_UP`|`KC_VOLU`|Volume Up (Windows/macOS/Linux)|
-|`KC_AUDIO_VOL_DOWN`|`KC_VOLD`|Volume Down (Windows/macOS/Linux)|
-|`KC_MEDIA_NEXT_TRACK`|`KC_MNXT`|Next Track (Windows)|
-|`KC_MEDIA_PREV_TRACK`|`KC_MPRV`|Previous Track (Windows)|
-|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS)|
-|`KC_MEDIA_REWIND`|`KC_MRWD`|Previous Track (macOS)|
-|`KC_MEDIA_STOP`|`KC_MSTP`||
-|`KC_MEDIA_PLAY_PAUSE`|`KC_MPLY`||
-|`KC_MEDIA_SELECT`|`KC_MSEL`||
-|`KC_NUMLOCK`|`KC_NLCK`|Keypad Num Lock and Clear|
-|`KC_KP_SLASH`|`KC_PSLS`|Keypad /|
-|`KC_KP_ASTERISK`|`KC_PAST`|Keypad *|
-|`KC_KP_MINUS`|`KC_PMNS`|Keypad -|
-|`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 PageDn|
-|`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 PageUp|
-|`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 Comma|
-|`KC_KP_EQUAL_AS400`||Keypad Equal Sign|
-|`KC_NO`||Ignore this key. (NOOP) |
-|`KC_TRNS`||Make this key transparent to find the key on a lower layer.|
-|[`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|
-|[`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|
-|[`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_BTN3`](feature_mouse_keys.md)|`KC_BTN3`|Mouse Button 3|
-|[`KC_MS_BTN4`](feature_mouse_keys.md)|`KC_BTN4`|Mouse Button 4|
-|[`KC_MS_BTN5`](feature_mouse_keys.md)|`KC_BTN5`|Mouse Button 5|
-|[`KC_MS_WH_UP`](feature_mouse_keys.md)|`KC_WH_U`|Mouse Wheel Up|
-|[`KC_MS_WH_DOWN`](feature_mouse_keys.md)|`KC_WH_D`|Mouse Wheel Down|
-|[`KC_MS_WH_LEFT`](feature_mouse_keys.md)|`KC_WH_L`|Mouse Wheel Left|
-|[`KC_MS_WH_RIGHT`](feature_mouse_keys.md)|`KC_WH_R`|Mouse Wheel Right|
-|[`KC_MS_ACCEL0`](feature_mouse_keys.md)|`KC_ACL0`|Mouse Acceleration 0|
-|[`KC_MS_ACCEL1`](feature_mouse_keys.md)|`KC_ACL1`|Mouse Acceleration 1|
-|[`KC_MS_ACCEL2`](feature_mouse_keys.md)|`KC_ACL2`|Mouse Acceleration 2|
-|[`RESET`](quantum_keycodes.md#qmk-keycodes)||Put the keyboard into DFU mode for flashing|
-|[`DEBUG`](quantum_keycodes.md#qmk-keycodes)||Toggles debug mode|
-|[`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_LSPO`](quantum_keycodes.md#qmk-keycodes)||Left shift when held, open paranthesis when tapped|
-|[`KC_RSPC`](quantum_keycodes.md#qmk-keycodes)||Right shift when held, close paranthesis when tapped|
-|[`KC_LEAD`](feature_leader_key.md)||The leader key|
-|[`FUNC(n)`](quantum_keycodes.md#qmk-keycodes)|`F(n)`|Call `fn_action(n)`|
-|[`M(n)`](quantum_keycodes.md#qmk-keycodes)||to call macro n|
-|[`MACROTAP(n)`](quantum_keycodes.md#qmk-keycodes)||to macro-tap n idk FIXME`|
-|[`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|
-|[`MAGIC_SWAP_LALT_LGUI`](feature_bootmagic.md)||Swap the left Alt and GUI keys|
-|[`MAGIC_SWAP_RALT_RGUI`](feature_bootmagic.md)||Swap the right Alt and GUI keys|
-|[`MAGIC_NO_GUI`](feature_bootmagic.md)||Disable the GUI key|
-|[`MAGIC_SWAP_GRAVE_ESC`](feature_bootmagic.md)||Swap the Grave and Esc key.|
-|[`MAGIC_SWAP_BACKSLASH_BACKSPACE`](feature_bootmagic.md)||Swap backslack and backspace|
-|[`MAGIC_HOST_NKRO`](feature_bootmagic.md)||Force NKRO on|
-|[`MAGIC_SWAP_ALT_GUI`/`AG_SWAP`](feature_bootmagic.md)||Swap Alt and Gui on both sides|
-|[`MAGIC_UNSWAP_CONTROL_CAPSLOCK`](feature_bootmagic.md)||Disable the Control/Capslock swap|
-|[`MAGIC_UNCAPSLOCK_TO_CONTROL`](feature_bootmagic.md)||Disable treating Capslock like Control |
-|[`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|
-|[`MAGIC_UNNO_GUI`](feature_bootmagic.md)||Enable the GUI key |
-|[`MAGIC_UNSWAP_GRAVE_ESC`](feature_bootmagic.md)||Disable the Grave/Esc swap |
-|[`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`](feature_bootmagic.md)||Disable the backslash/backspace swap|
-|[`MAGIC_UNHOST_NKRO`](feature_bootmagic.md)||Force NKRO off|
-|[`MAGIC_UNSWAP_ALT_GUI`/`AG_NORM`](feature_bootmagic.md)||Disable the Alt/GUI switching|
-|[`MAGIC_TOGGLE_NKRO`](feature_bootmagic.md)||Turn NKRO on or off|
-|[`BL_x`](feature_backlight.md)||Set a specific backlight level between 0-9|
-|[`BL_ON`](feature_backlight.md)||An alias for `BL_9`|
-|[`BL_OFF`](feature_backlight.md)||An alias for `BL_0`|
-|[`BL_DEC`](feature_backlight.md)||Turn the backlight level down by 1|
-|[`BL_INC`](feature_backlight.md)||Turn the backlight level up by 1|
-|[`BL_TOGG`](feature_backlight.md)||Toggle the backlight on or off|
-|[`BL_STEP`](feature_backlight.md)||Step through backlight levels, wrapping around to 0 when you reach the top.|
-|[`RGB_TOG`](feature_rgblight.md)||toggle on/off|
-|[`RGB_MOD`](feature_rgblight.md)||cycle through modes|
-|[`RGB_HUI`](feature_rgblight.md)||hue increase|
-|[`RGB_HUD`](feature_rgblight.md)||hue decrease|
-|[`RGB_SAI`](feature_rgblight.md)||saturation increase|
-|[`RGB_SAD`](feature_rgblight.md)||saturation decrease|
-|[`RGB_VAI`](feature_rgblight.md)||value increase|
-|[`RGB_VAD`](feature_rgblight.md)||value decrease|
-|[`PRINT_ON`](feature_thermal_printer.md)||Start printing everything the user types|
-|[`PRINT_OFF`](feature_thermal_printer.md)||Stop printing everything the user types|
-|[`OUT_AUTO`](feature_bluetooth.md)||auto mode|
-|[`OUT_USB`](feature_bluetooth.md)||usb only|
-|[`OUT_BT`](feature_bluetooth.md)||bluetooth (when `BLUETOOTH_ENABLE`)|
-|[`KC_HYPR`](quantum_keycodes.md#modifiers)||Hold down LCTL + LSFT + LALT + LGUI`|
-|[`KC_MEH`](quantum_keycodes.md#modifiers)||Hold down LCTL + LSFT + LALT`|
-|[`LCTL(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `kc`|
-|[`LSFT(kc)`](quantum_keycodes.md#modifiers)|[`S(kc)`](quantum_keycodes.md#modifiers)|`LSFT` + `kc`|
-|[`LALT(kc)`](quantum_keycodes.md#modifiers)||`LALT` + `kc`|
-|[`LGUI(kc)`](quantum_keycodes.md#modifiers)||`LGUI` + `kc`|
-|[`RCTL(kc)`](quantum_keycodes.md#modifiers)||`RCTL` + `kc`|
-|[`RSFT(kc)`](quantum_keycodes.md#modifiers)||`RSFT` + `kc`|
-|[`RALT(kc)`](quantum_keycodes.md#modifiers)||`RALT` + `kc`|
-|[`RGUI(kc)`](quantum_keycodes.md#modifiers)||`RGUI` + `kc`|
-|[`HYPR(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `LSFT` + `LALT` + `LGUI` + `kc`|
-|[`MEH(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `LSFT` + `LALT` + `kc`|
-|[`LCAG(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `LALT` + `LGUI` + `kc`|
-|[`ALTG(kc)`](quantum_keycodes.md#modifiers)||`RCTL` + `RALT` + `kc`|
-|[`SCMD(kc)`](quantum_keycodes.md#modifiers)|[`SWIN(kc)`](quantum_keycodes.md#modifiers)|`LGUI` + `LSFT` + `kc`|
-|[`LCA(kc)`](quantum_keycodes.md#modifiers)||`LCTL` + `LALT` + `kc`|
-|[`CTL_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`LCTL_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LCTL` when held, `kc` when tapped|
-|[`RCTL_T(kc)`](quantum_keycodes.md#mod-tap-keys)||[`RCTL` when held, `kc` when tapped|
-|[`SFT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`LSFT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LSFT` when held, `kc` when tapped|
-|[`RSFT_T(kc)`](quantum_keycodes.md#mod-tap-keys)||[`RSFT` when held, `kc` when tapped|
-|[`ALT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`LALT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LALT` when held, `kc` when tapped|
-|[`RALT_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`ALGR_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`RALT` when held, `kc` when tapped|
-|[`GUI_T(kc)`](quantum_keycodes.md#mod-tap-keys)|[`LGUI_T(kc)`](quantum_keycodes.md#mod-tap-keys)|`LGUI` when held, `kc` when tapped|
-|[`RGUI_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`RGUI` when held, `kc` when tapped|
-|[`C_S_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`LCTL` + `LSFT` when held, `kc` when tapped|
-|[`MEH_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`LCTL` + `LSFT` + `LALT` when held, `kc` when tapped|
-|[`LCAG_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`LCTL` + `LALT` + `LGUI` when held, `kc` when tapped|
-|[`RCAG_T(kc)`](quantum_keycodes.md#mod-tap-keys)||`RCTL` + `RALT` + `RGUI` when held, `kc` when tapped|
-|[`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/)|
-|[`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|
-|[`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 `~`|
-|[`KC_EXLM`](keycodes_us_ansi_shifted.md)|`KC_EXCLAIM`|exclamation mark `!`|
-|[`KC_AT`](keycodes_us_ansi_shifted.md)||at sign `@`|
-|[`KC_HASH`](keycodes_us_ansi_shifted.md)||hash sign `#`|
-|[`KC_DLR`](keycodes_us_ansi_shifted.md)|`KC_DOLLAR`|dollar sign `$`|
-|[`KC_PERC`](keycodes_us_ansi_shifted.md)|`KC_PERCENT`|percent sign `%`|
-|[`KC_CIRC`](keycodes_us_ansi_shifted.md)|`KC_CIRCUMFLEX`|circumflex `^`|
-|[`KC_AMPR`](keycodes_us_ansi_shifted.md)|`KC_AMPERSAND`|ampersand `&`|
-|[`KC_ASTR`](keycodes_us_ansi_shifted.md)|`KC_ASTERISK`|asterisk `*`|
-|[`KC_LPRN`](keycodes_us_ansi_shifted.md)|`KC_LEFT_PAREN`|left parenthesis `(`|
-|[`KC_RPRN`](keycodes_us_ansi_shifted.md)|`KC_RIGHT_PAREN`|right parenthesis `)`|
-|[`KC_UNDS`](keycodes_us_ansi_shifted.md)|`KC_UNDERSCORE`|underscore `_`|
-|[`KC_PLUS`](keycodes_us_ansi_shifted.md)||plus sign `+`|
-|[`KC_LCBR`](keycodes_us_ansi_shifted.md)|`KC_LEFT_CURLY_BRACE`|left curly brace `{`|
-|[`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 `<`|
-|[`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 `:`|
-|[`KC_PIPE`](keycodes_us_ansi_shifted.md)||pipe `\|`|
-|[`KC_QUES`](keycodes_us_ansi_shifted.md)|`KC_QUESTION`|question mark `?`|
-|[`KC_DQT`/`KC_DQUO`](keycodes_us_ansi_shifted.md)|`KC_DOUBLE_QUOTE`|double quote `"`|
-|[`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|
-|[`TO(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||turn on layer when depressed|
-|[`MO(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||momentarily turn on layer when depressed (requires `KC_TRNS` on destination layer)|
-|[`DF(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||sets the base (default) layer|
-|[`TG(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||toggle layer on/off|
-|[`TT(layer)`](feature_common_shortcuts.md#switching-and-toggling-layers)||tap toggle? idk FIXME`|
-|[`OSM(mod)`](quantum_keycodes.md#one-shot-keys)||hold mod for one keypress|
-|[`OSL(layer)`](quantum_keycodes.md#one-shot-keys)||switch to layer for one keypress|
-|[`UNICODE(n)`](feature_unicode.md)|[`UC(n)`](feature_unicode.md)|if `UNICODE_ENABLE`, this will send characters up to `0x7FFF`|
-|[`X(n)`](feature_unicode.md)||if `UNICODEMAP_ENABLE`, also sends unicode via a different method|
+## [Basic Keycodes](keycodes_basic.md)
+
+|Key |Aliases |Description |
+|-----------------------|----------|-----------------------------------------------|
+|`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 `)` |
+|`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` | | |
+|`KC_A` | |`a` and `A` |
+|`KC_B` | |`b` and `B` |
+|`KC_C` | |`c` and `C` |
+|`KC_D` | |`d` and `D` |
+|`KC_E` | |`e` and `E` |
+|`KC_F` | |`f` and `F` |
+|`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_ENTER` |`KC_ENT` |Return (Enter) |
+|`KC_ESCAPE` |`KC_ESC` |Escape |
+|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |
+|`KC_TAB` | |Tab |
+|`KC_SPACE` |`KC_SPC` |Spacebar |
+|`KC_MINUS` |`KC_MINS` |`-` and `_` |
+|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
+|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` |
+|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |
+|`KC_BSLASH` |`KC_BSLS` |`\` and <code>&#124;</code> |
+|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
+|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and <code>&#124;</code> |
+|`KC_INT1` |`KC_RO` |JIS `\` and <code>&#124;</code> |
+|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |
+|`KC_INT3` |`KC_JYEN` |JIS `¥` |
+|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
+|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
+|`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~` |
+|`KC_COMMA` |`KC_COMM` |`,` and `<` |
+|`KC_DOT` | |`.` and `>` |
+|`KC_SLASH` |`KC_SLSH` |`/` and `?` |
+|`KC_CAPSLOCK` |`KC_CAPS` |Caps Lock |
+|`KC_LCTRL` |`KC_LCTL` |Left Control |
+|`KC_LSHIFT` |`KC_LSFT` |Left Shift |
+|`KC_LALT` | |Left Alt |
+|`KC_LGUI` | |Left GUI (Windows/Command/Meta key) |
+|`KC_RCTRL` |`KC_RCTL` |Right Control |
+|`KC_RSHIFT` |`KC_RSFT` |Right Shift |
+|`KC_RALT` | |Right Alt |
+|`KC_RGUI` | |Right GUI (Windows/Command/Meta key) |
+|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
+|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
+|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock |
+|`KC_INT4` |`KC_HENK` |JIS Henkan |
+|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |
+|`KC_PSCREEN` |`KC_PSCR` |Print Screen |
+|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock |
+|`KC_PAUSE` |`KC_PAUS` |Pause |
+|`KC_INSERT` |`KC_INS` |Insert |
+|`KC_HOME` | |Home |
+|`KC_PGUP` | |Page Up |
+|`KC_DELETE` |`KC_DEL` |Forward Delete |
+|`KC_END` | |End |
+|`KC_PGDOWN` |`KC_PGDN` |Page Down |
+|`KC_RIGHT` |`KC_RGHT` |Right Arrow |
+|`KC_LEFT` | |Left Arrow |
+|`KC_DOWN` | |Down Arrow |
+|`KC_UP` | |Up Arrow |
+|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key) |
+|`KC_POWER` | |Deprecated by MS in favor of `KC_SYSTEM_POWER`.|
+|`KC_EXECUTE` | |Execute |
+|`KC_HELP` | |Help |
+|`KC_MENU` | |Menu |
+|`KC_SELECT` | |Select |
+|`KC_AGAIN` | |Again |
+|`KC_UNDO` | |Undo |
+|`KC_CUT` | |Cut |
+|`KC_COPY` | |Copy |
+|`KC_PASTE` | |Paste |
+|`KC_FIND` | |Find |
+|`KC_ALT_ERASE` | |Alternate Erase |
+|`KC_SYSREQ` | |SysReq/Attention |
+|`KC_CANCEL` | |Cancel |
+|`KC_CLEAR` | |Clear |
+|`KC_PRIOR` | |Prior |
+|`KC_RETURN` | |Return |
+|`KC_SEPARATOR` | |Separator |
+|`KC_OUT` | |Out |
+|`KC_OPER` | |Oper |
+|`KC_CLEAR_AGAIN` | |Clear/Again |
+|`KC_CRSEL` | |CrSel/Props |
+|`KC_EXSEL` | |ExSel |
+|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down. Recommended over `KC_POWER`.|
+|`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` | |
+|`KC_STOP` | |Stop |
+|`KC__MUTE` | |Mute (macOS) |
+|`KC__VOLUP` | |Volume Up (macOS) |
+|`KC__VOLDOWN` | |Volume Down (macOS) |
+|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute (Windows/macOS/Linux) |
+|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up (Windows/macOS/Linux) |
+|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down (Windows/macOS/Linux) |
+|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track (Windows) |
+|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track (Windows) |
+|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) |
+|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) |
+|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |
+|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
+|`KC_MEDIA_SELECT` |`KC_MSEL` | |
+|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
+|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
+|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
+|`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` |
+|`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 |
+|`KC_NO` | |Ignore this key (NOOP) |
+|`KC_TRANSPARENT` |`KC_TRNS` |Use the next lowest non-transparent key |
+
+## [Mouse Keys](feature_mouse_keys.md)
+
+|Key |Aliases |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`|Set mouse acceleration to 0|
+|`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
+|`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
+
+## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
+
+|Key |Aliases |Description |
+|-------------|-----------|---------------------------------------------------------------------|
+|`RESET` | |Put the keyboard into DFU mode for flashing |
+|`DEBUG` | |Toggle debug mode |
+|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>&#96;</code> when pressed with Shift or GUI|
+|`KC_LSPO` | |Left Shift when held, `(` when tapped |
+|`KC_RSPC` | |Right Shift when held, `)` when tapped |
+|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
+|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
+|`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
+|`M(n)` | |Call macro `n` |
+|`MACROTAP(n)`| |Macro-tap `n` idk FIXME |
+
+## [Bootmagic](feature_bootmagic.md)
+
+|Key |Aliases |Description |
+|----------------------------------|---------|------------------------------------|
+|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Caps Lock and Left Control |
+|`MAGIC_CAPSLOCK_TO_CONTROL` | |Treat Caps Lock as Control |
+|`MAGIC_SWAP_LALT_LGUI` | |Swap Left Alt and GUI |
+|`MAGIC_SWAP_RALT_RGUI` | |Swap Right Alt and GUI |
+|`MAGIC_NO_GUI` | |Disable the GUI key |
+|`MAGIC_SWAP_GRAVE_ESC` | |Swap <code>&#96;</code> and Escape |
+|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
+|`MAGIC_HOST_NKRO` | |Force NKRO on |
+|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides |
+|`MAGIC_UNSWAP_CONTROL_CAPSLOCK` | |Unswap Caps Lock and Left Control |
+|`MAGIC_UNCAPSLOCK_TO_CONTROL` | |Stop treating Caps Lock as Control |
+|`MAGIC_UNSWAP_LALT_LGUI` | |Unswap Left Alt and GUI |
+|`MAGIC_UNSWAP_RALT_RGUI` | |Unswap Right Alt and GUI |
+|`MAGIC_UNNO_GUI` | |Enable the GUI key |
+|`MAGIC_UNSWAP_GRAVE_ESC` | |Unswap <code>&#96;</code> and Escape|
+|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
+|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
+|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
+|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
+
+## [Backlighting](feature_backlight.md)
+
+|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_ON` |An alias for `BL_9` |
+|`BL_OFF` |An alias for `BL_0` |
+|`BL_INC` |Increase backlight level |
+|`BL_DEC` |Decrease backlight level |
+
+## [RGB Lighting](feature_rgblight.md)
+
+|Key |Aliases |Description |
+|-------------------|----------|--------------------------------------------------------------------|
+|`RGB_TOG` | |Toggle RGB lighting on or off |
+|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
+|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
+|`RGB_HUI` | |Increase hue |
+|`RGB_HUD` | |Decrease hue |
+|`RGB_SAI` | |Increase saturation |
+|`RGB_SAD` | |Decrease saturation |
+|`RGB_VAI` | |Increase value (brightness) |
+|`RGB_VAD` | |Decrease value (brightness) |
+|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
+|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
+|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
+|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
+|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
+|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
+|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
+|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
+
+## [Thermal Printer](feature_thermal_printer.md)
+
+|Key |Description |
+|-----------|----------------------------------------|
+|`PRINT_ON` |Start printing everything the user types|
+|`PRINT_OFF`|Stop printing everything the user types |
+
+## [Bluetooth](feature_bluetooth.md)
+
+|Key |Description |
+|----------|----------------------------------------------|
+|`OUT_AUTO`|Automatically switch between USB and Bluetooth|
+|`OUT_USB` |USB only |
+|`OUT_BT` |Bluetooth only |
+
+## [Modifiers](quantum_keycodes.md#modifiers)
+
+|Key |Aliases |Description |
+|----------|----------|----------------------------------------------------|
+|`KC_HYPR` | |Hold Left Control, Shift, Alt and GUI |
+|`KC_MEH` | |Hold Left Control, Shift and Alt |
+|`LCTL(kc)`| |Hold Left Control and press `kc` |
+|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
+|`LALT(kc)`| |Hold Left Alt and press `kc` |
+|`LGUI(kc)`| |Hold Left GUI and press `kc` |
+|`RCTL(kc)`| |Hold Right Control and press `kc` |
+|`RSFT(kc)`| |Hold Right Shift and press `kc` |
+|`RALT(kc)`| |Hold Right Alt and press `kc` |
+|`RGUI(kc)`| |Hold Right GUI and press `kc` |
+|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
+|`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|
diff --git a/docs/keycodes_basic.md b/docs/keycodes_basic.md
index 99cda60193..d4719ed4d4 100644
--- a/docs/keycodes_basic.md
+++ b/docs/keycodes_basic.md
@@ -1,192 +1,230 @@
# 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:
-
-* `KC_NO` = 0 for no action
-* `KC_TRNS` = 1 for layer transparency
-* internal special keycodes in the `0xA5-DF` range (tmk heritage).
+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.
## Letters and Numbers
-|KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8|
-|----|----|----|----|----|----|----|----|
-|KC_9|KC_0|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|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|
-|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L|KC_M|KC_N|
-|KC_O|KC_P|KC_Q|KC_R|KC_S|KC_T|KC_U|KC_V|
-|KC_W|KC_X|KC_Y|KC_Z|||||
+|Key |Description|
+|------|-----------|
+|`KC_A`|`a` and `A`|
+|`KC_B`|`b` and `B`|
+|`KC_C`|`c` and `C`|
+|`KC_D`|`d` and `D`|
+|`KC_E`|`e` and `E`|
+|`KC_F`|`f` and `F`|
+|`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
-|Long Name|Short Name|Description|
-|---------|----------|-----------|
-|KC_ENTER|KC_ENT|`Return (ENTER)`|
-|KC_ESCAPE|KC_ESC|`ESCAPE`|
-|KC_BSPACE|KC_BSPC|`DELETE (Backspace)`|
-|KC_TAB||`Tab`|
-|KC_SPACE|KC_SPC|Spacebar|
-|KC_MINUS|KC_MINS|`-` and `_`|
-|KC_EQUAL|KC_EQL|`=` and `+`|
-|KC_LBRACKET|KC_LBRC|`[` and `{`|
-|KC_RBRACKET|KC_RBRC|`]` and `}`|
-|KC_BSLASH|KC_BSLS|`\` and <code>&#124;</code> |
-|KC_NONUS_HASH|KC_NUHS|Non-US `#` and `~`|
-|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and <code>&#124;</code> |
-|KC_INT1|KC_RO|JIS `\` and <code>&#124;</code> |
-|KC_INT2|KC_KANA|International216|
-|KC_INT3|KC_JYEN|Yen Symbol (`¥`)|
-|KC_SCOLON|KC_SCLN|`;` and `:`|
-|KC_QUOTE|KC_QUOT|`‘` and `“`|
-|KC_GRAVE|KC_GRV|Grave Accent and Tilde|
-|KC_COMMA|KC_COMM|`,` and `<`|
-|KC_DOT||`.` and `>`|
-|KC_SLASH|KC_SLSH|`/` and `?`|
-|KC_CAPSLOCK|KC_CAPS|Caps Lock|
+|Key |Aliases |Description |
+|-----------------|---------|----------------------------------|
+|`KC_ENTER` |`KC_ENT` |Return (Enter) |
+|`KC_ESCAPE` |`KC_ESC` |Escape |
+|`KC_BSPACE` |`KC_BSPC`|Delete (Backspace) |
+|`KC_TAB` | |Tab |
+|`KC_SPACE` |`KC_SPC` |Spacebar |
+|`KC_MINUS` |`KC_MINS`|`-` and `_` |
+|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
+|`KC_LBRACKET` |`KC_LBRC`|`[` and `{` |
+|`KC_RBRACKET` |`KC_RBRC`|`]` and `}` |
+|`KC_BSLASH` |`KC_BSLS`|`\` and <code>&#124;</code> |
+|`KC_NONUS_HASH` |`KC_NUHS`|Non-US `#` and `~` |
+|`KC_NONUS_BSLASH`|`KC_NUBS`|Non-US `\` and <code>&#124;</code>|
+|`KC_INT1` |`KC_RO` |JIS `\` and <code>&#124;</code> |
+|`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana |
+|`KC_INT3` |`KC_JYEN`|JIS `¥` |
+|`KC_SCOLON` |`KC_SCLN`|`;` and `:` |
+|`KC_QUOTE` |`KC_QUOT`|`'` and `"` |
+|`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~` |
+|`KC_COMMA` |`KC_COMM`|`,` and `<` |
+|`KC_DOT` | |`.` and `>` |
+|`KC_SLASH` |`KC_SLSH`|`/` and `?` |
+|`KC_CAPSLOCK` |`KC_CAPS`|Caps Lock |
## Modifiers
-|Long Name|Short Name|Description|
-|---------|----------|-----------|
-|KC_LCTRL|KC_LCTL|LeftControl|
-|KC_LSHIFT|KC_LSFT|LeftShift|
-|KC_LALT||LeftAlt|
-|KC_LGUI||Left GUI(Windows/Apple/Meta key)|
-|KC_RCTRL|KC_RCTL|RightControl|
-|KC_RSHIFT|KC_RSFT|RightShift|
-|KC_RALT||RightAlt|
-|KC_RGUI||Right GUI(Windows/Apple/Meta key)|
-|KC_LOCKING_CAPS|KC_LCAP|Locking Caps Lock|
-|KC_LOCKING_NUM|KC_LNUM|Locking Num Lock|
-|KC_LOCKING_SCROLL|KC_LSCR|Locking Scroll Lock|
-|KC_INT4|KC_HENK|JIS Henken|
-|KC_INT5|KC_MHEN|JIS Muhenken|
+|Key |Aliases |Description |
+|-------------------|---------|------------------------------------|
+|`KC_LCTRL` |`KC_LCTL`|Left Control |
+|`KC_LSHIFT` |`KC_LSFT`|Left Shift |
+|`KC_LALT` | |Left Alt |
+|`KC_LGUI` | |Left GUI (Windows/Command/Meta key) |
+|`KC_RCTRL` |`KC_RCTL`|Right Control |
+|`KC_RSHIFT` |`KC_RSFT`|Right Shift |
+|`KC_RALT` | |Right Alt |
+|`KC_RGUI` | |Right GUI (Windows/Command/Meta key)|
+|`KC_LOCKING_CAPS` |`KC_LCAP`|Locking Caps Lock |
+|`KC_LOCKING_NUM` |`KC_LNUM`|Locking Num Lock |
+|`KC_LOCKING_SCROLL`|`KC_LSCR`|Locking Scroll Lock |
+|`KC_INT4` |`KC_HENK`|JIS Henkan |
+|`KC_INT5` |`KC_MHEN`|JIS Muhenkan |
## Commands
-|Long Name|Short Name|Description|
-|---------|----------|-----------|
-|KC_PSCREEN|KC_PSCR|PrintScreen|
-|KC_SCROLLLOCK|KC_SLCK|Scroll Lock|
-|KC_PAUSE|KC_PAUS|Pause|
-|KC_INSERT|KC_INS|Insert|
-|KC_HOME||Home|
-|KC_PGUP||PageUp|
-|KC_DELETE|KC_DEL|Delete Forward|
-|KC_END||End|
-|KC_PGDOWN|KC_PGDN|PageDown|
-|KC_RIGHT|KC_RGHT|RightArrow|
-|KC_LEFT||LeftArrow|
-|KC_DOWN||DownArrow|
-|KC_UP||UpArrow|
-|KC_APPLICATION|KC_APP|Application|
-|KC_POWER||Power|
-|KC_EXECUTE||Execute|
-|KC_HELP||Help|
-|KC_MENU||Menu|
-|KC_SELECT||Select|
-|KC_AGAIN||Again|
-|KC_UNDO||Undo|
-|KC_CUT||Cut|
-|KC_COPY||Copy|
-|KC_PASTE||Paste|
-|KC_FIND||Find|
-|KC_ALT_ERASE||Alternate Erase|
-|KC_SYSREQ||SysReq/Attention|
-|KC_CANCEL||Cancel|
-|KC_CLEAR||Clear|
-|KC_PRIOR||Prior|
-|KC_RETURN||Return|
-|KC_SEPARATOR||Separator|
-|KC_OUT||Out|
-|KC_OPER||Oper|
-|KC_CLEAR_AGAIN||Clear/Again|
-|KC_CRSEL||CrSel/Props|
-|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||
+|Key |Aliases |Description |
+|------------------|---------|------------------------------|
+|`KC_PSCREEN` |`KC_PSCR`|Print Screen |
+|`KC_SCROLLLOCK` |`KC_SLCK`|Scroll Lock |
+|`KC_PAUSE` |`KC_PAUS`|Pause |
+|`KC_INSERT` |`KC_INS` |Insert |
+|`KC_HOME` | |Home |
+|`KC_PGUP` | |Page Up |
+|`KC_DELETE` |`KC_DEL` |Forward Delete |
+|`KC_END` | |End |
+|`KC_PGDOWN` |`KC_PGDN`|Page Down |
+|`KC_RIGHT` |`KC_RGHT`|Right Arrow |
+|`KC_LEFT` | |Left Arrow |
+|`KC_DOWN` | |Down Arrow |
+|`KC_UP` | |Up Arrow |
+|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key)|
+|`KC_POWER` | |Power |
+|`KC_EXECUTE` | |Execute |
+|`KC_HELP` | |Help |
+|`KC_MENU` | |Menu |
+|`KC_SELECT` | |Select |
+|`KC_AGAIN` | |Again |
+|`KC_UNDO` | |Undo |
+|`KC_CUT` | |Cut |
+|`KC_COPY` | |Copy |
+|`KC_PASTE` | |Paste |
+|`KC_FIND` | |Find |
+|`KC_ALT_ERASE` | |Alternate Erase |
+|`KC_SYSREQ` | |SysReq/Attention |
+|`KC_CANCEL` | |Cancel |
+|`KC_CLEAR` | |Clear |
+|`KC_PRIOR` | |Prior |
+|`KC_RETURN` | |Return |
+|`KC_SEPARATOR` | |Separator |
+|`KC_OUT` | |Out |
+|`KC_OPER` | |Oper |
+|`KC_CLEAR_AGAIN` | |Clear/Again |
+|`KC_CRSEL` | |CrSel/Props |
+|`KC_EXSEL` | |ExSel |
## 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.
-
-|Long Name|Short Name|Description|
-|---------|----------|-----------|
-|KC_STOP||Stop|
-|KC__MUTE||Mute (macOS)|
-|KC__VOLUP||Volume Up (macOS)|
-|KC__VOLDOWN||Volume Down (macOS)|
-|KC_AUDIO_MUTE|KC_MUTE|Mute (Windows/macOS/Linux)|
-|KC_AUDIO_VOL_UP|KC_VOLU|Volume Up (Windows/macOS/Linux)|
-|KC_AUDIO_VOL_DOWN|KC_VOLD|Volume Down (Windows/macOS/Linux)|
-|KC_MEDIA_NEXT_TRACK|KC_MNXT|Next Track (Windows)|
-|KC_MEDIA_PREV_TRACK|KC_MPRV|Previous Track (Windows)|
-|KC_MEDIA_FAST_FORWARD|KC_MFFD|Next Track (macOS)|
-|KC_MEDIA_REWIND|KC_MRWD|Previous Track (macOS)|
-|KC_MEDIA_STOP|KC_MSTP||
-|KC_MEDIA_PLAY_PAUSE|KC_MPLY||
-|KC_MEDIA_SELECT|KC_MSEL||
-
-## Numpad
-
-|Long Name|Short Name|Description|
-|---------|----------|-----------|
-|KC_NUMLOCK|KC_NLCK|Keypad Num Lock and Clear|
-|KC_KP_SLASH|KC_PSLS|Keypad /|
-|KC_KP_ASTERISK|KC_PAST|Keypad *|
-|KC_KP_MINUS|KC_PMNS|Keypad -|
-|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 PageDn|
-|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 PageUp|
-|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 Comma|
-|KC_KP_EQUAL_AS400||Keypad Equal Sign|
+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.
+
+Windows and macOS use different keycodes for "next track" and "previous track". Make sure you choose the keycode that corresponds to your OS.
+
+|Key |Aliases |Description |
+|-----------------------|---------|---------------------------------|
+|`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_STOP` | |Stop |
+|`KC_WWW_FAVORITES` |`KC_WFAV`| |
+|`KC__MUTE` | |Mute (macOS) |
+|`KC__VOLUP` | |Volume Up (macOS) |
+|`KC__VOLDOWN` | |Volume Down (macOS) |
+|`KC_AUDIO_MUTE` |`KC_MUTE`|Mute (Windows/macOS/Linux) |
+|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up (Windows/macOS/Linux) |
+|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down (Windows/macOS/Linux)|
+|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track (Windows) |
+|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track (Windows) |
+|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) |
+|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) |
+|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track |
+|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
+|`KC_MEDIA_SELECT` |`KC_MSEL`| |
+
+## Number Pad
+
+|Key |Aliases |Description |
+|-------------------|---------|------------------------------|
+|`KC_NUMLOCK` |`KC_NLCK`|Keypad Num Lock and Clear |
+|`KC_KP_SLASH` |`KC_PSLS`|Keypad `/` |
+|`KC_KP_ASTERISK` |`KC_PAST`|Keypad `*` |
+|`KC_KP_MINUS` |`KC_PMNS`|Keypad `-` |
+|`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
-|Long Name|Short Name|Description|
-|---------|----------|-----------|
-|KC_NO||Ignore this key. (NOOP) |
-
-## Mousekey
-
-|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|
+In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK.
+
+|Key |Aliases |Description |
+|----------------|---------|---------------------------------------|
+|`KC_NO` | |Ignore this key (NOOP) |
+|`KC_TRANSPARENT`|`KC_TRNS`|Use the next lowest non-transparent key|
diff --git a/docs/keycodes_us_ansi_shifted.md b/docs/keycodes_us_ansi_shifted.md
index d3020bd2a4..53b4cad594 100644
--- a/docs/keycodes_us_ansi_shifted.md
+++ b/docs/keycodes_us_ansi_shifted.md
@@ -6,26 +6,26 @@ It's important to remember that all of these keycodes send a left shift - this m
## US ANSI Shifted Keycodes
-|Short Name|Long Name|Description|
-|----------|---------|-----------|
-|`KC_TILD`|`KC_TILDE`|tilde `~`|
-|`KC_EXLM`|`KC_EXCLAIM`|exclamation mark `!`|
-|`KC_AT`||at sign `@`|
-|`KC_HASH`||hash sign `#`|
-|`KC_DLR`|`KC_DOLLAR`|dollar sign `$`|
-|`KC_PERC`|`KC_PERCENT`|percent sign `%`|
-|`KC_CIRC`|`KC_CIRCUMFLEX`|circumflex `^`|
-|`KC_AMPR`|`KC_AMPERSAND`|ampersand `&`|
-|`KC_ASTR`|`KC_ASTERISK`|asterisk `*`|
-|`KC_LPRN`|`KC_LEFT_PAREN`|left parenthesis `(`|
-|`KC_RPRN`|`KC_RIGHT_PAREN`|right parenthesis `)`|
-|`KC_UNDS`|`KC_UNDERSCORE`|underscore `_`|
-|`KC_PLUS`||plus sign `+`|
-|`KC_LCBR`|`KC_LEFT_CURLY_BRACE`|left curly brace `{`|
-|`KC_RCBR`|`KC_RIGHT_CURLY_BRACE`|right curly brace `}`|
-|`KC_LT`/`KC_LABK`|`KC_LEFT_ANGLE_BRACKET`|left angle bracket `<`|
-|`KC_GT`/`KC_RABK`|`KC_RIGHT_ANGLE_BRACKET`|right angle bracket `>`|
-|`KC_COLN`|`KC_COLON`|colon `:`|
-|`KC_PIPE`||pipe `\|`|
-|`KC_QUES`|`KC_QUESTION`|question mark `?`|
-|`KC_DQT`/`KC_DQUO`|`KC_DOUBLE_QUOTE`|double quote `"`|
+|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` |`?` |
diff --git a/docs/quantum_keycodes.md b/docs/quantum_keycodes.md
index a2fc16ef7d..4b7ee93846 100644
--- a/docs/quantum_keycodes.md
+++ b/docs/quantum_keycodes.md
@@ -8,15 +8,15 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
## QMK Keycodes
-|Name|Description|
-|----|-----------|
-|`RESET`|Put the keyboard into DFU mode for flashing|
-|`DEBUG`|Toggles debug mode|
-|`KC_GESC`/`GRAVE_ESC`|Acts as escape when pressed normally but when pressed with Shift or GUI will send a ```|
-|`KC_LSPO`|Left shift when held, open paranthesis when tapped|
-|`KC_RSPC`|Right shift when held, close paranthesis when tapped|
-|`KC_LEAD`|The [leader key](feature_leader_key.md)|
-|`KC_LOCK`|The [lock key](feature_key_lock.md)|
-|`FUNC(n)`/`F(n)`|Call `fn_action(n)` (deprecated)|
-|`M(n)`|to call macro n|
-|`MACROTAP(n)`|to macro-tap n idk FIXME|
+|Key |Aliases |Description |
+|-------------|-----------|---------------------------------------------------------------------|
+|`RESET` | |Put the keyboard into DFU mode for flashing |
+|`DEBUG` | |Toggle debug mode |
+|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>&#96;</code> when pressed with Shift or GUI|
+|`KC_LSPO` | |Left Shift when held, `(` when tapped |
+|`KC_RSPC` | |Right Shift when held, `)` when tapped |
+|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
+|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
+|`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
+|`M(n)` | |Call macro `n` |
+|`MACROTAP(n)`| |Macro-tap `n` idk FIXME |