Files
zsa_qmk_firmware/docs/keycodes.md
skullydazed 67cc5cebc0 Restructure the hardware and feature docs to make things easier to find (#1888)
* fix #1313 by documenting more config.h options

* Clean up and organize documentation
2017-10-24 20:34:28 -07: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](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)|Callfn_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 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](quantum_keycodes.md#modifiers)||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)](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)|ifUNICODE_ENABLE, this will send characters up to0x7FFF| |[X(n)](feature_unicode.md)||ifUNICODEMAP_ENABLE`, also sends unicode via a different method