qmk_firmware/Keycodes.md
Erez Zukerman be4ece0f3e grrr
2017-05-23 23:05:19 -04:00

7.3 KiB
Raw Blame History

Overview

When defining a keymap each key needs a valid key definition.

This page documents the symbols that correspond to keycodes that are available to you in QMK.

To customize your board, they can be used by themselves or as action codes in combination with one of the many C macros.

The source of truth for these codes is tmk_core/common/keycode.h file in the qmk source code.

The Keycodes

Keycodes in QMK are based on HID Usage Keyboard/Keypad Page(0x07) 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).

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

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 |
KC_NONUS_HASH KC_NUHS Non-US # and ~
KC_NONUS_BSLASH KC_NUBS Non-US \ and |
KC_INT1 KC_RO JIS \ and |
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

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 Locking Caps Lock12
KC_LOCKING_NUM Locking Num Lock12
KC_LOCKING_SCROLL Locking Scroll Lock12
KC_INT4 KC_HENK JIS Henken
KC_INT5 KC_MHEN JIS Muhenken

Commands

Long Name Short Name Description
KC_PSCREEN KC_PSCR PrintScreen1
KC_SCKLOCK KC_SLCK Scroll Lock11
KC_PAUSE KC_PAUS Pause1
KC_INSERT KC_INS Insert1
KC_HOME Home1
KC_PGUP PageUp1
KC_DELETE KC_DEL Delete Forward
KC_END End1
KC_PGDOWN KC_PGDN PageDown1
KC_RIGHT KC_RGHT RightArrow1
KC_LEFT LeftArrow1
KC_DOWN DownArrow1
KC_UP UpArrow1
KC_APPLICATION KC_APP Application10
KC_POWER Power9
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 Erase7
KC_SYSREQ SysReq/Attention1
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

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 Clear11
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 ENTER5
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 Comma27
KC_KP_EQUAL_AS400 Keypad Equal Sign29

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

Magic Keys

The following keys can be used to turn on and off various "Magic" features. These include Boot Magic (holding certain keys down while plugging the keyboard in) and the Magic Key.

Long Name Short Name Description
MAGIC_SWAP_CONTROL_CAPSLOCK Swap Capslock and Control
MAGIC_CAPSLOCK_TO_CONTROL Change Capslock to Control
MAGIC_SWAP_ALT_GUI Swap ALT and GUI
MAGIC_SWAP_LALT_LGUI Swap LALT and LGUI
MAGIC_SWAP_RALT_RGUI Swap RALT and RGUI
MAGIC_NO_GUI Disable off the GUI key
MAGIC_SWAP_GRAVE_ESC Swap the GRAVE (~ `) and Esc keys
MAGIC_SWAP_BACKSLASH_BACKSPACE Swap Backslash and Backspace
MAGIC_UNSWAP_CONTROL_CAPSLOCK Disable the Control/Caps Swap
MAGIC_UNCAPSLOCK_TO_CONTROL Turn Capslock back into Capslock
MAGIC_UNSWAP_ALT_GUI Turn the ALT/GUI swap off
MAGIC_UNSWAP_LALT_LGUI Turn the LALT/LGUI swap off
MAGIC_UNSWAP_RALT_RGUI Turn the RALT/RGUI swap off
MAGIC_UNNO_GUI Enable the GUI key
MAGIC_UNSWAP_GRAVE_ESC Turn the GRAVE/ESC swap off
MAGIC_UNSWAP_BACKSLASH_BACKSPACE Turn the Backslash/Backspace swap off
MAGIC_HOST_NKRO Turn NKRO on
MAGIC_UNHOST_NKRO Turn NKRO off
MAGIC_TOGGLE_NKRO Toggle NKRO on or off