mirror of
https://github.com/zmkfirmware/zmk.git
synced 2026-03-19 20:45:18 -05:00
feat: Allow layer behaviors to "lock" layers on (#2717)
* refactor(core)!: Allow layer behaviors to "lock" layers on Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com> * docs: Added documentation note on locking layers Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com> --------- Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
This commit is contained in:
@@ -12,12 +12,13 @@
|
||||
struct zmk_layer_state_changed {
|
||||
uint8_t layer;
|
||||
bool state;
|
||||
bool locked;
|
||||
int64_t timestamp;
|
||||
};
|
||||
|
||||
ZMK_EVENT_DECLARE(zmk_layer_state_changed);
|
||||
|
||||
static inline int raise_layer_state_changed(uint8_t layer, bool state) {
|
||||
static inline int raise_layer_state_changed(uint8_t layer, bool state, bool locked) {
|
||||
return raise_zmk_layer_state_changed((struct zmk_layer_state_changed){
|
||||
.layer = layer, .state = state, .timestamp = k_uptime_get()});
|
||||
.layer = layer, .state = state, .locked = locked, .timestamp = k_uptime_get()});
|
||||
}
|
||||
|
||||
@@ -43,12 +43,14 @@ zmk_keymap_layer_id_t zmk_keymap_layer_index_to_id(zmk_keymap_layer_index_t laye
|
||||
|
||||
zmk_keymap_layer_id_t zmk_keymap_layer_default(void);
|
||||
zmk_keymap_layers_state_t zmk_keymap_layer_state(void);
|
||||
zmk_keymap_layers_state_t zmk_keymap_layer_locks(void);
|
||||
bool zmk_keymap_layer_active(zmk_keymap_layer_id_t layer);
|
||||
bool zmk_keymap_layer_locked(zmk_keymap_layer_id_t layer);
|
||||
zmk_keymap_layer_index_t zmk_keymap_highest_layer_active(void);
|
||||
int zmk_keymap_layer_activate(zmk_keymap_layer_id_t layer);
|
||||
int zmk_keymap_layer_deactivate(zmk_keymap_layer_id_t layer);
|
||||
int zmk_keymap_layer_toggle(zmk_keymap_layer_id_t layer);
|
||||
int zmk_keymap_layer_to(zmk_keymap_layer_id_t layer);
|
||||
int zmk_keymap_layer_activate(zmk_keymap_layer_id_t layer, bool locking);
|
||||
int zmk_keymap_layer_deactivate(zmk_keymap_layer_id_t layer, bool locking);
|
||||
int zmk_keymap_layer_toggle(zmk_keymap_layer_id_t layer, bool locking);
|
||||
int zmk_keymap_layer_to(zmk_keymap_layer_id_t layer, bool locking);
|
||||
const char *zmk_keymap_layer_name(zmk_keymap_layer_id_t layer);
|
||||
|
||||
const struct zmk_behavior_binding *zmk_keymap_get_layer_binding_at_idx(zmk_keymap_layer_id_t layer,
|
||||
|
||||
Reference in New Issue
Block a user