Updated Tap-Dances to enable hold functionality
Update Documentation
- Edited for clarity and added Images
Uploaded New Tests
Updates according to test results of PR#1139
Docs edits based on @petejohanson's first review
Update behavior_tap_dance.c
- Removed `behavior_tap_dance_data{}` and associated lines
- Changed `new_tap_dance` of type `static struct active_tap_dance *` to type `static int`
- Changed logic of `new_tap_dance`
- Changed behavior_count of type `int` to type `size_t`
Update behavior_tap_dance.c
Updates according to test results of PR#1139
Update behavior_tap_dance.c
Update Documentation
Attempting to debug tap-dances interrupted by tap-dances
Update tests
Further updates
commit 26eeeccbc69b1bcb4a5d48fe858cdd8917e118ba
Author: Kurtis Lew <kurtis.a.lew@gmail.com>
Date: Fri Feb 25 15:45:34 2022 -0800
Attempting to debug tap-dances interrupted by tap-dances
Update tests
commit a64fb2639ce8c0ca628e1924122b920e95582d43
Author: Kurtis Lew <kurtis.a.lew@gmail.com>
Date: Sun Feb 20 19:30:59 2022 -0800
feat(behavior) Add Tap-Dance (2022)
Updated Tap-Dances to enable hold functionality
Update Documentation
- Edited for clarity and added Images
Uploaded New Tests
Updates according to test results of PR#1139
Docs edits based on @petejohanson's first review
Update behavior_tap_dance.c
- Removed `behavior_tap_dance_data{}` and associated lines
- Changed `new_tap_dance` of type `static struct active_tap_dance *` to type `static int`
- Changed logic of `new_tap_dance`
- Changed behavior_count of type `int` to type `size_t`
Update behavior_tap_dance.c
Updates according to test results of PR#1139
Update behavior_tap_dance.c
Update Documentation
Further updates
- Tap-dances can be interrupted by another tap-dance without memory leakage
- Confirmed functionality of tap-dances with only one keybind
Single-keybind hold tests
Further updates
commit 26eeeccbc69b1bcb4a5d48fe858cdd8917e118ba
Author: Kurtis Lew <kurtis.a.lew@gmail.com>
Date: Fri Feb 25 15:45:34 2022 -0800
Attempting to debug tap-dances interrupted by tap-dances
Update tests
commit a64fb2639ce8c0ca628e1924122b920e95582d43
Author: Kurtis Lew <kurtis.a.lew@gmail.com>
Date: Sun Feb 20 19:30:59 2022 -0800
feat(behavior) Add Tap-Dance (2022)
Updated Tap-Dances to enable hold functionality
Update Documentation
- Edited for clarity and added Images
Uploaded New Tests
Updates according to test results of PR#1139
Docs edits based on @petejohanson's first review
Update behavior_tap_dance.c
- Removed `behavior_tap_dance_data{}` and associated lines
- Changed `new_tap_dance` of type `static struct active_tap_dance *` to type `static int`
- Changed logic of `new_tap_dance`
- Changed behavior_count of type `int` to type `size_t`
Update behavior_tap_dance.c
Updates according to test results of PR#1139
Update behavior_tap_dance.c
Update Documentation
Further updates
- Tap-dances can be interrupted by another tap-dance without memory leakage
- Confirmed functionality of tap-dances with only one keybind
Fix tap-dances ability to be interrupted by other tap-dances
Update tests
Remove unecessary tests
Update tests
Update behavior_tap_dance.c
Further cleanup to comments and logging
Update behavior_tap_dance.c
Update tap-dance.md
To combine multiple sticky modifiers, the sticky keys must ignore
other (sticky) modifier keypresses.
This behavior is important for "callum-style mods", where all modifiers
are sticky mods.
Fixes#829
* GATT characteristic allowing passng data + behavior
label to invoke the behavior on the peripheral side.
* Behaviors have a locality setting to specify where they run.
* Build reset/power/RGB on peripheral.
This is a generalization of the existing concept of tri-layer support
that's already well known. Essentially, a conditional-layer
configuration activates a particular layer (the then-layer) when one or
more other layers (the if-layers) are activated.
This is commonly used on ortho keyboards to activate a third "adjust"
layer while the primary two layers ("lower" and "raise") are active.
* Add optional `hold-trigger-key-positions` hold-tap configuration
* Leverage configuration for decision making around when to trigger
hold decision in hold-taps.
* Add docs for new configuration.
* Tests for the new config/decision logic.
* Use lesser-known DT features to skip behaviors not referenced
in the user keymap
* Update the behaviors to skip code if no nodes found.
* Remove some empty config/data structs where unused in
behaviors.
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.
This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.
Implements #288.
Added a new setting to remember the user's preferred endpoint. When both USB and
BLE are connected, the preferred endpoint will be used.
Added a new behavior to control this setting. It supports commands:
&end END_USB - Prefer USB output
&end END_BLE - Prefer BLE output
&end END_TOG - Toggle between USB and BLE
This PR adds support to control the external power output from controllers like nice!nano, nRFMicro etc
I have implemented based on my understanding of Pete suggestion on this feature.
Testing done:
Tested by enabling and disabling the ext_power from application and verified
Verified the application does not crash with boards that does not have ext_power support
Note:
I did not test this in nice!nano since I don't have the boards. Will get help from others once the behavior PR is up
Next Steps:
Create a behavior PR to control enable/disable ext_power
* Add `bt` behavior that can be used to perform certain actions,
such as next/prev identity, reset identity, etc.
NOTE: Multiple identities is only supported for non-split shields,
due to missing Zephyr identity functionality for dual
central/peripheral devices.
* Proper bond reset tied to action, that honors peripheral bonds,
so folks can reset and pair to other hosts, without breaking
bonds between splt halves.