Swap now applies exclusively to keys associated with the layer in which the
swap binding is contained. The corresponding swap target is now computed from
layer data associated with each depressed key instead of using the
most recent key which activated a layer. This makes the action more
consistent with the documented behaviour.
Disabling specific keys is likely to be something people will want to do,
however, the documentation doesn't emphasize that functionality. Add an example
about disabling keys with the 'noop' keyword to the documentation to make it
easier for users to figure out how to do that.
Closes#359
Eager layer activation seems to be more desirable for non time-based
overloading. In addition to facilitating modifier clicking for non-managed
mice, it appears some applications (E.g i3) care about isolated modifier down
events.
Treat each chord as a virtual key that is released
after all constituents are released. Constituent keys
may be used in conjunction with the active chord
after they have been released.
Make the device table globally accessible to avoid redundant bookkeeping in
daemon.c. The pointers held in the daemon device list were invalidated
by evloop code shifting the table around and causing a segfault.
Switch to hungarian notation to distinguish between timeout and macro variants of
existing actions. The old names are kept for backward compatibility but will
eventually be removed.
toggle2 -> togglem
swap2 -> swapm
overload2 -> overloadt
overload3 -> overloadt2
oneshotm and layerm have also been added for completeness.