Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated key bindings not reflected in TB menus #120

Open
jdpipe opened this issue Dec 10, 2022 · 3 comments
Open

Updated key bindings not reflected in TB menus #120

jdpipe opened this issue Dec 10, 2022 · 3 comments

Comments

@jdpipe
Copy link

jdpipe commented Dec 10, 2022

I notice that installing tbkeys-lite doesn't result in the keybindings displayed in the TB menus being updated. Is there any way that this could be made to happen? Is it a limitation of the Thunderbird API (eg https://webextension-api.thunderbird.net/en/latest/commands.html), or is it a limitation arising from the way that tbkeys-lite captures key strokes?

@jdpipe
Copy link
Author

jdpipe commented Dec 10, 2022

image

@wshanks
Copy link
Owner

wshanks commented Dec 28, 2022

@jdpipe This is a good point, and surprisingly something that no one has pointed out before. What you point out is a difference in behavior from how Keyconfig worked in older versions of Thunderbird. tbkeys does not try to replicate Keyconfig's behavior but it is trying to fill the gap that was left when Keyconfig stopped working in Thunderbird.

Technically, tbkeys itself can not work within the limitations of the Thunderbird API. It uses a WebExtension Experiment to hook back into the XUL/JS layer of Thunderbird. What tbkeys does is hook into that layer and install a key event listener to fire the bindings set by the user (which can then also access JS code in that layer). The event listener code uses Mousetrap, a pre-existing library for implementing keyboard shortcuts on a web page.

The reason that I implemented it this way was to use the minimum amount of code in the experiment section as possible, in the interest of maintainability. Keyconfig stopped working with Thunderbird because no one had both the time and motivation to port it to the next version of Thunderbird. I looked doing it but realized that just writing something like tbkeys was going to take less time and get the functionality I needed. In principle though, one could still write an experiment that did what Keyconfig did which is access the internal XUL keyboard shortcut objects and change them to new keybindings. Then they would be reflected in the UI and behave a little better (sometimes tbkeys misses keys if they are repeated too quickly #99). My concern with doing that is that the internal keyboard shortcut API has no guarantee of stability and so an experiment working with it could require fixing with each Thunderbird release. Also, if I did have time to work on that, I would rather spend that time trying to get new keyboard shortcut API's added to the MailExtensions API, so that something like tbkeys could work without an experiment.

@the-solipsist
Copy link
Contributor

I just wanted to check if the internal keyboard shortcut API has now stabilized after the release of Thunderbird v115.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants