Update how default layers are stored/retrieved from EEPROM #22359
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Currently QMK saves the default layer persistently in EEPROM as an 8-bit wide bit field. Only one byte is allocated for storing the defautl layer, and the current method allows for multiple default layers to be enabled simultaneously, but only for layers 0 through 7.
Pull request #21881 intends to allow default layers to range from 0 to 31, but that is currently not possible with the existing implementation. Functions like
set_single_persistent_default_layer
suggest that the more common use case is a single default layer. Indeed, in the entire QMK repo, only one user/keymap (datagrok) actually implements capability to save multiple default layers.This PR attempts to unify these approaches, changing the default/presumed paradigm to a single default layer. However, the original method of storing and retrieving default layers as bit fields is still available conditionally with
#define DEFAULT_LAYER_BITMASK_ENABLE
eeconfig_update_default_layer
(only to set a single layer) have been replaced with calls toset_single_persistent_default_layer
DEFAULT_LAYER_BITMASK_ENABLE
has been added to datagrok's filesTypes of Changes
Issues Fixed or Closed by This PR
Checklist