diff options
| author | Stephen Wanhella <Stephen.wanhella@gmail.com> | 2019-08-21 17:07:08 -0700 |
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2019-08-21 17:07:08 -0700 |
| commit | d534c72a544454132b3c6c05af85c821f6a93d65 (patch) | |
| tree | 906a66b899e4de1d7ffe567bbdb2c9082d948140 /tmk_core | |
| parent | 6a79b05cf02d5a6f07b17474344e272b44c77988 (diff) | |
| download | qmk_firmware-d534c72a544454132b3c6c05af85c821f6a93d65.tar.gz qmk_firmware-d534c72a544454132b3c6c05af85c821f6a93d65.zip | |
Added keycodes for swapping and unswapping the Control and OS keys (#6110)
* Add MAGIC_SWAP_CONTROL_LGUI and MAGIC_UNSWAP_CONTROL_LGUI keycodes
Key codes to swap and unswap the control and windows/cmd keys
* Fix issues with pull request #6110
Renamed swap/unswap lctl and lgui key codes, added key codes to swap/unswap rctl and rgui, and moved new bool inside keycode_config.h struct to the end
* Move new keycodes to the end of the enum (#6110)
* add cases for swapped control and OS keys to mod_config (#6110)
* Add new keycodes to feature_bootmagic.md (#6110)
* Add R+L swap codes to keep in parity with AG_* codes
* Extend Magic range check to include new magic codes
* Update audio docs
* Combine 2 byte ranges into 1 word for EECONFG
Fix names for Keymap config EEPROM
* Update docs/feature_bootmagic.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update docs/feature_bootmagic.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update docs/feature_bootmagic.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update docs/feature_bootmagic.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
Diffstat (limited to 'tmk_core')
| -rw-r--r-- | tmk_core/common/command.c | 2 | ||||
| -rw-r--r-- | tmk_core/common/eeconfig.c | 12 | ||||
| -rw-r--r-- | tmk_core/common/eeconfig.h | 8 |
3 files changed, 16 insertions, 6 deletions
diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index d3884d9fa..949615ecf 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c | |||
| @@ -286,6 +286,8 @@ static void print_eeconfig(void) | |||
| 286 | print("keymap_config.raw: "); print_hex8(kc.raw); print("\n"); | 286 | print("keymap_config.raw: "); print_hex8(kc.raw); print("\n"); |
| 287 | print(".swap_control_capslock: "); print_dec(kc.swap_control_capslock); print("\n"); | 287 | print(".swap_control_capslock: "); print_dec(kc.swap_control_capslock); print("\n"); |
| 288 | print(".capslock_to_control: "); print_dec(kc.capslock_to_control); print("\n"); | 288 | print(".capslock_to_control: "); print_dec(kc.capslock_to_control); print("\n"); |
| 289 | print(".swap_lctl_lgui: "); print_dec(kc.swap_lctl_lgui); print("\n"); | ||
| 290 | print(".swap_rctl_rgui: "); print_dec(kc.swap_rctl_rgui); print("\n"); | ||
| 289 | print(".swap_lalt_lgui: "); print_dec(kc.swap_lalt_lgui); print("\n"); | 291 | print(".swap_lalt_lgui: "); print_dec(kc.swap_lalt_lgui); print("\n"); |
| 290 | print(".swap_ralt_rgui: "); print_dec(kc.swap_ralt_rgui); print("\n"); | 292 | print(".swap_ralt_rgui: "); print_dec(kc.swap_ralt_rgui); print("\n"); |
| 291 | print(".no_gui: "); print_dec(kc.no_gui); print("\n"); | 293 | print(".no_gui: "); print_dec(kc.no_gui); print("\n"); |
diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c index 4f440abc9..28f5d3ad5 100644 --- a/tmk_core/common/eeconfig.c +++ b/tmk_core/common/eeconfig.c | |||
| @@ -39,7 +39,8 @@ void eeconfig_init_quantum(void) { | |||
| 39 | eeprom_update_byte(EECONFIG_DEBUG, 0); | 39 | eeprom_update_byte(EECONFIG_DEBUG, 0); |
| 40 | eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); | 40 | eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); |
| 41 | default_layer_state = 0; | 41 | default_layer_state = 0; |
| 42 | eeprom_update_byte(EECONFIG_KEYMAP, 0); | 42 | eeprom_update_byte(EECONFIG_KEYMAP_LOWER_BYTE, 0); |
| 43 | eeprom_update_byte(EECONFIG_KEYMAP_UPPER_BYTE, 0); | ||
| 43 | eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); | 44 | eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); |
| 44 | eeprom_update_byte(EECONFIG_BACKLIGHT, 0); | 45 | eeprom_update_byte(EECONFIG_BACKLIGHT, 0); |
| 45 | eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default | 46 | eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default |
| @@ -127,12 +128,17 @@ void eeconfig_update_default_layer(uint8_t val) { eeprom_update_byte(EECONFIG_DE | |||
| 127 | * | 128 | * |
| 128 | * FIXME: needs doc | 129 | * FIXME: needs doc |
| 129 | */ | 130 | */ |
| 130 | uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); } | 131 | uint16_t eeconfig_read_keymap(void) { |
| 132 | return ( eeprom_read_byte(EECONFIG_KEYMAP_LOWER_BYTE) | (eeprom_read_byte(EECONFIG_KEYMAP_UPPER_BYTE) << 8) ); | ||
| 133 | } | ||
| 131 | /** \brief eeconfig update keymap | 134 | /** \brief eeconfig update keymap |
| 132 | * | 135 | * |
| 133 | * FIXME: needs doc | 136 | * FIXME: needs doc |
| 134 | */ | 137 | */ |
| 135 | void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } | 138 | void eeconfig_update_keymap(uint16_t val) { |
| 139 | eeprom_update_byte(EECONFIG_KEYMAP_LOWER_BYTE, val & 0xFF); | ||
| 140 | eeprom_update_byte(EECONFIG_KEYMAP_UPPER_BYTE, ( val >> 8 ) & 0xFF ); | ||
| 141 | } | ||
| 136 | 142 | ||
| 137 | /** \brief eeconfig read backlight | 143 | /** \brief eeconfig read backlight |
| 138 | * | 144 | * |
diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index 3100041b4..0d5c6a82f 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h | |||
| @@ -45,7 +45,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 45 | #define EECONFIG_HAPTIC (uint32_t *)24 | 45 | #define EECONFIG_HAPTIC (uint32_t *)24 |
| 46 | #define EECONFIG_RGB_MATRIX (uint32_t *)28 | 46 | #define EECONFIG_RGB_MATRIX (uint32_t *)28 |
| 47 | #define EECONFIG_RGB_MATRIX_SPEED (uint8_t *)32 | 47 | #define EECONFIG_RGB_MATRIX_SPEED (uint8_t *)32 |
| 48 | 48 | // TODO: Combine these into a single word and single block of EEPROM | |
| 49 | #define EECONFIG_KEYMAP_UPPER_BYTE (uint8_t *)33 | ||
| 49 | /* debug bit */ | 50 | /* debug bit */ |
| 50 | #define EECONFIG_DEBUG_ENABLE (1<<0) | 51 | #define EECONFIG_DEBUG_ENABLE (1<<0) |
| 51 | #define EECONFIG_DEBUG_MATRIX (1<<1) | 52 | #define EECONFIG_DEBUG_MATRIX (1<<1) |
| @@ -62,6 +63,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 62 | #define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1<<6) | 63 | #define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1<<6) |
| 63 | #define EECONFIG_KEYMAP_NKRO (1<<7) | 64 | #define EECONFIG_KEYMAP_NKRO (1<<7) |
| 64 | 65 | ||
| 66 | #define EECONFIG_KEYMAP_LOWER_BYTE EECONFIG_KEYMAP | ||
| 65 | 67 | ||
| 66 | bool eeconfig_is_enabled(void); | 68 | bool eeconfig_is_enabled(void); |
| 67 | bool eeconfig_is_disabled(void); | 69 | bool eeconfig_is_disabled(void); |
| @@ -81,8 +83,8 @@ void eeconfig_update_debug(uint8_t val); | |||
| 81 | uint8_t eeconfig_read_default_layer(void); | 83 | uint8_t eeconfig_read_default_layer(void); |
| 82 | void eeconfig_update_default_layer(uint8_t val); | 84 | void eeconfig_update_default_layer(uint8_t val); |
| 83 | 85 | ||
| 84 | uint8_t eeconfig_read_keymap(void); | 86 | uint16_t eeconfig_read_keymap(void); |
| 85 | void eeconfig_update_keymap(uint8_t val); | 87 | void eeconfig_update_keymap(uint16_t val); |
| 86 | 88 | ||
| 87 | #ifdef BACKLIGHT_ENABLE | 89 | #ifdef BACKLIGHT_ENABLE |
| 88 | uint8_t eeconfig_read_backlight(void); | 90 | uint8_t eeconfig_read_backlight(void); |
