Add bootmagic salt key to avoid accidental configuration

daktil_thumb_popravljen
tmk 2013-07-24 00:41:28 +09:00
parent 7e5081b5a8
commit 05225dd9d8
4 changed files with 20 additions and 1 deletions

View File

@ -124,6 +124,8 @@ Following commands can be also executed with `Magic` + key. In console mode `Mag
Boot Magic are executed during boot up time. Press Magic key below then pulgin keyboard cable. Boot Magic are executed during boot up time. Press Magic key below then pulgin keyboard cable.
Note that you must use keys of **Layer 0** as Magic keys. These settings are stored in EEPROM so that retain your configure over power cycles. Note that you must use keys of **Layer 0** as Magic keys. These settings are stored in EEPROM so that retain your configure over power cycles.
To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be pressed along with the following configuration keys. The salt key is configurable in `config.h`. See [common/bootmagic.h](common/bootmagic.h).
#### General #### General
- Skip reading EEPROM to start with default configuration(`ESC`) - Skip reading EEPROM to start with default configuration(`ESC`)
- Clear configuration stored in EEPROM to reset configuration(`Backspace`) - Clear configuration stored in EEPROM to reset configuration(`Backspace`)

View File

@ -5,6 +5,7 @@
#include "bootloader.h" #include "bootloader.h"
#include "debug.h" #include "debug.h"
#include "keymap.h" #include "keymap.h"
#include "action_layer.h"
#include "eeconfig.h" #include "eeconfig.h"
#include "bootmagic.h" #include "bootmagic.h"
@ -94,7 +95,7 @@ void bootmagic(void)
} }
} }
bool bootmagic_scan_keycode(uint8_t keycode) static bool scan_keycode(uint8_t keycode)
{ {
for (uint8_t r = 0; r < MATRIX_ROWS; r++) { for (uint8_t r = 0; r < MATRIX_ROWS; r++) {
matrix_row_t matrix_row = matrix_get_row(r); matrix_row_t matrix_row = matrix_get_row(r);
@ -108,3 +109,10 @@ bool bootmagic_scan_keycode(uint8_t keycode)
} }
return false; return false;
} }
bool bootmagic_scan_keycode(uint8_t keycode)
{
if (!scan_keycode(BOOTMAGIC_KEY_SALT)) return false;
return scan_keycode(keycode);
}

View File

@ -2,6 +2,12 @@
#define BOOTMAGIC_H #define BOOTMAGIC_H
/* bootmagic salt key */
#ifndef BOOTMAGIC_KEY_SALT
#define BOOTMAGIC_KEY_SALT KC_SPACE
#endif
/* skip bootmagic and eeconfig */
#ifndef BOOTMAGIC_KEY_SKIP #ifndef BOOTMAGIC_KEY_SKIP
#define BOOTMAGIC_KEY_SKIP KC_ESC #define BOOTMAGIC_KEY_SKIP KC_ESC
#endif #endif

View File

@ -59,6 +59,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TOGGLE 5 #define TAPPING_TOGGLE 5
/* Boot Magic salt key: Space */
#define BOOTMAGIC_KEY_SALT KC_FN6
/* /*
* Feature disable options * Feature disable options
* These options are also useful to firmware size reduction. * These options are also useful to firmware size reduction.