* Add a new feature for tracking a given behavior by a new concept of a "behavior local ID" which is a stable 16-bit identifier for a given behavior, that is resilient to new behaviors being added and requires no additional work on the part of the behavior authors. * Add implementations for either settings lookup table, or CRC16 hashing of behavior device names for generating behavior local IDs.
73 lines
2 KiB
Text
73 lines
2 KiB
Text
# Copyright (c) 2023 The ZMK Contributors
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
config ZMK_BEHAVIOR_METADATA
|
|
bool "Metadata"
|
|
help
|
|
Enabling this option adds APIs for documenting and fetching
|
|
metadata describing a behaviors name, and supported parameters.
|
|
|
|
config ZMK_BEHAVIOR_LOCAL_IDS
|
|
bool "Local IDs"
|
|
|
|
if ZMK_BEHAVIOR_LOCAL_IDS
|
|
|
|
choice ZMK_BEHAVIOR_LOCAL_ID_TYPE
|
|
prompt "Local ID Type"
|
|
|
|
config ZMK_BEHAVIOR_LOCAL_ID_TYPE_SETTINGS_TABLE
|
|
bool "Settings Table"
|
|
depends on SETTINGS
|
|
help
|
|
Use persistent entries in the settings subsystem to identify
|
|
behaviors by local ID, which uses the device name to generate
|
|
a new settings entry tying a presistant local ID to that name.
|
|
This guarantees stable, colllision-free local IDs at the expense
|
|
of settings storage used.
|
|
|
|
config ZMK_BEHAVIOR_LOCAL_ID_TYPE_CRC16
|
|
bool "CRC16 Hash"
|
|
help
|
|
Use the CRC16-ANSI hash of behavior device names to generate
|
|
stable behavior local IDs. This saves on settings storage at
|
|
the expense of (highly unlikely) risk of collisions.
|
|
|
|
endchoice
|
|
|
|
endif
|
|
|
|
config ZMK_BEHAVIOR_KEY_TOGGLE
|
|
bool
|
|
default y
|
|
depends on DT_HAS_ZMK_BEHAVIOR_KEY_TOGGLE_ENABLED
|
|
|
|
config ZMK_BEHAVIOR_MOUSE_KEY_PRESS
|
|
bool
|
|
default y
|
|
depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED
|
|
imply ZMK_MOUSE
|
|
|
|
config ZMK_BEHAVIOR_SOFT_OFF
|
|
bool
|
|
default y
|
|
depends on DT_HAS_ZMK_BEHAVIOR_SOFT_OFF_ENABLED && ZMK_PM_SOFT_OFF
|
|
|
|
config ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
|
bool
|
|
|
|
config ZMK_BEHAVIOR_SENSOR_ROTATE
|
|
bool
|
|
default y
|
|
depends on DT_HAS_ZMK_BEHAVIOR_SENSOR_ROTATE_ENABLED
|
|
select ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
|
|
|
config ZMK_BEHAVIOR_SENSOR_ROTATE_VAR
|
|
bool
|
|
default y
|
|
depends on DT_HAS_ZMK_BEHAVIOR_SENSOR_ROTATE_VAR_ENABLED
|
|
select ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
|
|
|
config ZMK_BEHAVIOR_MACRO
|
|
bool
|
|
default y
|
|
depends on DT_HAS_ZMK_BEHAVIOR_MACRO_ENABLED || DT_HAS_ZMK_BEHAVIOR_MACRO_ONE_PARAM_ENABLED || DT_HAS_ZMK_BEHAVIOR_MACRO_TWO_PARAM_ENABLED
|