aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
-rw-r--r--layouts/default/60_hhkb/default_60_hhkb/keymap.c2
-rw-r--r--layouts/default/64_ansi/default_64_ansi/keymap.c2
-rw-r--r--layouts/default/64_iso/default_64_iso/keymap.c2
-rw-r--r--layouts/default/96_ansi/default_96_ansi/keymap.c4
-rw-r--r--layouts/default/96_iso/default_96_iso/keymap.c4
-rw-r--r--layouts/default/fullsize_ansi/default_fullsize_ansi/keymap.c4
-rw-r--r--layouts/default/fullsize_iso/default_fullsize_iso/keymap.c4
-rw-r--r--layouts/default/numpad_6x4/default_numpad_6x4/keymap.c2
-rw-r--r--layouts/default/numpad_6x5/default_numpad_6x5/keymap.c12
-rw-r--r--layouts/default/ortho_6x4/default_ortho_6x4/keymap.c2
-rw-r--r--layouts/default/tkl_ansi/default_tkl_ansi/keymap.c2
-rw-r--r--layouts/default/tkl_iso/default_tkl_iso/keymap.c2
-rw-r--r--quantum/action.c52
-rw-r--r--quantum/keycode.h272
-rw-r--r--quantum/keycode_config.c66
-rw-r--r--quantum/keycode_legacy.h53
-rw-r--r--quantum/keymap_common.c4
-rw-r--r--quantum/keymap_extras/keymap_korean.h4
-rw-r--r--quantum/process_keycode/process_auto_shift.c16
-rw-r--r--quantum/process_keycode/process_haptic.c26
-rw-r--r--quantum/process_keycode/process_music.c6
-rw-r--r--quantum/process_keycode/process_printer.c32
-rw-r--r--quantum/process_keycode/process_printer_bb.c32
-rw-r--r--quantum/process_keycode/process_space_cadet.c24
-rw-r--r--quantum/process_keycode/process_terminal.c10
-rw-r--r--quantum/process_keycode/process_ucis.c18
-rw-r--r--quantum/process_keycode/process_unicode_common.c18
-rw-r--r--quantum/process_keycode/process_unicode_common.h4
-rw-r--r--quantum/quantum.c16
-rw-r--r--quantum/quantum_keycodes.h82
-rw-r--r--quantum/via_ensure_keycode.h670
-rw-r--r--quantum/wpm.c2
-rw-r--r--tests/basic/test_keypress.cpp72
-rw-r--r--tests/basic/test_macro.cpp18
-rw-r--r--tests/basic/test_tapping.cpp4
52 files changed, 1135 insertions, 1081 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
diff --git a/layouts/default/60_hhkb/default_60_hhkb/keymap.c b/layouts/default/60_hhkb/default_60_hhkb/keymap.c
index 73804b8bb..81a0fc7d9 100644
--- a/layouts/default/60_hhkb/default_60_hhkb/keymap.c
+++ b/layouts/default/60_hhkb/default_60_hhkb/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37 */ 37 */
38 [1] = LAYOUT_60_hhkb( 38 [1] = LAYOUT_60_hhkb(
39 KC_PWR, 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_INS, KC_DEL, 39 KC_PWR, 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_INS, KC_DEL,
40 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, 40 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
41 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, 41 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
42 _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, 42 _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
43 _______, _______, _______, _______, _______ 43 _______, _______, _______, _______, _______
diff --git a/layouts/default/64_ansi/default_64_ansi/keymap.c b/layouts/default/64_ansi/default_64_ansi/keymap.c
index ff1356e95..aae78dc8d 100644
--- a/layouts/default/64_ansi/default_64_ansi/keymap.c
+++ b/layouts/default/64_ansi/default_64_ansi/keymap.c
@@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 ), 25 ),
26 [1] = LAYOUT_64_ansi( 26 [1] = LAYOUT_64_ansi(
27 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, 27 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,
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, 28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
31 _______, _______, _______, _______, _______, MO(2), KC_HOME, KC_PGDN, KC_END 31 _______, _______, _______, _______, _______, MO(2), KC_HOME, KC_PGDN, KC_END
diff --git a/layouts/default/64_iso/default_64_iso/keymap.c b/layouts/default/64_iso/default_64_iso/keymap.c
index a0ac1a151..45e07dd9c 100644
--- a/layouts/default/64_iso/default_64_iso/keymap.c
+++ b/layouts/default/64_iso/default_64_iso/keymap.c
@@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 ), 25 ),
26 [1] = LAYOUT_64_iso( 26 [1] = LAYOUT_64_iso(
27 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, 27 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,
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, 28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
31 _______, _______, _______, _______, _______, MO(2), KC_HOME, KC_PGDN, KC_END 31 _______, _______, _______, _______, _______, MO(2), KC_HOME, KC_PGDN, KC_END
diff --git a/layouts/default/96_ansi/default_96_ansi/keymap.c b/layouts/default/96_ansi/default_96_ansi/keymap.c
index 18a67fcef..35ece2f70 100644
--- a/layouts/default/96_ansi/default_96_ansi/keymap.c
+++ b/layouts/default/96_ansi/default_96_ansi/keymap.c
@@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ 33 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
34 */ 34 */
35 [0] = LAYOUT_96_ansi( 35 [0] = LAYOUT_96_ansi(
36 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_VOLD, KC_VOLU, KC_MUTE, 36 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_VOLD, KC_VOLU, KC_MUTE,
37 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 37 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
38 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_P7, KC_P8, KC_P9, KC_PPLS, 38 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_P7, KC_P8, KC_P9, KC_PPLS,
39 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_ENT, KC_P4, KC_P5, KC_P6, 39 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_ENT, KC_P4, KC_P5, KC_P6,
40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, 40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
diff --git a/layouts/default/96_iso/default_96_iso/keymap.c b/layouts/default/96_iso/default_96_iso/keymap.c
index df36f95ab..742bb9cec 100644
--- a/layouts/default/96_iso/default_96_iso/keymap.c
+++ b/layouts/default/96_iso/default_96_iso/keymap.c
@@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ 33 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
34 */ 34 */
35 [0] = LAYOUT_96_iso( 35 [0] = LAYOUT_96_iso(
36 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_VOLD, KC_VOLU, KC_MUTE, 36 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_VOLD, KC_VOLU, KC_MUTE,
37 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 37 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
38 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_P7, KC_P8, KC_P9, KC_PPLS, 38 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_P7, KC_P8, KC_P9, KC_PPLS,
39 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, KC_P4, KC_P5, KC_P6, 39 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, KC_P4, KC_P5, KC_P6,
40 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, 40 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
diff --git a/layouts/default/fullsize_ansi/default_fullsize_ansi/keymap.c b/layouts/default/fullsize_ansi/default_fullsize_ansi/keymap.c
index dbe7c58c6..2e7bd55f9 100644
--- a/layouts/default/fullsize_ansi/default_fullsize_ansi/keymap.c
+++ b/layouts/default/fullsize_ansi/default_fullsize_ansi/keymap.c
@@ -18,9 +18,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ 18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
19 */ 19 */
20 [0] = LAYOUT_fullsize_ansi( 20 [0] = LAYOUT_fullsize_ansi(
21 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, 21 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,
22 22
23 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_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 23 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_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
24 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_P7, KC_P8, KC_P9, KC_PPLS, 24 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_P7, KC_P8, KC_P9, KC_PPLS,
25 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_ENT, KC_P4, KC_P5, KC_P6, 25 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_ENT, KC_P4, KC_P5, KC_P6,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, 26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
diff --git a/layouts/default/fullsize_iso/default_fullsize_iso/keymap.c b/layouts/default/fullsize_iso/default_fullsize_iso/keymap.c
index e2df016ad..c88693b2d 100644
--- a/layouts/default/fullsize_iso/default_fullsize_iso/keymap.c
+++ b/layouts/default/fullsize_iso/default_fullsize_iso/keymap.c
@@ -18,9 +18,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ 18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
19 */ 19 */
20 [0] = LAYOUT_fullsize_iso( 20 [0] = LAYOUT_fullsize_iso(
21 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, 21 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,
22 22
23 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_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 23 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_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
24 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, 24 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
25 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, KC_P4, KC_P5, KC_P6, 25 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, KC_P4, KC_P5, KC_P6,
26 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, 26 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
diff --git a/layouts/default/numpad_6x4/default_numpad_6x4/keymap.c b/layouts/default/numpad_6x4/default_numpad_6x4/keymap.c
index 85328983b..53cd4d346 100644
--- a/layouts/default/numpad_6x4/default_numpad_6x4/keymap.c
+++ b/layouts/default/numpad_6x4/default_numpad_6x4/keymap.c
@@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 */ 18 */
19 [0] = LAYOUT_numpad_6x4( 19 [0] = LAYOUT_numpad_6x4(
20 KC_ESC, KC_TAB, MO(1), KC_BSPC, 20 KC_ESC, KC_TAB, MO(1), KC_BSPC,
21 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 21 KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
22 KC_P7, KC_P8, KC_P9, 22 KC_P7, KC_P8, KC_P9,
23 KC_P4, KC_P5, KC_P6, KC_PPLS, 23 KC_P4, KC_P5, KC_P6, KC_PPLS,
24 KC_P1, KC_P2, KC_P3, 24 KC_P1, KC_P2, KC_P3,
diff --git a/layouts/default/numpad_6x5/default_numpad_6x5/keymap.c b/layouts/default/numpad_6x5/default_numpad_6x5/keymap.c
index 27ef07d19..2bdbfc468 100644
--- a/layouts/default/numpad_6x5/default_numpad_6x5/keymap.c
+++ b/layouts/default/numpad_6x5/default_numpad_6x5/keymap.c
@@ -33,12 +33,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 * └───┴───────┴───┴───┘ 33 * └───┴───────┴───┴───┘
34 */ 34 */
35 [0] = LAYOUT_numpad_6x5( 35 [0] = LAYOUT_numpad_6x5(
36 KC_GRAVE, KC_ESC, KC_TAB, MO(1), KC_BSPC, 36 KC_GRV, KC_ESC, KC_TAB, MO(1), KC_BSPC,
37 KC_COMMA, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 37 KC_COMM, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
38 KC_LGUI, KC_P7, KC_P8, KC_P9, 38 KC_LGUI, KC_P7, KC_P8, KC_P9,
39 KC_LALT, KC_P4, KC_P5, KC_P6, KC_PPLS, 39 KC_LALT, KC_P4, KC_P5, KC_P6, KC_PPLS,
40 KC_LSHIFT, KC_P1, KC_P2, KC_P3, 40 KC_LSFT, KC_P1, KC_P2, KC_P3,
41 KC_LCTRL, KC_P0, KC_PDOT, KC_PENT 41 KC_LCTL, KC_P0, KC_PDOT, KC_PENT
42 ), 42 ),
43 43
44 /* 44 /*
diff --git a/layouts/default/ortho_6x4/default_ortho_6x4/keymap.c b/layouts/default/ortho_6x4/default_ortho_6x4/keymap.c
index 9beb9204a..d1dc759de 100644
--- a/layouts/default/ortho_6x4/default_ortho_6x4/keymap.c
+++ b/layouts/default/ortho_6x4/default_ortho_6x4/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 */ 22 */
23 [0] = LAYOUT_ortho_6x4( 23 [0] = LAYOUT_ortho_6x4(
24 KC_ESC, KC_TAB, MO(1), KC_BSPC, 24 KC_ESC, KC_TAB, MO(1), KC_BSPC,
25 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 25 KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
26 KC_P7, KC_P8, KC_P9, KC_PPLS, 26 KC_P7, KC_P8, KC_P9, KC_PPLS,
27 KC_P4, KC_P5, KC_P6, KC_PERC, 27 KC_P4, KC_P5, KC_P6, KC_PERC,
28 KC_P1, KC_P2, KC_P3, KC_EQL, 28 KC_P1, KC_P2, KC_P3, KC_EQL,
diff --git a/layouts/default/tkl_ansi/default_tkl_ansi/keymap.c b/layouts/default/tkl_ansi/default_tkl_ansi/keymap.c
index 8b41a22b3..caed507c7 100644
--- a/layouts/default/tkl_ansi/default_tkl_ansi/keymap.c
+++ b/layouts/default/tkl_ansi/default_tkl_ansi/keymap.c
@@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ 18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
19 */ 19 */
20 [0] = LAYOUT_tkl_ansi( 20 [0] = LAYOUT_tkl_ansi(
21 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, 21 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,
22 22
23 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_INS, KC_HOME, KC_PGUP, 23 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_INS, KC_HOME, KC_PGUP,
24 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, 24 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,
diff --git a/layouts/default/tkl_iso/default_tkl_iso/keymap.c b/layouts/default/tkl_iso/default_tkl_iso/keymap.c
index f82939d87..2c4ffd012 100644
--- a/layouts/default/tkl_iso/default_tkl_iso/keymap.c
+++ b/layouts/default/tkl_iso/default_tkl_iso/keymap.c
@@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ 18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
19 */ 19 */
20 [0] = LAYOUT_tkl_iso( 20 [0] = LAYOUT_tkl_iso(
21 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, 21 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,
22 22
23 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_INS, KC_HOME, KC_PGUP, 23 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_INS, KC_HOME, KC_PGUP,
24 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_DEL, KC_END, KC_PGDN, 24 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_DEL, KC_END, KC_PGDN,
diff --git a/quantum/action.c b/quantum/action.c
index 5c33bd6d2..ceaaa551f 100644
--- a/quantum/action.c
+++ b/quantum/action.c
@@ -277,8 +277,8 @@ void process_action(keyrecord_t *record, action_t action) {
277 if (event.pressed) { 277 if (event.pressed) {
278 if (mods) { 278 if (mods) {
279 if (IS_MOD(action.key.code) || action.key.code == KC_NO) { 279 if (IS_MOD(action.key.code) || action.key.code == KC_NO) {
280 // e.g. LSFT(KC_LGUI): we don't want the LSFT to be weak as it would make it useless. 280 // e.g. LSFT(KC_LEFT_GUI): we don't want the LSFT to be weak as it would make it useless.
281 // This also makes LSFT(KC_LGUI) behave exactly the same as LGUI(KC_LSFT). 281 // This also makes LSFT(KC_LEFT_GUI) behave exactly the same as LGUI(KC_LEFT_SHIFT).
282 // Same applies for some keys like KC_MEH which are declared as MEH(KC_NO). 282 // Same applies for some keys like KC_MEH which are declared as MEH(KC_NO).
283 add_mods(mods); 283 add_mods(mods);
284 } else { 284 } else {
@@ -410,7 +410,7 @@ void process_action(keyrecord_t *record, action_t action) {
410 } else { 410 } else {
411 if (tap_count > 0) { 411 if (tap_count > 0) {
412 dprint("MODS_TAP: Tap: unregister_code\n"); 412 dprint("MODS_TAP: Tap: unregister_code\n");
413 if (action.layer_tap.code == KC_CAPS) { 413 if (action.layer_tap.code == KC_CAPS_LOCK) {
414 wait_ms(TAP_HOLD_CAPS_DELAY); 414 wait_ms(TAP_HOLD_CAPS_DELAY);
415 } else { 415 } else {
416 wait_ms(TAP_CODE_DELAY); 416 wait_ms(TAP_CODE_DELAY);
@@ -609,7 +609,7 @@ void process_action(keyrecord_t *record, action_t action) {
609 } else { 609 } else {
610 if (tap_count > 0) { 610 if (tap_count > 0) {
611 dprint("KEYMAP_TAP_KEY: Tap: unregister_code\n"); 611 dprint("KEYMAP_TAP_KEY: Tap: unregister_code\n");
612 if (action.layer_tap.code == KC_CAPS) { 612 if (action.layer_tap.code == KC_CAPS_LOCK) {
613 wait_ms(TAP_HOLD_CAPS_DELAY); 613 wait_ms(TAP_HOLD_CAPS_DELAY);
614 } else { 614 } else {
615 wait_ms(TAP_CODE_DELAY); 615 wait_ms(TAP_CODE_DELAY);
@@ -786,37 +786,37 @@ void register_code(uint8_t code) {
786 return; 786 return;
787 } 787 }
788#ifdef LOCKING_SUPPORT_ENABLE 788#ifdef LOCKING_SUPPORT_ENABLE
789 else if (KC_LOCKING_CAPS == code) { 789 else if (KC_LOCKING_CAPS_LOCK == code) {
790# ifdef LOCKING_RESYNC_ENABLE 790# ifdef LOCKING_RESYNC_ENABLE
791 // Resync: ignore if caps lock already is on 791 // Resync: ignore if caps lock already is on
792 if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) return; 792 if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) return;
793# endif 793# endif
794 add_key(KC_CAPSLOCK); 794 add_key(KC_CAPS_LOCK);
795 send_keyboard_report(); 795 send_keyboard_report();
796 wait_ms(100); 796 wait_ms(100);
797 del_key(KC_CAPSLOCK); 797 del_key(KC_CAPS_LOCK);
798 send_keyboard_report(); 798 send_keyboard_report();
799 } 799 }
800 800
801 else if (KC_LOCKING_NUM == code) { 801 else if (KC_LOCKING_NUM_LOCK == code) {
802# ifdef LOCKING_RESYNC_ENABLE 802# ifdef LOCKING_RESYNC_ENABLE
803 if (host_keyboard_leds() & (1 << USB_LED_NUM_LOCK)) return; 803 if (host_keyboard_leds() & (1 << USB_LED_NUM_LOCK)) return;
804# endif 804# endif
805 add_key(KC_NUMLOCK); 805 add_key(KC_NUM_LOCK);
806 send_keyboard_report(); 806 send_keyboard_report();
807 wait_ms(100); 807 wait_ms(100);
808 del_key(KC_NUMLOCK); 808 del_key(KC_NUM_LOCK);
809 send_keyboard_report(); 809 send_keyboard_report();
810 } 810 }
811 811
812 else if (KC_LOCKING_SCROLL == code) { 812 else if (KC_LOCKING_SCROLL_LOCK == code) {
813# ifdef LOCKING_RESYNC_ENABLE 813# ifdef LOCKING_RESYNC_ENABLE
814 if (host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK)) return; 814 if (host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK)) return;
815# endif 815# endif
816 add_key(KC_SCROLLLOCK); 816 add_key(KC_SCROLL_LOCK);
817 send_keyboard_report(); 817 send_keyboard_report();
818 wait_ms(100); 818 wait_ms(100);
819 del_key(KC_SCROLLLOCK); 819 del_key(KC_SCROLL_LOCK);
820 send_keyboard_report(); 820 send_keyboard_report();
821 } 821 }
822#endif 822#endif
@@ -882,34 +882,34 @@ void unregister_code(uint8_t code) {
882 return; 882 return;
883 } 883 }
884#ifdef LOCKING_SUPPORT_ENABLE 884#ifdef LOCKING_SUPPORT_ENABLE
885 else if (KC_LOCKING_CAPS == code) { 885 else if (KC_LOCKING_CAPS_LOCK == code) {
886# ifdef LOCKING_RESYNC_ENABLE 886# ifdef LOCKING_RESYNC_ENABLE
887 // Resync: ignore if caps lock already is off 887 // Resync: ignore if caps lock already is off
888 if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) return; 888 if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) return;
889# endif 889# endif
890 add_key(KC_CAPSLOCK); 890 add_key(KC_CAPS_LOCK);
891 send_keyboard_report(); 891 send_keyboard_report();
892 del_key(KC_CAPSLOCK); 892 del_key(KC_CAPS_LOCK);
893 send_keyboard_report(); 893 send_keyboard_report();
894 } 894 }
895 895
896 else if (KC_LOCKING_NUM == code) { 896 else if (KC_LOCKING_NUM_LOCK == code) {
897# ifdef LOCKING_RESYNC_ENABLE 897# ifdef LOCKING_RESYNC_ENABLE
898 if (!(host_keyboard_leds() & (1 << USB_LED_NUM_LOCK))) return; 898 if (!(host_keyboard_leds() & (1 << USB_LED_NUM_LOCK))) return;
899# endif 899# endif
900 add_key(KC_NUMLOCK); 900 add_key(KC_NUM_LOCK);
901 send_keyboard_report(); 901 send_keyboard_report();
902 del_key(KC_NUMLOCK); 902 del_key(KC_NUM_LOCK);
903 send_keyboard_report(); 903 send_keyboard_report();
904 } 904 }
905 905
906 else if (KC_LOCKING_SCROLL == code) { 906 else if (KC_LOCKING_SCROLL_LOCK == code) {
907# ifdef LOCKING_RESYNC_ENABLE 907# ifdef LOCKING_RESYNC_ENABLE
908 if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK))) return; 908 if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK))) return;
909# endif 909# endif
910 add_key(KC_SCROLLLOCK); 910 add_key(KC_SCROLL_LOCK);
911 send_keyboard_report(); 911 send_keyboard_report();
912 del_key(KC_SCROLLLOCK); 912 del_key(KC_SCROLL_LOCK);
913 send_keyboard_report(); 913 send_keyboard_report();
914 } 914 }
915#endif 915#endif
@@ -952,9 +952,9 @@ void tap_code_delay(uint8_t code, uint16_t delay) {
952 952
953/** \brief Tap a keycode with the default delay. 953/** \brief Tap a keycode with the default delay.
954 * 954 *
955 * \param code The basic keycode to tap. If `code` is `KC_CAPS`, the delay will be `TAP_HOLD_CAPS_DELAY`, otherwise `TAP_CODE_DELAY`, if defined. 955 * \param code The basic keycode to tap. If `code` is `KC_CAPS_LOCK`, the delay will be `TAP_HOLD_CAPS_DELAY`, otherwise `TAP_CODE_DELAY`, if defined.
956 */ 956 */
957void tap_code(uint8_t code) { tap_code_delay(code, code == KC_CAPS ? TAP_HOLD_CAPS_DELAY : TAP_CODE_DELAY); } 957void tap_code(uint8_t code) { tap_code_delay(code, code == KC_CAPS_LOCK ? TAP_HOLD_CAPS_DELAY : TAP_CODE_DELAY); }
958 958
959/** \brief Adds the given physically pressed modifiers and sends a keyboard report immediately. 959/** \brief Adds the given physically pressed modifiers and sends a keyboard report immediately.
960 * 960 *
@@ -1078,7 +1078,7 @@ bool is_tap_action(action_t action) {
1078 case ACT_LAYER_TAP: 1078 case ACT_LAYER_TAP:
1079 case ACT_LAYER_TAP_EXT: 1079 case ACT_LAYER_TAP_EXT:
1080 switch (action.layer_tap.code) { 1080 switch (action.layer_tap.code) {
1081 case KC_NO ... KC_RGUI: 1081 case KC_NO ... KC_RIGHT_GUI:
1082 case OP_TAP_TOGGLE: 1082 case OP_TAP_TOGGLE:
1083 case OP_ONESHOT: 1083 case OP_ONESHOT:
1084 return true; 1084 return true;
@@ -1086,7 +1086,7 @@ bool is_tap_action(action_t action) {
1086 return false; 1086 return false;
1087 case ACT_SWAP_HANDS: 1087 case ACT_SWAP_HANDS:
1088 switch (action.swap.code) { 1088 switch (action.swap.code) {
1089 case KC_NO ... KC_RGUI: 1089 case KC_NO ... KC_RIGHT_GUI:
1090 case OP_SH_TAP_TOGGLE: 1090 case OP_SH_TAP_TOGGLE:
1091 return true; 1091 return true;
1092 } 1092 }
diff --git a/quantum/keycode.h b/quantum/keycode.h
index 8facabd81..38a29b439 100644
--- a/quantum/keycode.h
+++ b/quantum/keycode.h
@@ -29,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED) 29#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED)
30#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF) 30#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF)
31#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL) 31#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL)
32#define IS_MOD(code) (KC_LCTRL <= (code) && (code) <= KC_RGUI) 32#define IS_MOD(code) (KC_LEFT_CTRL <= (code) && (code) <= KC_RIGHT_GUI)
33 33
34#define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) 34#define IS_SPECIAL(code) ((0xA5 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF))
35#define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE) 35#define IS_SYSTEM(code) (KC_PWR <= (code) && (code) <= KC_WAKE)
@@ -46,10 +46,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
46#define MOD_BIT(code) (1 << MOD_INDEX(code)) 46#define MOD_BIT(code) (1 << MOD_INDEX(code))
47#define MOD_INDEX(code) ((code)&0x07) 47#define MOD_INDEX(code) ((code)&0x07)
48 48
49#define MOD_MASK_CTRL (MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RCTRL)) 49#define MOD_MASK_CTRL (MOD_BIT(KC_LEFT_CTRL) | MOD_BIT(KC_RIGHT_CTRL))
50#define MOD_MASK_SHIFT (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) 50#define MOD_MASK_SHIFT (MOD_BIT(KC_LEFT_SHIFT) | MOD_BIT(KC_RIGHT_SHIFT))
51#define MOD_MASK_ALT (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) 51#define MOD_MASK_ALT (MOD_BIT(KC_LEFT_ALT) | MOD_BIT(KC_RIGHT_ALT))
52#define MOD_MASK_GUI (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) 52#define MOD_MASK_GUI (MOD_BIT(KC_LEFT_GUI) | MOD_BIT(KC_RIGHT_GUI))
53#define MOD_MASK_CS (MOD_MASK_CTRL | MOD_MASK_SHIFT) 53#define MOD_MASK_CS (MOD_MASK_CTRL | MOD_MASK_SHIFT)
54#define MOD_MASK_CA (MOD_MASK_CTRL | MOD_MASK_ALT) 54#define MOD_MASK_CA (MOD_MASK_CTRL | MOD_MASK_ALT)
55#define MOD_MASK_CG (MOD_MASK_CTRL | MOD_MASK_GUI) 55#define MOD_MASK_CG (MOD_MASK_CTRL | MOD_MASK_GUI)
@@ -67,6 +67,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
67#define FN_MIN KC_FN0 67#define FN_MIN KC_FN0
68#define FN_MAX KC_FN31 68#define FN_MAX KC_FN31
69 69
70// clang-format off
71
70/* 72/*
71 * Short names for ease of definition of keymap 73 * Short names for ease of definition of keymap
72 */ 74 */
@@ -75,47 +77,55 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
75#define KC_TRNS KC_TRANSPARENT 77#define KC_TRNS KC_TRANSPARENT
76 78
77/* Punctuation */ 79/* Punctuation */
78#define KC_ENT KC_ENTER 80#define KC_ENT KC_ENTER
79#define KC_ESC KC_ESCAPE 81#define KC_ESC KC_ESCAPE
80#define KC_BSPC KC_BSPACE 82#define KC_BSPC KC_BACKSPACE
81#define KC_SPC KC_SPACE 83#define KC_SPC KC_SPACE
82#define KC_MINS KC_MINUS 84#define KC_MINS KC_MINUS
83#define KC_EQL KC_EQUAL 85#define KC_EQL KC_EQUAL
84#define KC_LBRC KC_LBRACKET 86#define KC_LBRC KC_LEFT_BRACKET
85#define KC_RBRC KC_RBRACKET 87#define KC_RBRC KC_RIGHT_BRACKET
86#define KC_BSLS KC_BSLASH 88#define KC_BSLS KC_BACKSLASH
87#define KC_NUHS KC_NONUS_HASH 89#define KC_NUHS KC_NONUS_HASH
88#define KC_SCLN KC_SCOLON 90#define KC_SCLN KC_SEMICOLON
89#define KC_QUOT KC_QUOTE 91#define KC_QUOT KC_QUOTE
90#define KC_GRV KC_GRAVE 92#define KC_GRV KC_GRAVE
91#define KC_COMM KC_COMMA 93#define KC_COMM KC_COMMA
92#define KC_SLSH KC_SLASH 94#define KC_SLSH KC_SLASH
93#define KC_NUBS KC_NONUS_BSLASH 95#define KC_NUBS KC_NONUS_BACKSLASH
94 96
95/* Lock Keys */ 97/* Lock Keys */
96#define KC_CLCK KC_CAPSLOCK 98#define KC_CAPS KC_CAPS_LOCK
97#define KC_CAPS KC_CAPSLOCK 99#define KC_SCRL KC_SCROLL_LOCK
98#define KC_SLCK KC_SCROLLLOCK 100#define KC_NUM KC_NUM_LOCK
99#define KC_NLCK KC_NUMLOCK 101#define KC_LCAP KC_LOCKING_CAPS_LOCK
100#define KC_LCAP KC_LOCKING_CAPS 102#define KC_LNUM KC_LOCKING_NUM_LOCK
101#define KC_LNUM KC_LOCKING_NUM 103#define KC_LSCR KC_LOCKING_SCROLL_LOCK
102#define KC_LSCR KC_LOCKING_SCROLL
103 104
104/* Commands */ 105/* Commands */
105#define KC_PSCR KC_PSCREEN 106#define KC_PSCR KC_PRINT_SCREEN
106#define KC_PAUS KC_PAUSE 107#define KC_PAUS KC_PAUSE
107#define KC_BRK KC_PAUSE 108#define KC_BRK KC_PAUSE
108#define KC_INS KC_INSERT 109#define KC_INS KC_INSERT
109#define KC_DEL KC_DELETE 110#define KC_PGUP KC_PAGE_UP
110#define KC_PGDN KC_PGDOWN 111#define KC_DEL KC_DELETE
112#define KC_PGDN KC_PAGE_DOWN
111#define KC_RGHT KC_RIGHT 113#define KC_RGHT KC_RIGHT
112#define KC_APP KC_APPLICATION 114#define KC_APP KC_APPLICATION
113#define KC_EXEC KC_EXECUTE 115#define KC_EXEC KC_EXECUTE
114#define KC_SLCT KC_SELECT 116#define KC_SLCT KC_SELECT
115#define KC_AGIN KC_AGAIN 117#define KC_AGIN KC_AGAIN
116#define KC_PSTE KC_PASTE 118#define KC_PSTE KC_PASTE
117#define KC_ERAS KC_ALT_ERASE 119#define KC_ERAS KC_ALTERNATE_ERASE
118#define KC_CLR KC_CLEAR 120#define KC_SYRQ KC_SYSTEM_REQUEST
121#define KC_CNCL KC_CANCEL
122#define KC_CLR KC_CLEAR
123#define KC_PRIR KC_PRIOR
124#define KC_RETN KC_RETURN
125#define KC_SEPR KC_SEPARATOR
126#define KC_CLAG KC_CLEAR_AGAIN
127#define KC_CRSL KC_CRSEL
128#define KC_EXSL KC_EXSEL
119 129
120/* Keypad */ 130/* Keypad */
121#define KC_PSLS KC_KP_SLASH 131#define KC_PSLS KC_KP_SLASH
@@ -123,47 +133,59 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
123#define KC_PMNS KC_KP_MINUS 133#define KC_PMNS KC_KP_MINUS
124#define KC_PPLS KC_KP_PLUS 134#define KC_PPLS KC_KP_PLUS
125#define KC_PENT KC_KP_ENTER 135#define KC_PENT KC_KP_ENTER
126#define KC_P1 KC_KP_1 136#define KC_P1 KC_KP_1
127#define KC_P2 KC_KP_2 137#define KC_P2 KC_KP_2
128#define KC_P3 KC_KP_3 138#define KC_P3 KC_KP_3
129#define KC_P4 KC_KP_4 139#define KC_P4 KC_KP_4
130#define KC_P5 KC_KP_5 140#define KC_P5 KC_KP_5
131#define KC_P6 KC_KP_6 141#define KC_P6 KC_KP_6
132#define KC_P7 KC_KP_7 142#define KC_P7 KC_KP_7
133#define KC_P8 KC_KP_8 143#define KC_P8 KC_KP_8
134#define KC_P9 KC_KP_9 144#define KC_P9 KC_KP_9
135#define KC_P0 KC_KP_0 145#define KC_P0 KC_KP_0
136#define KC_PDOT KC_KP_DOT 146#define KC_PDOT KC_KP_DOT
137#define KC_PEQL KC_KP_EQUAL 147#define KC_PEQL KC_KP_EQUAL
138#define KC_PCMM KC_KP_COMMA 148#define KC_PCMM KC_KP_COMMA
139 149
140/* Japanese specific */ 150/* Language Specific */
141#define KC_ZKHK KC_GRAVE 151#define KC_INT1 KC_INTERNATIONAL_1
142#define KC_RO KC_INT1 152#define KC_INT2 KC_INTERNATIONAL_2
143#define KC_KANA KC_INT2 153#define KC_INT3 KC_INTERNATIONAL_3
144#define KC_JYEN KC_INT3 154#define KC_INT4 KC_INTERNATIONAL_4
145#define KC_HENK KC_INT4 155#define KC_INT5 KC_INTERNATIONAL_5
146#define KC_MHEN KC_INT5 156#define KC_INT6 KC_INTERNATIONAL_6
147 157#define KC_INT7 KC_INTERNATIONAL_7
148/* Korean specific */ 158#define KC_INT8 KC_INTERNATIONAL_8
149#define KC_HAEN KC_LANG1 159#define KC_INT9 KC_INTERNATIONAL_9
150#define KC_HANJ KC_LANG2 160#define KC_LNG1 KC_LANGUAGE_1
161#define KC_LNG2 KC_LANGUAGE_2
162#define KC_LNG3 KC_LANGUAGE_3
163#define KC_LNG4 KC_LANGUAGE_4
164#define KC_LNG5 KC_LANGUAGE_5
165#define KC_LNG6 KC_LANGUAGE_6
166#define KC_LNG7 KC_LANGUAGE_7
167#define KC_LNG8 KC_LANGUAGE_8
168#define KC_LNG9 KC_LANGUAGE_9
151 169
152/* Modifiers */ 170/* Modifiers */
153#define KC_LCTL KC_LCTRL 171#define KC_LCTL KC_LEFT_CTRL
154#define KC_LSFT KC_LSHIFT 172#define KC_LSFT KC_LEFT_SHIFT
155#define KC_LOPT KC_LALT 173#define KC_LALT KC_LEFT_ALT
156#define KC_LCMD KC_LGUI 174#define KC_LOPT KC_LEFT_ALT
157#define KC_LWIN KC_LGUI 175#define KC_LGUI KC_LEFT_GUI
158#define KC_RCTL KC_RCTRL 176#define KC_LCMD KC_LEFT_GUI
159#define KC_RSFT KC_RSHIFT 177#define KC_LWIN KC_LEFT_GUI
160#define KC_ALGR KC_RALT 178#define KC_RCTL KC_RIGHT_CTRL
161#define KC_ROPT KC_RALT 179#define KC_RSFT KC_RIGHT_SHIFT
162#define KC_RCMD KC_RGUI 180#define KC_RALT KC_RIGHT_ALT
163#define KC_RWIN KC_RGUI 181#define KC_ALGR KC_RIGHT_ALT
182#define KC_ROPT KC_RIGHT_ALT
183#define KC_RGUI KC_RIGHT_GUI
184#define KC_RCMD KC_RIGHT_GUI
185#define KC_RWIN KC_RIGHT_GUI
164 186
165/* Generic Desktop Page (0x01) */ 187/* Generic Desktop Page (0x01) */
166#define KC_PWR KC_SYSTEM_POWER 188#define KC_PWR KC_SYSTEM_POWER
167#define KC_SLEP KC_SYSTEM_SLEEP 189#define KC_SLEP KC_SYSTEM_SLEEP
168#define KC_WAKE KC_SYSTEM_WAKE 190#define KC_WAKE KC_SYSTEM_WAKE
169 191
@@ -193,7 +215,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
193 215
194/* System Specific */ 216/* System Specific */
195#define KC_BRMU KC_PAUSE 217#define KC_BRMU KC_PAUSE
196#define KC_BRMD KC_SCROLLLOCK 218#define KC_BRMD KC_SCROLL_LOCK
197 219
198/* Mouse Keys */ 220/* Mouse Keys */
199#define KC_MS_U KC_MS_UP 221#define KC_MS_U KC_MS_UP
@@ -216,6 +238,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
216#define KC_ACL1 KC_MS_ACCEL1 238#define KC_ACL1 KC_MS_ACCEL1
217#define KC_ACL2 KC_MS_ACCEL2 239#define KC_ACL2 KC_MS_ACCEL2
218 240
241// clang-format on
242
219/* Keyboard/Keypad Page (0x07) */ 243/* Keyboard/Keypad Page (0x07) */
220enum hid_keyboard_keypad_usage { 244enum hid_keyboard_keypad_usage {
221 KC_NO = 0x00, 245 KC_NO = 0x00,
@@ -260,22 +284,22 @@ enum hid_keyboard_keypad_usage {
260 KC_0, 284 KC_0,
261 KC_ENTER, 285 KC_ENTER,
262 KC_ESCAPE, 286 KC_ESCAPE,
263 KC_BSPACE, 287 KC_BACKSPACE,
264 KC_TAB, 288 KC_TAB,
265 KC_SPACE, 289 KC_SPACE,
266 KC_MINUS, 290 KC_MINUS,
267 KC_EQUAL, 291 KC_EQUAL,
268 KC_LBRACKET, 292 KC_LEFT_BRACKET,
269 KC_RBRACKET, // 0x30 293 KC_RIGHT_BRACKET, // 0x30
270 KC_BSLASH, 294 KC_BACKSLASH,
271 KC_NONUS_HASH, 295 KC_NONUS_HASH,
272 KC_SCOLON, 296 KC_SEMICOLON,
273 KC_QUOTE, 297 KC_QUOTE,
274 KC_GRAVE, 298 KC_GRAVE,
275 KC_COMMA, 299 KC_COMMA,
276 KC_DOT, 300 KC_DOT,
277 KC_SLASH, 301 KC_SLASH,
278 KC_CAPSLOCK, 302 KC_CAPS_LOCK,
279 KC_F1, 303 KC_F1,
280 KC_F2, 304 KC_F2,
281 KC_F3, 305 KC_F3,
@@ -288,20 +312,20 @@ enum hid_keyboard_keypad_usage {
288 KC_F10, 312 KC_F10,
289 KC_F11, 313 KC_F11,
290 KC_F12, 314 KC_F12,
291 KC_PSCREEN, 315 KC_PRINT_SCREEN,
292 KC_SCROLLLOCK, 316 KC_SCROLL_LOCK,
293 KC_PAUSE, 317 KC_PAUSE,
294 KC_INSERT, 318 KC_INSERT,
295 KC_HOME, 319 KC_HOME,
296 KC_PGUP, 320 KC_PAGE_UP,
297 KC_DELETE, 321 KC_DELETE,
298 KC_END, 322 KC_END,
299 KC_PGDOWN, 323 KC_PAGE_DOWN,
300 KC_RIGHT, 324 KC_RIGHT,
301 KC_LEFT, // 0x50 325 KC_LEFT, // 0x50
302 KC_DOWN, 326 KC_DOWN,
303 KC_UP, 327 KC_UP,
304 KC_NUMLOCK, 328 KC_NUM_LOCK,
305 KC_KP_SLASH, 329 KC_KP_SLASH,
306 KC_KP_ASTERISK, 330 KC_KP_ASTERISK,
307 KC_KP_MINUS, 331 KC_KP_MINUS,
@@ -318,9 +342,9 @@ enum hid_keyboard_keypad_usage {
318 KC_KP_9, 342 KC_KP_9,
319 KC_KP_0, 343 KC_KP_0,
320 KC_KP_DOT, 344 KC_KP_DOT,
321 KC_NONUS_BSLASH, 345 KC_NONUS_BACKSLASH,
322 KC_APPLICATION, 346 KC_APPLICATION,
323 KC_POWER, 347 KC_KB_POWER,
324 KC_KP_EQUAL, 348 KC_KP_EQUAL,
325 KC_F13, 349 KC_F13,
326 KC_F14, 350 KC_F14,
@@ -345,34 +369,34 @@ enum hid_keyboard_keypad_usage {
345 KC_COPY, 369 KC_COPY,
346 KC_PASTE, 370 KC_PASTE,
347 KC_FIND, 371 KC_FIND,
348 KC__MUTE, 372 KC_KB_MUTE,
349 KC__VOLUP, // 0x80 373 KC_KB_VOLUME_UP, // 0x80
350 KC__VOLDOWN, 374 KC_KB_VOLUME_DOWN,
351 KC_LOCKING_CAPS, 375 KC_LOCKING_CAPS_LOCK,
352 KC_LOCKING_NUM, 376 KC_LOCKING_NUM_LOCK,
353 KC_LOCKING_SCROLL, 377 KC_LOCKING_SCROLL_LOCK,
354 KC_KP_COMMA, 378 KC_KP_COMMA,
355 KC_KP_EQUAL_AS400, 379 KC_KP_EQUAL_AS400,
356 KC_INT1, 380 KC_INTERNATIONAL_1,
357 KC_INT2, 381 KC_INTERNATIONAL_2,
358 KC_INT3, 382 KC_INTERNATIONAL_3,
359 KC_INT4, 383 KC_INTERNATIONAL_4,
360 KC_INT5, 384 KC_INTERNATIONAL_5,
361 KC_INT6, 385 KC_INTERNATIONAL_6,
362 KC_INT7, 386 KC_INTERNATIONAL_7,
363 KC_INT8, 387 KC_INTERNATIONAL_8,
364 KC_INT9, 388 KC_INTERNATIONAL_9,
365 KC_LANG1, // 0x90 389 KC_LANGUAGE_1, // 0x90
366 KC_LANG2, 390 KC_LANGUAGE_2,
367 KC_LANG3, 391 KC_LANGUAGE_3,
368 KC_LANG4, 392 KC_LANGUAGE_4,
369 KC_LANG5, 393 KC_LANGUAGE_5,
370 KC_LANG6, 394 KC_LANGUAGE_6,
371 KC_LANG7, 395 KC_LANGUAGE_7,
372 KC_LANG8, 396 KC_LANGUAGE_8,
373 KC_LANG9, 397 KC_LANGUAGE_9,
374 KC_ALT_ERASE, 398 KC_ALTERNATE_ERASE,
375 KC_SYSREQ, 399 KC_SYSTEM_REQUEST,
376 KC_CANCEL, 400 KC_CANCEL,
377 KC_CLEAR, 401 KC_CLEAR,
378 KC_PRIOR, 402 KC_PRIOR,
@@ -397,12 +421,12 @@ enum hid_keyboard_keypad_usage {
397 KC_DECIMAL_SEPARATOR, 421 KC_DECIMAL_SEPARATOR,
398 KC_CURRENCY_UNIT, 422 KC_CURRENCY_UNIT,
399 KC_CURRENCY_SUB_UNIT, 423 KC_CURRENCY_SUB_UNIT,
400 KC_KP_LPAREN, 424 KC_KP_LEFT_PARENTHESIS,
401 KC_KP_RPAREN, 425 KC_KP_RIGHT_PARENTHESIS,
402 KC_KP_LCBRACKET, 426 KC_KP_LEFT_BRACE,
403 KC_KP_RCBRACKET, 427 KC_KP_RIGHT_BRACE,
404 KC_KP_TAB, 428 KC_KP_TAB,
405 KC_KP_BSPACE, 429 KC_KP_BACKSPACE,
406 KC_KP_A, 430 KC_KP_A,
407 KC_KP_B, 431 KC_KP_B,
408 KC_KP_C, 432 KC_KP_C,
@@ -411,17 +435,17 @@ enum hid_keyboard_keypad_usage {
411 KC_KP_F, 435 KC_KP_F,
412 KC_KP_XOR, 436 KC_KP_XOR,
413 KC_KP_HAT, 437 KC_KP_HAT,
414 KC_KP_PERC, 438 KC_KP_PERCENT,
415 KC_KP_LT, 439 KC_KP_LESS_THAN,
416 KC_KP_GT, 440 KC_KP_GREATER_THAN,
417 KC_KP_AND, 441 KC_KP_AND,
418 KC_KP_LAZYAND, 442 KC_KP_LAZY_AND,
419 KC_KP_OR, 443 KC_KP_OR,
420 KC_KP_LAZYOR, 444 KC_KP_LAZY_OR,
421 KC_KP_COLON, 445 KC_KP_COLON,
422 KC_KP_HASH, 446 KC_KP_HASH,
423 KC_KP_SPACE, 447 KC_KP_SPACE,
424 KC_KP_ATMARK, 448 KC_KP_AT,
425 KC_KP_EXCLAMATION, 449 KC_KP_EXCLAMATION,
426 KC_KP_MEM_STORE, //0xD0 450 KC_KP_MEM_STORE, //0xD0
427 KC_KP_MEM_RECALL, 451 KC_KP_MEM_RECALL,
@@ -440,14 +464,14 @@ enum hid_keyboard_keypad_usage {
440#endif 464#endif
441 465
442 /* Modifiers */ 466 /* Modifiers */
443 KC_LCTRL = 0xE0, 467 KC_LEFT_CTRL = 0xE0,
444 KC_LSHIFT, 468 KC_LEFT_SHIFT,
445 KC_LALT, 469 KC_LEFT_ALT,
446 KC_LGUI, 470 KC_LEFT_GUI,
447 KC_RCTRL, 471 KC_RIGHT_CTRL,
448 KC_RSHIFT, 472 KC_RIGHT_SHIFT,
449 KC_RALT, 473 KC_RIGHT_ALT,
450 KC_RGUI 474 KC_RIGHT_GUI
451 475
452 // ********************************************** 476 // **********************************************
453 // * 0xF0-0xFF are unallocated in the HID spec. * 477 // * 0xF0-0xFF are unallocated in the HID spec. *
@@ -558,3 +582,5 @@ enum mouse_keys {
558 KC_MS_ACCEL1, 582 KC_MS_ACCEL1,
559 KC_MS_ACCEL2 // 0xFF 583 KC_MS_ACCEL2 // 0xFF
560}; 584};
585
586#include "keycode_legacy.h"
diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c
index f340905ea..dd2a17e24 100644
--- a/quantum/keycode_config.c
+++ b/quantum/keycode_config.c
@@ -25,89 +25,89 @@ extern keymap_config_t keymap_config;
25 */ 25 */
26uint16_t keycode_config(uint16_t keycode) { 26uint16_t keycode_config(uint16_t keycode) {
27 switch (keycode) { 27 switch (keycode) {
28 case KC_CAPSLOCK: 28 case KC_CAPS_LOCK:
29 case KC_LOCKING_CAPS: 29 case KC_LOCKING_CAPS_LOCK:
30 if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) { 30 if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
31 return KC_LCTL; 31 return KC_LEFT_CTRL;
32 } 32 }
33 return keycode; 33 return keycode;
34 case KC_LCTL: 34 case KC_LEFT_CTRL:
35 if (keymap_config.swap_control_capslock) { 35 if (keymap_config.swap_control_capslock) {
36 return KC_CAPSLOCK; 36 return KC_CAPS_LOCK;
37 } 37 }
38 if (keymap_config.swap_lctl_lgui) { 38 if (keymap_config.swap_lctl_lgui) {
39 if (keymap_config.no_gui) { 39 if (keymap_config.no_gui) {
40 return KC_NO; 40 return KC_NO;
41 } 41 }
42 return KC_LGUI; 42 return KC_LEFT_GUI;
43 } 43 }
44 return KC_LCTL; 44 return KC_LEFT_CTRL;
45 case KC_LALT: 45 case KC_LEFT_ALT:
46 if (keymap_config.swap_lalt_lgui) { 46 if (keymap_config.swap_lalt_lgui) {
47 if (keymap_config.no_gui) { 47 if (keymap_config.no_gui) {
48 return KC_NO; 48 return KC_NO;
49 } 49 }
50 return KC_LGUI; 50 return KC_LEFT_GUI;
51 } 51 }
52 return KC_LALT; 52 return KC_LEFT_ALT;
53 case KC_LGUI: 53 case KC_LEFT_GUI:
54 if (keymap_config.swap_lalt_lgui) { 54 if (keymap_config.swap_lalt_lgui) {
55 return KC_LALT; 55 return KC_LEFT_ALT;
56 } 56 }
57 if (keymap_config.swap_lctl_lgui) { 57 if (keymap_config.swap_lctl_lgui) {
58 return KC_LCTRL; 58 return KC_LEFT_CTRL;
59 } 59 }
60 if (keymap_config.no_gui) { 60 if (keymap_config.no_gui) {
61 return KC_NO; 61 return KC_NO;
62 } 62 }
63 return KC_LGUI; 63 return KC_LEFT_GUI;
64 case KC_RCTL: 64 case KC_RIGHT_CTRL:
65 if (keymap_config.swap_rctl_rgui) { 65 if (keymap_config.swap_rctl_rgui) {
66 if (keymap_config.no_gui) { 66 if (keymap_config.no_gui) {
67 return KC_NO; 67 return KC_NO;
68 } 68 }
69 return KC_RGUI; 69 return KC_RIGHT_GUI;
70 } 70 }
71 return KC_RCTL; 71 return KC_RIGHT_CTRL;
72 case KC_RALT: 72 case KC_RIGHT_ALT:
73 if (keymap_config.swap_ralt_rgui) { 73 if (keymap_config.swap_ralt_rgui) {
74 if (keymap_config.no_gui) { 74 if (keymap_config.no_gui) {
75 return KC_NO; 75 return KC_NO;
76 } 76 }
77 return KC_RGUI; 77 return KC_RIGHT_GUI;
78 } 78 }
79 return KC_RALT; 79 return KC_RIGHT_ALT;
80 case KC_RGUI: 80 case KC_RIGHT_GUI:
81 if (keymap_config.swap_ralt_rgui) { 81 if (keymap_config.swap_ralt_rgui) {
82 return KC_RALT; 82 return KC_RIGHT_ALT;
83 } 83 }
84 if (keymap_config.swap_rctl_rgui) { 84 if (keymap_config.swap_rctl_rgui) {
85 return KC_RCTL; 85 return KC_RIGHT_CTRL;
86 } 86 }
87 if (keymap_config.no_gui) { 87 if (keymap_config.no_gui) {
88 return KC_NO; 88 return KC_NO;
89 } 89 }
90 return KC_RGUI; 90 return KC_RIGHT_GUI;
91 case KC_GRAVE: 91 case KC_GRAVE:
92 if (keymap_config.swap_grave_esc) { 92 if (keymap_config.swap_grave_esc) {
93 return KC_ESC; 93 return KC_ESCAPE;
94 } 94 }
95 return KC_GRAVE; 95 return KC_GRAVE;
96 case KC_ESC: 96 case KC_ESCAPE:
97 if (keymap_config.swap_grave_esc) { 97 if (keymap_config.swap_grave_esc) {
98 return KC_GRAVE; 98 return KC_GRAVE;
99 } 99 }
100 return KC_ESC; 100 return KC_ESCAPE;
101 case KC_BSLASH: 101 case KC_BACKSLASH:
102 if (keymap_config.swap_backslash_backspace) { 102 if (keymap_config.swap_backslash_backspace) {
103 return KC_BSPACE; 103 return KC_BACKSPACE;
104 } 104 }
105 return KC_BSLASH; 105 return KC_BACKSLASH;
106 case KC_BSPACE: 106 case KC_BACKSPACE:
107 if (keymap_config.swap_backslash_backspace) { 107 if (keymap_config.swap_backslash_backspace) {
108 return KC_BSLASH; 108 return KC_BACKSLASH;
109 } 109 }
110 return KC_BSPACE; 110 return KC_BACKSPACE;
111 default: 111 default:
112 return keycode; 112 return keycode;
113 } 113 }
diff --git a/quantum/keycode_legacy.h b/quantum/keycode_legacy.h
new file mode 100644
index 000000000..0317a0553
--- /dev/null
+++ b/quantum/keycode_legacy.h
@@ -0,0 +1,53 @@
1#pragma once
2
3// clang-format off
4
5// These keycode names have been deprecated
6
7#define KC_BSPACE KC_BACKSPACE
8#define KC_LBRACKET KC_LEFT_BRACKET
9#define KC_RBRACKET KC_RIGHT_BRACKET
10#define KC_BSLASH KC_BACKSLASH
11#define KC_SCOLON KC_SEMICOLON
12#define KC_CAPSLOCK KC_CAPS_LOCK
13#define KC_PSCREEN KC_PRINT_SCREEN
14#define KC_SCROLLLOCK KC_SCROLL_LOCK
15#define KC_PGDOWN KC_PAGE_DOWN
16#define KC_NUMLOCK KC_NUM_LOCK
17#define KC_NONUS_BSLASH KC_NONUS_BACKSLASH
18#define KC_POWER KC_KB_POWER
19#define KC__MUTE KC_KB_MUTE
20#define KC__VOLUP KC_KB_VOLUME_UP
21#define KC__VOLDOWN KC_KB_VOLUME_DOWN
22#define KC_LOCKING_CAPS KC_LOCKING_CAPS_LOCK
23#define KC_LOCKING_NUM KC_LOCKING_NUM_LOCK
24#define KC_LOCKING_SCROLL KC_LOCKING_SCROLL_LOCK
25#define KC_LANG1 KC_LANGUAGE_1
26#define KC_LANG2 KC_LANGUAGE_2
27#define KC_LANG3 KC_LANGUAGE_3
28#define KC_LANG4 KC_LANGUAGE_4
29#define KC_LANG5 KC_LANGUAGE_5
30#define KC_LANG6 KC_LANGUAGE_6
31#define KC_LANG7 KC_LANGUAGE_7
32#define KC_LANG8 KC_LANGUAGE_8
33#define KC_LANG9 KC_LANGUAGE_9
34#define KC_ALT_ERASE KC_ALTERNATE_ERASE
35#define KC_SYSREQ KC_SYSTEM_REQUEST
36
37#define KC_LCTRL KC_LEFT_CTRL
38#define KC_LSHIFT KC_LEFT_SHIFT
39#define KC_RCTRL KC_RIGHT_CTRL
40#define KC_RSHIFT KC_RIGHT_SHIFT
41
42#define KC_ZKHK KC_GRAVE
43#define KC_RO KC_INTERNATIONAL_1
44#define KC_KANA KC_INTERNATIONAL_2
45#define KC_JYEN KC_INTERNATIONAL_3
46#define KC_HENK KC_INTERNATIONAL_4
47#define KC_MHEN KC_INTERNATIONAL_5
48#define KC_HAEN KC_LANGUAGE_1
49#define KC_HANJ KC_LANGUAGE_2
50
51#define KC_CLCK KC_CAPS_LOCK
52#define KC_SLCK KC_SCROLL_LOCK
53#define KC_NLCK KC_NUM_LOCK
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c
index 780c71ab9..5007f15f1 100644
--- a/quantum/keymap_common.c
+++ b/quantum/keymap_common.c
@@ -56,7 +56,7 @@ action_t action_for_keycode(uint16_t keycode) {
56 56
57 switch (keycode) { 57 switch (keycode) {
58 case KC_A ... KC_EXSEL: 58 case KC_A ... KC_EXSEL:
59 case KC_LCTRL ... KC_RGUI: 59 case KC_LEFT_CTRL ... KC_RIGHT_GUI:
60 action.code = ACTION_KEY(keycode); 60 action.code = ACTION_KEY(keycode);
61 break; 61 break;
62#ifdef EXTRAKEY_ENABLE 62#ifdef EXTRAKEY_ENABLE
@@ -72,7 +72,7 @@ action_t action_for_keycode(uint16_t keycode) {
72 action.code = ACTION_MOUSEKEY(keycode); 72 action.code = ACTION_MOUSEKEY(keycode);
73 break; 73 break;
74#endif 74#endif
75 case KC_TRNS: 75 case KC_TRANSPARENT:
76 action.code = ACTION_TRANSPARENT; 76 action.code = ACTION_TRANSPARENT;
77 break; 77 break;
78 case QK_MODS ... QK_MODS_MAX:; 78 case QK_MODS ... QK_MODS_MAX:;
diff --git a/quantum/keymap_extras/keymap_korean.h b/quantum/keymap_extras/keymap_korean.h
index 23d235ef0..74be122da 100644
--- a/quantum/keymap_extras/keymap_korean.h
+++ b/quantum/keymap_extras/keymap_korean.h
@@ -85,8 +85,8 @@
85#define KR_DOT KC_DOT // . 85#define KR_DOT KC_DOT // .
86#define KR_SLSH KC_SLSH // / 86#define KR_SLSH KC_SLSH // /
87// Row 5 87// Row 5
88#define KR_HANJ KC_LANG2 // Hanja (한자) 88#define KR_HANJ KC_LNG2 // Hanja (한자)
89#define KR_HAEN KC_LANG1 // Han ↔ Yeong (한 ↔ 영) 89#define KR_HAEN KC_LNG1 // Han ↔ Yeong (한 ↔ 영)
90 90
91/* Shifted symbols 91/* Shifted symbols
92 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ 92 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c
index cc3a974ea..02af5174f 100644
--- a/quantum/process_keycode/process_auto_shift.c
+++ b/quantum/process_keycode/process_auto_shift.c
@@ -67,7 +67,7 @@ static bool autoshift_press(uint16_t keycode, uint16_t now, keyrecord_t *record)
67 register_code(autoshift_lastkey); 67 register_code(autoshift_lastkey);
68 } else { 68 } else {
69 // Simulate pressing the shift key. 69 // Simulate pressing the shift key.
70 add_weak_mods(MOD_BIT(KC_LSFT)); 70 add_weak_mods(MOD_BIT(KC_LEFT_SHIFT));
71 register_code(autoshift_lastkey); 71 register_code(autoshift_lastkey);
72 } 72 }
73 return false; 73 return false;
@@ -108,7 +108,7 @@ static void autoshift_end(uint16_t keycode, uint16_t now, bool matrix_trigger) {
108 autoshift_flags.lastshifted = false; 108 autoshift_flags.lastshifted = false;
109 } else { 109 } else {
110 // Simulate pressing the shift key. 110 // Simulate pressing the shift key.
111 add_weak_mods(MOD_BIT(KC_LSFT)); 111 add_weak_mods(MOD_BIT(KC_LEFT_SHIFT));
112 register_code(autoshift_lastkey); 112 register_code(autoshift_lastkey);
113 autoshift_flags.lastshifted = true; 113 autoshift_flags.lastshifted = true;
114# if defined(AUTO_SHIFT_REPEAT) && !defined(AUTO_SHIFT_NO_AUTO_REPEAT) 114# if defined(AUTO_SHIFT_REPEAT) && !defined(AUTO_SHIFT_NO_AUTO_REPEAT)
@@ -123,7 +123,7 @@ static void autoshift_end(uint16_t keycode, uint16_t now, bool matrix_trigger) {
123 wait_ms(TAP_CODE_DELAY); 123 wait_ms(TAP_CODE_DELAY);
124# endif 124# endif
125 unregister_code(autoshift_lastkey); 125 unregister_code(autoshift_lastkey);
126 del_weak_mods(MOD_BIT(KC_LSFT)); 126 del_weak_mods(MOD_BIT(KC_LEFT_SHIFT));
127 } else { 127 } else {
128 // Release after keyrepeat. 128 // Release after keyrepeat.
129 unregister_code(keycode); 129 unregister_code(keycode);
@@ -131,7 +131,7 @@ static void autoshift_end(uint16_t keycode, uint16_t now, bool matrix_trigger) {
131 // This will only fire when the key was the last auto-shiftable 131 // This will only fire when the key was the last auto-shiftable
132 // pressed. That prevents aaaaBBBB then releasing a from unshifting 132 // pressed. That prevents aaaaBBBB then releasing a from unshifting
133 // later Bs (if B wasn't auto-shiftable). 133 // later Bs (if B wasn't auto-shiftable).
134 del_weak_mods(MOD_BIT(KC_LSFT)); 134 del_weak_mods(MOD_BIT(KC_LEFT_SHIFT));
135 } 135 }
136 } 136 }
137 send_keyboard_report(); // del_weak_mods doesn't send one. 137 send_keyboard_report(); // del_weak_mods doesn't send one.
@@ -157,14 +157,14 @@ void autoshift_matrix_scan(void) {
157 157
158void autoshift_toggle(void) { 158void autoshift_toggle(void) {
159 autoshift_flags.enabled = !autoshift_flags.enabled; 159 autoshift_flags.enabled = !autoshift_flags.enabled;
160 del_weak_mods(MOD_BIT(KC_LSFT)); 160 del_weak_mods(MOD_BIT(KC_LEFT_SHIFT));
161} 161}
162 162
163void autoshift_enable(void) { autoshift_flags.enabled = true; } 163void autoshift_enable(void) { autoshift_flags.enabled = true; }
164 164
165void autoshift_disable(void) { 165void autoshift_disable(void) {
166 autoshift_flags.enabled = false; 166 autoshift_flags.enabled = false;
167 del_weak_mods(MOD_BIT(KC_LSFT)); 167 del_weak_mods(MOD_BIT(KC_LEFT_SHIFT));
168} 168}
169 169
170# ifndef AUTO_SHIFT_NO_SETUP 170# ifndef AUTO_SHIFT_NO_SETUP
@@ -195,7 +195,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
195 autoshift_end(KC_NO, now, false); 195 autoshift_end(KC_NO, now, false);
196 } 196 }
197 // For pressing another key while keyrepeating shifted autoshift. 197 // For pressing another key while keyrepeating shifted autoshift.
198 del_weak_mods(MOD_BIT(KC_LSFT)); 198 del_weak_mods(MOD_BIT(KC_LEFT_SHIFT));
199 199
200 switch (keycode) { 200 switch (keycode) {
201 case KC_ASTG: 201 case KC_ASTG:
@@ -244,7 +244,7 @@ __attribute__((weak)) bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *r
244# ifndef NO_AUTO_SHIFT_SPECIAL 244# ifndef NO_AUTO_SHIFT_SPECIAL
245 case KC_TAB: 245 case KC_TAB:
246 case KC_MINUS ... KC_SLASH: 246 case KC_MINUS ... KC_SLASH:
247 case KC_NONUS_BSLASH: 247 case KC_NONUS_BACKSLASH:
248# endif 248# endif
249 return true; 249 return true;
250 } 250 }
diff --git a/quantum/process_keycode/process_haptic.c b/quantum/process_keycode/process_haptic.c
index 466c8e554..85b2ffcdd 100644
--- a/quantum/process_keycode/process_haptic.c
+++ b/quantum/process_keycode/process_haptic.c
@@ -31,7 +31,7 @@ __attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t
31 case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: 31 case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
32 if (record->tap.count == 0) return false; 32 if (record->tap.count == 0) return false;
33 break; 33 break;
34 case KC_LCTRL ... KC_RGUI: 34 case KC_LEFT_CTRL ... KC_RIGHT_GUI:
35 case QK_MOMENTARY ... QK_MOMENTARY_MAX: 35 case QK_MOMENTARY ... QK_MOMENTARY_MAX:
36 case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: 36 case QK_LAYER_MOD ... QK_LAYER_MOD_MAX:
37#endif 37#endif
@@ -44,34 +44,34 @@ __attribute__((weak)) bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t
44#ifdef NO_HAPTIC_PUNCTUATION 44#ifdef NO_HAPTIC_PUNCTUATION
45 case KC_ENTER: 45 case KC_ENTER:
46 case KC_ESCAPE: 46 case KC_ESCAPE:
47 case KC_BSPACE: 47 case KC_BACKSPACE:
48 case KC_SPACE: 48 case KC_SPACE:
49 case KC_MINUS: 49 case KC_MINUS:
50 case KC_EQUAL: 50 case KC_EQUAL:
51 case KC_LBRACKET: 51 case KC_LEFT_BRACKET:
52 case KC_RBRACKET: 52 case KC_RIGHT_BRACKET:
53 case KC_BSLASH: 53 case KC_BACKSLASH:
54 case KC_NONUS_HASH: 54 case KC_NONUS_HASH:
55 case KC_SCOLON: 55 case KC_SEMICOLON:
56 case KC_QUOTE: 56 case KC_QUOTE:
57 case KC_GRAVE: 57 case KC_GRAVE:
58 case KC_COMMA: 58 case KC_COMMA:
59 case KC_SLASH: 59 case KC_SLASH:
60 case KC_DOT: 60 case KC_DOT:
61 case KC_NONUS_BSLASH: 61 case KC_NONUS_BACKSLASH:
62#endif 62#endif
63#ifdef NO_HAPTIC_LOCKKEYS 63#ifdef NO_HAPTIC_LOCKKEYS
64 case KC_CAPSLOCK: 64 case KC_CAPS_LOCK:
65 case KC_SCROLLLOCK: 65 case KC_SCROLL_LOCK:
66 case KC_NUMLOCK: 66 case KC_NUM_LOCK:
67#endif 67#endif
68#ifdef NO_HAPTIC_NAV 68#ifdef NO_HAPTIC_NAV
69 case KC_PSCREEN: 69 case KC_PRINT_SCREEN:
70 case KC_PAUSE: 70 case KC_PAUSE:
71 case KC_INSERT: 71 case KC_INSERT:
72 case KC_DELETE: 72 case KC_DELETE:
73 case KC_PGDOWN: 73 case KC_PAGE_DOWN:
74 case KC_PGUP: 74 case KC_PAGE_UP:
75 case KC_LEFT: 75 case KC_LEFT:
76 case KC_UP: 76 case KC_UP:
77 case KC_RIGHT: 77 case KC_RIGHT:
diff --git a/quantum/process_keycode/process_music.c b/quantum/process_keycode/process_music.c
index 2beccbd8f..6822c5e28 100644
--- a/quantum/process_keycode/process_music.c
+++ b/quantum/process_keycode/process_music.c
@@ -146,7 +146,7 @@ bool process_music(uint16_t keycode, keyrecord_t *record) {
146 146
147 if (music_activated || midi_activated) { 147 if (music_activated || midi_activated) {
148 if (record->event.pressed) { 148 if (record->event.pressed) {
149 if (keycode == KC_LCTL) { // Start recording 149 if (keycode == KC_LEFT_CTRL) { // Start recording
150 music_all_notes_off(); 150 music_all_notes_off();
151 music_sequence_recording = true; 151 music_sequence_recording = true;
152 music_sequence_recorded = false; 152 music_sequence_recorded = false;
@@ -155,7 +155,7 @@ bool process_music(uint16_t keycode, keyrecord_t *record) {
155 return false; 155 return false;
156 } 156 }
157 157
158 if (keycode == KC_LALT) { // Stop recording/playing 158 if (keycode == KC_LEFT_ALT) { // Stop recording/playing
159 music_all_notes_off(); 159 music_all_notes_off();
160 if (music_sequence_recording) { // was recording 160 if (music_sequence_recording) { // was recording
161 music_sequence_recorded = true; 161 music_sequence_recorded = true;
@@ -165,7 +165,7 @@ bool process_music(uint16_t keycode, keyrecord_t *record) {
165 return false; 165 return false;
166 } 166 }
167 167
168 if (keycode == KC_LGUI && music_sequence_recorded) { // Start playing 168 if (keycode == KC_LEFT_GUI && music_sequence_recorded) { // Start playing
169 music_all_notes_off(); 169 music_all_notes_off();
170 music_sequence_recording = false; 170 music_sequence_recording = false;
171 music_sequence_playing = true; 171 music_sequence_playing = true;
diff --git a/quantum/process_keycode/process_printer.c b/quantum/process_keycode/process_printer.c
index 7c5e4169a..82528cc68 100644
--- a/quantum/process_keycode/process_printer.c
+++ b/quantum/process_keycode/process_printer.c
@@ -31,7 +31,7 @@ uint8_t shifted_numbers[10] = {0x21, 0x40, 0x23, 0x24, 0x25, 0x5E, 0x26, 0x2A, 0
31 31
32// uint8_t keycode_to_ascii[0xFF][2]; 32// uint8_t keycode_to_ascii[0xFF][2];
33 33
34// keycode_to_ascii[KC_MINS] = {0x2D, 0x5F}; 34// keycode_to_ascii[KC_MINUS] = {0x2D, 0x5F};
35 35
36void print_char(char c) { 36void print_char(char c) {
37 USB_Disable(); 37 USB_Disable();
@@ -90,8 +90,8 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
90 case KC_PIPE: 90 case KC_PIPE:
91 case KC_TILD: 91 case KC_TILD:
92 keycode &= 0xFF; 92 keycode &= 0xFF;
93 case KC_LSFT: 93 case KC_LEFT_SHIFT:
94 case KC_RSFT: 94 case KC_RIGHT_SHIFT:
95 if (record->event.pressed) { 95 if (record->event.pressed) {
96 character_shift++; 96 character_shift++;
97 } else { 97 } else {
@@ -107,13 +107,13 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
107 print_box_string("This is a line of text!"); 107 print_box_string("This is a line of text!");
108 } 108 }
109 return false; 109 return false;
110 case KC_ESC: 110 case KC_ESCAPE:
111 if (record->event.pressed) { 111 if (record->event.pressed) {
112 print_char(0x1B); 112 print_char(0x1B);
113 } 113 }
114 return false; 114 return false;
115 break; 115 break;
116 case KC_SPC: 116 case KC_SPACE:
117 if (record->event.pressed) { 117 if (record->event.pressed) {
118 print_char(0x20); 118 print_char(0x20);
119 } 119 }
@@ -139,7 +139,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
139 } 139 }
140 return false; 140 return false;
141 break; 141 break;
142 case KC_ENT: 142 case KC_ENTER:
143 if (record->event.pressed) { 143 if (record->event.pressed) {
144 if (character_shift) { 144 if (character_shift) {
145 print_char(0x0C); 145 print_char(0x0C);
@@ -149,7 +149,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
149 } 149 }
150 return false; 150 return false;
151 break; 151 break;
152 case KC_BSPC: 152 case KC_BACKSPACE:
153 if (record->event.pressed) { 153 if (record->event.pressed) {
154 if (character_shift) { 154 if (character_shift) {
155 print_char(0x18); 155 print_char(0x18);
@@ -169,7 +169,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
169 } 169 }
170 return false; 170 return false;
171 break; 171 break;
172 case KC_COMM: 172 case KC_COMMA:
173 if (record->event.pressed) { 173 if (record->event.pressed) {
174 if (character_shift) { 174 if (character_shift) {
175 print_char(0x3C); 175 print_char(0x3C);
@@ -179,7 +179,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
179 } 179 }
180 return false; 180 return false;
181 break; 181 break;
182 case KC_SLSH: 182 case KC_SLASH:
183 if (record->event.pressed) { 183 if (record->event.pressed) {
184 if (character_shift) { 184 if (character_shift) {
185 print_char(0x3F); 185 print_char(0x3F);
@@ -189,7 +189,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
189 } 189 }
190 return false; 190 return false;
191 break; 191 break;
192 case KC_QUOT: 192 case KC_QUOTE:
193 if (record->event.pressed) { 193 if (record->event.pressed) {
194 if (character_shift) { 194 if (character_shift) {
195 print_char(0x22); 195 print_char(0x22);
@@ -199,7 +199,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
199 } 199 }
200 return false; 200 return false;
201 break; 201 break;
202 case KC_GRV: 202 case KC_GRAVE:
203 if (record->event.pressed) { 203 if (record->event.pressed) {
204 if (character_shift) { 204 if (character_shift) {
205 print_char(0x7E); 205 print_char(0x7E);
@@ -209,7 +209,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
209 } 209 }
210 return false; 210 return false;
211 break; 211 break;
212 case KC_MINS: 212 case KC_MINUS:
213 if (record->event.pressed) { 213 if (record->event.pressed) {
214 if (character_shift) { 214 if (character_shift) {
215 print_char(0x5F); 215 print_char(0x5F);
@@ -219,7 +219,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
219 } 219 }
220 return false; 220 return false;
221 break; 221 break;
222 case KC_EQL: 222 case KC_EQUAL:
223 if (record->event.pressed) { 223 if (record->event.pressed) {
224 if (character_shift) { 224 if (character_shift) {
225 print_char(0x2B); 225 print_char(0x2B);
@@ -229,7 +229,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
229 } 229 }
230 return false; 230 return false;
231 break; 231 break;
232 case KC_LBRC: 232 case KC_LEFT_BRACKET:
233 if (record->event.pressed) { 233 if (record->event.pressed) {
234 if (character_shift) { 234 if (character_shift) {
235 print_char(0x7B); 235 print_char(0x7B);
@@ -239,7 +239,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
239 } 239 }
240 return false; 240 return false;
241 break; 241 break;
242 case KC_RBRC: 242 case KC_RIGHT_BRACKET:
243 if (record->event.pressed) { 243 if (record->event.pressed) {
244 if (character_shift) { 244 if (character_shift) {
245 print_char(0x7D); 245 print_char(0x7D);
@@ -249,7 +249,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
249 } 249 }
250 return false; 250 return false;
251 break; 251 break;
252 case KC_BSLS: 252 case KC_BACKSLASH:
253 if (record->event.pressed) { 253 if (record->event.pressed) {
254 if (character_shift) { 254 if (character_shift) {
255 print_char(0x7C); 255 print_char(0x7C);
diff --git a/quantum/process_keycode/process_printer_bb.c b/quantum/process_keycode/process_printer_bb.c
index e482d8259..6c91bd27e 100644
--- a/quantum/process_keycode/process_printer_bb.c
+++ b/quantum/process_keycode/process_printer_bb.c
@@ -45,7 +45,7 @@ uint8_t shifted_numbers[10] = {0x21, 0x40, 0x23, 0x24, 0x25, 0x5E, 0x26, 0x2A, 0
45 45
46// uint8_t keycode_to_ascii[0xFF][2]; 46// uint8_t keycode_to_ascii[0xFF][2];
47 47
48// keycode_to_ascii[KC_MINS] = {0x2D, 0x5F}; 48// keycode_to_ascii[KC_MINUS] = {0x2D, 0x5F};
49 49
50void print_char(char c) { 50void print_char(char c) {
51 uint8_t b = 8; 51 uint8_t b = 8;
@@ -84,8 +84,8 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
84 case KC_PIPE: 84 case KC_PIPE:
85 case KC_TILD: 85 case KC_TILD:
86 keycode &= 0xFF; 86 keycode &= 0xFF;
87 case KC_LSFT: 87 case KC_LEFT_SHIFT:
88 case KC_RSFT: 88 case KC_RIGHT_SHIFT:
89 if (record->event.pressed) { 89 if (record->event.pressed) {
90 character_shift++; 90 character_shift++;
91 } else { 91 } else {
@@ -101,13 +101,13 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
101 print_string("This is a line of text!\n\n\n"); 101 print_string("This is a line of text!\n\n\n");
102 } 102 }
103 return false; 103 return false;
104 case KC_ESC: 104 case KC_ESCAPE:
105 if (record->event.pressed) { 105 if (record->event.pressed) {
106 print_char(0x1B); 106 print_char(0x1B);
107 } 107 }
108 return false; 108 return false;
109 break; 109 break;
110 case KC_SPC: 110 case KC_SPACE:
111 if (record->event.pressed) { 111 if (record->event.pressed) {
112 print_char(0x20); 112 print_char(0x20);
113 } 113 }
@@ -133,7 +133,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
133 } 133 }
134 return false; 134 return false;
135 break; 135 break;
136 case KC_ENT: 136 case KC_ENTER:
137 if (record->event.pressed) { 137 if (record->event.pressed) {
138 if (character_shift) { 138 if (character_shift) {
139 print_char(0x0C); 139 print_char(0x0C);
@@ -143,7 +143,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
143 } 143 }
144 return false; 144 return false;
145 break; 145 break;
146 case KC_BSPC: 146 case KC_BACKSPACE:
147 if (record->event.pressed) { 147 if (record->event.pressed) {
148 if (character_shift) { 148 if (character_shift) {
149 print_char(0x18); 149 print_char(0x18);
@@ -163,7 +163,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
163 } 163 }
164 return false; 164 return false;
165 break; 165 break;
166 case KC_COMM: 166 case KC_COMMA:
167 if (record->event.pressed) { 167 if (record->event.pressed) {
168 if (character_shift) { 168 if (character_shift) {
169 print_char(0x3C); 169 print_char(0x3C);
@@ -173,7 +173,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
173 } 173 }
174 return false; 174 return false;
175 break; 175 break;
176 case KC_SLSH: 176 case KC_SLASH:
177 if (record->event.pressed) { 177 if (record->event.pressed) {
178 if (character_shift) { 178 if (character_shift) {
179 print_char(0x3F); 179 print_char(0x3F);
@@ -183,7 +183,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
183 } 183 }
184 return false; 184 return false;
185 break; 185 break;
186 case KC_QUOT: 186 case KC_QUOTE:
187 if (record->event.pressed) { 187 if (record->event.pressed) {
188 if (character_shift) { 188 if (character_shift) {
189 print_char(0x22); 189 print_char(0x22);
@@ -193,7 +193,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
193 } 193 }
194 return false; 194 return false;
195 break; 195 break;
196 case KC_GRV: 196 case KC_GRAVE:
197 if (record->event.pressed) { 197 if (record->event.pressed) {
198 if (character_shift) { 198 if (character_shift) {
199 print_char(0x7E); 199 print_char(0x7E);
@@ -203,7 +203,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
203 } 203 }
204 return false; 204 return false;
205 break; 205 break;
206 case KC_MINS: 206 case KC_MINUS:
207 if (record->event.pressed) { 207 if (record->event.pressed) {
208 if (character_shift) { 208 if (character_shift) {
209 print_char(0x5F); 209 print_char(0x5F);
@@ -213,7 +213,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
213 } 213 }
214 return false; 214 return false;
215 break; 215 break;
216 case KC_EQL: 216 case KC_EQUAL:
217 if (record->event.pressed) { 217 if (record->event.pressed) {
218 if (character_shift) { 218 if (character_shift) {
219 print_char(0x2B); 219 print_char(0x2B);
@@ -223,7 +223,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
223 } 223 }
224 return false; 224 return false;
225 break; 225 break;
226 case KC_LBRC: 226 case KC_LEFT_BRACKET:
227 if (record->event.pressed) { 227 if (record->event.pressed) {
228 if (character_shift) { 228 if (character_shift) {
229 print_char(0x7B); 229 print_char(0x7B);
@@ -233,7 +233,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
233 } 233 }
234 return false; 234 return false;
235 break; 235 break;
236 case KC_RBRC: 236 case KC_RIGHT_BRACKET:
237 if (record->event.pressed) { 237 if (record->event.pressed) {
238 if (character_shift) { 238 if (character_shift) {
239 print_char(0x7D); 239 print_char(0x7D);
@@ -243,7 +243,7 @@ bool process_printer(uint16_t keycode, keyrecord_t *record) {
243 } 243 }
244 return false; 244 return false;
245 break; 245 break;
246 case KC_BSLS: 246 case KC_BACKSLASH:
247 if (record->event.pressed) { 247 if (record->event.pressed) {
248 if (character_shift) { 248 if (character_shift) {
249 print_char(0x7C); 249 print_char(0x7C);
diff --git a/quantum/process_keycode/process_space_cadet.c b/quantum/process_keycode/process_space_cadet.c
index f99db2a87..46b2648c3 100644
--- a/quantum/process_keycode/process_space_cadet.c
+++ b/quantum/process_keycode/process_space_cadet.c
@@ -27,53 +27,53 @@
27 27
28// Shift / Enter setup 28// Shift / Enter setup
29#ifndef SFTENT_KEY 29#ifndef SFTENT_KEY
30# define SFTENT_KEY KC_ENT 30# define SFTENT_KEY KC_ENTER
31#endif 31#endif
32 32
33#ifdef DISABLE_SPACE_CADET_MODIFIER 33#ifdef DISABLE_SPACE_CADET_MODIFIER
34# ifndef LSPO_MOD 34# ifndef LSPO_MOD
35# define LSPO_MOD KC_TRNS 35# define LSPO_MOD KC_TRANSPARENT
36# endif 36# endif
37# ifndef RSPC_MOD 37# ifndef RSPC_MOD
38# define RSPC_MOD KC_TRNS 38# define RSPC_MOD KC_TRANSPARENT
39# endif 39# endif
40#else 40#else
41# ifndef LSPO_MOD 41# ifndef LSPO_MOD
42# define LSPO_MOD KC_LSFT 42# define LSPO_MOD KC_LEFT_SHIFT
43# endif 43# endif
44# ifndef RSPC_MOD 44# ifndef RSPC_MOD
45# define RSPC_MOD KC_RSFT 45# define RSPC_MOD KC_RIGHT_SHIFT
46# endif 46# endif
47#endif 47#endif
48// ********************************************************** 48// **********************************************************
49 49
50// Shift / paren setup 50// Shift / paren setup
51#ifndef LSPO_KEYS 51#ifndef LSPO_KEYS
52# define LSPO_KEYS KC_LSFT, LSPO_MOD, LSPO_KEY 52# define LSPO_KEYS KC_LEFT_SHIFT, LSPO_MOD, LSPO_KEY
53#endif 53#endif
54#ifndef RSPC_KEYS 54#ifndef RSPC_KEYS
55# define RSPC_KEYS KC_RSFT, RSPC_MOD, RSPC_KEY 55# define RSPC_KEYS KC_RIGHT_SHIFT, RSPC_MOD, RSPC_KEY
56#endif 56#endif
57 57
58// Control / paren setup 58// Control / paren setup
59#ifndef LCPO_KEYS 59#ifndef LCPO_KEYS
60# define LCPO_KEYS KC_LCTL, KC_LSFT, KC_9 60# define LCPO_KEYS KC_LEFT_CTRL, KC_LEFT_SHIFT, KC_9
61#endif 61#endif
62#ifndef RCPC_KEYS 62#ifndef RCPC_KEYS
63# define RCPC_KEYS KC_RCTL, KC_RSFT, KC_0 63# define RCPC_KEYS KC_RIGHT_CTRL, KC_RIGHT_SHIFT, KC_0
64#endif 64#endif
65 65
66// Alt / paren setup 66// Alt / paren setup
67#ifndef LAPO_KEYS 67#ifndef LAPO_KEYS
68# define LAPO_KEYS KC_LALT, KC_LSFT, KC_9 68# define LAPO_KEYS KC_LEFT_ALT, KC_LEFT_SHIFT, KC_9
69#endif 69#endif
70#ifndef RAPC_KEYS 70#ifndef RAPC_KEYS
71# define RAPC_KEYS KC_RALT, KC_RSFT, KC_0 71# define RAPC_KEYS KC_RIGHT_ALT, KC_RIGHT_SHIFT, KC_0
72#endif 72#endif
73 73
74// Shift / Enter setup 74// Shift / Enter setup
75#ifndef SFTENT_KEYS 75#ifndef SFTENT_KEYS
76# define SFTENT_KEYS KC_RSFT, KC_TRNS, SFTENT_KEY 76# define SFTENT_KEYS KC_RIGHT_SHIFT, KC_TRANSPARENT, SFTENT_KEY
77#endif 77#endif
78 78
79static uint8_t sc_last = 0; 79static uint8_t sc_last = 0;
diff --git a/quantum/process_keycode/process_terminal.c b/quantum/process_keycode/process_terminal.c
index 7d1eefa9e..a059f3a52 100644
--- a/quantum/process_keycode/process_terminal.c
+++ b/quantum/process_keycode/process_terminal.c
@@ -257,12 +257,12 @@ bool process_terminal(uint16_t keycode, keyrecord_t *record) {
257 process_terminal_command(); 257 process_terminal_command();
258 return false; 258 return false;
259 break; 259 break;
260 case KC_ESC: 260 case KC_ESCAPE:
261 SEND_STRING("\n"); 261 SEND_STRING("\n");
262 enable_terminal(); 262 enable_terminal();
263 return false; 263 return false;
264 break; 264 break;
265 case KC_BSPC: 265 case KC_BACKSPACE:
266 str_len = strlen(buffer); 266 str_len = strlen(buffer);
267 if (str_len > 0) { 267 if (str_len > 0) {
268 buffer[str_len - 1] = 0; 268 buffer[str_len - 1] = 0;
@@ -284,7 +284,7 @@ bool process_terminal(uint16_t keycode, keyrecord_t *record) {
284 str_len = strlen(buffer); 284 str_len = strlen(buffer);
285 for (int i = 0; i < str_len; ++i) { 285 for (int i = 0; i < str_len; ++i) {
286 send_string(SS_TAP(X_BSPACE)); // clear w/e is on the line already 286 send_string(SS_TAP(X_BSPACE)); // clear w/e is on the line already
287 // process_terminal(KC_BSPC,record); 287 // process_terminal(KC_BACKSPACE,record);
288 } 288 }
289 strncpy(buffer, cmd_buffer[current_cmd_buffer_pos], 80); 289 strncpy(buffer, cmd_buffer[current_cmd_buffer_pos], 80);
290 290
@@ -299,7 +299,7 @@ bool process_terminal(uint16_t keycode, keyrecord_t *record) {
299 str_len = strlen(buffer); 299 str_len = strlen(buffer);
300 for (int i = 0; i < str_len; ++i) { 300 for (int i = 0; i < str_len; ++i) {
301 send_string(SS_TAP(X_BSPACE)); // clear w/e is on the line already 301 send_string(SS_TAP(X_BSPACE)); // clear w/e is on the line already
302 // process_terminal(KC_BSPC,record); 302 // process_terminal(KC_BACKSPACE,record);
303 } 303 }
304 strncpy(buffer, cmd_buffer[current_cmd_buffer_pos], 79); 304 strncpy(buffer, cmd_buffer[current_cmd_buffer_pos], 79);
305 305
@@ -311,7 +311,7 @@ bool process_terminal(uint16_t keycode, keyrecord_t *record) {
311 default: 311 default:
312 if (keycode <= 58) { 312 if (keycode <= 58) {
313 char_to_add = 0; 313 char_to_add = 0;
314 if (get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { 314 if (get_mods() & (MOD_BIT(KC_LEFT_SHIFT) | MOD_BIT(KC_RIGHT_SHIFT))) {
315 char_to_add = shifted_keycode_to_ascii_lut[keycode]; 315 char_to_add = shifted_keycode_to_ascii_lut[keycode];
316 } else if (get_mods() == 0) { 316 } else if (get_mods() == 0) {
317 char_to_add = keycode_to_ascii_lut[keycode]; 317 char_to_add = keycode_to_ascii_lut[keycode];
diff --git a/quantum/process_keycode/process_ucis.c b/quantum/process_keycode/process_ucis.c
index 12b0aba9b..d084d2b66 100644
--- a/quantum/process_keycode/process_ucis.c
+++ b/quantum/process_keycode/process_ucis.c
@@ -46,7 +46,7 @@ static bool is_uni_seq(char *seq) {
46 return false; 46 return false;
47 } 47 }
48 } 48 }
49 return qk_ucis_state.codes[i] == KC_ENT || qk_ucis_state.codes[i] == KC_SPC; 49 return qk_ucis_state.codes[i] == KC_ENTER || qk_ucis_state.codes[i] == KC_SPACE;
50} 50}
51 51
52__attribute__((weak)) void qk_ucis_symbol_fallback(void) { 52__attribute__((weak)) void qk_ucis_symbol_fallback(void) {
@@ -72,7 +72,7 @@ bool process_ucis(uint16_t keycode, keyrecord_t *record) {
72 return true; 72 return true;
73 } 73 }
74 74
75 bool special = keycode == KC_SPC || keycode == KC_ENT || keycode == KC_ESC || keycode == KC_BSPC; 75 bool special = keycode == KC_SPACE || keycode == KC_ENTER || keycode == KC_ESCAPE || keycode == KC_BACKSPACE;
76 if (qk_ucis_state.count >= UCIS_MAX_SYMBOL_LENGTH && !special) { 76 if (qk_ucis_state.count >= UCIS_MAX_SYMBOL_LENGTH && !special) {
77 return false; 77 return false;
78 } 78 }
@@ -81,7 +81,7 @@ bool process_ucis(uint16_t keycode, keyrecord_t *record) {
81 qk_ucis_state.count++; 81 qk_ucis_state.count++;
82 82
83 switch (keycode) { 83 switch (keycode) {
84 case KC_BSPC: 84 case KC_BACKSPACE:
85 if (qk_ucis_state.count >= 2) { 85 if (qk_ucis_state.count >= 2) {
86 qk_ucis_state.count -= 2; 86 qk_ucis_state.count -= 2;
87 return true; 87 return true;
@@ -90,16 +90,16 @@ bool process_ucis(uint16_t keycode, keyrecord_t *record) {
90 return false; 90 return false;
91 } 91 }
92 92
93 case KC_SPC: 93 case KC_SPACE:
94 case KC_ENT: 94 case KC_ENTER:
95 case KC_ESC: 95 case KC_ESCAPE:
96 for (uint8_t i = 0; i < qk_ucis_state.count; i++) { 96 for (uint8_t i = 0; i < qk_ucis_state.count; i++) {
97 register_code(KC_BSPC); 97 register_code(KC_BACKSPACE);
98 unregister_code(KC_BSPC); 98 unregister_code(KC_BACKSPACE);
99 wait_ms(UNICODE_TYPE_DELAY); 99 wait_ms(UNICODE_TYPE_DELAY);
100 } 100 }
101 101
102 if (keycode == KC_ESC) { 102 if (keycode == KC_ESCAPE) {
103 qk_ucis_state.in_progress = false; 103 qk_ucis_state.in_progress = false;
104 qk_ucis_cancel(); 104 qk_ucis_cancel();
105 return false; 105 return false;
diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c
index 7853c22c5..9c82571c7 100644
--- a/quantum/process_keycode/process_unicode_common.c
+++ b/quantum/process_keycode/process_unicode_common.c
@@ -87,7 +87,7 @@ __attribute__((weak)) void unicode_input_start(void) {
87 // UNICODE_KEY_LNX (which is usually Ctrl-Shift-U) might not work 87 // UNICODE_KEY_LNX (which is usually Ctrl-Shift-U) might not work
88 // correctly in the shifted case. 88 // correctly in the shifted case.
89 if (unicode_config.input_mode == UC_LNX && unicode_saved_caps_lock) { 89 if (unicode_config.input_mode == UC_LNX && unicode_saved_caps_lock) {
90 tap_code(KC_CAPSLOCK); 90 tap_code(KC_CAPS_LOCK);
91 } 91 }
92 92
93 unicode_saved_mods = get_mods(); // Save current mods 93 unicode_saved_mods = get_mods(); // Save current mods
@@ -103,9 +103,9 @@ __attribute__((weak)) void unicode_input_start(void) {
103 case UC_WIN: 103 case UC_WIN:
104 // For increased reliability, use numpad keys for inputting digits 104 // For increased reliability, use numpad keys for inputting digits
105 if (!unicode_saved_num_lock) { 105 if (!unicode_saved_num_lock) {
106 tap_code(KC_NUMLOCK); 106 tap_code(KC_NUM_LOCK);
107 } 107 }
108 register_code(KC_LALT); 108 register_code(KC_LEFT_ALT);
109 tap_code(KC_KP_PLUS); 109 tap_code(KC_KP_PLUS);
110 break; 110 break;
111 case UC_WINC: 111 case UC_WINC:
@@ -125,13 +125,13 @@ __attribute__((weak)) void unicode_input_finish(void) {
125 case UC_LNX: 125 case UC_LNX:
126 tap_code(KC_SPACE); 126 tap_code(KC_SPACE);
127 if (unicode_saved_caps_lock) { 127 if (unicode_saved_caps_lock) {
128 tap_code(KC_CAPSLOCK); 128 tap_code(KC_CAPS_LOCK);
129 } 129 }
130 break; 130 break;
131 case UC_WIN: 131 case UC_WIN:
132 unregister_code(KC_LALT); 132 unregister_code(KC_LEFT_ALT);
133 if (!unicode_saved_num_lock) { 133 if (!unicode_saved_num_lock) {
134 tap_code(KC_NUMLOCK); 134 tap_code(KC_NUM_LOCK);
135 } 135 }
136 break; 136 break;
137 case UC_WINC: 137 case UC_WINC:
@@ -150,16 +150,16 @@ __attribute__((weak)) void unicode_input_cancel(void) {
150 case UC_LNX: 150 case UC_LNX:
151 tap_code(KC_ESCAPE); 151 tap_code(KC_ESCAPE);
152 if (unicode_saved_caps_lock) { 152 if (unicode_saved_caps_lock) {
153 tap_code(KC_CAPSLOCK); 153 tap_code(KC_CAPS_LOCK);
154 } 154 }
155 break; 155 break;
156 case UC_WINC: 156 case UC_WINC:
157 tap_code(KC_ESCAPE); 157 tap_code(KC_ESCAPE);
158 break; 158 break;
159 case UC_WIN: 159 case UC_WIN:
160 unregister_code(KC_LALT); 160 unregister_code(KC_LEFT_ALT);
161 if (!unicode_saved_num_lock) { 161 if (!unicode_saved_num_lock) {
162 tap_code(KC_NUMLOCK); 162 tap_code(KC_NUM_LOCK);
163 } 163 }
164 break; 164 break;
165 } 165 }
diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h
index c10e171ec..72defb445 100644
--- a/quantum/process_keycode/process_unicode_common.h
+++ b/quantum/process_keycode/process_unicode_common.h
@@ -24,13 +24,13 @@
24 24
25// Keycodes used for starting Unicode input on different platforms 25// Keycodes used for starting Unicode input on different platforms
26#ifndef UNICODE_KEY_MAC 26#ifndef UNICODE_KEY_MAC
27# define UNICODE_KEY_MAC KC_LALT 27# define UNICODE_KEY_MAC KC_LEFT_ALT
28#endif 28#endif
29#ifndef UNICODE_KEY_LNX 29#ifndef UNICODE_KEY_LNX
30# define UNICODE_KEY_LNX LCTL(LSFT(KC_U)) 30# define UNICODE_KEY_LNX LCTL(LSFT(KC_U))
31#endif 31#endif
32#ifndef UNICODE_KEY_WINC 32#ifndef UNICODE_KEY_WINC
33# define UNICODE_KEY_WINC KC_RALT 33# define UNICODE_KEY_WINC KC_RIGHT_ALT
34#endif 34#endif
35 35
36// Comma-delimited, ordered list of input modes selected for use (e.g. in cycle) 36// Comma-delimited, ordered list of input modes selected for use (e.g. in cycle)
diff --git a/quantum/quantum.c b/quantum/quantum.c
index ac8857df8..0eca329f0 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -62,15 +62,15 @@ uint8_t extract_mod_bits(uint16_t code) {
62 uint8_t mods_to_send = 0; 62 uint8_t mods_to_send = 0;
63 63
64 if (code & QK_RMODS_MIN) { // Right mod flag is set 64 if (code & QK_RMODS_MIN) { // Right mod flag is set
65 if (code & QK_LCTL) mods_to_send |= MOD_BIT(KC_RCTL); 65 if (code & QK_LCTL) mods_to_send |= MOD_BIT(KC_RIGHT_CTRL);
66 if (code & QK_LSFT) mods_to_send |= MOD_BIT(KC_RSFT); 66 if (code & QK_LSFT) mods_to_send |= MOD_BIT(KC_RIGHT_SHIFT);
67 if (code & QK_LALT) mods_to_send |= MOD_BIT(KC_RALT); 67 if (code & QK_LALT) mods_to_send |= MOD_BIT(KC_RIGHT_ALT);
68 if (code & QK_LGUI) mods_to_send |= MOD_BIT(KC_RGUI); 68 if (code & QK_LGUI) mods_to_send |= MOD_BIT(KC_RIGHT_GUI);
69 } else { 69 } else {
70 if (code & QK_LCTL) mods_to_send |= MOD_BIT(KC_LCTL); 70 if (code & QK_LCTL) mods_to_send |= MOD_BIT(KC_LEFT_CTRL);
71 if (code & QK_LSFT) mods_to_send |= MOD_BIT(KC_LSFT); 71 if (code & QK_LSFT) mods_to_send |= MOD_BIT(KC_LEFT_SHIFT);
72 if (code & QK_LALT) mods_to_send |= MOD_BIT(KC_LALT); 72 if (code & QK_LALT) mods_to_send |= MOD_BIT(KC_LEFT_ALT);
73 if (code & QK_LGUI) mods_to_send |= MOD_BIT(KC_LGUI); 73 if (code & QK_LGUI) mods_to_send |= MOD_BIT(KC_LEFT_GUI);
74 } 74 }
75 75
76 return mods_to_send; 76 return mods_to_send;
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index 373a31a00..cde97074d 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -19,7 +19,7 @@
19#include "sequencer.h" 19#include "sequencer.h"
20 20
21// Fillers to make layering more clear 21// Fillers to make layering more clear
22#define _______ KC_TRNS 22#define _______ KC_TRANSPARENT
23#define XXXXXXX KC_NO 23#define XXXXXXX KC_NO
24 24
25enum quantum_keycodes { 25enum quantum_keycodes {
@@ -599,69 +599,67 @@ enum quantum_keycodes {
599#define MOD_MEH 0x7 599#define MOD_MEH 0x7
600 600
601// US ANSI shifted keycode aliases 601// US ANSI shifted keycode aliases
602#define KC_TILD LSFT(KC_GRV) // ~ 602#define KC_TILDE LSFT(KC_GRAVE) // ~
603#define KC_TILDE KC_TILD 603#define KC_TILD KC_TILDE
604 604
605#define KC_EXLM LSFT(KC_1) // ! 605#define KC_EXCLAIM LSFT(KC_1) // !
606#define KC_EXCLAIM KC_EXLM 606#define KC_EXLM KC_EXCLAIM
607 607
608#define KC_AT LSFT(KC_2) // @ 608#define KC_AT LSFT(KC_2) // @
609 609
610#define KC_HASH LSFT(KC_3) // # 610#define KC_HASH LSFT(KC_3) // #
611 611
612#define KC_DLR LSFT(KC_4) // $ 612#define KC_DOLLAR LSFT(KC_4) // $
613#define KC_DOLLAR KC_DLR 613#define KC_DLR KC_DOLLAR
614 614
615#define KC_PERC LSFT(KC_5) // % 615#define KC_PERCENT LSFT(KC_5) // %
616#define KC_PERCENT KC_PERC 616#define KC_PERC KC_PERCENT
617 617
618#define KC_CIRC LSFT(KC_6) // ^ 618#define KC_CIRCUMFLEX LSFT(KC_6) // ^
619#define KC_CIRCUMFLEX KC_CIRC 619#define KC_CIRC KC_CIRCUMFLEX
620 620
621#define KC_AMPR LSFT(KC_7) // & 621#define KC_AMPERSAND LSFT(KC_7) // &
622#define KC_AMPERSAND KC_AMPR 622#define KC_AMPR KC_AMPERSAND
623 623
624#define KC_ASTR LSFT(KC_8) // * 624#define KC_ASTERISK LSFT(KC_8) // *
625#define KC_ASTERISK KC_ASTR 625#define KC_ASTR KC_ASTERISK
626 626
627#define KC_LPRN LSFT(KC_9) // ( 627#define KC_LEFT_PAREN LSFT(KC_9) // (
628#define KC_LEFT_PAREN KC_LPRN 628#define KC_LPRN KC_LEFT_PAREN
629 629
630#define KC_RPRN LSFT(KC_0) // ) 630#define KC_RIGHT_PAREN LSFT(KC_0) // )
631#define KC_RIGHT_PAREN KC_RPRN 631#define KC_RPRN KC_RIGHT_PAREN
632 632
633#define KC_UNDS LSFT(KC_MINS) // _ 633#define KC_UNDERSCORE LSFT(KC_MINUS) // _
634#define KC_UNDERSCORE KC_UNDS 634#define KC_UNDS KC_UNDERSCORE
635 635
636#define KC_PLUS LSFT(KC_EQL) // + 636#define KC_PLUS LSFT(KC_EQUAL) // +
637 637
638#define KC_LCBR LSFT(KC_LBRC) // { 638#define KC_LEFT_CURLY_BRACE LSFT(KC_LEFT_BRACKET) // {
639#define KC_LEFT_CURLY_BRACE KC_LCBR 639#define KC_LCBR KC_LEFT_CURLY_BRACE
640 640
641#define KC_RCBR LSFT(KC_RBRC) // } 641#define KC_RIGHT_CURLY_BRACE LSFT(KC_RIGHT_BRACKET) // }
642#define KC_RIGHT_CURLY_BRACE KC_RCBR 642#define KC_RCBR KC_RIGHT_CURLY_BRACE
643 643
644#define KC_LABK LSFT(KC_COMM) // < 644#define KC_LEFT_ANGLE_BRACKET LSFT(KC_COMMA) // <
645#define KC_LEFT_ANGLE_BRACKET KC_LABK 645#define KC_LABK KC_LEFT_ANGLE_BRACKET
646#define KC_LT KC_LEFT_ANGLE_BRACKET
646 647
647#define KC_RABK LSFT(KC_DOT) // > 648#define KC_RIGHT_ANGLE_BRACKET LSFT(KC_DOT) // >
648#define KC_RIGHT_ANGLE_BRACKET KC_RABK 649#define KC_RABK KC_RIGHT_ANGLE_BRACKET
650#define KC_GT KC_RIGHT_ANGLE_BRACKET
649 651
650#define KC_COLN LSFT(KC_SCLN) // : 652#define KC_COLON LSFT(KC_SEMICOLON) // :
651#define KC_COLON KC_COLN 653#define KC_COLN KC_COLON
652 654
653#define KC_PIPE LSFT(KC_BSLS) // | 655#define KC_PIPE LSFT(KC_BACKSLASH) // |
654 656
655#define KC_LT LSFT(KC_COMM) // < 657#define KC_QUESTION LSFT(KC_SLASH) // ?
658#define KC_QUES KC_QUESTION
656 659
657#define KC_GT LSFT(KC_DOT) // > 660#define KC_DOUBLE_QUOTE LSFT(KC_QUOTE) // "
658 661#define KC_DQUO KC_DOUBLE_QUOTE
659#define KC_QUES LSFT(KC_SLSH) // ? 662#define KC_DQT KC_DOUBLE_QUOTE
660#define KC_QUESTION KC_QUES
661
662#define KC_DQT LSFT(KC_QUOT) // "
663#define KC_DOUBLE_QUOTE KC_DQT
664#define KC_DQUO KC_DQT
665 663
666#define KC_DELT KC_DELETE // Del key (four letter code) 664#define KC_DELT KC_DELETE // Del key (four letter code)
667 665
diff --git a/quantum/via_ensure_keycode.h b/quantum/via_ensure_keycode.h
index a9c1b8ba5..1aba0cdd2 100644
--- a/quantum/via_ensure_keycode.h
+++ b/quantum/via_ensure_keycode.h
@@ -5,362 +5,338 @@
5 5
6#ifndef VIA_HAS_BROKEN_KEYCODES 6#ifndef VIA_HAS_BROKEN_KEYCODES
7 7
8_Static_assert(KC_NO == 0, ""); 8// clang-format off
9_Static_assert(KC_TRNS == 1, "");
10 9
11_Static_assert(KC_A == 0x04, ""); 10_Static_assert(KC_NO == 0x0000, "");
12_Static_assert(KC_B == 0x05, ""); 11_Static_assert(KC_TRANSPARENT == 0x0001, "");
13_Static_assert(KC_C == 0x06, "");
14_Static_assert(KC_D == 0x07, "");
15_Static_assert(KC_E == 0x08, "");
16_Static_assert(KC_F == 0x09, "");
17_Static_assert(KC_G == 0x0A, "");
18_Static_assert(KC_H == 0x0B, "");
19_Static_assert(KC_I == 0x0C, "");
20_Static_assert(KC_J == 0x0D, "");
21_Static_assert(KC_K == 0x0E, "");
22_Static_assert(KC_L == 0x0F, "");
23_Static_assert(KC_M == 0x10, "");
24_Static_assert(KC_N == 0x11, "");
25_Static_assert(KC_O == 0x12, "");
26_Static_assert(KC_P == 0x13, "");
27_Static_assert(KC_Q == 0x14, "");
28_Static_assert(KC_R == 0x15, "");
29_Static_assert(KC_S == 0x16, "");
30_Static_assert(KC_T == 0x17, "");
31_Static_assert(KC_U == 0x18, "");
32_Static_assert(KC_V == 0x19, "");
33_Static_assert(KC_W == 0x1A, "");
34_Static_assert(KC_X == 0x1B, "");
35_Static_assert(KC_Y == 0x1C, "");
36_Static_assert(KC_Z == 0x1D, "");
37_Static_assert(KC_1 == 0x1E, "");
38_Static_assert(KC_2 == 0x1F, "");
39_Static_assert(KC_3 == 0x20, "");
40_Static_assert(KC_4 == 0x21, "");
41_Static_assert(KC_5 == 0x22, "");
42_Static_assert(KC_6 == 0x23, "");
43_Static_assert(KC_7 == 0x24, "");
44_Static_assert(KC_8 == 0x25, "");
45_Static_assert(KC_9 == 0x26, "");
46_Static_assert(KC_0 == 0x27, "");
47_Static_assert(KC_ENTER == 0x28, "");
48_Static_assert(KC_ESCAPE == 0x29, "");
49_Static_assert(KC_BSPACE == 0x2A, "");
50_Static_assert(KC_TAB == 0x2B, "");
51_Static_assert(KC_SPACE == 0x2C, "");
52_Static_assert(KC_MINUS == 0x2D, "");
53_Static_assert(KC_EQUAL == 0x2E, "");
54_Static_assert(KC_LBRACKET == 0x2F, "");
55_Static_assert(KC_RBRACKET == 0x30, "");
56_Static_assert(KC_BSLASH == 0x31, "");
57_Static_assert(KC_SCOLON == 0x33, "");
58_Static_assert(KC_QUOTE == 0x34, "");
59_Static_assert(KC_GRAVE == 0x35, "");
60_Static_assert(KC_COMMA == 0x36, "");
61_Static_assert(KC_DOT == 0x37, "");
62_Static_assert(KC_SLASH == 0x38, "");
63_Static_assert(KC_CAPSLOCK == 0x39, "");
64_Static_assert(KC_F1 == 0x3A, "");
65_Static_assert(KC_F2 == 0x3B, "");
66_Static_assert(KC_F3 == 0x3C, "");
67_Static_assert(KC_F4 == 0x3D, "");
68_Static_assert(KC_F5 == 0x3E, "");
69_Static_assert(KC_F6 == 0x3F, "");
70_Static_assert(KC_F7 == 0x40, "");
71_Static_assert(KC_F8 == 0x41, "");
72_Static_assert(KC_F9 == 0x42, "");
73_Static_assert(KC_F10 == 0x43, "");
74_Static_assert(KC_F11 == 0x44, "");
75_Static_assert(KC_F12 == 0x45, "");
76_Static_assert(KC_PSCREEN == 0x46, "");
77_Static_assert(KC_SCROLLLOCK == 0x47, "");
78_Static_assert(KC_PAUSE == 0x48, "");
79_Static_assert(KC_INSERT == 0x49, "");
80_Static_assert(KC_HOME == 0x4A, "");
81_Static_assert(KC_PGUP == 0x4B, "");
82_Static_assert(KC_DELETE == 0x4C, "");
83_Static_assert(KC_END == 0x4D, "");
84_Static_assert(KC_PGDOWN == 0x4E, "");
85_Static_assert(KC_RIGHT == 0x4F, "");
86_Static_assert(KC_LEFT == 0x50, "");
87_Static_assert(KC_DOWN == 0x51, "");
88_Static_assert(KC_UP == 0x52, "");
89_Static_assert(KC_NUMLOCK == 0x53, "");
90_Static_assert(KC_KP_SLASH == 0x54, "");
91_Static_assert(KC_KP_ASTERISK == 0x55, "");
92_Static_assert(KC_KP_MINUS == 0x56, "");
93_Static_assert(KC_KP_PLUS == 0x57, "");
94_Static_assert(KC_KP_ENTER == 0x58, "");
95_Static_assert(KC_KP_1 == 0x59, "");
96_Static_assert(KC_KP_2 == 0x5A, "");
97_Static_assert(KC_KP_3 == 0x5B, "");
98_Static_assert(KC_KP_4 == 0x5C, "");
99_Static_assert(KC_KP_5 == 0x5D, "");
100_Static_assert(KC_KP_6 == 0x5E, "");
101_Static_assert(KC_KP_7 == 0x5F, "");
102_Static_assert(KC_KP_8 == 0x60, "");
103_Static_assert(KC_KP_9 == 0x61, "");
104_Static_assert(KC_KP_0 == 0x62, "");
105_Static_assert(KC_KP_DOT == 0x63, "");
106_Static_assert(KC_APPLICATION == 0x65, "");
107_Static_assert(KC_KP_EQUAL == 0x67, "");
108_Static_assert(KC_KP_COMMA == 0x85, "");
109_Static_assert(KC_LCTRL == 0xE0, "");
110_Static_assert(KC_LSHIFT == 0xE1, "");
111_Static_assert(KC_LALT == 0xE2, "");
112_Static_assert(KC_LGUI == 0xE3, "");
113_Static_assert(KC_RCTRL == 0xE4, "");
114_Static_assert(KC_RSHIFT == 0xE5, "");
115_Static_assert(KC_RALT == 0xE6, "");
116_Static_assert(KC_RGUI == 0xE7, "");
117 12
118_Static_assert(KC_TILD == 0x235, ""); 13_Static_assert(KC_A == 0x0004, "");
119_Static_assert(KC_EXLM == 0x21E, ""); 14_Static_assert(KC_B == 0x0005, "");
120_Static_assert(KC_AT == 0x21F, ""); 15_Static_assert(KC_C == 0x0006, "");
121_Static_assert(KC_HASH == 0x220, ""); 16_Static_assert(KC_D == 0x0007, "");
122_Static_assert(KC_DLR == 0x221, ""); 17_Static_assert(KC_E == 0x0008, "");
123_Static_assert(KC_PERC == 0x222, ""); 18_Static_assert(KC_F == 0x0009, "");
124_Static_assert(KC_CIRC == 0x223, ""); 19_Static_assert(KC_G == 0x000A, "");
125_Static_assert(KC_AMPR == 0x224, ""); 20_Static_assert(KC_H == 0x000B, "");
126_Static_assert(KC_ASTR == 0x225, ""); 21_Static_assert(KC_I == 0x000C, "");
127_Static_assert(KC_LPRN == 0x226, ""); 22_Static_assert(KC_J == 0x000D, "");
128_Static_assert(KC_RPRN == 0x227, ""); 23_Static_assert(KC_K == 0x000E, "");
129_Static_assert(KC_UNDS == 0x22D, ""); 24_Static_assert(KC_L == 0x000F, "");
130_Static_assert(KC_PLUS == 0x22E, ""); 25_Static_assert(KC_M == 0x0010, "");
131_Static_assert(KC_LCBR == 0x22F, ""); 26_Static_assert(KC_N == 0x0011, "");
132_Static_assert(KC_RCBR == 0x230, ""); 27_Static_assert(KC_O == 0x0012, "");
133_Static_assert(KC_LT == 0x236, ""); 28_Static_assert(KC_P == 0x0013, "");
134_Static_assert(KC_GT == 0x237, ""); 29_Static_assert(KC_Q == 0x0014, "");
135_Static_assert(KC_COLN == 0x233, ""); 30_Static_assert(KC_R == 0x0015, "");
136_Static_assert(KC_PIPE == 0x231, ""); 31_Static_assert(KC_S == 0x0016, "");
137_Static_assert(KC_QUES == 0x238, ""); 32_Static_assert(KC_T == 0x0017, "");
138_Static_assert(KC_DQUO == 0x234, ""); 33_Static_assert(KC_U == 0x0018, "");
34_Static_assert(KC_V == 0x0019, "");
35_Static_assert(KC_W == 0x001A, "");
36_Static_assert(KC_X == 0x001B, "");
37_Static_assert(KC_Y == 0x001C, "");
38_Static_assert(KC_Z == 0x001D, "");
39_Static_assert(KC_1 == 0x001E, "");
40_Static_assert(KC_2 == 0x001F, "");
41_Static_assert(KC_3 == 0x0020, "");
42_Static_assert(KC_4 == 0x0021, "");
43_Static_assert(KC_5 == 0x0022, "");
44_Static_assert(KC_6 == 0x0023, "");
45_Static_assert(KC_7 == 0x0024, "");
46_Static_assert(KC_8 == 0x0025, "");
47_Static_assert(KC_9 == 0x0026, "");
48_Static_assert(KC_0 == 0x0027, "");
49_Static_assert(KC_ENTER == 0x0028, "");
50_Static_assert(KC_ESCAPE == 0x0029, "");
51_Static_assert(KC_BACKSPACE == 0x002A, "");
52_Static_assert(KC_TAB == 0x002B, "");
53_Static_assert(KC_SPACE == 0x002C, "");
54_Static_assert(KC_MINUS == 0x002D, "");
55_Static_assert(KC_EQUAL == 0x002E, "");
56_Static_assert(KC_LEFT_BRACKET == 0x002F, "");
57_Static_assert(KC_RIGHT_BRACKET == 0x0030, "");
58_Static_assert(KC_BACKSLASH == 0x0031, "");
59_Static_assert(KC_NONUS_HASH == 0x0032, "");
60_Static_assert(KC_SEMICOLON == 0x0033, "");
61_Static_assert(KC_QUOTE == 0x0034, "");
62_Static_assert(KC_GRAVE == 0x0035, "");
63_Static_assert(KC_COMMA == 0x0036, "");
64_Static_assert(KC_DOT == 0x0037, "");
65_Static_assert(KC_SLASH == 0x0038, "");
66_Static_assert(KC_CAPS_LOCK == 0x0039, "");
67_Static_assert(KC_F1 == 0x003A, "");
68_Static_assert(KC_F2 == 0x003B, "");
69_Static_assert(KC_F3 == 0x003C, "");
70_Static_assert(KC_F4 == 0x003D, "");
71_Static_assert(KC_F5 == 0x003E, "");
72_Static_assert(KC_F6 == 0x003F, "");
73_Static_assert(KC_F7 == 0x0040, "");
74_Static_assert(KC_F8 == 0x0041, "");
75_Static_assert(KC_F9 == 0x0042, "");
76_Static_assert(KC_F10 == 0x0043, "");
77_Static_assert(KC_F11 == 0x0044, "");
78_Static_assert(KC_F12 == 0x0045, "");
79_Static_assert(KC_PRINT_SCREEN == 0x0046, "");
80_Static_assert(KC_SCROLL_LOCK == 0x0047, "");
81_Static_assert(KC_PAUSE == 0x0048, "");
82_Static_assert(KC_INSERT == 0x0049, "");
83_Static_assert(KC_HOME == 0x004A, "");
84_Static_assert(KC_PAGE_UP == 0x004B, "");
85_Static_assert(KC_DELETE == 0x004C, "");
86_Static_assert(KC_END == 0x004D, "");
87_Static_assert(KC_PAGE_DOWN == 0x004E, "");
88_Static_assert(KC_RIGHT == 0x004F, "");
89_Static_assert(KC_LEFT == 0x0050, "");
90_Static_assert(KC_DOWN == 0x0051, "");
91_Static_assert(KC_UP == 0x0052, "");
92_Static_assert(KC_NUM_LOCK == 0x0053, "");
93_Static_assert(KC_KP_SLASH == 0x0054, "");
94_Static_assert(KC_KP_ASTERISK == 0x0055, "");
95_Static_assert(KC_KP_MINUS == 0x0056, "");
96_Static_assert(KC_KP_PLUS == 0x0057, "");
97_Static_assert(KC_KP_ENTER == 0x0058, "");
98_Static_assert(KC_KP_1 == 0x0059, "");
99_Static_assert(KC_KP_2 == 0x005A, "");
100_Static_assert(KC_KP_3 == 0x005B, "");
101_Static_assert(KC_KP_4 == 0x005C, "");
102_Static_assert(KC_KP_5 == 0x005D, "");
103_Static_assert(KC_KP_6 == 0x005E, "");
104_Static_assert(KC_KP_7 == 0x005F, "");
105_Static_assert(KC_KP_8 == 0x0060, "");
106_Static_assert(KC_KP_9 == 0x0061, "");
107_Static_assert(KC_KP_0 == 0x0062, "");
108_Static_assert(KC_KP_DOT == 0x0063, "");
109_Static_assert(KC_NONUS_BACKSLASH == 0x0064, "");
110_Static_assert(KC_APPLICATION == 0x0065, "");
111_Static_assert(KC_KB_POWER == 0x0066, "");
112_Static_assert(KC_KP_EQUAL == 0x0067, "");
113_Static_assert(KC_F13 == 0x0068, "");
114_Static_assert(KC_F14 == 0x0069, "");
115_Static_assert(KC_F15 == 0x006A, "");
116_Static_assert(KC_F16 == 0x006B, "");
117_Static_assert(KC_F17 == 0x006C, "");
118_Static_assert(KC_F18 == 0x006D, "");
119_Static_assert(KC_F19 == 0x006E, "");
120_Static_assert(KC_F20 == 0x006F, "");
121_Static_assert(KC_F21 == 0x0070, "");
122_Static_assert(KC_F22 == 0x0071, "");
123_Static_assert(KC_F23 == 0x0072, "");
124_Static_assert(KC_F24 == 0x0073, "");
125_Static_assert(KC_EXECUTE == 0x0074, "");
126_Static_assert(KC_HELP == 0x0075, "");
127_Static_assert(KC_MENU == 0x0076, "");
128_Static_assert(KC_SELECT == 0x0077, "");
129_Static_assert(KC_STOP == 0x0078, "");
130_Static_assert(KC_AGAIN == 0x0079, "");
131_Static_assert(KC_UNDO == 0x007A, "");
132_Static_assert(KC_CUT == 0x007B, "");
133_Static_assert(KC_COPY == 0x007C, "");
134_Static_assert(KC_PASTE == 0x007D, "");
135_Static_assert(KC_FIND == 0x007E, "");
139 136
140_Static_assert(KC_NONUS_HASH == 0x32, ""); 137_Static_assert(KC_LOCKING_CAPS_LOCK == 0x0082, "");
141_Static_assert(KC_NONUS_BSLASH == 0x64, ""); 138_Static_assert(KC_LOCKING_NUM_LOCK == 0x0083, "");
142_Static_assert(KC_RO == 0x87, ""); 139_Static_assert(KC_LOCKING_SCROLL_LOCK == 0x0084, "");
143_Static_assert(KC_KANA == 0x88, ""); 140_Static_assert(KC_KP_COMMA == 0x0085, "");
144_Static_assert(KC_JYEN == 0x89, ""); 141_Static_assert(KC_KP_EQUAL_AS400 == 0x0086, "");
145_Static_assert(KC_HENK == 0x8A, ""); 142_Static_assert(KC_INTERNATIONAL_1 == 0x0087, "");
146_Static_assert(KC_MHEN == 0x8B, ""); 143_Static_assert(KC_INTERNATIONAL_2 == 0x0088, "");
147_Static_assert(KC_LANG1 == 0x90, ""); 144_Static_assert(KC_INTERNATIONAL_3 == 0x0089, "");
148_Static_assert(KC_LANG2 == 0x91, ""); 145_Static_assert(KC_INTERNATIONAL_4 == 0x008A, "");
146_Static_assert(KC_INTERNATIONAL_5 == 0x008B, "");
147_Static_assert(KC_INTERNATIONAL_6 == 0x008C, "");
148_Static_assert(KC_INTERNATIONAL_7 == 0x008D, "");
149_Static_assert(KC_INTERNATIONAL_8 == 0x008E, "");
150_Static_assert(KC_INTERNATIONAL_9 == 0x008F, "");
151_Static_assert(KC_LANGUAGE_1 == 0x0090, "");
152_Static_assert(KC_LANGUAGE_2 == 0x0091, "");
153_Static_assert(KC_LANGUAGE_3 == 0x0092, "");
154_Static_assert(KC_LANGUAGE_4 == 0x0093, "");
155_Static_assert(KC_LANGUAGE_5 == 0x0094, "");
156_Static_assert(KC_LANGUAGE_6 == 0x0095, "");
157_Static_assert(KC_LANGUAGE_7 == 0x0096, "");
158_Static_assert(KC_LANGUAGE_8 == 0x0097, "");
159_Static_assert(KC_LANGUAGE_9 == 0x0098, "");
160_Static_assert(KC_ALTERNATE_ERASE == 0x0099, "");
161_Static_assert(KC_SYSTEM_REQUEST == 0x009A, "");
162_Static_assert(KC_CANCEL == 0x009B, "");
163_Static_assert(KC_CLEAR == 0x009C, "");
164_Static_assert(KC_PRIOR == 0x009D, "");
149 165
150_Static_assert(KC_GESC == 0x5C16, ""); 166_Static_assert(KC_OUT == 0x00A0, "");
151_Static_assert(KC_LSPO == 0x5CD7, ""); 167_Static_assert(KC_OPER == 0x00A1, "");
152_Static_assert(KC_RSPC == 0x5CD8, ""); 168_Static_assert(KC_CLEAR_AGAIN == 0x00A2, "");
153_Static_assert(KC_LCPO == 0x5CF3, ""); 169_Static_assert(KC_CRSEL == 0x00A3, "");
154_Static_assert(KC_RCPC == 0x5CF4, ""); 170_Static_assert(KC_EXSEL == 0x00A4, "");
155_Static_assert(KC_LAPO == 0x5CF5, "");
156_Static_assert(KC_RAPC == 0x5CF6, "");
157_Static_assert(KC_SFTENT == 0x5CD9, "");
158 171
159_Static_assert(BL_TOGG == 23743, ""); 172_Static_assert(KC_PWR == 0x00A5, "");
160_Static_assert(BL_STEP == 23744, ""); 173_Static_assert(KC_SLEP == 0x00A6, "");
161_Static_assert(BL_BRTG == 23745, ""); 174_Static_assert(KC_WAKE == 0x00A7, "");
162_Static_assert(BL_ON == 23739, ""); 175_Static_assert(KC_MUTE == 0x00A8, "");
163_Static_assert(BL_OFF == 23740, ""); 176_Static_assert(KC_VOLU == 0x00A9, "");
164_Static_assert(BL_INC == 23742, ""); 177_Static_assert(KC_VOLD == 0x00AA, "");
165_Static_assert(BL_DEC == 23741, ""); 178_Static_assert(KC_MNXT == 0x00AB, "");
166_Static_assert(RGB_TOG == 23746, ""); 179_Static_assert(KC_MPRV == 0x00AC, "");
167_Static_assert(RGB_MOD == 23747, ""); 180_Static_assert(KC_MSTP == 0x00AD, "");
168_Static_assert(RGB_RMOD == 23748, ""); 181_Static_assert(KC_MPLY == 0x00AE, "");
169_Static_assert(RGB_HUI == 23749, ""); 182_Static_assert(KC_MSEL == 0x00AF, "");
170_Static_assert(RGB_HUD == 23750, ""); 183_Static_assert(KC_EJCT == 0x00B0, "");
171_Static_assert(RGB_SAI == 23751, ""); 184_Static_assert(KC_MAIL == 0x00B1, "");
172_Static_assert(RGB_SAD == 23752, ""); 185_Static_assert(KC_CALC == 0x00B2, "");
173_Static_assert(RGB_VAI == 23753, ""); 186_Static_assert(KC_MYCM == 0x00B3, "");
174_Static_assert(RGB_VAD == 23754, ""); 187_Static_assert(KC_WSCH == 0x00B4, "");
175_Static_assert(RGB_SPI == 23755, ""); 188_Static_assert(KC_WHOM == 0x00B5, "");
176_Static_assert(RGB_SPD == 23756, ""); 189_Static_assert(KC_WBAK == 0x00B6, "");
177_Static_assert(RGB_M_P == 23757, ""); 190_Static_assert(KC_WFWD == 0x00B7, "");
178_Static_assert(RGB_M_B == 23758, ""); 191_Static_assert(KC_WSTP == 0x00B8, "");
179_Static_assert(RGB_M_R == 23759, ""); 192_Static_assert(KC_WREF == 0x00B9, "");
180_Static_assert(RGB_M_SW == 23760, ""); 193_Static_assert(KC_WFAV == 0x00BA, "");
181_Static_assert(RGB_M_SN == 23761, ""); 194_Static_assert(KC_MFFD == 0x00BB, "");
182_Static_assert(RGB_M_K == 23762, ""); 195_Static_assert(KC_MRWD == 0x00BC, "");
183_Static_assert(RGB_M_X == 23763, ""); 196_Static_assert(KC_BRIU == 0x00BD, "");
184_Static_assert(RGB_M_G == 23764, ""); 197_Static_assert(KC_BRID == 0x00BE, "");
185_Static_assert(RGB_M_T == 23765, "");
186 198
187_Static_assert(KC_F13 == 104, ""); 199_Static_assert(KC_LEFT_CTRL == 0x00E0, "");
188_Static_assert(KC_F14 == 105, ""); 200_Static_assert(KC_LEFT_SHIFT == 0x00E1, "");
189_Static_assert(KC_F15 == 106, ""); 201_Static_assert(KC_LEFT_ALT == 0x00E2, "");
190_Static_assert(KC_F16 == 107, ""); 202_Static_assert(KC_LEFT_GUI == 0x00E3, "");
191_Static_assert(KC_F17 == 108, ""); 203_Static_assert(KC_RIGHT_CTRL == 0x00E4, "");
192_Static_assert(KC_F18 == 109, ""); 204_Static_assert(KC_RIGHT_SHIFT == 0x00E5, "");
193_Static_assert(KC_F19 == 110, ""); 205_Static_assert(KC_RIGHT_ALT == 0x00E6, "");
194_Static_assert(KC_F20 == 111, ""); 206_Static_assert(KC_RIGHT_GUI == 0x00E7, "");
195_Static_assert(KC_F21 == 112, "");
196_Static_assert(KC_F22 == 113, "");
197_Static_assert(KC_F23 == 114, "");
198_Static_assert(KC_F24 == 115, "");
199_Static_assert(KC_PWR == 165, "");
200_Static_assert(KC_SLEP == 166, "");
201_Static_assert(KC_WAKE == 167, "");
202_Static_assert(KC_EXEC == 116, "");
203_Static_assert(KC_HELP == 117, "");
204_Static_assert(KC_SLCT == 119, "");
205_Static_assert(KC_STOP == 120, "");
206_Static_assert(KC_AGIN == 121, "");
207_Static_assert(KC_UNDO == 122, "");
208_Static_assert(KC_CUT == 123, "");
209_Static_assert(KC_COPY == 124, "");
210_Static_assert(KC_PSTE == 125, "");
211_Static_assert(KC_FIND == 126, "");
212_Static_assert(KC_CALC == 178, "");
213_Static_assert(KC_MAIL == 177, "");
214_Static_assert(KC_MSEL == 175, "");
215_Static_assert(KC_MYCM == 179, "");
216_Static_assert(KC_WSCH == 180, "");
217_Static_assert(KC_WHOM == 181, "");
218_Static_assert(KC_WBAK == 182, "");
219_Static_assert(KC_WFWD == 183, "");
220_Static_assert(KC_WSTP == 184, "");
221_Static_assert(KC_WREF == 185, "");
222_Static_assert(KC_WFAV == 186, "");
223_Static_assert(KC_BRIU == 189, "");
224_Static_assert(KC_BRID == 190, "");
225_Static_assert(KC_MPRV == 172, "");
226_Static_assert(KC_MNXT == 171, "");
227_Static_assert(KC_MUTE == 168, "");
228_Static_assert(KC_VOLD == 170, "");
229_Static_assert(KC_VOLU == 169, "");
230_Static_assert(KC_MSTP == 173, "");
231_Static_assert(KC_MPLY == 174, "");
232_Static_assert(KC_MRWD == 188, "");
233_Static_assert(KC_MFFD == 187, "");
234_Static_assert(KC_EJCT == 176, "");
235_Static_assert(KC_MS_U == 240, "");
236_Static_assert(KC_MS_D == 241, "");
237_Static_assert(KC_MS_L == 242, "");
238_Static_assert(KC_MS_R == 243, "");
239_Static_assert(KC_BTN1 == 244, "");
240_Static_assert(KC_BTN2 == 245, "");
241_Static_assert(KC_BTN3 == 246, "");
242_Static_assert(KC_BTN4 == 247, "");
243_Static_assert(KC_BTN5 == 248, "");
244_Static_assert(KC_WH_U == 249, "");
245_Static_assert(KC_WH_D == 250, "");
246_Static_assert(KC_WH_L == 251, "");
247_Static_assert(KC_WH_R == 252, "");
248_Static_assert(KC_ACL0 == 253, "");
249_Static_assert(KC_ACL1 == 254, "");
250_Static_assert(KC_ACL2 == 255, "");
251_Static_assert(KC_LCAP == 130, "");
252_Static_assert(KC_LNUM == 131, "");
253_Static_assert(KC_LSCR == 132, "");
254 207
255_Static_assert(FN_MO13 == 0x5F10, ""); 208_Static_assert(KC_MS_U == 0x00F0, "");
256_Static_assert(FN_MO23 == 0x5F11, ""); 209_Static_assert(KC_MS_D == 0x00F1, "");
210_Static_assert(KC_MS_L == 0x00F2, "");
211_Static_assert(KC_MS_R == 0x00F3, "");
212_Static_assert(KC_BTN1 == 0x00F4, "");
213_Static_assert(KC_BTN2 == 0x00F5, "");
214_Static_assert(KC_BTN3 == 0x00F6, "");
215_Static_assert(KC_BTN4 == 0x00F7, "");
216_Static_assert(KC_BTN5 == 0x00F8, "");
217_Static_assert(KC_WH_U == 0x00F9, "");
218_Static_assert(KC_WH_D == 0x00FA, "");
219_Static_assert(KC_WH_L == 0x00FB, "");
220_Static_assert(KC_WH_R == 0x00FC, "");
221_Static_assert(KC_ACL0 == 0x00FD, "");
222_Static_assert(KC_ACL1 == 0x00FE, "");
223_Static_assert(KC_ACL2 == 0x00FF, "");
257 224
258_Static_assert(MACRO00 == 0x5F12, ""); 225_Static_assert(KC_EXLM == 0x021E, "");
259_Static_assert(MACRO01 == 0x5F13, ""); 226_Static_assert(KC_AT == 0x021F, "");
260_Static_assert(MACRO02 == 0x5F14, ""); 227_Static_assert(KC_HASH == 0x0220, "");
261_Static_assert(MACRO03 == 0x5F15, ""); 228_Static_assert(KC_DLR == 0x0221, "");
262_Static_assert(MACRO04 == 0x5F16, ""); 229_Static_assert(KC_PERC == 0x0222, "");
263_Static_assert(MACRO05 == 0x5F17, ""); 230_Static_assert(KC_CIRC == 0x0223, "");
264_Static_assert(MACRO06 == 0x5F18, ""); 231_Static_assert(KC_AMPR == 0x0224, "");
265_Static_assert(MACRO07 == 0x5F19, ""); 232_Static_assert(KC_ASTR == 0x0225, "");
266_Static_assert(MACRO08 == 0x5F1A, ""); 233_Static_assert(KC_LPRN == 0x0226, "");
267_Static_assert(MACRO09 == 0x5F1B, ""); 234_Static_assert(KC_RPRN == 0x0227, "");
268_Static_assert(MACRO10 == 0x5F1C, ""); 235_Static_assert(KC_UNDS == 0x022D, "");
269_Static_assert(MACRO11 == 0x5F1D, ""); 236_Static_assert(KC_PLUS == 0x022E, "");
270_Static_assert(MACRO12 == 0x5F1E, ""); 237_Static_assert(KC_LCBR == 0x022F, "");
271_Static_assert(MACRO13 == 0x5F1F, ""); 238_Static_assert(KC_RCBR == 0x0230, "");
272_Static_assert(MACRO14 == 0x5F20, ""); 239_Static_assert(KC_PIPE == 0x0231, "");
273_Static_assert(MACRO15 == 0x5F21, ""); 240_Static_assert(KC_COLN == 0x0233, "");
241_Static_assert(KC_DQUO == 0x0234, "");
242_Static_assert(KC_TILD == 0x0235, "");
243_Static_assert(KC_LT == 0x0236, "");
244_Static_assert(KC_GT == 0x0237, "");
245_Static_assert(KC_QUES == 0x0238, "");
274 246
275_Static_assert(USER00 == 0x5F80, ""); 247_Static_assert(RESET == 0x5C00, "");
276_Static_assert(USER01 == 0x5F81, ""); 248_Static_assert(DEBUG == 0x5C01, "");
277_Static_assert(USER02 == 0x5F82, "");
278_Static_assert(USER03 == 0x5F83, "");
279_Static_assert(USER04 == 0x5F84, "");
280_Static_assert(USER05 == 0x5F85, "");
281_Static_assert(USER06 == 0x5F86, "");
282_Static_assert(USER07 == 0x5F87, "");
283_Static_assert(USER08 == 0x5F88, "");
284_Static_assert(USER09 == 0x5F89, "");
285_Static_assert(USER10 == 0x5F8A, "");
286_Static_assert(USER11 == 0x5F8B, "");
287_Static_assert(USER12 == 0x5F8C, "");
288_Static_assert(USER13 == 0x5F8D, "");
289_Static_assert(USER14 == 0x5F8E, "");
290_Static_assert(USER15 == 0x5F8F, "");
291 249
292_Static_assert(KC_POWER == 102, ""); 250_Static_assert(MAGIC_TOGGLE_NKRO == 0x5C14, "");
293_Static_assert(KC_MENU == 118, ""); 251
294_Static_assert(KC_KP_EQUAL_AS400 == 134, ""); 252_Static_assert(KC_GESC == 0x5C16, "");
295_Static_assert(KC_INT6 == 140, ""); 253
296_Static_assert(KC_INT7 == 141, ""); 254_Static_assert(AU_ON == 0x5C1D, "");
297_Static_assert(KC_INT8 == 142, ""); 255_Static_assert(AU_OFF == 0x5C1E, "");
298_Static_assert(KC_INT9 == 143, ""); 256_Static_assert(AU_TOG == 0x5C1F, "");
299_Static_assert(KC_LANG3 == 146, ""); 257
300_Static_assert(KC_LANG4 == 147, ""); 258_Static_assert(CLICKY_TOGGLE == 0x5C20, "");
301_Static_assert(KC_LANG5 == 148, ""); 259_Static_assert(CLICKY_ENABLE == 0x5C21, "");
302_Static_assert(KC_LANG6 == 149, ""); 260_Static_assert(CLICKY_DISABLE == 0x5C22, "");
303_Static_assert(KC_LANG7 == 150, ""); 261_Static_assert(CLICKY_UP == 0x5C23, "");
304_Static_assert(KC_LANG8 == 151, ""); 262_Static_assert(CLICKY_DOWN == 0x5C24, "");
305_Static_assert(KC_LANG9 == 152, ""); 263_Static_assert(CLICKY_RESET == 0x5C25, "");
306_Static_assert(KC_ERAS == 153, ""); 264_Static_assert(MU_ON == 0x5C26, "");
307_Static_assert(KC_SYSREQ == 154, ""); 265_Static_assert(MU_OFF == 0x5C27, "");
308_Static_assert(KC_CANCEL == 155, ""); 266_Static_assert(MU_TOG == 0x5C28, "");
309_Static_assert(KC_CLEAR == 156, ""); 267_Static_assert(MU_MOD == 0x5C29, "");
310_Static_assert(KC_CLR == 156, ""); 268
311_Static_assert(KC_PRIOR == 157, ""); 269_Static_assert(BL_ON == 0x5CBB, "");
312_Static_assert(KC_OUT == 160, ""); 270_Static_assert(BL_OFF == 0x5CBC, "");
313_Static_assert(KC_OPER == 161, ""); 271_Static_assert(BL_DEC == 0x5CBD, "");
314_Static_assert(KC_CLEAR_AGAIN == 162, ""); 272_Static_assert(BL_INC == 0x5CBE, "");
315_Static_assert(KC_CRSEL == 163, ""); 273_Static_assert(BL_TOGG == 0x5CBF, "");
316_Static_assert(KC_EXSEL == 164, ""); 274_Static_assert(BL_STEP == 0x5CC0, "");
317_Static_assert(KC_FN0 == 192, ""); 275_Static_assert(BL_BRTG == 0x5CC1, "");
318_Static_assert(KC_FN1 == 193, ""); 276_Static_assert(RGB_TOG == 0x5CC2, "");
319_Static_assert(KC_FN2 == 194, ""); 277_Static_assert(RGB_MOD == 0x5CC3, "");
320_Static_assert(KC_FN3 == 195, ""); 278_Static_assert(RGB_RMOD == 0x5CC4, "");
321_Static_assert(KC_FN4 == 196, ""); 279_Static_assert(RGB_HUI == 0x5CC5, "");
322_Static_assert(KC_FN5 == 197, ""); 280_Static_assert(RGB_HUD == 0x5CC6, "");
323_Static_assert(KC_FN6 == 198, ""); 281_Static_assert(RGB_SAI == 0x5CC7, "");
324_Static_assert(KC_FN7 == 199, ""); 282_Static_assert(RGB_SAD == 0x5CC8, "");
325_Static_assert(KC_FN8 == 200, ""); 283_Static_assert(RGB_VAI == 0x5CC9, "");
326_Static_assert(KC_FN9 == 201, ""); 284_Static_assert(RGB_VAD == 0x5CCA, "");
327_Static_assert(KC_FN10 == 202, ""); 285_Static_assert(RGB_SPI == 0x5CCB, "");
328_Static_assert(KC_FN11 == 203, ""); 286_Static_assert(RGB_SPD == 0x5CCC, "");
329_Static_assert(KC_FN12 == 204, ""); 287_Static_assert(RGB_M_P == 0x5CCD, "");
330_Static_assert(KC_FN13 == 205, ""); 288_Static_assert(RGB_M_B == 0x5CCE, "");
331_Static_assert(KC_FN14 == 206, ""); 289_Static_assert(RGB_M_R == 0x5CCF, "");
332_Static_assert(KC_FN15 == 207, ""); 290_Static_assert(RGB_M_SW == 0x5CD0, "");
333_Static_assert(KC_FN16 == 208, ""); 291_Static_assert(RGB_M_SN == 0x5CD1, "");
334_Static_assert(KC_FN17 == 209, ""); 292_Static_assert(RGB_M_K == 0x5CD2, "");
335_Static_assert(KC_FN18 == 210, ""); 293_Static_assert(RGB_M_X == 0x5CD3, "");
336_Static_assert(KC_FN19 == 211, ""); 294_Static_assert(RGB_M_G == 0x5CD4, "");
337_Static_assert(KC_FN20 == 212, ""); 295_Static_assert(RGB_M_T == 0x5CD5, "");
338_Static_assert(KC_FN21 == 213, ""); 296
339_Static_assert(KC_FN22 == 214, ""); 297_Static_assert(KC_LSPO == 0x5CD7, "");
340_Static_assert(KC_FN23 == 215, ""); 298_Static_assert(KC_RSPC == 0x5CD8, "");
341_Static_assert(KC_FN24 == 216, ""); 299_Static_assert(KC_SFTENT == 0x5CD9, "");
342_Static_assert(KC_FN25 == 217, ""); 300
343_Static_assert(KC_FN26 == 218, ""); 301_Static_assert(KC_LCPO == 0x5CF3, "");
344_Static_assert(KC_FN27 == 219, ""); 302_Static_assert(KC_RCPC == 0x5CF4, "");
345_Static_assert(KC_FN28 == 220, ""); 303_Static_assert(KC_LAPO == 0x5CF5, "");
346_Static_assert(KC_FN29 == 221, ""); 304_Static_assert(KC_RAPC == 0x5CF6, "");
347_Static_assert(KC_FN30 == 222, ""); 305
348_Static_assert(KC_FN31 == 223, ""); 306_Static_assert(FN_MO13 == 0x5F10, "");
349_Static_assert(RESET == 23552, ""); 307_Static_assert(FN_MO23 == 0x5F11, "");
350_Static_assert(DEBUG == 23553, ""); 308_Static_assert(MACRO00 == 0x5F12, "");
351_Static_assert(MAGIC_TOGGLE_NKRO == 23572, ""); 309_Static_assert(MACRO01 == 0x5F13, "");
352_Static_assert(AU_ON == 23581, ""); 310_Static_assert(MACRO02 == 0x5F14, "");
353_Static_assert(AU_OFF == 23582, ""); 311_Static_assert(MACRO03 == 0x5F15, "");
354_Static_assert(AU_TOG == 23583, ""); 312_Static_assert(MACRO04 == 0x5F16, "");
355_Static_assert(CLICKY_TOGGLE == 23584, ""); 313_Static_assert(MACRO05 == 0x5F17, "");
356_Static_assert(CLICKY_ENABLE == 23585, ""); 314_Static_assert(MACRO06 == 0x5F18, "");
357_Static_assert(CLICKY_DISABLE == 23586, ""); 315_Static_assert(MACRO07 == 0x5F19, "");
358_Static_assert(CLICKY_UP == 23587, ""); 316_Static_assert(MACRO08 == 0x5F1A, "");
359_Static_assert(CLICKY_DOWN == 23588, ""); 317_Static_assert(MACRO09 == 0x5F1B, "");
360_Static_assert(CLICKY_RESET == 23589, ""); 318_Static_assert(MACRO10 == 0x5F1C, "");
361_Static_assert(MU_ON == 23590, ""); 319_Static_assert(MACRO11 == 0x5F1D, "");
362_Static_assert(MU_OFF == 23591, ""); 320_Static_assert(MACRO12 == 0x5F1E, "");
363_Static_assert(MU_TOG == 23592, ""); 321_Static_assert(MACRO13 == 0x5F1F, "");
364_Static_assert(MU_MOD == 23593, ""); 322_Static_assert(MACRO14 == 0x5F20, "");
323_Static_assert(MACRO15 == 0x5F21, "");
324
325_Static_assert(USER00 == 0x5F80, "");
326_Static_assert(USER01 == 0x5F81, "");
327_Static_assert(USER02 == 0x5F82, "");
328_Static_assert(USER03 == 0x5F83, "");
329_Static_assert(USER04 == 0x5F84, "");
330_Static_assert(USER05 == 0x5F85, "");
331_Static_assert(USER06 == 0x5F86, "");
332_Static_assert(USER07 == 0x5F87, "");
333_Static_assert(USER08 == 0x5F88, "");
334_Static_assert(USER09 == 0x5F89, "");
335_Static_assert(USER10 == 0x5F8A, "");
336_Static_assert(USER11 == 0x5F8B, "");
337_Static_assert(USER12 == 0x5F8C, "");
338_Static_assert(USER13 == 0x5F8D, "");
339_Static_assert(USER14 == 0x5F8E, "");
340_Static_assert(USER15 == 0x5F8F, "");
365 341
366#endif 342#endif
diff --git a/quantum/wpm.c b/quantum/wpm.c
index e711e9fe7..cad4cefd5 100644
--- a/quantum/wpm.c
+++ b/quantum/wpm.c
@@ -56,7 +56,7 @@ __attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) {
56 } else if (keycode > 0xFF) { 56 } else if (keycode > 0xFF) {
57 keycode = 0; 57 keycode = 0;
58 } 58 }
59 if (keycode == KC_DEL || keycode == KC_BSPC) { 59 if (keycode == KC_DELETE || keycode == KC_BACKSPACE) {
60 if (((get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) || weak_modded) { 60 if (((get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) || weak_modded) {
61 return WPM_ESTIMATED_WORD_SIZE; 61 return WPM_ESTIMATED_WORD_SIZE;
62 } else { 62 } else {
diff --git a/tests/basic/test_keypress.cpp b/tests/basic/test_keypress.cpp
index ecd6e98e4..cf839f8c1 100644
--- a/tests/basic/test_keypress.cpp
+++ b/tests/basic/test_keypress.cpp
@@ -73,10 +73,10 @@ TEST_F(KeyPress, LeftShiftIsReportedCorrectly) {
73 // See issue #1476 for more information 73 // See issue #1476 for more information
74 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A))); 74 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A)));
75 keyboard_task(); 75 keyboard_task();
76 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A, KC_LSFT))); 76 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A, KC_LEFT_SHIFT)));
77 keyboard_task(); 77 keyboard_task();
78 release_key(0, 0); 78 release_key(0, 0);
79 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 79 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
80 keyboard_task(); 80 keyboard_task();
81 release_key(3, 0); 81 release_key(3, 0);
82 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 82 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
@@ -89,9 +89,9 @@ TEST_F(KeyPress, PressLeftShiftAndControl) {
89 press_key(5, 0); 89 press_key(5, 0);
90 // Unfortunately modifiers are also processed in the wrong order 90 // Unfortunately modifiers are also processed in the wrong order
91 // See issue #1476 for more information 91 // See issue #1476 for more information
92 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 92 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
93 keyboard_task(); 93 keyboard_task();
94 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_LCTRL))); 94 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_LEFT_CTRL)));
95 keyboard_task(); 95 keyboard_task();
96} 96}
97 97
@@ -101,9 +101,9 @@ TEST_F(KeyPress, LeftAndRightShiftCanBePressedAtTheSameTime) {
101 press_key(4, 0); 101 press_key(4, 0);
102 // Unfortunately modifiers are also processed in the wrong order 102 // Unfortunately modifiers are also processed in the wrong order
103 // See issue #1476 for more information 103 // See issue #1476 for more information
104 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 104 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
105 keyboard_task(); 105 keyboard_task();
106 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_RSFT))); 106 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_RIGHT_SHIFT)));
107 keyboard_task(); 107 keyboard_task();
108} 108}
109 109
@@ -115,11 +115,11 @@ TEST_F(KeyPress, RightShiftLeftControlAndCharWithTheSameKey) {
115 // See issue #524 for more information 115 // See issue #524 for more information
116 // The underlying cause is that we use only one bit to represent the right hand 116 // The underlying cause is that we use only one bit to represent the right hand
117 // modifiers. 117 // modifiers.
118 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_RSFT, KC_RCTRL))); 118 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_RIGHT_SHIFT, KC_RIGHT_CTRL)));
119 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_RSFT, KC_RCTRL, KC_O))); 119 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_RIGHT_SHIFT, KC_RIGHT_CTRL, KC_O)));
120 keyboard_task(); 120 keyboard_task();
121 release_key(6, 0); 121 release_key(6, 0);
122 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_RSFT, KC_RCTRL))); 122 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_RIGHT_SHIFT, KC_RIGHT_CTRL)));
123 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 123 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
124 keyboard_task(); 124 keyboard_task();
125} 125}
@@ -129,23 +129,23 @@ TEST_F(KeyPress, PressPlusEqualReleaseBeforePress) {
129 InSequence s; 129 InSequence s;
130 130
131 press_key(1, 1); // KC_PLUS 131 press_key(1, 1); // KC_PLUS
132 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 132 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
133 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); 133 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_EQUAL)));
134 run_one_scan_loop(); 134 run_one_scan_loop();
135 testing::Mock::VerifyAndClearExpectations(&driver); 135 testing::Mock::VerifyAndClearExpectations(&driver);
136 136
137 release_key(1, 1); // KC_PLUS 137 release_key(1, 1); // KC_PLUS
138 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 138 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
139 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 139 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
140 run_one_scan_loop(); 140 run_one_scan_loop();
141 testing::Mock::VerifyAndClearExpectations(&driver); 141 testing::Mock::VerifyAndClearExpectations(&driver);
142 142
143 press_key(0, 1); // KC_EQL 143 press_key(0, 1); // KC_EQUAL
144 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); 144 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQUAL)));
145 run_one_scan_loop(); 145 run_one_scan_loop();
146 testing::Mock::VerifyAndClearExpectations(&driver); 146 testing::Mock::VerifyAndClearExpectations(&driver);
147 147
148 release_key(0, 1); // KC_EQL 148 release_key(0, 1); // KC_EQUAL
149 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 149 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
150 run_one_scan_loop(); 150 run_one_scan_loop();
151 testing::Mock::VerifyAndClearExpectations(&driver); 151 testing::Mock::VerifyAndClearExpectations(&driver);
@@ -156,25 +156,25 @@ TEST_F(KeyPress, PressPlusEqualDontReleaseBeforePress) {
156 InSequence s; 156 InSequence s;
157 157
158 press_key(1, 1); // KC_PLUS 158 press_key(1, 1); // KC_PLUS
159 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 159 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
160 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); 160 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_EQUAL)));
161 run_one_scan_loop(); 161 run_one_scan_loop();
162 testing::Mock::VerifyAndClearExpectations(&driver); 162 testing::Mock::VerifyAndClearExpectations(&driver);
163 163
164 press_key(0, 1); // KC_EQL 164 press_key(0, 1); // KC_EQUAL
165 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 165 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
166 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); 166 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQUAL)));
167 run_one_scan_loop(); 167 run_one_scan_loop();
168 testing::Mock::VerifyAndClearExpectations(&driver); 168 testing::Mock::VerifyAndClearExpectations(&driver);
169 169
170 release_key(1, 1); // KC_PLS 170 release_key(1, 1); // KC_PLUS
171 // BUG: Should really still return KC_EQL, but this is fine too 171 // BUG: Should really still return KC_EQUAL, but this is fine too
172 // It's also called twice for some reason 172 // It's also called twice for some reason
173 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(2); 173 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(2);
174 run_one_scan_loop(); 174 run_one_scan_loop();
175 testing::Mock::VerifyAndClearExpectations(&driver); 175 testing::Mock::VerifyAndClearExpectations(&driver);
176 176
177 release_key(0, 1); // KC_EQL 177 release_key(0, 1); // KC_EQUAL
178 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 178 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
179 run_one_scan_loop(); 179 run_one_scan_loop();
180 testing::Mock::VerifyAndClearExpectations(&driver); 180 testing::Mock::VerifyAndClearExpectations(&driver);
@@ -184,24 +184,24 @@ TEST_F(KeyPress, PressEqualPlusReleaseBeforePress) {
184 TestDriver driver; 184 TestDriver driver;
185 InSequence s; 185 InSequence s;
186 186
187 press_key(0, 1); // KC_EQL 187 press_key(0, 1); // KC_EQUAL
188 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); 188 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQUAL)));
189 run_one_scan_loop(); 189 run_one_scan_loop();
190 testing::Mock::VerifyAndClearExpectations(&driver); 190 testing::Mock::VerifyAndClearExpectations(&driver);
191 191
192 release_key(0, 1); // KQ_EQL 192 release_key(0, 1); // KC_EQUAL
193 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 193 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
194 run_one_scan_loop(); 194 run_one_scan_loop();
195 testing::Mock::VerifyAndClearExpectations(&driver); 195 testing::Mock::VerifyAndClearExpectations(&driver);
196 196
197 press_key(1, 1); // KC_PLUS 197 press_key(1, 1); // KC_PLUS
198 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 198 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
199 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); 199 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_EQUAL)));
200 run_one_scan_loop(); 200 run_one_scan_loop();
201 testing::Mock::VerifyAndClearExpectations(&driver); 201 testing::Mock::VerifyAndClearExpectations(&driver);
202 202
203 release_key(1, 1); // KC_PLUS 203 release_key(1, 1); // KC_PLUS
204 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 204 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
205 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 205 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
206 run_one_scan_loop(); 206 run_one_scan_loop();
207 testing::Mock::VerifyAndClearExpectations(&driver); 207 testing::Mock::VerifyAndClearExpectations(&driver);
@@ -211,29 +211,29 @@ TEST_F(KeyPress, PressEqualPlusDontReleaseBeforePress) {
211 TestDriver driver; 211 TestDriver driver;
212 InSequence s; 212 InSequence s;
213 213
214 press_key(0, 1); // KC_EQL 214 press_key(0, 1); // KC_EQUAL
215 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); 215 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQUAL)));
216 run_one_scan_loop(); 216 run_one_scan_loop();
217 testing::Mock::VerifyAndClearExpectations(&driver); 217 testing::Mock::VerifyAndClearExpectations(&driver);
218 218
219 press_key(1, 1); // KC_PLUS 219 press_key(1, 1); // KC_PLUS
220 // BUG: The sequence is a bit strange, but it works, the end result is that 220 // BUG: The sequence is a bit strange, but it works, the end result is that
221 // KC_PLUS is sent 221 // KC_PLUS is sent
222 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); 222 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_EQUAL)));
223 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 223 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
224 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); 224 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_EQUAL)));
225 run_one_scan_loop(); 225 run_one_scan_loop();
226 testing::Mock::VerifyAndClearExpectations(&driver); 226 testing::Mock::VerifyAndClearExpectations(&driver);
227 227
228 release_key(0, 1); // KC_EQL 228 release_key(0, 1); // KC_EQUAL
229 // I guess it's fine to still report shift here 229 // I guess it's fine to still report shift here
230 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 230 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
231 run_one_scan_loop(); 231 run_one_scan_loop();
232 testing::Mock::VerifyAndClearExpectations(&driver); 232 testing::Mock::VerifyAndClearExpectations(&driver);
233 233
234 release_key(1, 1); // KC_PLUS 234 release_key(1, 1); // KC_PLUS
235 // This report is not needed 235 // This report is not needed
236 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 236 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
237 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); 237 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
238 run_one_scan_loop(); 238 run_one_scan_loop();
239 testing::Mock::VerifyAndClearExpectations(&driver); 239 testing::Mock::VerifyAndClearExpectations(&driver);
diff --git a/tests/basic/test_macro.cpp b/tests/basic/test_macro.cpp
index dc4a77796..1ac6f473f 100644
--- a/tests/basic/test_macro.cpp
+++ b/tests/basic/test_macro.cpp
@@ -29,9 +29,9 @@ TEST_F(Macro, PlayASimpleMacro) {
29 InSequence s; 29 InSequence s;
30 press_key(8, 0); 30 press_key(8, 0);
31 uint32_t current_time = timer_read32(); 31 uint32_t current_time = timer_read32();
32 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).AT_TIME(0); 32 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(0);
33 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_H))).AT_TIME(0); 33 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_H))).AT_TIME(0);
34 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).AT_TIME(0); 34 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(0);
35 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); 35 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0);
36 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_E))).AT_TIME(0); 36 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_E))).AT_TIME(0);
37 // The macro system could actually skip these empty keyboard reports 37 // The macro system could actually skip these empty keyboard reports
@@ -45,9 +45,9 @@ TEST_F(Macro, PlayASimpleMacro) {
45 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); 45 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0);
46 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_SPACE))).AT_TIME(0); 46 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_SPACE))).AT_TIME(0);
47 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); 47 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0);
48 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).AT_TIME(100); 48 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(100);
49 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_W))).AT_TIME(100); 49 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_W))).AT_TIME(100);
50 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).AT_TIME(100); 50 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(100);
51 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(100); 51 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(100);
52 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_O))) 52 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_O)))
53 // BUG: The timer should not really have advanced 10 ms here 53 // BUG: The timer should not really have advanced 10 ms here
@@ -63,9 +63,9 @@ TEST_F(Macro, PlayASimpleMacro) {
63 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(160); 63 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(160);
64 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_D))).AT_TIME(170); 64 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_D))).AT_TIME(170);
65 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(180); 65 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(180);
66 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).AT_TIME(190); 66 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(190);
67 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_1))).AT_TIME(200); 67 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_1))).AT_TIME(200);
68 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).AT_TIME(210); 68 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(210);
69 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(220); 69 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(220);
70 run_one_scan_loop(); 70 run_one_scan_loop();
71} 71}
diff --git a/tests/basic/test_tapping.cpp b/tests/basic/test_tapping.cpp
index 30d032e9f..88ab97eb6 100644
--- a/tests/basic/test_tapping.cpp
+++ b/tests/basic/test_tapping.cpp
@@ -46,7 +46,7 @@ TEST_F(Tapping, HoldA_SHFT_T_KeyReportsShift) {
46 // Tapping keys does nothing on press 46 // Tapping keys does nothing on press
47 EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0); 47 EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0);
48 idle_for(TAPPING_TERM); 48 idle_for(TAPPING_TERM);
49 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); 49 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT)));
50 run_one_scan_loop(); 50 run_one_scan_loop();
51} 51}
52 52
@@ -92,6 +92,6 @@ TEST_F(Tapping, ANewTapWithinTappingTermIsBuggy) {
92 // If TAPPING_TERM + 1 above is changed to TAPPING_TERM or TAPPING_TERM + 2 it doesn't 92 // If TAPPING_TERM + 1 above is changed to TAPPING_TERM or TAPPING_TERM + 2 it doesn't
93 press_key(7, 0); 93 press_key(7, 0);
94 // Shouldn't be called here really 94 // Shouldn't be called here really
95 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(1); 95 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).Times(1);
96 idle_for(TAPPING_TERM); 96 idle_for(TAPPING_TERM);
97} 97}