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/common | |
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/common')
-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); |