X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=common%2Fkeymap.c;h=bfb8ffac1a593b1cd06a6364db4ce3c2f151df31;hb=b9e265368fde73daff069788dcb58c8230d01b32;hp=ace3f49b69c01303a9a601b7f097086c4ec9b214;hpb=48433a5e9988647a737234c11dd9db4080fd4a4e;p=tmk_firmware.git diff --git a/common/keymap.c b/common/keymap.c index ace3f49..bfb8ffa 100644 --- a/common/keymap.c +++ b/common/keymap.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include "keymap.h" #include "report.h" #include "keycode.h" -#include "layer_switch.h" +#include "action_layer.h" #include "action.h" #include "action_macro.h" #include "debug.h" @@ -34,6 +34,71 @@ 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: + case KC_LOCKING_CAPS: + if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) { + return keycode_to_action(KC_LCTL); + } + return keycode_to_action(keycode); + 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); } @@ -42,7 +107,7 @@ action_t action_for_key(uint8_t layer, key_t key) /* Macro */ __attribute__ ((weak)) -const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; } @@ -108,9 +173,9 @@ action_t keymap_fn_to_action(uint8_t keycode) uint8_t layer = keymap_fn_layer(FN_INDEX(keycode)); uint8_t key = keymap_fn_keycode(FN_INDEX(keycode)); if (key) { - action.code = ACTION_KEYMAP_TAP_KEY(layer, key); + action.code = ACTION_LAYER_TAP_KEY(layer, key); } else { - action.code = ACTION_KEYMAP_MOMENTARY(layer); + action.code = ACTION_LAYER_MOMENTARY(layer); } } return action;