aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2021-11-04 16:22:17 +1100
committerGitHub <noreply@github.com>2021-11-03 22:22:17 -0700
commitf529580860cf5a1de4afc10432f218a45daae17a (patch)
tree1d2fa041174f2586230ab831c05e5b56d8ba4f92 /docs
parentb06d9d822cfb72e0728b11711a333f2f5d3c631e (diff)
downloadqmk_firmware-f529580860cf5a1de4afc10432f218a45daae17a.tar.gz
qmk_firmware-f529580860cf5a1de4afc10432f218a45daae17a.zip
Basic keycode overhaul (#14726)
Diffstat (limited to 'docs')
-rw-r--r--docs/config_options.md2
-rw-r--r--docs/configurator_default_keymaps.md4
-rw-r--r--docs/faq_keymap.md12
-rw-r--r--docs/feature_auto_shift.md2
-rw-r--r--docs/feature_combo.md2
-rw-r--r--docs/feature_grave_esc.md2
-rw-r--r--docs/feature_haptic_feedback.md2
-rw-r--r--docs/feature_key_overrides.md6
-rw-r--r--docs/feature_macros.md2
-rw-r--r--docs/feature_tap_dance.md4
-rw-r--r--docs/feature_wpm.md2
-rw-r--r--docs/keycodes.md398
-rw-r--r--docs/keycodes_basic.md200
-rw-r--r--docs/keymap.md4
-rw-r--r--docs/reference_configurator_support.md2
-rw-r--r--docs/tap_hold.md4
-rw-r--r--docs/understanding_qmk.md25
17 files changed, 337 insertions, 336 deletions
diff --git a/docs/config_options.md b/docs/config_options.md
index cfbe39f0d..c4e5afb56 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
206* `#define TAP_CODE_DELAY 100` 206* `#define TAP_CODE_DELAY 100`
207 * 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. 207 * 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.
208* `#define TAP_HOLD_CAPS_DELAY 80` 208* `#define TAP_HOLD_CAPS_DELAY 80`
209 * 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. 209 * 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.
210* `#define KEY_OVERRIDE_REPEAT_DELAY 500` 210* `#define KEY_OVERRIDE_REPEAT_DELAY 500`
211 * Sets the key repeat interval for [key overrides](feature_key_overrides.md). 211 * Sets the key repeat interval for [key overrides](feature_key_overrides.md).
212 212
diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md
index c52342cf1..d2b14ec41 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):
46const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 46const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
47 47
48 [0] = LAYOUT_all( 48 [0] = LAYOUT_all(
49 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, 49 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,
50 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, 50 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,
51 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, 51 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,
52 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, 52 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
74 "layout": "LAYOUT_all", 74 "layout": "LAYOUT_all",
75 "layers": [ 75 "layers": [
76 [ 76 [
77 "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", 77 "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",
78 "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", 78 "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",
79 "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", 79 "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",
80 "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", 80 "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 dbeadba71..01ded4f23 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
19Sometimes, for readability's sake, it's useful to define custom names for some keycodes. People often define custom names using `#define`. For example: 19Sometimes, for readability's sake, it's useful to define custom names for some keycodes. People often define custom names using `#define`. For example:
20 20
21```c 21```c
22#define FN_CAPS LT(_FL, KC_CAPSLOCK) 22#define FN_CAPS LT(_FL, KC_CAPS)
23#define ALT_TAB LALT(KC_TAB) 23#define ALT_TAB LALT(KC_TAB)
24``` 24```
25 25
@@ -38,8 +38,8 @@ As a quick fix try holding down `Space`+`Backspace` while you plug in your keybo
38 38
39The 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. 39The 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.
40 40
41## `KC_SYSREQ` Isn't Working 41## `KC_SYSTEM_REQUEST` Isn't Working
42Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR`) instead of `KC_SYSREQ`. Key combination of 'Alt + Print Screen' is recognized as 'System request'. 42Use 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'.
43 43
44See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and 44See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and
45* https://en.wikipedia.org/wiki/Magic_SysRq_key 45* https://en.wikipedia.org/wiki/Magic_SysRq_key
@@ -47,7 +47,7 @@ See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and
47 47
48## Power Keys Aren't Working 48## Power Keys Aren't Working
49 49
50Somewhat 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. 50Somewhat 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.
51 51
52The 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. 52The 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.
53 53
@@ -57,7 +57,7 @@ https://github.com/tmk/tmk_keyboard/issues/67
57 57
58## Modifier/Layer Stuck 58## Modifier/Layer Stuck
59Modifier keys or layers can be stuck unless layer switching is configured properly. 59Modifier keys or layers can be stuck unless layer switching is configured properly.
60For 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. 60For 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.
61 61
62* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching 62* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
63* https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 63* 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
75 75
76After enabling this feature use keycodes `KC_LCAP`, `KC_LNUM` and `KC_LSCR` in your keymap instead. 76After enabling this feature use keycodes `KC_LCAP`, `KC_LNUM` and `KC_LSCR` in your keymap instead.
77 77
78Old 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`.*** 78Old 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`.***
79 79
80## Input Special Characters Other Than ASCII like Cédille 'Ç' 80## Input Special Characters Other Than ASCII like Cédille 'Ç'
81 81
diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md
index ec7eeaaa0..a54cd79e4 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) {
127# ifndef NO_AUTO_SHIFT_SPECIAL 127# ifndef NO_AUTO_SHIFT_SPECIAL
128 case KC_TAB: 128 case KC_TAB:
129 case KC_MINUS ... KC_SLASH: 129 case KC_MINUS ... KC_SLASH:
130 case KC_NONUS_BSLASH: 130 case KC_NONUS_BACKSLASH:
131# endif 131# endif
132 return true; 132 return true;
133 } 133 }
diff --git a/docs/feature_combo.md b/docs/feature_combo.md
index d98e6f2ac..b5c22bade 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) {
173 // i.e. the exact array of keys you defined for the combo. 173 // i.e. the exact array of keys you defined for the combo.
174 // This can be useful if your combos have a common key and you want to apply the 174 // This can be useful if your combos have a common key and you want to apply the
175 // same combo term for all of them. 175 // same combo term for all of them.
176 if (combo->keys[0] == KC_ENTER) { // if first key in the array is KC_ENTER 176 if (combo->keys[0] == KC_ENT) { // if first key in the array is Enter
177 return 150; 177 return 150;
178 } 178 }
179 179
diff --git a/docs/feature_grave_esc.md b/docs/feature_grave_esc.md
index f57c6042c..f135b1ded 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
4 4
5## Usage 5## Usage
6 6
7Replace 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. 7Replace 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.
8 8
9## What Your OS Sees 9## What Your OS Sees
10 10
diff --git a/docs/feature_haptic_feedback.md b/docs/feature_haptic_feedback.md
index 159296a29..c8c74cb8f 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
184### NO_HAPTIC_MOD 184### NO_HAPTIC_MOD
185With the entry of `#define NO_HAPTIC_MOD` in config.h, the following keys will not trigger feedback: 185With the entry of `#define NO_HAPTIC_MOD` in config.h, the following keys will not trigger feedback:
186 186
187* Usual modifier keys such as Control/Shift/Alt/Gui (For example `KC_LCTRL`) 187* Usual modifier keys such as Control/Shift/Alt/Gui (For example `KC_LCTL`)
188* `MO()` momentary keys. See also [Layers](feature_layers.md). 188* `MO()` momentary keys. See also [Layers](feature_layers.md).
189* `LM()` momentary keys with mod active. 189* `LM()` momentary keys with mod active.
190* `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. 190* `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 98036241e..2417fcf59 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`
39This shows how the mentioned example of sending `delete` when `shift` + `backspace` are pressed is realized: 39This shows how the mentioned example of sending `delete` when `shift` + `backspace` are pressed is realized:
40 40
41```c 41```c
42const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPACE, KC_DELETE); 42const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL);
43 43
44// This globally defines all key overrides to be used 44// This globally defines all key overrides to be used
45const key_override_t **key_overrides = (const key_override_t *[]){ 45const 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
107 107
108```c 108```c
109// Shift + esc = ~ 109// Shift + esc = ~
110const key_override_t tilde_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC, S(KC_GRAVE)); 110const key_override_t tilde_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC, S(KC_GRV));
111 111
112// GUI + esc = ` 112// GUI + esc = `
113const key_override_t grave_esc_override = ko_make_basic(MOD_MASK_GUI, KC_ESC, KC_GRAVE); 113const key_override_t grave_esc_override = ko_make_basic(MOD_MASK_GUI, KC_ESC, KC_GRV);
114 114
115const key_override_t **key_overrides = (const key_override_t *[]){ 115const key_override_t **key_overrides = (const key_override_t *[]){
116 &tilde_esc_override, 116 &tilde_esc_override,
diff --git a/docs/feature_macros.md b/docs/feature_macros.md
index 3660f3775..6807111ca 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) {
118void post_process_record_user(uint16_t keycode, keyrecord_t *record) { 118void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
119 switch (keycode) { 119 switch (keycode) {
120 case KC_A ... KC_F21: //notice how it skips over F22 120 case KC_A ... KC_F21: //notice how it skips over F22
121 case KC_F23 ... KC_EXSEL: //exsel is the last one before the modifier keys 121 case KC_F23 ... KC_EXSL: //exsel is the last one before the modifier keys
122 if (!record->event.pressed) { 122 if (!record->event.pressed) {
123 f22_tracker--; 123 f22_tracker--;
124 if (!f22_tracker) { 124 if (!f22_tracker) {
diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md
index d1988b9b7..40f9802db 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) {
299 xtap_state.state = cur_dance(state); 299 xtap_state.state = cur_dance(state);
300 switch (xtap_state.state) { 300 switch (xtap_state.state) {
301 case TD_SINGLE_TAP: register_code(KC_X); break; 301 case TD_SINGLE_TAP: register_code(KC_X); break;
302 case TD_SINGLE_HOLD: register_code(KC_LCTRL); break; 302 case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
303 case TD_DOUBLE_TAP: register_code(KC_ESC); break; 303 case TD_DOUBLE_TAP: register_code(KC_ESC); break;
304 case TD_DOUBLE_HOLD: register_code(KC_LALT); break; 304 case TD_DOUBLE_HOLD: register_code(KC_LALT); break;
305 // Last case is for fast typing. Assuming your key is `f`: 305 // 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) {
312void x_reset(qk_tap_dance_state_t *state, void *user_data) { 312void x_reset(qk_tap_dance_state_t *state, void *user_data) {
313 switch (xtap_state.state) { 313 switch (xtap_state.state) {
314 case TD_SINGLE_TAP: unregister_code(KC_X); break; 314 case TD_SINGLE_TAP: unregister_code(KC_X); break;
315 case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); break; 315 case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
316 case TD_DOUBLE_TAP: unregister_code(KC_ESC); break; 316 case TD_DOUBLE_TAP: unregister_code(KC_ESC); break;
317 case TD_DOUBLE_HOLD: unregister_code(KC_LALT); 317 case TD_DOUBLE_HOLD: unregister_code(KC_LALT);
318 case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X); 318 case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X);
diff --git a/docs/feature_wpm.md b/docs/feature_wpm.md
index e2fac1ece..7e465e79b 100644
--- a/docs/feature_wpm.md
+++ b/docs/feature_wpm.md
@@ -35,7 +35,7 @@ bool wpm_keycode_user(uint16_t keycode) {
35 } else if (keycode > 0xFF) { 35 } else if (keycode > 0xFF) {
36 keycode = 0; 36 keycode = 0;
37 } 37 }
38 if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) { 38 if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLSH)) {
39 return true; 39 return true;
40 } 40 }
41 41
diff --git a/docs/keycodes.md b/docs/keycodes.md
index 8aba3a512..926d4fdce 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
8 8
9See also: [Basic Keycodes](keycodes_basic.md) 9See also: [Basic Keycodes](keycodes_basic.md)
10 10
11|Key |Aliases |Description |Windows |macOS |Linux<sup>1</sup>| 11|Key |Aliases |Description |Windows |macOS |Linux<sup>1</sup>|
12|-----------------------|------------------------------|-----------------------------------------------|-------------|-------------|-----------------| 12|------------------------|-------------------------------|---------------------------------------|-------------|-------------|-----------------|
13|`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) |*N/A* |*N/A* |*N/A* | 13|`KC_NO` |`XXXXXXX` |Ignore this key (NOOP) |*N/A* |*N/A* |*N/A* |
14|`KC_TRANSPARENT` |`KC_TRNS`, `_______` |Use the next lowest non-transparent key |*N/A* |*N/A* |*N/A* | 14|`KC_TRANSPARENT` |`KC_TRNS`, `_______` |Use the next lowest non-transparent key|*N/A* |*N/A* |*N/A* |
15|`KC_A` | |`a` and `A` |✔ |✔ |✔ | 15|`KC_A` | |`a` and `A` |✔ |✔ |✔ |
16|`KC_B` | |`b` and `B` |✔ |✔ |✔ | 16|`KC_B` | |`b` and `B` |✔ |✔ |✔ |
17|`KC_C` | |`c` and `C` |✔ |✔ |✔ | 17|`KC_C` | |`c` and `C` |✔ |✔ |✔ |
18|`KC_D` | |`d` and `D` |✔ |✔ |✔ | 18|`KC_D` | |`d` and `D` |✔ |✔ |✔ |
19|`KC_E` | |`e` and `E` |✔ |✔ |✔ | 19|`KC_E` | |`e` and `E` |✔ |✔ |✔ |
20|`KC_F` | |`f` and `F` |✔ |✔ |✔ | 20|`KC_F` | |`f` and `F` |✔ |✔ |✔ |
21|`KC_G` | |`g` and `G` |✔ |✔ |✔ | 21|`KC_G` | |`g` and `G` |✔ |✔ |✔ |
22|`KC_H` | |`h` and `H` |✔ |✔ |✔ | 22|`KC_H` | |`h` and `H` |✔ |✔ |✔ |
23|`KC_I` | |`i` and `I` |✔ |✔ |✔ | 23|`KC_I` | |`i` and `I` |✔ |✔ |✔ |
24|`KC_J` | |`j` and `J` |✔ |✔ |✔ | 24|`KC_J` | |`j` and `J` |✔ |✔ |✔ |
25|`KC_K` | |`k` and `K` |✔ |✔ |✔ | 25|`KC_K` | |`k` and `K` |✔ |✔ |✔ |
26|`KC_L` | |`l` and `L` |✔ |✔ |✔ | 26|`KC_L` | |`l` and `L` |✔ |✔ |✔ |
27|`KC_M` | |`m` and `M` |✔ |✔ |✔ | 27|`KC_M` | |`m` and `M` |✔ |✔ |✔ |
28|`KC_N` | |`n` and `N` |✔ |✔ |✔ | 28|`KC_N` | |`n` and `N` |✔ |✔ |✔ |
29|`KC_O` | |`o` and `O` |✔ |✔ |✔ | 29|`KC_O` | |`o` and `O` |✔ |✔ |✔ |
30|`KC_P` | |`p` and `P` |✔ |✔ |✔ | 30|`KC_P` | |`p` and `P` |✔ |✔ |✔ |
31|`KC_Q` | |`q` and `Q` |✔ |✔ |✔ | 31|`KC_Q` | |`q` and `Q` |✔ |✔ |✔ |
32|`KC_R` | |`r` and `R` |✔ |✔ |✔ | 32|`KC_R` | |`r` and `R` |✔ |✔ |✔ |
33|`KC_S` | |`s` and `S` |✔ |✔ |✔ | 33|`KC_S` | |`s` and `S` |✔ |✔ |✔ |
34|`KC_T` | |`t` and `T` |✔ |✔ |✔ | 34|`KC_T` | |`t` and `T` |✔ |✔ |✔ |
35|`KC_U` | |`u` and `U` |✔ |✔ |✔ | 35|`KC_U` | |`u` and `U` |✔ |✔ |✔ |
36|`KC_V` | |`v` and `V` |✔ |✔ |✔ | 36|`KC_V` | |`v` and `V` |✔ |✔ |✔ |
37|`KC_W` | |`w` and `W` |✔ |✔ |✔ | 37|`KC_W` | |`w` and `W` |✔ |✔ |✔ |
38|`KC_X` | |`x` and `X` |✔ |✔ |✔ | 38|`KC_X` | |`x` and `X` |✔ |✔ |✔ |
39|`KC_Y` | |`y` and `Y` |✔ |✔ |✔ | 39|`KC_Y` | |`y` and `Y` |✔ |✔ |✔ |
40|`KC_Z` | |`z` and `Z` |✔ |✔ |✔ | 40|`KC_Z` | |`z` and `Z` |✔ |✔ |✔ |
41|`KC_1` | |`1` and `!` |✔ |✔ |✔ | 41|`KC_1` | |`1` and `!` |✔ |✔ |✔ |
42|`KC_2` | |`2` and `@` |✔ |✔ |✔ | 42|`KC_2` | |`2` and `@` |✔ |✔ |✔ |
43|`KC_3` | |`3` and `#` |✔ |✔ |✔ | 43|`KC_3` | |`3` and `#` |✔ |✔ |✔ |
44|`KC_4` | |`4` and `$` |✔ |✔ |✔ | 44|`KC_4` | |`4` and `$` |✔ |✔ |✔ |
45|`KC_5` | |`5` and `%` |✔ |✔ |✔ | 45|`KC_5` | |`5` and `%` |✔ |✔ |✔ |
46|`KC_6` | |`6` and `^` |✔ |✔ |✔ | 46|`KC_6` | |`6` and `^` |✔ |✔ |✔ |
47|`KC_7` | |`7` and `&` |✔ |✔ |✔ | 47|`KC_7` | |`7` and `&` |✔ |✔ |✔ |
48|`KC_8` | |`8` and `*` |✔ |✔ |✔ | 48|`KC_8` | |`8` and `*` |✔ |✔ |✔ |
49|`KC_9` | |`9` and `(` |✔ |✔ |✔ | 49|`KC_9` | |`9` and `(` |✔ |✔ |✔ |
50|`KC_0` | |`0` and `)` |✔ |✔ |✔ | 50|`KC_0` | |`0` and `)` |✔ |✔ |✔ |
51|`KC_ENTER` |`KC_ENT` |Return (Enter) |✔ |✔ |✔ | 51|`KC_ENTER` |`KC_ENT` |Return (Enter) |✔ |✔ |✔ |
52|`KC_ESCAPE` |`KC_ESC` |Escape |✔ |✔ |✔ | 52|`KC_ESCAPE` |`KC_ESC` |Escape |✔ |✔ |✔ |
53|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |✔ |✔ |✔ | 53|`KC_BACKSPACE` |`KC_BSPC` |Delete (Backspace) |✔ |✔ |✔ |
54|`KC_TAB` | |Tab |✔ |✔ |✔ | 54|`KC_TAB` | |Tab |✔ |✔ |✔ |
55|`KC_SPACE` |`KC_SPC` |Spacebar |✔ |✔ |✔ | 55|`KC_SPACE` |`KC_SPC` |Spacebar |✔ |✔ |✔ |
56|`KC_MINUS` |`KC_MINS` |`-` and `_` |✔ |✔ |✔ | 56|`KC_MINUS` |`KC_MINS` |`-` and `_` |✔ |✔ |✔ |
57|`KC_EQUAL` |`KC_EQL` |`=` and `+` |✔ |✔ |✔ | 57|`KC_EQUAL` |`KC_EQL` |`=` and `+` |✔ |✔ |✔ |
58|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` |✔ |✔ |✔ | 58|`KC_LEFT_BRACKET` |`KC_LBRC` |`[` and `{` |✔ |✔ |✔ |
59|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` |✔ |✔ |✔ | 59|`KC_RIGHT_BRACKET` |`KC_RBRC` |`]` and `}` |✔ |✔ |✔ |
60|`KC_BSLASH` |`KC_BSLS` |`\` and `\|` |✔ |✔ |✔ | 60|`KC_BACKSLASH` |`KC_BSLS` |`\` and `\|` |✔ |✔ |✔ |
61|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |✔ |✔ |✔ | 61|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` |✔ |✔ |✔ |
62|`KC_SCOLON` |`KC_SCLN` |`;` and `:` |✔ |✔ |✔ | 62|`KC_SEMICOLON` |`KC_SCLN` |`;` and `:` |✔ |✔ |✔ |
63|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |✔ |✔ |✔ | 63|`KC_QUOTE` |`KC_QUOT` |`'` and `"` |✔ |✔ |✔ |
64|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK` |<code>&#96;</code> and `~`, JIS Zenkaku/Hankaku|✔ |✔ |✔ | 64|`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~` |✔ |✔ |✔ |
65|`KC_COMMA` |`KC_COMM` |`,` and `<` |✔ |✔ |✔ | 65|`KC_COMMA` |`KC_COMM` |`,` and `<` |✔ |✔ |✔ |
66|`KC_DOT` | |`.` and `>` |✔ |✔ |✔ | 66|`KC_DOT` | |`.` and `>` |✔ |✔ |✔ |
67|`KC_SLASH` |`KC_SLSH` |`/` and `?` |✔ |✔ |✔ | 67|`KC_SLASH` |`KC_SLSH` |`/` and `?` |✔ |✔ |✔ |
68|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS` |Caps Lock |✔ |✔ |✔ | 68|`KC_CAPS_LOCK` |`KC_CAPS` |Caps Lock |✔ |✔ |✔ |
69|`KC_F1` | |F1 |✔ |✔ |✔ | 69|`KC_F1` | |F1 |✔ |✔ |✔ |
70|`KC_F2` | |F2 |✔ |✔ |✔ | 70|`KC_F2` | |F2 |✔ |✔ |✔ |
71|`KC_F3` | |F3 |✔ |✔ |✔ | 71|`KC_F3` | |F3 |✔ |✔ |✔ |
72|`KC_F4` | |F4 |✔ |✔ |✔ | 72|`KC_F4` | |F4 |✔ |✔ |✔ |
73|`KC_F5` | |F5 |✔ |✔ |✔ | 73|`KC_F5` | |F5 |✔ |✔ |✔ |
74|`KC_F6` | |F6 |✔ |✔ |✔ | 74|`KC_F6` | |F6 |✔ |✔ |✔ |
75|`KC_F7` | |F7 |✔ |✔ |✔ | 75|`KC_F7` | |F7 |✔ |✔ |✔ |
76|`KC_F8` | |F8 |✔ |✔ |✔ | 76|`KC_F8` | |F8 |✔ |✔ |✔ |
77|`KC_F9` | |F9 |✔ |✔ |✔ | 77|`KC_F9` | |F9 |✔ |✔ |✔ |
78|`KC_F10` | |F10 |✔ |✔ |✔ | 78|`KC_F10` | |F10 |✔ |✔ |✔ |
79|`KC_F11` | |F11 |✔ |✔ |✔ | 79|`KC_F11` | |F11 |✔ |✔ |✔ |
80|`KC_F12` | |F12 |✔ |✔ |✔ | 80|`KC_F12` | |F12 |✔ |✔ |✔ |
81|`KC_PSCREEN` |`KC_PSCR` |Print Screen |✔ |✔<sup>2</sup>|✔ | 81|`KC_PRINT_SCREEN` |`KC_PSCR` |Print Screen |✔ |✔<sup>2</sup>|✔ |
82|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD` |Scroll Lock, Brightness Down (macOS) |✔ |✔<sup>2</sup>|✔ | 82|`KC_SCROLL_LOCK` |`KC_SCRL`, `KC_BRMD` |Scroll Lock, Brightness Down (macOS) |✔ |✔<sup>2</sup>|✔ |
83|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) |✔ |✔<sup>2</sup>|✔ | 83|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU` |Pause, Brightness Up (macOS) |✔ |✔<sup>2</sup>|✔ |
84|`KC_INSERT` |`KC_INS` |Insert |✔ | |✔ | 84|`KC_INSERT` |`KC_INS` |Insert |✔ | |✔ |
85|`KC_HOME` | |Home |✔ |✔ |✔ | 85|`KC_HOME` | |Home |✔ |✔ |✔ |
86|`KC_PGUP` | |Page Up |✔ |✔ |✔ | 86|`KC_PAGE_UP` |`KC_PGUP` |Page Up |✔ |✔ |✔ |
87|`KC_DELETE` |`KC_DEL` |Forward Delete |✔ |✔ |✔ | 87|`KC_DELETE` |`KC_DEL` |Forward Delete |✔ |✔ |✔ |
88|`KC_END` | |End |✔ |✔ |✔ | 88|`KC_END` | |End |✔ |✔ |✔ |
89|`KC_PGDOWN` |`KC_PGDN` |Page Down |✔ |✔ |✔ | 89|`KC_PAGE_DOWN` |`KC_PGDN` |Page Down |✔ |✔ |✔ |
90|`KC_RIGHT` |`KC_RGHT` |Right Arrow |✔ |✔ |✔ | 90|`KC_RIGHT` |`KC_RGHT` |Right Arrow |✔ |✔ |✔ |
91|`KC_LEFT` | |Left Arrow |✔ |✔ |✔ | 91|`KC_LEFT` | |Left Arrow |✔ |✔ |✔ |
92|`KC_DOWN` | |Down Arrow |✔ |✔ |✔ | 92|`KC_DOWN` | |Down Arrow |✔ |✔ |✔ |
93|`KC_UP` | |Up Arrow |✔ |✔ |✔ | 93|`KC_UP` | |Up Arrow |✔ |✔ |✔ |
94|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |✔ |✔ |✔ | 94|`KC_NUM_LOCK` |`KC_NUM` |Keypad Num Lock and Clear |✔ |✔ |✔ |
95|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |✔ |✔ |✔ | 95|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |✔ |✔ |✔ |
96|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |✔ |✔ |✔ | 96|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |✔ |✔ |✔ |
97|`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` |✔ |✔ |✔ | 97|`KC_KP_MINUS` |`KC_PMNS` |Keypad `-` |✔ |✔ |✔ |
98|`KC_KP_PLUS` |`KC_PPLS` |Keypad `+` |✔ |✔ |✔ | 98|`KC_KP_PLUS` |`KC_PPLS` |Keypad `+` |✔ |✔ |✔ |
99|`KC_KP_ENTER` |`KC_PENT` |Keypad Enter |✔ |✔ |✔ | 99|`KC_KP_ENTER` |`KC_PENT` |Keypad Enter |✔ |✔ |✔ |
100|`KC_KP_1` |`KC_P1` |Keypad `1` and End |✔ |✔ |✔ | 100|`KC_KP_1` |`KC_P1` |Keypad `1` and End |✔ |✔ |✔ |
101|`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow |✔ |✔ |✔ | 101|`KC_KP_2` |`KC_P2` |Keypad `2` and Down Arrow |✔ |✔ |✔ |
102|`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down |✔ |✔ |✔ | 102|`KC_KP_3` |`KC_P3` |Keypad `3` and Page Down |✔ |✔ |✔ |
103|`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow |✔ |✔ |✔ | 103|`KC_KP_4` |`KC_P4` |Keypad `4` and Left Arrow |✔ |✔ |✔ |
104|`KC_KP_5` |`KC_P5` |Keypad `5` |✔ |✔ |✔ | 104|`KC_KP_5` |`KC_P5` |Keypad `5` |✔ |✔ |✔ |
105|`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow |✔ |✔ |✔ | 105|`KC_KP_6` |`KC_P6` |Keypad `6` and Right Arrow |✔ |✔ |✔ |
106|`KC_KP_7` |`KC_P7` |Keypad `7` and Home |✔ |✔ |✔ | 106|`KC_KP_7` |`KC_P7` |Keypad `7` and Home |✔ |✔ |✔ |
107|`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow |✔ |✔ |✔ | 107|`KC_KP_8` |`KC_P8` |Keypad `8` and Up Arrow |✔ |✔ |✔ |
108|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |✔ |✔ |✔ | 108|`KC_KP_9` |`KC_P9` |Keypad `9` and Page Up |✔ |✔ |✔ |
109|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |✔ |✔ |✔ | 109|`KC_KP_0` |`KC_P0` |Keypad `0` and Insert |✔ |✔ |✔ |
110|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |✔ |✔ |✔ | 110|`KC_KP_DOT` |`KC_PDOT` |Keypad `.` and Delete |✔ |✔ |✔ |
111|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` and `\|` |✔ |✔ |✔ | 111|`KC_NONUS_BACKSLASH` |`KC_NUBS` |Non-US `\` and `\|` |✔ |✔ |✔ |
112|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key) |✔ | |✔ | 112|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key) |✔ | |✔ |
113|`KC_POWER` | |System Power | |✔<sup>3</sup>|✔ | 113|`KC_KB_POWER` | |System Power | |✔<sup>3</sup>|✔ |
114|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |✔ |✔ |✔ | 114|`KC_KP_EQUAL` |`KC_PEQL` |Keypad `=` |✔ |✔ |✔ |
115|`KC_F13` | |F13 |✔ |✔ |✔ | 115|`KC_F13` | |F13 |✔ |✔ |✔ |
116|`KC_F14` | |F14 |✔ |✔ |✔ | 116|`KC_F14` | |F14 |✔ |✔ |✔ |
117|`KC_F15` | |F15 |✔ |✔ |✔ | 117|`KC_F15` | |F15 |✔ |✔ |✔ |
118|`KC_F16` | |F16 |✔ |✔ |✔ | 118|`KC_F16` | |F16 |✔ |✔ |✔ |
119|`KC_F17` | |F17 |✔ |✔ |✔ | 119|`KC_F17` | |F17 |✔ |✔ |✔ |
120|`KC_F18` | |F18 |✔ |✔ |✔ | 120|`KC_F18` | |F18 |✔ |✔ |✔ |
121|`KC_F19` | |F19 |✔ |✔ |✔ | 121|`KC_F19` | |F19 |✔ |✔ |✔ |
122|`KC_F20` | |F20 |✔ | |✔ | 122|`KC_F20` | |F20 |✔ | |✔ |
123|`KC_F21` | |F21 |✔ | |✔ | 123|`KC_F21` | |F21 |✔ | |✔ |
124|`KC_F22` | |F22 |✔ | |✔ | 124|`KC_F22` | |F22 |✔ | |✔ |
125|`KC_F23` | |F23 |✔ | |✔ | 125|`KC_F23` | |F23 |✔ | |✔ |
126|`KC_F24` | |F24 |✔ | |✔ | 126|`KC_F24` | |F24 |✔ | |✔ |
127|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ | 127|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ |
128|`KC_HELP` | |Help | | |✔ | 128|`KC_HELP` | |Help | | |✔ |
129|`KC_MENU` | |Menu | | |✔ | 129|`KC_MENU` | |Menu | | |✔ |
130|`KC_SELECT` |`KC_SLCT` |Select | | |✔ | 130|`KC_SELECT` |`KC_SLCT` |Select | | |✔ |
131|`KC_STOP` | |Stop | | |✔ | 131|`KC_STOP` | |Stop | | |✔ |
132|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ | 132|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ |
133|`KC_UNDO` | |Undo | | |✔ | 133|`KC_UNDO` | |Undo | | |✔ |
134|`KC_CUT` | |Cut | | |✔ | 134|`KC_CUT` | |Cut | | |✔ |
135|`KC_COPY` | |Copy | | |✔ | 135|`KC_COPY` | |Copy | | |✔ |
136|`KC_PASTE` |`KC_PSTE` |Paste | | |✔ | 136|`KC_PASTE` |`KC_PSTE` |Paste | | |✔ |
137|`KC_FIND` | |Find | | |✔ | 137|`KC_FIND` | |Find | | |✔ |
138|`KC__MUTE` | |Mute | |✔ |✔ | 138|`KC_KB_MUTE` | |Mute | |✔ |✔ |
139|`KC__VOLUP` | |Volume Up | |✔ |✔ | 139|`KC_KB_VOLUME_UP` | |Volume Up | |✔ |✔ |
140|`KC__VOLDOWN` | |Volume Down | |✔ |✔ | 140|`KC_KB_VOLUME_DOWN` | |Volume Down | |✔ |✔ |
141|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock |✔ |✔ | | 141|`KC_LOCKING_CAPS_LOCK` |`KC_LCAP` |Locking Caps Lock |✔ |✔ | |
142|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock |✔ |✔ | | 142|`KC_LOCKING_NUM_LOCK` |`KC_LNUM` |Locking Num Lock |✔ |✔ | |
143|`KC_LOCKING_SCROLL` |`KC_LSCR` |Locking Scroll Lock |✔ |✔ | | 143|`KC_LOCKING_SCROLL_LOCK`|`KC_LSCR` |Locking Scroll Lock |✔ |✔ | |
144|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` | | |✔ | 144|`KC_KP_COMMA` |`KC_PCMM` |Keypad `,` | | |✔ |
145|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards | | | | 145|`KC_KP_EQUAL_AS400` | |Keypad `=` on AS/400 keyboards | | | |
146|`KC_INT1` |`KC_RO` |JIS `\` and `_` |✔ | |✔ | 146|`KC_INTERNATIONAL_1` |`KC_INT1` |International 1 |✔ | |✔ |
147|`KC_INT2` |`KC_KANA` |JIS Katakana/Hiragana |✔ | |✔ | 147|`KC_INTERNATIONAL_2` |`KC_INT2` |International 2 |✔ | |✔ |
148|`KC_INT3` |`KC_JYEN` |JIS `¥` and `\|` |✔ | |✔ | 148|`KC_INTERNATIONAL_3` |`KC_INT3` |International 3 |✔ | |✔ |
149|`KC_INT4` |`KC_HENK` |JIS Henkan |✔ | |✔ | 149|`KC_INTERNATIONAL_4` |`KC_INT4` |International 4 |✔ | |✔ |
150|`KC_INT5` |`KC_MHEN` |JIS Muhenkan |✔ | |✔ | 150|`KC_INTERNATIONAL_5` |`KC_INT5` |International 5 |✔ | |✔ |
151|`KC_INT6` | |JIS Numpad `,` | | |✔ | 151|`KC_INTERNATIONAL_6` |`KC_INT6` |International 6 | | |✔ |
152|`KC_INT7` | |International 7 | | | | 152|`KC_INTERNATIONAL_7` |`KC_INT7` |International 7 | | | |
153|`KC_INT8` | |International 8 | | | | 153|`KC_INTERNATIONAL_8` |`KC_INT8` |International 8 | | | |
154|`KC_INT9` | |International 9 | | | | 154|`KC_INTERNATIONAL_9` |`KC_INT9` |International 9 | | | |
155|`KC_LANG1` |`KC_HAEN` |Hangul/English | | |✔ | 155|`KC_LANGUAGE_1` |`KC_LNG1` |Language 1 | | |✔ |
156|`KC_LANG2` |`KC_HANJ` |Hanja | | |✔ | 156|`KC_LANGUAGE_2` |`KC_LNG2` |Language 2 | | |✔ |
157|`KC_LANG3` | |JIS Katakana | | |✔ | 157|`KC_LANGUAGE_3` |`KC_LNG3` |Language 3 | | |✔ |
158|`KC_LANG4` | |JIS Hiragana | | |✔ | 158|`KC_LANGUAGE_4` |`KC_LNG4` |Language 4 | | |✔ |
159|`KC_LANG5` | |JIS Zenkaku/Hankaku | | |✔ | 159|`KC_LANGUAGE_5` |`KC_LNG5` |Language 5 | | |✔ |
160|`KC_LANG6` | |Language 6 | | | | 160|`KC_LANGUAGE_6` |`KC_LNG6` |Language 6 | | | |
161|`KC_LANG7` | |Language 7 | | | | 161|`KC_LANGUAGE_7` |`KC_LNG7` |Language 7 | | | |
162|`KC_LANG8` | |Language 8 | | | | 162|`KC_LANGUAGE_8` |`KC_LNG8` |Language 8 | | | |
163|`KC_LANG9` | |Language 9 | | | | 163|`KC_LANGUAGE_9` |`KC_LNG9` |Language 9 | | | |
164|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | | | | 164|`KC_ALTERNATE_ERASE` |`KC_ERAS` |Alternate Erase | | | |
165|`KC_SYSREQ` | |SysReq/Attention | | | | 165|`KC_SYSTEM_REQUEST` |`KC_SYRQ` |SysReq/Attention | | | |
166|`KC_CANCEL` | |Cancel | | | | 166|`KC_CANCEL` |`KC_CNCL` |Cancel | | | |
167|`KC_CLEAR` |`KC_CLR` |Clear | | |✔ | 167|`KC_CLEAR` |`KC_CLR` |Clear | | |✔ |
168|`KC_PRIOR` | |Prior | | | | 168|`KC_PRIOR` |`KC_PRIR` |Prior | | | |
169|`KC_RETURN` | |Return | | | | 169|`KC_RETURN` |`KC_RETN` |Return | | | |
170|`KC_SEPARATOR` | |Separator | | | | 170|`KC_SEPARATOR` |`KC_SEPR` |Separator | | | |
171|`KC_OUT` | |Out | | | | 171|`KC_OUT` | |Out | | | |
172|`KC_OPER` | |Oper | | | | 172|`KC_OPER` | |Oper | | | |
173|`KC_CLEAR_AGAIN` | |Clear/Again | | | | 173|`KC_CLEAR_AGAIN` |`KC_CLAG` |Clear/Again | | | |
174|`KC_CRSEL` | |CrSel/Props | | | | 174|`KC_CRSEL` |`KC_CRSL` |CrSel/Props | | | |
175|`KC_EXSEL` | |ExSel | | | | 175|`KC_EXSEL` |`KC_EXSL` |ExSel | | | |
176|`KC_LCTRL` |`KC_LCTL` |Left Control |✔ |✔ |✔ | 176|`KC_LEFT_CTRL` |`KC_LCTL` |Left Control |✔ |✔ |✔ |
177|`KC_LSHIFT` |`KC_LSFT` |Left Shift |✔ |✔ |✔ | 177|`KC_LEFT_SHIFT` |`KC_LSFT` |Left Shift |✔ |✔ |✔ |
178|`KC_LALT` |`KC_LOPT` |Left Alt (Option) |✔ |✔ |✔ | 178|`KC_LEFT_ALT` |`KC_LALT`, `KC_LOPT` |Left Alt (Option) |✔ |✔ |✔ |
179|`KC_LGUI` |`KC_LCMD`, `KC_LWIN` |Left GUI (Windows/Command/Meta key) |✔ |✔ |✔ | 179|`KC_LEFT_GUI` |`KC_LGUI`, `KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |✔ |✔ |✔ |
180|`KC_RCTRL` |`KC_RCTL` |Right Control |✔ |✔ |✔ | 180|`KC_RIGHT_CTRL` |`KC_RCTL` |Right Control |✔ |✔ |✔ |
181|`KC_RSHIFT` |`KC_RSFT` |Right Shift |✔ |✔ |✔ | 181|`KC_RIGHT_SHIFT` |`KC_RSFT` |Right Shift |✔ |✔ |✔ |
182|`KC_RALT` |`KC_ROPT`, `KC_ALGR` |Right Alt (Option/AltGr) |✔ |✔ |✔ | 182|`KC_RIGHT_ALT` |`KC_RALT`, `KC_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) |✔ |✔ |✔ |
183|`KC_RGUI` |`KC_RCMD`, `KC_RWIN` |Right GUI (Windows/Command/Meta key) |✔ |✔ |✔ | 183|`KC_RIGHT_GUI` |`KC_RGUI`, `KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key) |✔ |✔ |✔ |
184|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |✔ |✔<sup>3</sup>|✔ | 184|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down |✔ |✔<sup>3</sup>|✔ |
185|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |✔ |✔<sup>3</sup>|✔ | 185|`KC_SYSTEM_SLEEP` |`KC_SLEP` |System Sleep |✔ |✔<sup>3</sup>|✔ |
186|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake | |✔<sup>3</sup>|✔ | 186|`KC_SYSTEM_WAKE` |`KC_WAKE` |System Wake | |✔<sup>3</sup>|✔ |
187|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute |✔ |✔ |✔ | 187|`KC_AUDIO_MUTE` |`KC_MUTE` |Mute |✔ |✔ |✔ |
188|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up |✔ |✔<sup>4</sup>|✔ | 188|`KC_AUDIO_VOL_UP` |`KC_VOLU` |Volume Up |✔ |✔<sup>4</sup>|✔ |
189|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down |✔ |✔<sup>4</sup>|✔ | 189|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |Volume Down |✔ |✔<sup>4</sup>|✔ |
190|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track |✔ |✔<sup>5</sup>|✔ | 190|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |Next Track |✔ |✔<sup>5</sup>|✔ |
191|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track |✔ |✔<sup>5</sup>|✔ | 191|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |Previous Track |✔ |✔<sup>5</sup>|✔ |
192|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |✔ | |✔ | 192|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |✔ | |✔ |
193|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |✔ |✔ |✔ | 193|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |✔ |✔ |✔ |
194|`KC_MEDIA_SELECT` |`KC_MSEL` |Launch Media Player |✔ | |✔ | 194|`KC_MEDIA_SELECT` |`KC_MSEL` |Launch Media Player |✔ | |✔ |
195|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject | |✔ |✔ | 195|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject | |✔ |✔ |
196|`KC_MAIL` | |Launch Mail |✔ | |✔ | 196|`KC_MAIL` | |Launch Mail |✔ | |✔ |
197|`KC_CALCULATOR` |`KC_CALC` |Launch Calculator |✔ | |✔ | 197|`KC_CALCULATOR` |`KC_CALC` |Launch Calculator |✔ | |✔ |
198|`KC_MY_COMPUTER` |`KC_MYCM` |Launch My Computer |✔ | |✔ | 198|`KC_MY_COMPUTER` |`KC_MYCM` |Launch My Computer |✔ | |✔ |
199|`KC_WWW_SEARCH` |`KC_WSCH` |Browser Search |✔ | |✔ | 199|`KC_WWW_SEARCH` |`KC_WSCH` |Browser Search |✔ | |✔ |
200|`KC_WWW_HOME` |`KC_WHOM` |Browser Home |✔ | |✔ | 200|`KC_WWW_HOME` |`KC_WHOM` |Browser Home |✔ | |✔ |
201|`KC_WWW_BACK` |`KC_WBAK` |Browser Back |✔ | |✔ | 201|`KC_WWW_BACK` |`KC_WBAK` |Browser Back |✔ | |✔ |
202|`KC_WWW_FORWARD` |`KC_WFWD` |Browser Forward |✔ | |✔ | 202|`KC_WWW_FORWARD` |`KC_WFWD` |Browser Forward |✔ | |✔ |
203|`KC_WWW_STOP` |`KC_WSTP` |Browser Stop |✔ | |✔ | 203|`KC_WWW_STOP` |`KC_WSTP` |Browser Stop |✔ | |✔ |
204|`KC_WWW_REFRESH` |`KC_WREF` |Browser Refresh |✔ | |✔ | 204|`KC_WWW_REFRESH` |`KC_WREF` |Browser Refresh |✔ | |✔ |
205|`KC_WWW_FAVORITES` |`KC_WFAV` |Browser Favorites |✔ | |✔ | 205|`KC_WWW_FAVORITES` |`KC_WFAV` |Browser Favorites |✔ | |✔ |
206|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track |✔ |✔<sup>5</sup>|✔ | 206|`KC_MEDIA_FAST_FORWARD` |`KC_MFFD` |Next Track |✔ |✔<sup>5</sup>|✔ |
207|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track |✔<sup>6</sup>|✔<sup>5</sup>|✔ | 207|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track |✔<sup>6</sup>|✔<sup>5</sup>|✔ |
208|`KC_BRIGHTNESS_UP` |`KC_BRIU` |Brightness Up |✔ |✔ |✔ | 208|`KC_BRIGHTNESS_UP` |`KC_BRIU` |Brightness Up |✔ |✔ |✔ |
209|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |Brightness Down |✔ |✔ |✔ | 209|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |Brightness Down |✔ |✔ |✔ |
210 210
211<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/> 211<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/>
212<sup>2. Treated as F13-F15.</sup><br/> 212<sup>2. Treated as F13-F15.</sup><br/>
diff --git a/docs/keycodes_basic.md b/docs/keycodes_basic.md
index 6a31204f3..6f6ef7a3f 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
74 74
75## Punctuation 75## Punctuation
76 76
77|Key |Aliases |Description | 77|Key |Aliases |Description |
78|-----------------|-------------------|-----------------------------------------------| 78|--------------------|---------|--------------------------|
79|`KC_ENTER` |`KC_ENT` |Return (Enter) | 79|`KC_ENTER` |`KC_ENT` |Return (Enter) |
80|`KC_ESCAPE` |`KC_ESC` |Escape | 80|`KC_ESCAPE` |`KC_ESC` |Escape |
81|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) | 81|`KC_BACKSPACE` |`KC_BSPC`|Delete (Backspace) |
82|`KC_TAB` | |Tab | 82|`KC_TAB` | |Tab |
83|`KC_SPACE` |`KC_SPC` |Spacebar | 83|`KC_SPACE` |`KC_SPC` |Spacebar |
84|`KC_MINUS` |`KC_MINS` |`-` and `_` | 84|`KC_MINUS` |`KC_MINS`|`-` and `_` |
85|`KC_EQUAL` |`KC_EQL` |`=` and `+` | 85|`KC_EQUAL` |`KC_EQL` |`=` and `+` |
86|`KC_LBRACKET` |`KC_LBRC` |`[` and `{` | 86|`KC_LEFT_BRACKET` |`KC_LBRC`|`[` and `{` |
87|`KC_RBRACKET` |`KC_RBRC` |`]` and `}` | 87|`KC_RIGHT_BRACKET` |`KC_RBRC`|`]` and `}` |
88|`KC_BSLASH` |`KC_BSLS` |`\` and `\|` | 88|`KC_BACKSLASH` |`KC_BSLS`|`\` and `\|` |
89|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` and `~` | 89|`KC_NONUS_HASH` |`KC_NUHS`|Non-US `#` and `~` |
90|`KC_SCOLON` |`KC_SCLN` |`;` and `:` | 90|`KC_SEMICOLON` |`KC_SCLN`|`;` and `:` |
91|`KC_QUOTE` |`KC_QUOT` |`'` and `"` | 91|`KC_QUOTE` |`KC_QUOT`|`'` and `"` |
92|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK`|<code>&#96;</code> and `~`, JIS Zenkaku/Hankaku| 92|`KC_GRAVE` |`KC_GRV` |<code>&#96;</code> and `~`|
93|`KC_COMMA` |`KC_COMM` |`,` and `<` | 93|`KC_COMMA` |`KC_COMM`|`,` and `<` |
94|`KC_DOT` | |`.` and `>` | 94|`KC_DOT` | |`.` and `>` |
95|`KC_SLASH` |`KC_SLSH` |`/` and `?` | 95|`KC_SLASH` |`KC_SLSH`|`/` and `?` |
96|`KC_NONUS_BSLASH`|`KC_NUBS` |Non-US `\` and `\|` | 96|`KC_NONUS_BACKSLASH`|`KC_NUBS`|Non-US `\` and `\|` |
97 97
98## Lock Keys 98## Lock Keys
99 99
100|Key |Aliases |Description | 100|Key |Aliases |Description |
101|-------------------|--------------------|------------------------------------| 101|------------------------|--------------------|------------------------------------|
102|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS`|Caps Lock | 102|`KC_CAPS_LOCK` |`KC_CAPS` |Caps Lock |
103|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD`|Scroll Lock, Brightness Down (macOS)| 103|`KC_SCROLL_LOCK` |`KC_SCRL`, `KC_BRMD`|Scroll Lock, Brightness Down (macOS)|
104|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear | 104|`KC_NUM_LOCK` |`KC_NUM` |Keypad Num Lock and Clear |
105|`KC_LOCKING_CAPS` |`KC_LCAP` |Locking Caps Lock | 105|`KC_LOCKING_CAPS_LOCK` |`KC_LCAP` |Locking Caps Lock |
106|`KC_LOCKING_NUM` |`KC_LNUM` |Locking Num Lock | 106|`KC_LOCKING_NUM_LOCK` |`KC_LNUM` |Locking Num Lock |
107|`KC_LOCKING_SCROLL`|`KC_LSCR` |Locking Scroll Lock | 107|`KC_LOCKING_SCROLL_LOCK`|`KC_LSCR` |Locking Scroll Lock |
108 108
109## Modifiers 109## Modifiers
110 110
111|Key |Aliases |Description | 111|Key |Aliases |Description |
112|-----------|--------------------|------------------------------------| 112|----------------|-------------------------------|------------------------------------|
113|`KC_LCTRL` |`KC_LCTL` |Left Control | 113|`KC_LEFT_CTRL` |`KC_LCTL` |Left Control |
114|`KC_LSHIFT`|`KC_LSFT` |Left Shift | 114|`KC_LEFT_SHIFT` |`KC_LSFT` |Left Shift |
115|`KC_LALT` |`KC_LOPT` |Left Alt (Option) | 115|`KC_LEFT_ALT` |`KC_LALT`, `KC_LOPT` |Left Alt (Option) |
116|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) | 116|`KC_LEFT_GUI` |`KC_LGUI`, `KC_LCMD`, `KC_LWIN`|Left GUI (Windows/Command/Meta key) |
117|`KC_RCTRL` |`KC_RCTL` |Right Control | 117|`KC_RIGHT_CTRL` |`KC_RCTL` |Right Control |
118|`KC_RSHIFT`|`KC_RSFT` |Right Shift | 118|`KC_RIGHT_SHIFT`|`KC_RSFT` |Right Shift |
119|`KC_RALT` |`KC_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) | 119|`KC_RIGHT_ALT` |`KC_RALT`, `KC_ROPT`, `KC_ALGR`|Right Alt (Option/AltGr) |
120|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)| 120|`KC_RIGHT_GUI` |`KC_RGUI`, `KC_RCMD`, `KC_RWIN`|Right GUI (Windows/Command/Meta key)|
121 121
122## International 122## International
123 123
124|Key |Aliases |Description | 124|Key |Aliases |Description |
125|----------|---------|---------------------| 125|--------------------|---------|---------------------|
126|`KC_INT1` |`KC_RO` |JIS `\` and `_` | 126|`KC_INTERNATIONAL_1`|`KC_INT1`|JIS `\` and `_` |
127|`KC_INT2` |`KC_KANA`|JIS Katakana/Hiragana| 127|`KC_INTERNATIONAL_2`|`KC_INT2`|JIS Katakana/Hiragana|
128|`KC_INT3` |`KC_JYEN`|JIS `¥` and `\|` | 128|`KC_INTERNATIONAL_3`|`KC_INT3`|JIS `¥` and `\|` |
129|`KC_INT4` |`KC_HENK`|JIS Henkan | 129|`KC_INTERNATIONAL_4`|`KC_INT4`|JIS Henkan |
130|`KC_INT5` |`KC_MHEN`|JIS Muhenkan | 130|`KC_INTERNATIONAL_5`|`KC_INT5`|JIS Muhenkan |
131|`KC_INT6` | |JIS Numpad `,` | 131|`KC_INTERNATIONAL_6`|`KC_INT6`|JIS Numpad `,` |
132|`KC_INT7` | |International 7 | 132|`KC_INTERNATIONAL_7`|`KC_INT7`|International 7 |
133|`KC_INT8` | |International 8 | 133|`KC_INTERNATIONAL_8`|`KC_INT8`|International 8 |
134|`KC_INT9` | |International 9 | 134|`KC_INTERNATIONAL_9`|`KC_INT9`|International 9 |
135|`KC_LANG1`|`KC_HAEN`|Hangul/English | 135|`KC_LANGUAGE_1` |`KC_LNG1`|Hangul/English |
136|`KC_LANG2`|`KC_HANJ`|Hanja | 136|`KC_LANGUAGE_2` |`KC_LNG2`|Hanja |
137|`KC_LANG3`| |JIS Katakana | 137|`KC_LANGUAGE_3` |`KC_LNG3`|JIS Katakana |
138|`KC_LANG4`| |JIS Hiragana | 138|`KC_LANGUAGE_4` |`KC_LNG4`|JIS Hiragana |
139|`KC_LANG5`| |JIS Zenkaku/Hankaku | 139|`KC_LANGUAGE_5` |`KC_LNG5`|JIS Zenkaku/Hankaku |
140|`KC_LANG6`| |Language 6 | 140|`KC_LANGUAGE_6` |`KC_LNG6`|Language 6 |
141|`KC_LANG7`| |Language 7 | 141|`KC_LANGUAGE_7` |`KC_LNG7`|Language 7 |
142|`KC_LANG8`| |Language 8 | 142|`KC_LANGUAGE_8` |`KC_LNG8`|Language 8 |
143|`KC_LANG9`| |Language 9 | 143|`KC_LANGUAGE_9` |`KC_LNG9`|Language 9 |
144 144
145## Commands 145## Commands
146 146
147|Key |Aliases |Description | 147|Key |Aliases |Description |
148|------------------|------------------------------|--------------------------------------| 148|--------------------|------------------------------|--------------------------------------|
149|`KC_PSCREEN` |`KC_PSCR` |Print Screen | 149|`KC_PRINT_SCREEN` |`KC_PSCR` |Print Screen |
150|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) | 150|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) |
151|`KC_INSERT` |`KC_INS` |Insert | 151|`KC_INSERT` |`KC_INS` |Insert |
152|`KC_HOME` | |Home | 152|`KC_HOME` | |Home |
153|`KC_PGUP` | |Page Up | 153|`KC_PAGE_UP` |`KC_PGUP` |Page Up |
154|`KC_DELETE` |`KC_DEL` |Forward Delete | 154|`KC_DELETE` |`KC_DEL` |Forward Delete |
155|`KC_END` | |End | 155|`KC_END` | |End |
156|`KC_PGDOWN` |`KC_PGDN` |Page Down | 156|`KC_PAGE_DOWN` |`KC_PGDN` |Page Down |
157|`KC_RIGHT` |`KC_RGHT` |Right Arrow | 157|`KC_RIGHT` |`KC_RGHT` |Right Arrow |
158|`KC_LEFT` | |Left Arrow | 158|`KC_LEFT` | |Left Arrow |
159|`KC_DOWN` | |Down Arrow | 159|`KC_DOWN` | |Down Arrow |
160|`KC_UP` | |Up Arrow | 160|`KC_UP` | |Up Arrow |
161|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key)| 161|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key)|
162|`KC_POWER` | |System Power | 162|`KC_KB_POWER` | |System Power |
163|`KC_EXECUTE` |`KC_EXEC` |Execute | 163|`KC_EXECUTE` |`KC_EXEC` |Execute |
164|`KC_HELP` | |Help | 164|`KC_HELP` | |Help |
165|`KC_MENU` | |Menu | 165|`KC_MENU` | |Menu |
166|`KC_SELECT` |`KC_SLCT` |Select | 166|`KC_SELECT` |`KC_SLCT` |Select |
167|`KC_STOP` | |Stop | 167|`KC_STOP` | |Stop |
168|`KC_AGAIN` |`KC_AGIN` |Again | 168|`KC_AGAIN` |`KC_AGIN` |Again |
169|`KC_UNDO` | |Undo | 169|`KC_UNDO` | |Undo |
170|`KC_CUT` | |Cut | 170|`KC_CUT` | |Cut |
171|`KC_COPY` | |Copy | 171|`KC_COPY` | |Copy |
172|`KC_PASTE` |`KC_PSTE` |Paste | 172|`KC_PASTE` |`KC_PSTE` |Paste |
173|`KC_FIND` | |Find | 173|`KC_FIND` | |Find |
174|`KC__MUTE` | |Mute | 174|`KC_KB_MUTE` | |Mute |
175|`KC__VOLUP` | |Volume Up | 175|`KC_KB_VOLUME_UP` | |Volume Up |
176|`KC__VOLDOWN` | |Volume Down | 176|`KC_KB_VOLUME_DOWN` | |Volume Down |
177|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | 177|`KC_ALTERNATE_ERASE`|`KC_ERAS` |Alternate Erase |
178|`KC_SYSREQ` | |SysReq/Attention | 178|`KC_SYSTEM_REQUEST` |`KC_SYRQ` |SysReq/Attention |
179|`KC_CANCEL` | |Cancel | 179|`KC_CANCEL` |`KC_CNCL` |Cancel |
180|`KC_CLEAR` |`KC_CLR` |Clear | 180|`KC_CLEAR` |`KC_CLR` |Clear |
181|`KC_PRIOR` | |Prior | 181|`KC_PRIOR` |`KC_PRIR` |Prior |
182|`KC_RETURN` | |Return | 182|`KC_RETURN` |`KC_RETN` |Return |
183|`KC_SEPARATOR` | |Separator | 183|`KC_SEPARATOR` |`KC_SEPR` |Separator |
184|`KC_OUT` | |Out | 184|`KC_OUT` | |Out |
185|`KC_OPER` | |Oper | 185|`KC_OPER` | |Oper |
186|`KC_CLEAR_AGAIN` | |Clear/Again | 186|`KC_CLEAR_AGAIN` |`KC_CLAG` |Clear/Again |
187|`KC_CRSEL` | |CrSel/Props | 187|`KC_CRSEL` |`KC_CRSL` |CrSel/Props |
188|`KC_EXSEL` | |ExSel | 188|`KC_EXSEL` |`KC_EXSL` |ExSel |
189 189
190## Media Keys 190## Media Keys
191 191
diff --git a/docs/keymap.md b/docs/keymap.md
index ef476e87f..bec781e68 100644
--- a/docs/keymap.md
+++ b/docs/keymap.md
@@ -105,7 +105,7 @@ At the top of the file you'll find this:
105 #include QMK_KEYBOARD_H 105 #include QMK_KEYBOARD_H
106 106
107 // Helpful defines 107 // Helpful defines
108 #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)) 108 #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))
109 109
110 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 110 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
111 * You can use _______ in place for KC_TRNS (transparent) * 111 * 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
164 164
165 [_FL] = LAYOUT( 165 [_FL] = LAYOUT(
166 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, \ 166 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, \
167 _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, _______, _______, \ 167 _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SCRL, KC_PAUS, _______, _______, _______, _______, \
168 _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ 168 _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \
169 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, \ 169 _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, \
170 _______, _______, _______, _______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END), 170 _______, _______, _______, _______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END),
diff --git a/docs/reference_configurator_support.md b/docs/reference_configurator_support.md
index ba3d49e2b..db6cd80a2 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}
168k40 | {"label":"0", "x":0, "y":4, "w":2} 168k40 | {"label":"0", "x":0, "y":4, "w":2}
169k42 | {"label":".", "x":2, "y":4} 169k42 | {"label":".", "x":2, "y":4}
170 170
171When 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. 171When 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.
172 172
173 173
174## Issues and Hazards 174## Issues and Hazards
diff --git a/docs/tap_hold.md b/docs/tap_hold.md
index 71bff30ba..5a4c20961 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`:
247 247
248Holding 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. 248Holding 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.
249 249
250For 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. 250For 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.
251 251
252For more granular control of this feature, you can add the following to your `config.h`: 252For more granular control of this feature, you can add the following to your `config.h`:
253 253
@@ -260,7 +260,7 @@ You can then add the following function to your keymap:
260```c 260```c
261bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { 261bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
262 switch (keycode) { 262 switch (keycode) {
263 case LT(2, KC_SPACE): 263 case LT(2, KC_SPC):
264 return true; 264 return true;
265 default: 265 default:
266 return false; 266 return false;
diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md
index 42a41fbe2..e0c2ab7dc 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
66 k30, k31, k32, k33, \ 66 k30, k31, k32, k33, \
67 k40, k42 \ 67 k40, k42 \
68) { \ 68) { \
69 { k00, k01, k02, k03, }, \ 69 { k00, k01, k02, k03 }, \
70 { k10, k11, k12, k13, }, \ 70 { k10, k11, k12, k13 }, \
71 { k20, k21, k22, KC_NO, }, \ 71 { k20, k21, k22, KC_NO }, \
72 { k30, k31, k32, k33, }, \ 72 { k30, k31, k32, k33 }, \
73 { k40, KC_NO, k42, KC_NO } \ 73 { k40, KC_NO, k42, KC_NO } \
74} 74}
75``` 75```
@@ -82,14 +82,15 @@ You can also use this macro to handle unusual matrix layouts, for example the [C
82 82
83At the keymap level we make use of our `LAYOUT()` macro above to map keycodes to physical locations to matrix locations. It looks like this: 83At the keymap level we make use of our `LAYOUT()` macro above to map keycodes to physical locations to matrix locations. It looks like this:
84 84
85``` 85```c
86const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 86const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
87[0] = LAYOUT( 87 [0] = LAYOUT(
88 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ 88 KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
89 KC_P7, KC_P8, KC_P9, KC_PPLS, \ 89 KC_P7, KC_P8, KC_P9, KC_PPLS,
90 KC_P4, KC_P5, KC_P6, \ 90 KC_P4, KC_P5, KC_P6,
91 KC_P1, KC_P2, KC_P3, KC_PENT, \ 91 KC_P1, KC_P2, KC_P3, KC_PENT,
92 KC_P0, KC_PDOT) 92 KC_P0, KC_PDOT
93 )
93} 94}
94``` 95```
95 96
@@ -123,7 +124,7 @@ And when our current scan completes it will look like this:
123} 124}
124``` 125```
125 126
126Comparing against our keymap we can see that the pressed key is KC_NLCK. From here we dispatch to the `process_record` set of functions. 127Comparing against our keymap we can see that the pressed key is `KC_NUM`. From here we dispatch to the `process_record` set of functions.
127 128
128<!-- FIXME: Magic happens between here and process_record --> 129<!-- FIXME: Magic happens between here and process_record -->
129 130