feat(shields): Make settings_reset shield reset all settings
Added a new CONFIG_ZMK_SETTINGS_RESET_ON_START option which enables init code to call zmk_settings_erase(), and changed the settings_reset shield to use it instead of CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START, so it now resets all settings instead of just clearing BLE bonds. CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START is left in place for now in case someone still needs it. It may be replaced in the future once we find a better way to repair a broken split connection.
This commit is contained in:
parent
610a806c84
commit
1dfcfc7d3f
5 changed files with 35 additions and 7 deletions
|
@ -565,6 +565,9 @@ endmenu
|
||||||
|
|
||||||
if SETTINGS
|
if SETTINGS
|
||||||
|
|
||||||
|
config ZMK_SETTINGS_RESET_ON_START
|
||||||
|
bool "Delete all persistent settings when the keyboard boots"
|
||||||
|
|
||||||
config ZMK_SETTINGS_SAVE_DEBOUNCE
|
config ZMK_SETTINGS_SAVE_DEBOUNCE
|
||||||
int "Milliseconds to debounce settings saves"
|
int "Milliseconds to debounce settings saves"
|
||||||
default 60000
|
default 60000
|
||||||
|
|
|
@ -1 +1,4 @@
|
||||||
CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START=y
|
CONFIG_SETTINGS=y
|
||||||
|
CONFIG_ZMK_SETTINGS_RESET_ON_START=y
|
||||||
|
# Disable BLE so splits don't try to re-pair until normal firmware is flashed.
|
||||||
|
CONFIG_ZMK_BLE=n
|
||||||
|
|
|
@ -5,3 +5,5 @@ target_sources_ifdef(CONFIG_SETTINGS_NONE app PRIVATE reset_settings_none.c)
|
||||||
target_sources_ifdef(CONFIG_SETTINGS_FCB app PRIVATE reset_settings_fcb.c)
|
target_sources_ifdef(CONFIG_SETTINGS_FCB app PRIVATE reset_settings_fcb.c)
|
||||||
target_sources_ifdef(CONFIG_SETTINGS_FILE app PRIVATE reset_settings_file.c)
|
target_sources_ifdef(CONFIG_SETTINGS_FILE app PRIVATE reset_settings_file.c)
|
||||||
target_sources_ifdef(CONFIG_SETTINGS_NVS app PRIVATE reset_settings_nvs.c)
|
target_sources_ifdef(CONFIG_SETTINGS_NVS app PRIVATE reset_settings_nvs.c)
|
||||||
|
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_SETTINGS_RESET_ON_START app PRIVATE reset_settings_on_start.c)
|
||||||
|
|
19
app/src/settings/reset_settings_on_start.c
Normal file
19
app/src/settings/reset_settings_on_start.c
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <zephyr/device.h>
|
||||||
|
#include <zephyr/init.h>
|
||||||
|
|
||||||
|
#include <zmk/settings.h>
|
||||||
|
|
||||||
|
static int reset_settings_init(const struct device *dev) {
|
||||||
|
ARG_UNUSED(dev);
|
||||||
|
return zmk_settings_erase();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset after the kernel is initialized but before any application code to
|
||||||
|
// ensure settings are cleared before anything tries to use them.
|
||||||
|
SYS_INIT(reset_settings_init, POST_KERNEL, CONFIG_APPLICATION_INIT_PRIORITY);
|
|
@ -14,8 +14,9 @@ Definition file: [zmk/app/Kconfig](https://github.com/zmkfirmware/zmk/blob/main/
|
||||||
### General
|
### General
|
||||||
|
|
||||||
| Config | Type | Description | Default |
|
| Config | Type | Description | Default |
|
||||||
| ----------------------------------- | ------ | ----------------------------------------------------------------------------- | ------- |
|
| ------------------------------------ | ------ | ----------------------------------------------------------------------------- | ------- |
|
||||||
| `CONFIG_ZMK_KEYBOARD_NAME` | string | The name of the keyboard (max 16 characters) | |
|
| `CONFIG_ZMK_KEYBOARD_NAME` | string | The name of the keyboard (max 16 characters) | |
|
||||||
|
| `CONFIG_ZMK_SETTINGS_RESET_ON_START` | bool | Clears all persistent settings from the keyboard at startup | n |
|
||||||
| `CONFIG_ZMK_SETTINGS_SAVE_DEBOUNCE` | int | Milliseconds to wait after a setting change before writing it to flash memory | 60000 |
|
| `CONFIG_ZMK_SETTINGS_SAVE_DEBOUNCE` | int | Milliseconds to wait after a setting change before writing it to flash memory | 60000 |
|
||||||
| `CONFIG_ZMK_WPM` | bool | Enable calculating words per minute | n |
|
| `CONFIG_ZMK_WPM` | bool | Enable calculating words per minute | n |
|
||||||
| `CONFIG_HEAP_MEM_POOL_SIZE` | int | Size of the heap memory pool | 8192 |
|
| `CONFIG_HEAP_MEM_POOL_SIZE` | int | Size of the heap memory pool | 8192 |
|
||||||
|
|
Loading…
Add table
Reference in a new issue