From 61cdc9aaa462afbcbaf57f2c5991e06924caed0e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 26 Jun 2017 18:54:01 -0400 Subject: Allow mod swapping for mod tap (MT) (#1202) * allow mod swapping for mod tap * quick include * fix the mod swapping * make changes consistent with action code * fix bug * re-enable no gui, etc * fix binary comps * solid logic --- quantum/keycode_config.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'quantum/keycode_config.c') diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c index 4f7bc525e..eb39c8fe0 100644 --- a/quantum/keycode_config.c +++ b/quantum/keycode_config.c @@ -88,3 +88,31 @@ uint16_t keycode_config(uint16_t keycode) { return keycode; } } + +uint8_t mod_config(uint8_t mod) { + keymap_config.raw = eeconfig_read_keymap(); + if (keymap_config.swap_lalt_lgui) { + if ((mod & MOD_RGUI) == MOD_LGUI) { + mod &= ~MOD_LGUI; + mod |= MOD_LALT; + } else if ((mod & MOD_RALT) == MOD_LALT) { + mod &= ~MOD_LALT; + mod |= MOD_LGUI; + } + } + if (keymap_config.swap_ralt_rgui) { + if ((mod & MOD_RGUI) == MOD_RGUI) { + mod &= ~MOD_RGUI; + mod |= MOD_RALT; + } else if ((mod & MOD_RALT) == MOD_RALT) { + mod &= ~MOD_RALT; + mod |= MOD_RGUI; + } + } + if (keymap_config.no_gui) { + mod &= ~MOD_LGUI; + mod &= ~MOD_RGUI; + } + + return mod; +} \ No newline at end of file -- cgit v1.2.3-24-g4f1b