Added support for passkey display and passkey confirmation when pairing. Passkey display is enabled automatically when a display is enabled. Passkey confirm can be manually enabled if the keyboard has an Enter key. Updated the passkey entry code to require all 6 digits have been entered before confirming and to support backspace to remove a digit. Added a pairing screen for displays and refactored the display code to allow for switching between multiple screens. The screens are now initialized immediately instead of on the display work queue, because widgets will read state from other files when they are initialized, and this can only be done safely from the system queue. Blank on idle and theme initialization are pulled out to separate files to simplify the main file. The pairing screen supports all three passkey modes: - Passkey display just shows the passkey. - Passkey confirm shows the passkey and an icon indicating that you must press Enter to confirm. - Passkey entry shows the current passkey entry state and shows an icon indicating that you must press Enter to confirm once all 6 digits have been entered. (If passkey display or confirm are supported, it seems that Windows will always choose those over passkey entry, but the pairing screen still supports this in case other OSes work differently.) Added configs for normal and large font sizes. The large font is used for the passkey on the pairing screen on larger displays. CONFIG_LV_FONT_DEFAULT is no longer used for the normal font size, because setting a default value for it in display/Kconfig prevented display shields from picking a more appropriate default.
96 lines
4.8 KiB
CMake
96 lines
4.8 KiB
CMake
cmake_minimum_required(VERSION 3.13.1)
|
|
|
|
set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
|
|
|
|
# Add our custom Zephyr module for drivers w/ syscalls, etc.
|
|
list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR}/drivers/zephyr)
|
|
|
|
set(ZephyrBuildConfiguration_ROOT ${CMAKE_SOURCE_DIR}/cmake)
|
|
|
|
list(APPEND ZEPHYR_EXTRA_MODULES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/module
|
|
)
|
|
|
|
# Find Zephyr. This also loads Zephyr's build system.
|
|
find_package(Zephyr REQUIRED HINTS ../zephyr)
|
|
project(zmk)
|
|
|
|
zephyr_linker_sources(RODATA include/linker/zmk-events.ld)
|
|
|
|
# Add your source file to the "app" target. This must come after
|
|
# find_package(Zephyr) which defines the target.
|
|
target_include_directories(app PRIVATE include)
|
|
target_sources(app PRIVATE src/stdlib.c)
|
|
target_sources(app PRIVATE src/activity.c)
|
|
target_sources(app PRIVATE src/kscan.c)
|
|
target_sources(app PRIVATE src/matrix_transform.c)
|
|
target_sources(app PRIVATE src/sensors.c)
|
|
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/wpm.c)
|
|
target_sources(app PRIVATE src/event_manager.c)
|
|
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/ext_power_generic.c)
|
|
target_sources(app PRIVATE src/events/activity_state_changed.c)
|
|
target_sources(app PRIVATE src/events/position_state_changed.c)
|
|
target_sources(app PRIVATE src/events/sensor_event.c)
|
|
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/events/wpm_state_changed.c)
|
|
target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/events/usb_conn_state_changed.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
|
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c)
|
|
if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
|
|
target_sources(app PRIVATE src/hid.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_TOGGLE app PRIVATE src/behaviors/behavior_key_toggle.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_sticky_key.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_caps_word.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_key_repeat.c)
|
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MACRO app PRIVATE src/behaviors/behavior_macro.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_mod_morph.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_outputs.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_toggle_layer.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_to_layer.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_transparent.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_none.c)
|
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE app PRIVATE src/behaviors/behavior_sensor_rotate.c)
|
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_VAR app PRIVATE src/behaviors/behavior_sensor_rotate_var.c)
|
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON app PRIVATE src/behaviors/behavior_sensor_rotate_common.c)
|
|
target_sources(app PRIVATE src/combo.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_tap_dance.c)
|
|
target_sources(app PRIVATE src/behavior_queue.c)
|
|
target_sources(app PRIVATE src/conditional_layer.c)
|
|
target_sources(app PRIVATE src/endpoints.c)
|
|
target_sources(app PRIVATE src/events/endpoint_changed.c)
|
|
target_sources(app PRIVATE src/hid_listener.c)
|
|
target_sources(app PRIVATE src/keymap.c)
|
|
target_sources(app PRIVATE src/events/layer_state_changed.c)
|
|
target_sources(app PRIVATE src/events/modifiers_state_changed.c)
|
|
target_sources(app PRIVATE src/events/keycode_state_changed.c)
|
|
|
|
if (CONFIG_ZMK_BLE)
|
|
target_sources(app PRIVATE src/events/ble_auth_state_changed.c)
|
|
target_sources(app PRIVATE src/events/ble_active_profile_changed.c)
|
|
target_sources(app PRIVATE src/behaviors/behavior_bt.c)
|
|
target_sources(app PRIVATE src/ble.c)
|
|
target_sources(app PRIVATE src/hog.c)
|
|
endif()
|
|
endif()
|
|
|
|
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_rgb_underglow.c)
|
|
target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/behaviors/behavior_backlight.c)
|
|
|
|
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/events/battery_state_changed.c)
|
|
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/battery.c)
|
|
|
|
target_sources_ifdef(CONFIG_ZMK_SPLIT app PRIVATE src/events/split_peripheral_status_changed.c)
|
|
add_subdirectory(src/split)
|
|
|
|
target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/usb.c)
|
|
target_sources_ifdef(CONFIG_ZMK_USB app PRIVATE src/usb_hid.c)
|
|
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/rgb_underglow.c)
|
|
target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/backlight.c)
|
|
target_sources(app PRIVATE src/workqueue.c)
|
|
target_sources(app PRIVATE src/main.c)
|
|
|
|
add_subdirectory_ifdef(CONFIG_ZMK_DISPLAY src/display/)
|
|
|
|
zephyr_cc_option(-Wfatal-errors)
|