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.
Rewrote the macros for changing advertising state to be functions. This
makes it significantly easier to debug, since you cannot set a
breakpoint on a line inside of a macro.
`CONFIG_ZMK_BATTERY_REPORTING` is currently undocumented, A new KConfig section for battery has been added in line with the other sections in the configuration section of the docs, `CONFIG_ZMK_BATTERY_REPORT_INTERVAL` has been moved from system to battery for consistency
* Initial implementation of REVIUNG34 shield.
* Add copyright information to files
* Added a README with instructions on how to enable the 1x2u layout.
* Add a default chosen matrix transform in the default keymap, alongside a commented out version for the alternate layout.
---------
Co-authored-by: Peter Johanson <peter@peterjohanson.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Added syntax highlighting for devicetree and kconfig files.
The PrismJS project is not accepting contributions right now as they
work on a version 2 of the library, so the new language files are added
directly here.
Also enabled syntax highlighting for various languages that are used in
the docs but aren't enabled in Docusaurus by default.
Fixed an error in a previous commit where a member of the selected
endpoint was used without checking if it was the correct transport type.
The nice!view status screen displays the active BLE profile regardless
of whether BLE is active, so we have to get that data directly from the
BLE code instead of from the selected endpoint.
* Refactor common parts of the Microdox sheild into a separate file. This is in preparation for adding Microdox V2 as another shield in the same directory.
* Refactor Microdox keymap into a common file in preparation for Microdox V2
* Add Microdox V2 shield definition
* Added a README to explain v1/v2 differences.
This brings the 'global-quick-tap' functionality to combos by filtering
out candidate combos that fell within their own quick tap term.
I also replaced `return 0` with `return ZMK_EV_EVENT_BUBBLE` where appropriate.
(I assume this was done in past as it is similar to errno returning, but
being that this is to signify an event type I find this more clear)
Detaching the global-quick-tap functionality from the quick-tap term.
This makes way for two improvements:
1. This functionality can be added to combos under a unified name
'global-quick-tap-ms'.
2. This allows users to set a lower term for the 'global-quick-tap'
(typically ~100ms), and a higher term for the regular
quick-tap (typically ~200ms)
This deprecates the global-quick-tap option, however if it is set, the
quick-tap-ms value will be copied to global-quick-tap-ms.
Changed the endpoints code to rename the existing endpoint types to
"transport" and add the concept of "endpoint instances". A transport is
the method by which data is sent, while instances allow describing
multiple endpoints that use the same transport (e.g. bluetooth profiles)
Also added new APIs to get the total number of possible endpoint
instances and assign each instance a unique index, which can be used
for tracking separate state for each endpoint in other code files.
* Promote previously local debounce code from kscan drivers to exposed
module lib, for use with other drivers as needed.
* Refactor existing kscan driver to new "public" API.
The GD25Q16 flash connected via QSPI seems to be causing issues
with excessive battery use and inability to sleep. Since ZMK doesn't
use it, disable it.
Resolves#1901