-# 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:
-
-* `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)](https://www.usb.org/sites/default/files/documents/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` |F1 |
+|`KC_F2` |F2 |
+|`KC_F3` |F3 |
+|`KC_F4` |F4 |
+|`KC_F5` |F5 |
+|`KC_F6` |F6 |
+|`KC_F7` |F7 |
+|`KC_F8` |F8 |
+|`KC_F9` |F9 |
+|`KC_F10`|F10 |
+|`KC_F11`|F11 |
+|`KC_F12`|F12 |
+|`KC_F13`|F13 |
+|`KC_F14`|F14 |
+|`KC_F15`|F15 |
+|`KC_F16`|F16 |
+|`KC_F17`|F17 |
+|`KC_F18`|F18 |
+|`KC_F19`|F19 |
+|`KC_F20`|F20 |
+|`KC_F21`|F21 |
+|`KC_F22`|F22 |
+|`KC_F23`|F23 |
+|`KC_F24`|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>|</code> |
-|KC_NONUS_HASH|KC_NUHS|Non-US `#` and `~`|
-|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and <code>|</code> |
-|KC_INT1|KC_RO|JIS `\` and <code>|</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>|</code> |
+|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |
+|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |
+|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |
+|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK`|<code>`</code> and `~`, JIS Zenkaku/Hankaku|
+|`KC_COMMA` |`KC_COMM` |`,` and `<` |
+|`KC_DOT` | |`.` and `>` |
+|`KC_SLASH` |`KC_SLSH` |`/` and `?` |
+|`KC_NONUS_BSLASH`|`KC_NUBS` |Non-US `\` and <code>|</code> |
+
+## Lock Keys
+
+|Key |Aliases |Description |
+|-------------------|--------------------|-------------------------|
+|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS`|Caps Lock |
+|`KC_SCROLLLOCK` |`KC_SLCK` |Scroll Lock |
+|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear|
+|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |
+|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |
+|`KC_LOCKING_SCROLL`|`KC_LSCR` |Locking Scroll 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` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
+|`KC_RCTRL` |`KC_RCTL` |Right Control |
+|`KC_RSHIFT`|`KC_RSFT` |Right Shift |
+|`KC_RALT` |`KC_ALGR` |Right Alt (AltGr) |
+|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)|
+
+## International
+
+|Key |Aliases |Description |
+|----------|---------|-------------------------------|
+|`KC_INT1` |`KC_RO` |JIS `\` and `_` |
+|`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana |
+|`KC_INT3` |`KC_JYEN`|JIS `¥` and <code>|</code>|
+|`KC_INT4` |`KC_HENK`|JIS Henkan |
+|`KC_INT5` |`KC_MHEN`|JIS Muhenkan |
+|`KC_INT6` | |JIS Numpad `,` |
+|`KC_INT7` | |International 7 |
+|`KC_INT8` | |International 8 |
+|`KC_INT9` | |International 9 |
+|`KC_LANG1`|`KC_HAEN`|Hangul/English |
+|`KC_LANG2`|`KC_HANJ`|Hanja |
+|`KC_LANG3`| |JIS Katakana |
+|`KC_LANG4`| |JIS Hiragana |
+|`KC_LANG5`| |JIS Zenkaku/Hankaku |
+|`KC_LANG6`| |Language 6 |
+|`KC_LANG7`| |Language 7 |
+|`KC_LANG8`| |Language 8 |
+|`KC_LANG9`| |Language 9 |
## 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_PAUSE` |`KC_PAUS`, `KC_BRK`|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` | |System Power (macOS/Linux) |
+|`KC_EXECUTE` |`KC_EXEC` |Execute |
+|`KC_HELP` | |Help |
+|`KC_MENU` | |Menu |
+|`KC_SELECT` |`KC_SLCT` |Select |
+|`KC_STOP` | |Stop |
+|`KC_AGAIN` |`KC_AGIN` |Again |
+|`KC_UNDO` | |Undo |
+|`KC_CUT` | |Cut |
+|`KC_COPY` | |Copy |
+|`KC_PASTE` |`KC_PSTE` |Paste |
+|`KC_FIND` | |Find |
+|`KC__MUTE` | |Mute (macOS) |
+|`KC__VOLUP` | |Volume Up (macOS) |
+|`KC__VOLDOWN` | |Volume Down (macOS) |
+|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase |
+|`KC_SYSREQ` | |SysReq/Attention |
+|`KC_CANCEL` | |Cancel |
+|`KC_CLEAR` |`KC_CLR` |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|
-|KC__VOLUP||Volume Up|
-|KC__VOLDOWN||Volume Down|
-|KC_AUDIO_MUTE|KC_MUTE||
-|KC_AUDIO_VOL_UP|KC_VOLU||
-|KC_AUDIO_VOL_DOWN|KC_VOLD||
-|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_AUDIO_MUTE` |`KC_MUTE`|Mute |
+|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up |
+|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down |
+|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track (Windows) |
+|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track (Windows) |
+|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track (Windows) |
+|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
+|`KC_MEDIA_SELECT` |`KC_MSEL`|Launch Media Player (Windows)|
+|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject (macOS) |
+|`KC_MAIL` | |Launch Mail (Windows) |
+|`KC_CALCULATOR` |`KC_CALC`|Launch Calculator (Windows) |
+|`KC_MY_COMPUTER` |`KC_MYCM`|Launch My Computer (Windows) |
+|`KC_WWW_SEARCH` |`KC_WSCH`|Browser Search (Windows) |
+|`KC_WWW_HOME` |`KC_WHOM`|Browser Home (Windows) |
+|`KC_WWW_BACK` |`KC_WBAK`|Browser Back (Windows) |
+|`KC_WWW_FORWARD` |`KC_WFWD`|Browser Forward (Windows) |
+|`KC_WWW_STOP` |`KC_WSTP`|Browser Stop (Windows) |
+|`KC_WWW_REFRESH` |`KC_WREF`|Browser Refresh (Windows) |
+|`KC_WWW_FAVORITES` |`KC_WFAV`|Browser Favorites (Windows) |
+|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) |
+|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) |
+|`KC_BRIGHTNESS_UP` |`KC_BRIU`|Brightness Up |
+|`KC_BRIGHTNESS_DOWN` |`KC_BRID`|Brightness Down |
+
+## Number Pad
+
+|Key |Aliases |Description |
+|-------------------|---------|------------------------------|
+|`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` |`XXXXXXX` |Ignore this key (NOOP) |
+|`KC_TRANSPARENT`|`KC_TRNS`, `_______`|Use the next lowest non-transparent key|