At the moment, capslock can be mapped to control via a substitution filter. But it would be nice to enable capslock to still be sent, for example if right control is down when capslock is pressed. It would be even better to find a way to do this without affecting the generality of the substitution filter. Maybe substitution filter should record the original key press somewhere in the state map so downstream processing can operate on it. Or maybe filters should be grouped into chains somehow. Or maybe filters should be more like handlers, where only one gets a crack at the event at a time.
At the moment, capslock can be mapped to control via a substitution filter. But it would be nice to enable capslock to still be sent, for example if right control is down when capslock is pressed. It would be even better to find a way to do this without affecting the generality of the substitution filter. Maybe substitution filter should record the original key press somewhere in the state map so downstream processing can operate on it. Or maybe filters should be grouped into chains somehow. Or maybe filters should be more like handlers, where only one gets a crack at the event at a time.