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.
This commit is contained in:
xs5871 authored and Kyle Brown committed 2022-02-13 14:47:02 -08:00
1 parent 0f7afe5b2c
commit 21c058aaa8
3 files changed
+13 -6

No files matched your search

+2 -2
View File
@@ -22,11 +22,11 @@ def layer_key_validator(layer, kc=None):
return LayerKeyMeta(layer=layer, kc=kc)
def mod_tap_validator(kc, mods=None):
def mod_tap_validator(kc, mods=None, prefer_hold=True):
'''
Validates that mod tap keys are correctly used
'''
return ModTapKeyMeta(kc=kc, mods=mods)
return ModTapKeyMeta(kc=kc, mods=mods, prefer_hold=prefer_hold)
def tap_dance_key_validator(*codes):
+8 -2
View File
@@ -112,7 +112,13 @@ class HoldTap(Module):
pass
def ht_activate_on_interrupt(self, key, keyboard, *args, **kwargs):
self.ht_activate_tap(key, keyboard, *args, **kwargs)
if key.meta.prefer_hold:
self.ht_activate_hold(key, keyboard, *args, **kwargs)
else:
self.ht_activate_tap(key, keyboard, *args, **kwargs)
def ht_deactivate_on_interrupt(self, key, keyboard, *args, **kwargs):
self.ht_deactivate_tap(key, keyboard, *args, **kwargs)
if key.meta.prefer_hold:
self.ht_deactivate_hold(key, keyboard, *args, **kwargs)
else:
self.ht_deactivate_tap(key, keyboard, *args, **kwargs)
+3 -2
View File
@@ -18,9 +18,10 @@ class LayerKeyMeta:
class ModTapKeyMeta:
def __init__(self, kc=None, mods=None):
self.mods = mods
def __init__(self, kc=None, mods=None, prefer_hold=True):
self.prefer_hold = prefer_hold
self.kc = kc
self.mods = mods
class KeySequenceMeta: