I seeked into the API in order to write a plugin for myself. In order to aid my workflow I need to listen to two keystrokes closely followed.
Apparently there are only hacks available. I want to fire-and-forget about my plugin as long as the API to command firefox stays consistent.
I did not attempt to write any code (and any JS code, honestly that is) yet. Simply because I did not get that requirement addressed by the official API /& documentation.
Recompiling firefox would be the least favorable option; But I would still be hooked if it would enable me to observe keystrokes on my own.
As an practical example:
Pressing Shift
two times in sequence and within 100 ms should enable me to eat the event.
To detect two keystrokes closely followed, you can use
EventListener
s for theonkeyup
/onkeydown
event. In combination with a variable that determines if the key was already pressed within the last 100 ms and asetTimeout
call that resets that variable after 100 ms, it should be fairly easy to accomplish.If you just need to intercept the keypresses in webpages then you can inject a content script and handle these. However there is no way with the new WebExtensions API to intercept browser chrome events.
Additionally there is no way to delay events. So if you want to suppress both shift presses you will struggle to do that. If you are ok to let the first one go through suppressing the second one is trivial.
Thanks, @kevincox@lemmy.ml. That sums up my options.
Probably you can inject your js and add an input event in the body of the page.