Commit Graph

17 Commits

Author SHA1 Message Date
xs5871
0b4b98f5fb add debug info for holdtap key resolution 2022-09-15 08:57:14 -07:00
xs5871
f9203dbb85 fix stack exhaustion for certain hold-tap actions 2022-09-11 21:48:52 -07:00
xs5871
aee793a300 missed some pre_process to resume_process conversions 2022-08-31 18:22:52 -07:00
xs5871
c95efbe8ea refactor handling of key processing resume to KMKKeyboard 2022-08-31 18:22:52 -07:00
xs5871
9d555209b8 add continue-with-module-nr-idx to key processing 2022-08-31 18:22:52 -07:00
xs5871
5a85c6cfb3 move validators and metas to their respective modules 2022-07-24 15:19:20 -07:00
xs5871
614961521d fix inconsistencies with chained holdtap keys 2022-06-11 12:42:49 -07:00
xs5871
0751f6ca5f prepare holdtap for tapdance refactor 2022-05-06 20:29:26 -07:00
xs5871
ee4cce32cb implements oneshot/sticky keys. 2022-02-13 16:43:14 -08:00
xs5871
1c6b25517a implement hold-tap interrupt for Layers 2022-02-13 14:47:02 -08:00
xs5871
a685618480 implement hold-tap interrupt on other key tap (i.e. release) 2022-02-13 14:47:02 -08:00
xs5871
7573556f33 fix hold-tap key interrupted by other hold-tap key 2022-02-13 14:47:02 -08:00
xs5871
f30206c7d5 implement per-key tap_time. 2022-02-13 14:47:02 -08:00
xs5871
21c058aaa8 add hold-tap interrupt behavior: prefer hold.
The interrupt resolution of hold-tap keys can now be set to resolve to
either tap or hold key. The default mod-tap is set to prefer hold.
2022-02-13 14:47:02 -08:00
Christian Tu
b6201d43d4 unit tests for execution in desktop dev environment 2022-02-01 00:48:23 -08:00
xs5871
a62d39a252
make TapDance a module (#281)
* extract tapdance logic into a module

* clean out old tapdance code

* canonicalize key variable names

* split _process_tap_dance into td_pressed and td_released

* implement consistent argument order

* update documentation

* implement Module.process_key for key interception and modification

* fix tapdance realesing instead of pressing

* fix: default parameters in key handler

* cleanup holdtap

* add error handling to modules process_key

* fix: key released too late

Tapped keys didn't release on a "key released" event, but waited for a
timeout. Resulted in, for example, modifiers applying to keys after the
modifier was released.

* fix lint/formatting

* fix tap_time reference in modtap + minimal documentation

* fix lint
2022-01-18 05:21:05 +00:00
Christian Tu
99577357f6 move HoldTap to its own file 2021-09-25 11:07:33 +02:00