summaryrefslogtreecommitdiff
path: root/quantum/keycode_config.c
diff options
context:
space:
mode:
authorStephen Wanhella <Stephen.wanhella@gmail.com>2019-08-21 17:07:08 -0700
committerDrashna Jaelre <drashna@live.com>2019-08-21 17:07:08 -0700
commitd534c72a544454132b3c6c05af85c821f6a93d65 (patch)
tree906a66b899e4de1d7ffe567bbdb2c9082d948140 /quantum/keycode_config.c
parent6a79b05cf02d5a6f07b17474344e272b44c77988 (diff)
Added keycodes for swapping and unswapping the Control and OS keys (#6110)
* Add MAGIC_SWAP_CONTROL_LGUI and MAGIC_UNSWAP_CONTROL_LGUI keycodes Key codes to swap and unswap the control and windows/cmd keys * Fix issues with pull request #6110 Renamed swap/unswap lctl and lgui key codes, added key codes to swap/unswap rctl and rgui, and moved new bool inside keycode_config.h struct to the end * Move new keycodes to the end of the enum (#6110) * add cases for swapped control and OS keys to mod_config (#6110) * Add new keycodes to feature_bootmagic.md (#6110) * Add R+L swap codes to keep in parity with AG_* codes * Extend Magic range check to include new magic codes * Update audio docs * Combine 2 byte ranges into 1 word for EECONFG Fix names for Keymap config EEPROM * Update docs/feature_bootmagic.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/feature_bootmagic.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/feature_bootmagic.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/feature_bootmagic.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
Diffstat (limited to 'quantum/keycode_config.c')
-rw-r--r--quantum/keycode_config.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c
index 0dc5105d21..73fe15861d 100644
--- a/quantum/keycode_config.c
+++ b/quantum/keycode_config.c
@@ -31,6 +31,12 @@ uint16_t keycode_config(uint16_t keycode) {
31 if (keymap_config.swap_control_capslock) { 31 if (keymap_config.swap_control_capslock) {
32 return KC_CAPSLOCK; 32 return KC_CAPSLOCK;
33 } 33 }
34 if (keymap_config.swap_lctl_lgui) {
35 if (keymap_config.no_gui) {
36 return KC_NO;
37 }
38 return KC_LGUI;
39 }
34 return KC_LCTL; 40 return KC_LCTL;
35 case KC_LALT: 41 case KC_LALT:
36 if (keymap_config.swap_lalt_lgui) { 42 if (keymap_config.swap_lalt_lgui) {
@@ -44,10 +50,21 @@ uint16_t keycode_config(uint16_t keycode) {
44 if (keymap_config.swap_lalt_lgui) { 50 if (keymap_config.swap_lalt_lgui) {
45 return KC_LALT; 51 return KC_LALT;
46 } 52 }
53 if (keymap_config.swap_lctl_lgui) {
54 return KC_LCTRL;
55 }
47 if (keymap_config.no_gui) { 56 if (keymap_config.no_gui) {
48 return KC_NO; 57 return KC_NO;
49 } 58 }
50 return KC_LGUI; 59 return KC_LGUI;
60 case KC_RCTL:
61 if (keymap_config.swap_rctl_rgui) {
62 if (keymap_config.no_gui) {
63 return KC_NO;
64 }
65 return KC_RGUI;
66 }
67 return KC_RCTL;
51 case KC_RALT: 68 case KC_RALT:
52 if (keymap_config.swap_ralt_rgui) { 69 if (keymap_config.swap_ralt_rgui) {
53 if (keymap_config.no_gui) { 70 if (keymap_config.no_gui) {
@@ -60,6 +77,9 @@ uint16_t keycode_config(uint16_t keycode) {
60 if (keymap_config.swap_ralt_rgui) { 77 if (keymap_config.swap_ralt_rgui) {
61 return KC_RALT; 78 return KC_RALT;
62 } 79 }
80 if (keymap_config.swap_rctl_rgui) {
81 return KC_RCTL;
82 }
63 if (keymap_config.no_gui) { 83 if (keymap_config.no_gui) {
64 return KC_NO; 84 return KC_NO;
65 } 85 }
@@ -108,6 +128,24 @@ uint8_t mod_config(uint8_t mod) {
108 mod |= MOD_RGUI; 128 mod |= MOD_RGUI;
109 } 129 }
110 } 130 }
131 if (keymap_config.swap_lctl_lgui) {
132 if ((mod & MOD_RGUI) == MOD_LGUI) {
133 mod &= ~MOD_LGUI;
134 mod |= MOD_LCTL;
135 } else if ((mod & MOD_RCTL) == MOD_LCTL) {
136 mod &= ~MOD_LCTL;
137 mod |= MOD_LGUI;
138 }
139 }
140 if (keymap_config.swap_rctl_rgui) {
141 if ((mod & MOD_RGUI) == MOD_RGUI) {
142 mod &= ~MOD_RGUI;
143 mod |= MOD_RCTL;
144 } else if ((mod & MOD_RCTL) == MOD_RCTL) {
145 mod &= ~MOD_RCTL;
146 mod |= MOD_RGUI;
147 }
148 }
111 if (keymap_config.no_gui) { 149 if (keymap_config.no_gui) {
112 mod &= ~MOD_LGUI; 150 mod &= ~MOD_LGUI;
113 mod &= ~MOD_RGUI; 151 mod &= ~MOD_RGUI;