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:
parent
0f7afe5b2c
commit
21c058aaa8
@ -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):
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user