aboutsummaryrefslogtreecommitdiff
path: root/quantum/keycode_config.c
diff options
context:
space:
mode:
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 0dc5105d2..73fe15861 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;