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:
		@@ -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:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user