This is necessary to have combinations in which the modifier triggered
by a given key is used together with the overloaded key
The typical example is alt-tab
This is for now just a copy of overload; it will, however, prevent the
layer to be deactivated if currently held by another key
For now I am only seeing a usecase for this to have alt-tab work
correctly.
this is (for now) a copy of the regular overload; in the future it
will mimic the delayed keys of ahm, in the sense that no modifier or
key will be simulated on keypress, but we will wait until either
keyrelease or another key pressed to make a decision.
This patch expands the semantics of timeout() to cover the case in which it is
used as a tap target. This facilitates a number of novel use cases, like
discriminating between single/double tap or implementing per-key oneshot
timeouts.
Specifically timeout() is now defined in terms of arbitrary key events rather
than the behaviour of the key to which it is bound (if any). The new definition
executes the second action if no key events occur before the timeout expires.
The implication of this is that when timeout() is executed as the result of a
tap action, action2 will be executed after the timeout expires unless another
key is struck in the interval. Note that this is backward compatible with the
old definition, since a key up event (i.e a tap) will result in a resolution to
the first action if timeout() is directly bound to a key.
For Example:
tab = overload(control, timeout(a, 100, b))
will presently produce no effect when 'tab' is tapped. Under the expanded
definition, tapping tab will produce 'b' if 100 milliseconds elapse without an
interceding key event.