aboutsummaryrefslogtreecommitdiffstats
path: root/common/keymap.c
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-04-07 15:36:50 +0900
committertmk <nobody@nowhere>2013-04-07 15:36:50 +0900
commit4e93b3fa67d3b8170de2f05322738e08ac17948e (patch)
tree46b5191bd9e6c591bc13e05aa97a0454f30b1897 /common/keymap.c
parent78fd5a715464e72df08bcf683ca45b63c2df490f (diff)
downloadfirmware-4e93b3fa67d3b8170de2f05322738e08ac17948e.tar.gz
firmware-4e93b3fa67d3b8170de2f05322738e08ac17948e.tar.bz2
firmware-4e93b3fa67d3b8170de2f05322738e08ac17948e.zip
Fix bootmagic and eeconfig for virtual DIP SW
Diffstat (limited to 'common/keymap.c')
-rw-r--r--common/keymap.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/common/keymap.c b/common/keymap.c
index 572d922c6..8e2b8607c 100644
--- a/common/keymap.c
+++ b/common/keymap.c
@@ -34,6 +34,70 @@ action_t action_for_key(uint8_t layer, key_t key)
switch (keycode) {
case KC_FN0 ... KC_FN31:
return keymap_fn_to_action(keycode);
+#ifdef BOOTMAGIC_ENABLE
+ case KC_CAPSLOCK:
+ if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
+ return keycode_to_action(KC_LCTL);
+ }
+ return keycode_to_action(KC_CAPS);
+ case KC_LCTL:
+ if (keymap_config.swap_control_capslock) {
+ return keycode_to_action(KC_CAPSLOCK);
+ }
+ return keycode_to_action(KC_LCTL);
+ case KC_LALT:
+ if (keymap_config.swap_lalt_lgui) {
+ if (keymap_config.no_gui) {
+ return keycode_to_action(ACTION_NO);
+ }
+ return keycode_to_action(KC_LGUI);
+ }
+ return keycode_to_action(KC_LALT);
+ case KC_LGUI:
+ if (keymap_config.swap_lalt_lgui) {
+ return keycode_to_action(KC_LALT);
+ }
+ if (keymap_config.no_gui) {
+ return keycode_to_action(ACTION_NO);
+ }
+ return keycode_to_action(KC_LGUI);
+ case KC_RALT:
+ if (keymap_config.swap_ralt_rgui) {
+ if (keymap_config.no_gui) {
+ return keycode_to_action(ACTION_NO);
+ }
+ return keycode_to_action(KC_RGUI);
+ }
+ return keycode_to_action(KC_RALT);
+ case KC_RGUI:
+ if (keymap_config.swap_ralt_rgui) {
+ return keycode_to_action(KC_RALT);
+ }
+ if (keymap_config.no_gui) {
+ return keycode_to_action(ACTION_NO);
+ }
+ return keycode_to_action(KC_RGUI);
+ case KC_GRAVE:
+ if (keymap_config.swap_grave_esc) {
+ return keycode_to_action(KC_ESC);
+ }
+ return keycode_to_action(KC_GRAVE);
+ case KC_ESC:
+ if (keymap_config.swap_grave_esc) {
+ return keycode_to_action(KC_GRAVE);
+ }
+ return keycode_to_action(KC_ESC);
+ case KC_BSLASH:
+ if (keymap_config.swap_backslash_backspace) {
+ return keycode_to_action(KC_BSPACE);
+ }
+ return keycode_to_action(KC_BSLASH);
+ case KC_BSPACE:
+ if (keymap_config.swap_backslash_backspace) {
+ return keycode_to_action(KC_BSLASH);
+ }
+ return keycode_to_action(KC_BSPACE);
+#endif
default:
return keycode_to_action(keycode);
}