I use a dictionary of keys to store release-output, and use the same dictionary to detect if the key is released later.
I avoided allocating and just store everything necessary in the global dictionary.
It does change existing functionality quite significantly, may cause breaking changes to existing configs that rely on release-output happening before accepting any key release.
For example
# https://github.com/houmain/keymapper/blob/main/keymapper.conf#L195C3-L196C1
open_terminal >> Win{R} ^ C M D Enter
Would now allow a user to input an "alt-tab" before the key is released with ease. Making the C M D Enter key strokes miss.
This was guaranteed before, storing per-key release-output could be an unacceptable change if that guarantee is considered core functionality.
I use a dictionary of keys to store release-output, and use the same dictionary to detect if the key is released later. I avoided allocating and just store everything necessary in the global dictionary.
It does change existing functionality quite significantly, may cause breaking changes to existing configs that rely on release-output happening before accepting any key release.
For example
Would now allow a user to input an "alt-tab" before the key is released with ease. Making the
C M D Enter
key strokes miss.This was guaranteed before, storing per-key release-output could be an unacceptable change if that guarantee is considered core functionality.
Solves #73.