qmk-firmware/docs/keycodes.md
surlyjake 957e44231a updated keycodes media descriptions
Platform compatibility descriptions added for mute, volume up/down
2017-09-25 13:07:46 -04:00

15 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. This is a reference only. Where possible keys link to the page documenting their functionality.

Keycode Index

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 |
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
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 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
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 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
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
FUNC(n) F(n) Call fn_action(n)
M(n) to call macro n
MACROTAP(n) to macro-tap n idk FIXME`
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 backslack 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
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.
RGB_TOG toggle on/off
RGB_MOD cycle through modes
RGB_HUI hue increase
RGB_HUD hue decrease
RGB_SAI saturation increase
RGB_SAD saturation decrease
RGB_VAI value increase
RGB_VAD value decrease
PRINT_ON Start printing everything the user types
PRINT_OFF Stop printing everything the user types
OUT_AUTO auto mode
OUT_USB usb only
OUT_BT bluetooth (when BLUETOOTH_ENABLE)
KC_HYPR Hold down LCTL + LSFT + LALT + LGUI`
KC_MEH Hold down LCTL + LSFT + LALT`
LCTL(kc) LCTL + kc
LSFT(kc) S(kc) LSFT + kc
LALT(kc) LALT + kc
LGUI(kc) LGUI + kc
RCTL(kc) RCTL + kc
RSFT(kc) RSFT + kc
RALT(kc) RALT + kc
RGUI(kc) RGUI + kc
HYPR(kc) LCTL + LSFT + LALT + LGUI + kc
MEH(kc) LCTL + LSFT + LALT + kc
LCAG(kc) LCTL + LALT + LGUI + kc
ALTG(kc) RCTL + RALT + kc
SCMD(kc) SWIN(kc) LGUI + LSFT + kc
LCA(kc) LCTL + LALT + kc
CTL_T(kc) LCTL_T(kc) LCTL when held, kc when tapped
RCTL_T(kc) [RCTL when held, kc when tapped
SFT_T(kc) LSFT_T(kc) LSFT when held, kc when tapped
RSFT_T(kc) [RSFT when held, kc when tapped
ALT_T(kc) LALT_T(kc) LALT when held, kc when tapped
RALT_T(kc) ALGR_T(kc) RALT when held, kc when tapped
GUI_T(kc) LGUI_T(kc) LGUI when held, kc when tapped
RGUI_T(kc) RGUI when held, kc when tapped
C_S_T(kc) LCTL + LSFT when held, kc when tapped
MEH_T(kc) LCTL + LSFT + LALT when held, kc when tapped
LCAG_T(kc) LCTL + LALT + LGUI when held, kc when tapped
RCAG_T(kc) RCTL + RALT + RGUI when held, kc when tapped
ALL_T(kc) LCTL + LSFT + LALT + LGUI when held, kc when tapped more info
SCMD_T(kc) SWIN_T(kc) LGUI + LSFT when held, kc when tapped
LCA_T(kc) LCTL + LALT when held, kc when tapped
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 "
LT(layer, kc) turn on layer (0-15) when held, kc (basic keycodes) when tapped
TO(layer) turn on layer when depressed
MO(layer) momentarily turn on layer when depressed (requires KC_TRNS on destination layer)
DF(layer) sets the base (default) layer
TG(layer) toggle layer on/off
TT(layer) tap toggle? idk FIXME`
OSM(mod) hold mod for one keypress
OSL(layer) switch to layer for one keypress
UNICODE(n) UC(n) if UNICODE_ENABLE, this will send characters up to 0x7FFF
X(n) if UNICODEMAP_ENABLE, also sends unicode via a different method