diff options
Diffstat (limited to 'quantum/keycode_config.c')
-rw-r--r-- | quantum/keycode_config.c | 38 |
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; |