Commit Graph

9 Commits

Author SHA1 Message Date
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