17
submitted 3 weeks ago by [email protected] to c/[email protected]

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.

top 4 comments
sorted by: hot top controversial new old
[-] [email protected] 2 points 3 weeks ago

Probably you can inject your js and add an input event in the body of the page.

[-] [email protected] 2 points 3 weeks ago

To detect two keystrokes closely followed, you can use EventListeners for the onkeyup/onkeydown event. In combination with a variable that determines if the key was already pressed within the last 100 ms and a setTimeout call that resets that variable after 100 ms, it should be fairly easy to accomplish.

[-] [email protected] 2 points 3 weeks ago

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.

[-] [email protected] 1 points 3 weeks ago

Thanks, @[email protected]. That sums up my options.

this post was submitted on 10 Jun 2024
17 points (94.7% liked)

Firefox

16983 readers
81 users here now

A place to discuss the news and latest developments on the open-source browser Firefox

founded 4 years ago
MODERATORS