diff options
author | Ryan <fauxpark@gmail.com> | 2021-11-04 16:22:17 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-03 22:22:17 -0700 |
commit | f529580860cf5a1de4afc10432f218a45daae17a (patch) | |
tree | 1d2fa041174f2586230ab831c05e5b56d8ba4f92 /docs | |
parent | b06d9d822cfb72e0728b11711a333f2f5d3c631e (diff) | |
download | qmk_firmware-f529580860cf5a1de4afc10432f218a45daae17a.tar.gz qmk_firmware-f529580860cf5a1de4afc10432f218a45daae17a.zip |
Basic keycode overhaul (#14726)
Diffstat (limited to 'docs')
-rw-r--r-- | docs/config_options.md | 2 | ||||
-rw-r--r-- | docs/configurator_default_keymaps.md | 4 | ||||
-rw-r--r-- | docs/faq_keymap.md | 12 | ||||
-rw-r--r-- | docs/feature_auto_shift.md | 2 | ||||
-rw-r--r-- | docs/feature_combo.md | 2 | ||||
-rw-r--r-- | docs/feature_grave_esc.md | 2 | ||||
-rw-r--r-- | docs/feature_haptic_feedback.md | 2 | ||||
-rw-r--r-- | docs/feature_key_overrides.md | 6 | ||||
-rw-r--r-- | docs/feature_macros.md | 2 | ||||
-rw-r--r-- | docs/feature_tap_dance.md | 4 | ||||
-rw-r--r-- | docs/feature_wpm.md | 2 | ||||
-rw-r--r-- | docs/keycodes.md | 398 | ||||
-rw-r--r-- | docs/keycodes_basic.md | 200 | ||||
-rw-r--r-- | docs/keymap.md | 4 | ||||
-rw-r--r-- | docs/reference_configurator_support.md | 2 | ||||
-rw-r--r-- | docs/tap_hold.md | 4 | ||||
-rw-r--r-- | docs/understanding_qmk.md | 25 |
17 files changed, 337 insertions, 336 deletions
diff --git a/docs/config_options.md b/docs/config_options.md index cfbe39f0d3..c4e5afb56b 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -206,7 +206,7 @@ If you define these options you will enable the associated feature, which may in * `#define TAP_CODE_DELAY 100` * Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. * `#define TAP_HOLD_CAPS_DELAY 80` - * Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. + * Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPS_LOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. * `#define KEY_OVERRIDE_REPEAT_DELAY 500` * Sets the key repeat interval for [key overrides](feature_key_overrides.md). diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md index c52342cf16..d2b14ec411 100644 --- a/docs/configurator_default_keymaps.md +++ b/docs/configurator_default_keymaps.md @@ -46,7 +46,7 @@ Now that we have the commit hash, we need the keymap (edited for readability): const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, + KC_ESC, 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_PSCR, KC_SCRL, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, @@ -74,7 +74,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the "layout": "LAYOUT_all", "layers": [ [ - "KC_ESC", "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_PSCR", "KC_SLCK", "KC_PAUS", + "KC_ESC", "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_PSCR", "KC_SCRL", "KC_PAUS", "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_BSPC", "KC_INS", "KC_HOME", "KC_PGUP", "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL", "KC_END", "KC_PGDN", "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md index dbeadba710..01ded4f231 100644 --- a/docs/faq_keymap.md +++ b/docs/faq_keymap.md @@ -19,7 +19,7 @@ There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JI Sometimes, for readability's sake, it's useful to define custom names for some keycodes. People often define custom names using `#define`. For example: ```c -#define FN_CAPS LT(_FL, KC_CAPSLOCK) +#define FN_CAPS LT(_FL, KC_CAPS) #define ALT_TAB LALT(KC_TAB) ``` @@ -38,8 +38,8 @@ As a quick fix try holding down `Space`+`Backspace` while you plug in your keybo The key found on most modern keyboards that is located between `KC_RGUI` and `KC_RCTL` is actually called `KC_APP`. This is because when that key was invented there was already a key named `MENU` in the relevant standards, so MS chose to call that the `APP` key. -## `KC_SYSREQ` Isn't Working -Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR`) instead of `KC_SYSREQ`. Key combination of 'Alt + Print Screen' is recognized as 'System request'. +## `KC_SYSTEM_REQUEST` Isn't Working +Use keycode for Print Screen (`KC_PRINT_SCREEN`/`KC_PSCR`) instead of `KC_SYSTEM_REQUEST`. Key combination of 'Alt + Print Screen' is recognized as 'System request'. See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and * https://en.wikipedia.org/wiki/Magic_SysRq_key @@ -47,7 +47,7 @@ See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and ## Power Keys Aren't Working -Somewhat confusingly, there are two "Power" keycodes in QMK: `KC_POWER` in the Keyboard/Keypad HID usage page, and `KC_SYSTEM_POWER` (or `KC_PWR`) in the Consumer page. +Somewhat confusingly, there are two "Power" keycodes in QMK: `KC_KB_POWER` in the Keyboard/Keypad HID usage page, and `KC_SYSTEM_POWER` (or `KC_PWR`) in the Consumer page. The former is only recognized on macOS, while the latter, `KC_SLEP` and `KC_WAKE` are supported by all three major operating systems, so it is recommended to use those instead. Under Windows, these keys take effect immediately, however on macOS they must be held down until a dialog appears. @@ -57,7 +57,7 @@ https://github.com/tmk/tmk_keyboard/issues/67 ## Modifier/Layer Stuck Modifier keys or layers can be stuck unless layer switching is configured properly. -For Modifier keys and layer actions you have to place `KC_TRANS` on same position of destination layer to unregister the modifier key or return to previous layer on release event. +For Modifier keys and layer actions you have to place `KC_TRNS` on same position of destination layer to unregister the modifier key or return to previous layer on release event. * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching * https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 @@ -75,7 +75,7 @@ This feature is for *mechanical lock switch* like [this Alps one](https://deskth After enabling this feature use keycodes `KC_LCAP`, `KC_LNUM` and `KC_LSCR` in your keymap instead. -Old vintage mechanical keyboards occasionally have lock switches but modern ones don't have. ***You don't need this feature in most case and just use keycodes `KC_CAPS`, `KC_NLCK` and `KC_SLCK`.*** +Old vintage mechanical keyboards occasionally have lock switches but modern ones don't have. ***You don't need this feature in most case and just use keycodes `KC_CAPS`, `KC_NUM` and `KC_SCRL`.*** ## Input Special Characters Other Than ASCII like Cédille 'Ç' diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md index ec7eeaaa0c..a54cd79e42 100644 --- a/docs/feature_auto_shift.md +++ b/docs/feature_auto_shift.md @@ -127,7 +127,7 @@ bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { # ifndef NO_AUTO_SHIFT_SPECIAL case KC_TAB: case KC_MINUS ... KC_SLASH: - case KC_NONUS_BSLASH: + case KC_NONUS_BACKSLASH: # endif return true; } diff --git a/docs/feature_combo.md b/docs/feature_combo.md index d98e6f2ac7..b5c22badec 100644 --- a/docs/feature_combo.md +++ b/docs/feature_combo.md @@ -173,7 +173,7 @@ uint16_t get_combo_term(uint16_t index, combo_t *combo) { // i.e. the exact array of keys you defined for the combo. // This can be useful if your combos have a common key and you want to apply the // same combo term for all of them. - if (combo->keys[0] == KC_ENTER) { // if first key in the array is KC_ENTER + if (combo->keys[0] == KC_ENT) { // if first key in the array is Enter return 150; } diff --git a/docs/feature_grave_esc.md b/docs/feature_grave_esc.md index f57c6042ca..f135b1dede 100644 --- a/docs/feature_grave_esc.md +++ b/docs/feature_grave_esc.md @@ -4,7 +4,7 @@ If you're using a 60% keyboard, or any other layout with no F-row, you will have ## Usage -Replace the `KC_GRAVE` key in your keymap (usually to the left of the `1` key) with `KC_GESC`. Most of the time this key will output `KC_ESC` when pressed. However, when Shift or GUI are held down it will output `KC_GRV` instead. +Replace the `KC_GRV` key in your keymap (usually to the left of the `1` key) with `KC_GESC`. Most of the time this key will output `KC_ESC` when pressed. However, when Shift or GUI are held down it will output `KC_GRV` instead. ## What Your OS Sees diff --git a/docs/feature_haptic_feedback.md b/docs/feature_haptic_feedback.md index 159296a297..c8c74cb8f0 100644 --- a/docs/feature_haptic_feedback.md +++ b/docs/feature_haptic_feedback.md @@ -184,7 +184,7 @@ The Haptic Exclusion is implemented as `__attribute__((weak)) bool get_haptic_en ### NO_HAPTIC_MOD With the entry of `#define NO_HAPTIC_MOD` in config.h, the following keys will not trigger feedback: -* Usual modifier keys such as Control/Shift/Alt/Gui (For example `KC_LCTRL`) +* Usual modifier keys such as Control/Shift/Alt/Gui (For example `KC_LCTL`) * `MO()` momentary keys. See also [Layers](feature_layers.md). * `LM()` momentary keys with mod active. * `LT()` layer tap keys, when held to activate a layer. However when tapped, and the key is quickly released, and sends a keycode, haptic feedback is still triggered. diff --git a/docs/feature_key_overrides.md b/docs/feature_key_overrides.md index 98036241e3..2417fcf594 100644 --- a/docs/feature_key_overrides.md +++ b/docs/feature_key_overrides.md @@ -39,7 +39,7 @@ For more customization possibilities, you may directly create a `key_override_t` This shows how the mentioned example of sending `delete` when `shift` + `backspace` are pressed is realized: ```c -const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPACE, KC_DELETE); +const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL); // This globally defines all key overrides to be used const key_override_t **key_overrides = (const key_override_t *[]){ @@ -107,10 +107,10 @@ The [Grave Escape feature](feature_grave_esc.md) is limited in its configurabili ```c // Shift + esc = ~ -const key_override_t tilde_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC, S(KC_GRAVE)); +const key_override_t tilde_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC, S(KC_GRV)); // GUI + esc = ` -const key_override_t grave_esc_override = ko_make_basic(MOD_MASK_GUI, KC_ESC, KC_GRAVE); +const key_override_t grave_esc_override = ko_make_basic(MOD_MASK_GUI, KC_ESC, KC_GRV); const key_override_t **key_overrides = (const key_override_t *[]){ &tilde_esc_override, diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 3660f37755..6807111ca2 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -118,7 +118,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void post_process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_A ... KC_F21: //notice how it skips over F22 - case KC_F23 ... KC_EXSEL: //exsel is the last one before the modifier keys + case KC_F23 ... KC_EXSL: //exsel is the last one before the modifier keys if (!record->event.pressed) { f22_tracker--; if (!f22_tracker) { diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index d1988b9b7d..40f9802db3 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -299,7 +299,7 @@ void x_finished(qk_tap_dance_state_t *state, void *user_data) { xtap_state.state = cur_dance(state); switch (xtap_state.state) { case TD_SINGLE_TAP: register_code(KC_X); break; - case TD_SINGLE_HOLD: register_code(KC_LCTRL); break; + case TD_SINGLE_HOLD: register_code(KC_LCTL); break; case TD_DOUBLE_TAP: register_code(KC_ESC); break; case TD_DOUBLE_HOLD: register_code(KC_LALT); break; // Last case is for fast typing. Assuming your key is `f`: @@ -312,7 +312,7 @@ void x_finished(qk_tap_dance_state_t *state, void *user_data) { void x_reset(qk_tap_dance_state_t *state, void *user_data) { switch (xtap_state.state) { case TD_SINGLE_TAP: unregister_code(KC_X); break; - case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break; case TD_DOUBLE_TAP: unregister_code(KC_ESC); break; case TD_DOUBLE_HOLD: unregister_code(KC_LALT); case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X); diff --git a/docs/feature_wpm.md b/docs/feature_wpm.md index e2fac1ecea..7e465e79b9 100644 --- a/docs/feature_wpm.md +++ b/docs/feature_wpm.md @@ -35,7 +35,7 @@ bool wpm_keycode_user(uint16_t keycode) { } else if (keycode > 0xFF) { keycode = 0; } - if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) { + if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLSH)) { return true; } diff --git a/docs/keycodes.md b/docs/keycodes.md index 8aba3a5129..926d4fdcef 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -8,205 +8,205 @@ This is a reference only. Each group of keys links to the page documenting their See also: [Basic Keycodes](keycodes_basic.md) -|Key |Aliases |Description |Windows |macOS |Linux<sup>1</sup>| -|-----------------------|------------------------------|-----------------------------------------------|-------------|-------------|-----------------| -|`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) |*N/A* |*N/A* |*N/A* | -|`KC_TRANSPARENT` |`KC_TRNS`, `_______` |Use the next lowest non-transparent key |*N/A* |*N/A* |*N/A* | -|`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 `)` |✔ |✔ |✔ | -|`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_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_CAPSLOCK` |`KC_CLCK`, `KC_CAPS` |Caps Lock |✔ |✔ |✔ | -|`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_PSCREEN` |`KC_PSCR` |Print Screen |✔ |✔<sup>2</sup>|✔ | -|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD` |Scroll Lock, Brightness Down (macOS) |✔ |✔<sup>2</sup>|✔ | -|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) |✔ |✔<sup>2</sup>|✔ | -|`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_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_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and `\|` |✔ |✔ |✔ | -|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key) |✔ | |✔ | -|`KC_POWER` | |System Power | |✔<sup>3</sup>|✔ | -|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |✔ |✔ |✔ | -|`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 |✔ | |✔ | -|`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 | |✔ |✔ | -|`KC__VOLUP` | |Volume Up | |✔ |✔ | -|`KC__VOLDOWN` | |Volume Down | |✔ |✔ | -|`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_KP_COMMA` |`KC_PCMM` |Keypad `,` | | |✔ | -|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards | | | | -|`KC_INT1` |`KC_RO` |JIS `\` and `_` |✔ | |✔ | -|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |✔ | |✔ | -|`KC_INT3` |`KC_JYEN` |JIS `¥` and `\|` |✔ | |✔ | -|`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 | | | | -|`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 | | | | -|`KC_LCTRL` |`KC_LCTL` |Left Control |✔ |✔ |✔ | -|`KC_LSHIFT` |`KC_LSFT` |Left Shift |✔ |✔ |✔ | -|`KC_LALT` |`KC_LOPT` |Left Alt (Option) |✔ |✔ |✔ | -|`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_ROPT`, `KC_ALGR` |Right Alt (Option/AltGr) |✔ |✔ |✔ | -|`KC_RGUI` |`KC_RCMD`, `KC_RWIN` |Right GUI (Windows/Command/Meta key) |✔ |✔ |✔ | -|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |✔ |✔<sup>3</sup>|✔ | -|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |✔ |✔<sup>3</sup>|✔ | -|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake | |✔<sup>3</sup>|✔ | -|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute |✔ |✔ |✔ | -|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up |✔ |✔<sup>4</sup>|✔ | -|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down |✔ |✔<sup>4</sup>|✔ | -|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track |✔ |✔<sup>5</sup>|✔ | -|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track |✔ |✔<sup>5</sup>|✔ | -|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |✔ | |✔ | -|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |✔ |✔ |✔ | -|`KC_MEDIA_SELECT` |`KC_MSEL` |Launch Media Player |✔ | |✔ | -|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject | |✔ |✔ | -|`KC_MAIL` | |Launch Mail |✔ | |✔ | -|`KC_CALCULATOR` |`KC_CALC` |Launch Calculator |✔ | |✔ | -|`KC_MY_COMPUTER` |`KC_MYCM` |Launch My Computer |✔ | |✔ | -|`KC_WWW_SEARCH` |`KC_WSCH` |Browser Search |✔ | |✔ | -|`KC_WWW_HOME` |`KC_WHOM` |Browser Home |✔ | |✔ | -|`KC_WWW_BACK` |`KC_WBAK` |Browser Back |✔ | |✔ | -|`KC_WWW_FORWARD` |`KC_WFWD` |Browser Forward |✔ | |✔ | -|`KC_WWW_STOP` |`KC_WSTP` |Browser Stop |✔ | |✔ | -|`KC_WWW_REFRESH` |`KC_WREF` |Browser Refresh |✔ | |✔ | -|`KC_WWW_FAVORITES` |`KC_WFAV` |Browser Favorites |✔ | |✔ | -|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track |✔ |✔<sup>5</sup>|✔ | -|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track |✔<sup>6</sup>|✔<sup>5</sup>|✔ | -|`KC_BRIGHTNESS_UP` |`KC_BRIU` |Brightness Up |✔ |✔ |✔ | -|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |Brightness Down |✔ |✔ |✔ | +|Key |Aliases |Description |Windows |macOS |Linux<sup>1</sup>| +|------------------------|-------------------------------|---------------------------------------|-------------|-------------|-----------------| +|`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) |*N/A* |*N/A* |*N/A* | +|`KC_TRANSPARENT` |`KC_TRNS`, `_______` |Use the next lowest non-transparent key|*N/A* |*N/A* |*N/A* | +|`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 `)` |✔ |✔ |✔ | +|`KC_ENTER` |`KC_ENT` |Return (Enter) |✔ |✔ |✔ | +|`KC_ESCAPE` |`KC_ESC` |Escape |✔ |✔ |✔ | +|`KC_BACKSPACE` |`KC_BSPC` |Delete (Backspace) |✔ |✔ |✔ | +|`KC_TAB` | |Tab |✔ |✔ |✔ | +|`KC_SPACE` |`KC_SPC` |Spacebar |✔ |✔ |✔ | +|`KC_MINUS` |`KC_MINS` |`-` and `_` |✔ |✔ |✔ | +|`KC_EQUAL` |`KC_EQL` |`=` and `+` |✔ |✔ |✔ | +|`KC_LEFT_BRACKET` |`KC_LBRC` |`[` and `{` |✔ |✔ |✔ | +|`KC_RIGHT_BRACKET` |`KC_RBRC` |`]` and `}` |✔ |✔ |✔ | +|`KC_BACKSLASH` |`KC_BSLS` |`\` and `\|` |✔ |✔ |✔ | +|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |✔ |✔ |✔ | +|`KC_SEMICOLON` |`KC_SCLN` |`;` and `:` |✔ |✔ |✔ | +|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |✔ |✔ |✔ | +|`KC_GRAVE` |`KC_GRV` |<code>`</code> and `~` |✔ |✔ |✔ | +|`KC_COMMA` |`KC_COMM` |`,` and `<` |✔ |✔ |✔ | +|`KC_DOT` | |`.` and `>` |✔ |✔ |✔ | +|`KC_SLASH` |`KC_SLSH` |`/` and `?` |✔ |✔ |✔ | +|`KC_CAPS_LOCK` |`KC_CAPS` |Caps Lock |✔ |✔ |✔ | +|`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_PRINT_SCREEN` |`KC_PSCR` |Print Screen |✔ |✔<sup>2</sup>|✔ | +|`KC_SCROLL_LOCK` |`KC_SCRL`, `KC_BRMD` |Scroll Lock, Brightness Down (macOS) |✔ |✔<sup>2</sup>|✔ | +|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU` |Pause, Brightness Up (macOS) |✔ |✔<sup>2</sup>|✔ | +|`KC_INSERT` |`KC_INS` |Insert |✔ | |✔ | +|`KC_HOME` | |Home |✔ |✔ |✔ | +|`KC_PAGE_UP` |`KC_PGUP` |Page Up |✔ |✔ |✔ | +|`KC_DELETE` |`KC_DEL` |Forward Delete |✔ |✔ |✔ | +|`KC_END` | |End |✔ |✔ |✔ | +|`KC_PAGE_DOWN` |`KC_PGDN` |Page Down |✔ |✔ |✔ | +|`KC_RIGHT` |`KC_RGHT` |Right Arrow |✔ |✔ |✔ | +|`KC_LEFT` | |Left Arrow |✔ |✔ |✔ | +|`KC_DOWN` | |Down Arrow |✔ |✔ |✔ | +|`KC_UP` | |Up Arrow |✔ |✔ |✔ | +|`KC_NUM_LOCK` |`KC_NUM` |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_NONUS_BACKSLASH` |`KC_NUBS` |Non-US `\` and `\|` |✔ |✔ |✔ | +|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key) |✔ | |✔ | +|`KC_KB_POWER` | |System Power | |✔<sup>3</sup>|✔ | +|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |✔ |✔ |✔ | +|`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 |✔ | |✔ | +|`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_KB_MUTE` | |Mute | |✔ |✔ | +|`KC_KB_VOLUME_UP` | |Volume Up | |✔ |✔ | +|`KC_KB_VOLUME_DOWN` | |Volume Down | |✔ |✔ | +|`KC_LOCKING_CAPS_LOCK` |`KC_LCAP` |Locking Caps Lock |✔ |✔ | | +|`KC_LOCKING_NUM_LOCK` |`KC_LNUM` |Locking Num Lock |✔ |✔ | | +|`KC_LOCKING_SCROLL_LOCK`|`KC_LSCR` |Locking Scroll Lock |✔ |✔ | | +|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` | | |✔ | +|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards | | | | +|`KC_INTERNATIONAL_1` |`KC_INT1` |International 1 |✔ | |✔ | +|`KC_INTERNATIONAL_2` |`KC_INT2` |International 2 |✔ | |✔ | +|`KC_INTERNATIONAL_3` |`KC_INT3` |International 3 |✔ | |✔ | +|`KC_INTERNATIONAL_4` |`KC_INT4` |International 4 |✔ | |✔ | +|`KC_INTERNATIONAL_5` |`KC_INT5` |International 5 |✔ | |✔ | +|`KC_INTERNATIONAL_6` |`KC_INT6` |International 6 | | |✔ | +|`KC_INTERNATIONAL_7` |`KC_INT7` |International 7 | | | | +|`KC_INTERNATIONAL_8` |`KC_INT8` |International 8 | | | | +|`KC_INTERNATIONAL_9` |`KC_INT9` |International 9 | | | | +|`KC_LANGUAGE_1` |`KC_LNG1` |Language 1 | | |✔ | +|`KC_LANGUAGE_2` |`KC_LNG2` |Language 2 | | |✔ | +|`KC_LANGUAGE_3` |`KC_LNG3` |Language 3 | | |✔ | +|`KC_LANGUAGE_4` |`KC_LNG4` |Language 4 | | |✔ | +|`KC_LANGUAGE_5` |`KC_LNG5` |Language 5 | | |✔ | +|`KC_LANGUAGE_6` |`KC_LNG6` |Language 6 | | | | +|`KC_LANGUAGE_7` |`KC_LNG7` |Language 7 | | | | +|`KC_LANGUAGE_8` |`KC_LNG8` |Language 8 | | | | +|`KC_LANGUAGE_9` |`KC_LNG9` |Language 9 | | | | +|`KC_ALTERNATE_ERASE` |`KC_ERAS` |Alternate Erase | | | | +|`KC_SYSTEM_REQUEST` |`KC_SYRQ` |SysReq/Attention | | | | +|`KC_CANCEL` |`KC_CNCL` |Cancel | | | | +|`KC_CLEAR` |`KC_CLR` |Clear | | |✔ | +|`KC_PRIOR` |`KC_PRIR` |Prior | | | | +|`KC_RETURN` |`KC_RETN` |Return | | | | +|`KC_SEPARATOR` |`KC_SEPR` |Separator | | | | +|`KC_OUT` | |Out | | | | +|`KC_OPER` | |Oper | | | | +|`KC_CLEAR_AGAIN` |`KC_CLAG` |Clear/Again | | | | +|`KC_CRSEL` |`KC_CRSL` |CrSel/Props | | | | +|`KC_EXSEL` |`KC_EXSL` |ExSel | | | | +|`KC_LEFT_CTRL` |`KC_LCTL` |Left Control |✔ |✔ |✔ | +|`KC_LEFT_SHIFT` |`KC_LSFT` |Left Shift |✔ |✔ |✔ | +|`KC_LEFT_ALT` |`KC_LALT`, `KC_LOPT` |Left Alt (Option) |✔ |✔ |✔ | +|`KC_LEFT_GUI` |`KC_LGUI`, `KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |✔ |✔ |✔ | +|`KC_RIGHT_CTRL` |`KC_RCTL` |Right Control |✔ |✔ |✔ | +|`KC_RIGHT_SHIFT` |`KC_RSFT` |Right Shift |✔ |✔ |✔ | +|`KC_RIGHT_ALT` |`KC_RALT`, `KC_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) |✔ |✔ |✔ | +|`KC_RIGHT_GUI` |`KC_RGUI`, `KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key) |✔ |✔ |✔ | +|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |✔ |✔<sup>3</sup>|✔ | +|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |✔ |✔<sup>3</sup>|✔ | +|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake | |✔<sup>3</sup>|✔ | +|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute |✔ |✔ |✔ | +|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up |✔ |✔<sup>4</sup>|✔ | +|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down |✔ |✔<sup>4</sup>|✔ | +|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track |✔ |✔<sup>5</sup>|✔ | +|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track |✔ |✔<sup>5</sup>|✔ | +|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |✔ | |✔ | +|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |✔ |✔ |✔ | +|`KC_MEDIA_SELECT` |`KC_MSEL` |Launch Media Player |✔ | |✔ | +|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject | |✔ |✔ | +|`KC_MAIL` | |Launch Mail |✔ | |✔ | +|`KC_CALCULATOR` |`KC_CALC` |Launch Calculator |✔ | |✔ | +|`KC_MY_COMPUTER` |`KC_MYCM` |Launch My Computer |✔ | |✔ | +|`KC_WWW_SEARCH` |`KC_WSCH` |Browser Search |✔ | |✔ | +|`KC_WWW_HOME` |`KC_WHOM` |Browser Home |✔ | |✔ | +|`KC_WWW_BACK` |`KC_WBAK` |Browser Back |✔ | |✔ | +|`KC_WWW_FORWARD` |`KC_WFWD` |Browser Forward |✔ | |✔ | +|`KC_WWW_STOP` |`KC_WSTP` |Browser Stop |✔ | |✔ | +|`KC_WWW_REFRESH` |`KC_WREF` |Browser Refresh |✔ | |✔ | +|`KC_WWW_FAVORITES` |`KC_WFAV` |Browser Favorites |✔ | |✔ | +|`KC_MEDIA_FAST_FORWARD` |`KC_MFFD` |Next Track |✔ |✔<sup>5</sup>|✔ | +|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track |✔<sup>6</sup>|✔<sup>5</sup>|✔ | +|`KC_BRIGHTNESS_UP` |`KC_BRIU` |Brightness Up |✔ |✔ |✔ | +|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |Brightness Down |✔ |✔ |✔ | <sup>1. The Linux kernel HID driver recognizes [nearly all keycodes](https://github.com/torvalds/linux/blob/master/drivers/hid/hid-input.c), but the default bindings depend on the DE/WM.</sup><br/> <sup>2. Treated as F13-F15.</sup><br/> diff --git a/docs/keycodes_basic.md b/docs/keycodes_basic.md index 6a31204f33..6f6ef7a3fd 100644 --- a/docs/keycodes_basic.md +++ b/docs/keycodes_basic.md @@ -74,118 +74,118 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07 ## Punctuation -|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 `\|` | -|`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 `\|` | +|Key |Aliases |Description | +|--------------------|---------|--------------------------| +|`KC_ENTER` |`KC_ENT` |Return (Enter) | +|`KC_ESCAPE` |`KC_ESC` |Escape | +|`KC_BACKSPACE` |`KC_BSPC`|Delete (Backspace) | +|`KC_TAB` | |Tab | +|`KC_SPACE` |`KC_SPC` |Spacebar | +|`KC_MINUS` |`KC_MINS`|`-` and `_` | +|`KC_EQUAL` |`KC_EQL` |`=` and `+` | +|`KC_LEFT_BRACKET` |`KC_LBRC`|`[` and `{` | +|`KC_RIGHT_BRACKET` |`KC_RBRC`|`]` and `}` | +|`KC_BACKSLASH` |`KC_BSLS`|`\` and `\|` | +|`KC_NONUS_HASH` |`KC_NUHS`|Non-US `#` and `~` | +|`KC_SEMICOLON` |`KC_SCLN`|`;` and `:` | +|`KC_QUOTE` |`KC_QUOT`|`'` and `"` | +|`KC_GRAVE` |`KC_GRV` |<code>`</code> and `~`| +|`KC_COMMA` |`KC_COMM`|`,` and `<` | +|`KC_DOT` | |`.` and `>` | +|`KC_SLASH` |`KC_SLSH`|`/` and `?` | +|`KC_NONUS_BACKSLASH`|`KC_NUBS`|Non-US `\` and `\|` | ## Lock Keys -|Key |Aliases |Description | -|-------------------|--------------------|------------------------------------| -|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS`|Caps Lock | -|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD`|Scroll Lock, Brightness Down (macOS)| -|`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 | +|Key |Aliases |Description | +|------------------------|--------------------|------------------------------------| +|`KC_CAPS_LOCK` |`KC_CAPS` |Caps Lock | +|`KC_SCROLL_LOCK` |`KC_SCRL`, `KC_BRMD`|Scroll Lock, Brightness Down (macOS)| +|`KC_NUM_LOCK` |`KC_NUM` |Keypad Num Lock and Clear | +|`KC_LOCKING_CAPS_LOCK` |`KC_LCAP` |Locking Caps Lock | +|`KC_LOCKING_NUM_LOCK` |`KC_LNUM` |Locking Num Lock | +|`KC_LOCKING_SCROLL_LOCK`|`KC_LSCR` |Locking Scroll Lock | ## Modifiers -|Key |Aliases |Description | -|-----------|--------------------|------------------------------------| -|`KC_LCTRL` |`KC_LCTL` |Left Control | -|`KC_LSHIFT`|`KC_LSFT` |Left Shift | -|`KC_LALT` |`KC_LOPT` |Left Alt (Option) | -|`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_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) | -|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)| +|Key |Aliases |Description | +|----------------|-------------------------------|------------------------------------| +|`KC_LEFT_CTRL` |`KC_LCTL` |Left Control | +|`KC_LEFT_SHIFT` |`KC_LSFT` |Left Shift | +|`KC_LEFT_ALT` |`KC_LALT`, `KC_LOPT` |Left Alt (Option) | +|`KC_LEFT_GUI` |`KC_LGUI`, `KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) | +|`KC_RIGHT_CTRL` |`KC_RCTL` |Right Control | +|`KC_RIGHT_SHIFT`|`KC_RSFT` |Right Shift | +|`KC_RIGHT_ALT` |`KC_RALT`, `KC_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) | +|`KC_RIGHT_GUI` |`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 `\|` | -|`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 | +|Key |Aliases |Description | +|--------------------|---------|---------------------| +|`KC_INTERNATIONAL_1`|`KC_INT1`|JIS `\` and `_` | +|`KC_INTERNATIONAL_2`|`KC_INT2`|JIS Katakana/Hiragana| +|`KC_INTERNATIONAL_3`|`KC_INT3`|JIS `¥` and `\|` | +|`KC_INTERNATIONAL_4`|`KC_INT4`|JIS Henkan | +|`KC_INTERNATIONAL_5`|`KC_INT5`|JIS Muhenkan | +|`KC_INTERNATIONAL_6`|`KC_INT6`|JIS Numpad `,` | +|`KC_INTERNATIONAL_7`|`KC_INT7`|International 7 | +|`KC_INTERNATIONAL_8`|`KC_INT8`|International 8 | +|`KC_INTERNATIONAL_9`|`KC_INT9`|International 9 | +|`KC_LANGUAGE_1` |`KC_LNG1`|Hangul/English | +|`KC_LANGUAGE_2` |`KC_LNG2`|Hanja | +|`KC_LANGUAGE_3` |`KC_LNG3`|JIS Katakana | +|`KC_LANGUAGE_4` |`KC_LNG4`|JIS Hiragana | +|`KC_LANGUAGE_5` |`KC_LNG5`|JIS Zenkaku/Hankaku | +|`KC_LANGUAGE_6` |`KC_LNG6`|Language 6 | +|`KC_LANGUAGE_7` |`KC_LNG7`|Language 7 | +|`KC_LANGUAGE_8` |`KC_LNG8`|Language 8 | +|`KC_LANGUAGE_9` |`KC_LNG9`|Language 9 | ## Commands -|Key |Aliases |Description | -|------------------|------------------------------|--------------------------------------| -|`KC_PSCREEN` |`KC_PSCR` |Print Screen | -|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) | -|`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 Context Menu Key)| -|`KC_POWER` | |System Power | -|`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 | -|`KC__VOLUP` | |Volume Up | -|`KC__VOLDOWN` | |Volume Down | -|`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 | +|Key |Aliases |Description | +|--------------------|------------------------------|--------------------------------------| +|`KC_PRINT_SCREEN` |`KC_PSCR` |Print Screen | +|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) | +|`KC_INSERT` |`KC_INS` |Insert | +|`KC_HOME` | |Home | +|`KC_PAGE_UP` |`KC_PGUP` |Page Up | +|`KC_DELETE` |`KC_DEL` |Forward Delete | +|`KC_END` | |End | +|`KC_PAGE_DOWN` |`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 Context Menu Key)| +|`KC_KB_POWER` | |System Power | +|`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_KB_MUTE` | |Mute | +|`KC_KB_VOLUME_UP` | |Volume Up | +|`KC_KB_VOLUME_DOWN` | |Volume Down | +|`KC_ALTERNATE_ERASE`|`KC_ERAS` |Alternate Erase | +|`KC_SYSTEM_REQUEST` |`KC_SYRQ` |SysReq/Attention | +|`KC_CANCEL` |`KC_CNCL` |Cancel | +|`KC_CLEAR` |`KC_CLR` |Clear | +|`KC_PRIOR` |`KC_PRIR` |Prior | +|`KC_RETURN` |`KC_RETN` |Return | +|`KC_SEPARATOR` |`KC_SEPR` |Separator | +|`KC_OUT` | |Out | +|`KC_OPER` | |Oper | +|`KC_CLEAR_AGAIN` |`KC_CLAG` |Clear/Again | +|`KC_CRSEL` |`KC_CRSL` |CrSel/Props | +|`KC_EXSEL` |`KC_EXSL` |ExSel | ## Media Keys diff --git a/docs/keymap.md b/docs/keymap.md index ef476e87f5..bec781e684 100644 --- a/docs/keymap.md +++ b/docs/keymap.md @@ -105,7 +105,7 @@ At the top of the file you'll find this: #include QMK_KEYBOARD_H // Helpful defines - #define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) + #define GRAVE_MODS (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * You can use _______ in place for KC_TRNS (transparent) * @@ -164,7 +164,7 @@ Our function layer is, from a code point of view, no different from the base lay [_FL] = LAYOUT( KC_GRV, 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_DEL, BL_STEP, \ - _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, _______, _______, \ + _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SCRL, KC_PAUS, _______, _______, _______, _______, \ _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, \ _______, _______, _______, _______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END), diff --git a/docs/reference_configurator_support.md b/docs/reference_configurator_support.md index ba3d49e2b2..db6cd80a20 100644 --- a/docs/reference_configurator_support.md +++ b/docs/reference_configurator_support.md @@ -168,7 +168,7 @@ k33 | {"label":"Enter", "x":3, "y":3, "h":2} k40 | {"label":"0", "x":0, "y":4, "w":2} k42 | {"label":".", "x":2, "y":4} -When a user selects the top-left key in the Configurator, and assigns Num Lock to it, the Configurator builds a keymap file with `KC_NLCK` as the first key, and so on as the keymap is built. The `label` keys are not used; they are only for the user's reference in identifying specific keys when debugging the `info.json` file. +When a user selects the top-left key in the Configurator, and assigns Num Lock to it, the Configurator builds a keymap file with `KC_NUM` as the first key, and so on as the keymap is built. The `label` keys are not used; they are only for the user's reference in identifying specific keys when debugging the `info.json` file. ## Issues and Hazards diff --git a/docs/tap_hold.md b/docs/tap_hold.md index 71bff30baa..5a4c209617 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -247,7 +247,7 @@ To enable `retro tapping`, add the following to your `config.h`: Holding and releasing a dual function key without pressing another key will result in nothing happening. With retro tapping enabled, releasing the key without pressing another will send the original keycode even if it is outside the tapping term. -For instance, holding and releasing `LT(2, KC_SPACE)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPACE` instead. +For instance, holding and releasing `LT(2, KC_SPC)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPC` instead. For more granular control of this feature, you can add the following to your `config.h`: @@ -260,7 +260,7 @@ You can then add the following function to your keymap: ```c bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case LT(2, KC_SPACE): + case LT(2, KC_SPC): return true; default: return false; diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md index 42a41fbe2a..e0c2ab7dc3 100644 --- a/docs/understanding_qmk.md +++ b/docs/understanding_qmk.md @@ -66,10 +66,10 @@ At the keyboard level we define a C macro (typically named `LAYOUT()`) which map k30, k31, k32, k33, \ k40, k42 \ ) { \ - { k00, k01, k02, k03, }, \ - { k10, k11, k12, k13, }, \ - { k20, k21, k22, KC_NO, }, \ - { k30, k31, k32, k33, }, \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, KC_NO }, \ + { k30, k31, k32, k33 }, \ { k40, KC_NO, k42, KC_NO } \ } ``` @@ -82,14 +82,15 @@ You can also use this macro to handle unusual matrix layouts, for example the [C At the keymap level we make use of our `LAYOUT()` macro above to map keycodes to physical locations to matrix locations. It looks like this: -``` +```c const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_P7, KC_P8, KC_P9, KC_PPLS, \ - KC_P4, KC_P5, KC_P6, \ - KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_P0, KC_PDOT) + [0] = LAYOUT( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT + ) } ``` @@ -123,7 +124,7 @@ And when our current scan completes it will look like this: } ``` -Comparing against our keymap we can see that the pressed key is KC_NLCK. From here we dispatch to the `process_record` set of functions. +Comparing against our keymap we can see that the pressed key is `KC_NUM`. From here we dispatch to the `process_record` set of functions. <!-- FIXME: Magic happens between here and process_record --> |