Feature Request: disable single-key shortcuts
Categories
(Thunderbird :: Mail Window Front End, enhancement)
Tracking
(Not tracked)
People
(Reporter: jberkus, Assigned: KaiE)
References
()
Details
(Whiteboard: [workaround: comment 88])
Attachments
(2 files)
Comment 1•13 years ago
|
||
Comment 3•13 years ago
|
||
Comment 5•13 years ago
|
||
| Reporter | ||
Comment 6•13 years ago
|
||
| Comment hidden (me-too) |
| Comment hidden (me-too) |
| Comment hidden (obsolete) |
| Comment hidden (me-too) |
| Comment hidden (me-too) |
| Comment hidden (me-too) |
| Comment hidden (obsolete) |
| Comment hidden (abuse-reviewed) |
| Comment hidden (me-too) |
Comment 16•11 years ago
|
||
| Comment hidden (me-too) |
| Comment hidden (me-too) |
Comment 19•11 years ago
|
||
Comment 20•11 years ago
|
||
| Comment hidden (me-too) |
Comment 22•11 years ago
|
||
Comment 23•11 years ago
|
||
Comment 24•11 years ago
|
||
| Comment hidden (me-too) |
| Comment hidden (me-too) |
Comment 27•11 years ago
|
||
Comment 28•11 years ago
|
||
| Comment hidden (me-too) |
| Comment hidden (off-topic) |
| Comment hidden (off-topic) |
| Comment hidden (off-topic) |
| Comment hidden (me-too) |
| Comment hidden (me-too) |
| Comment hidden (me-too) |
Comment 37•11 years ago
|
||
| Comment hidden (me-too) |
Comment 39•10 years ago
|
||
| Comment hidden (me-too) |
| Comment hidden (me-too) |
| Comment hidden (me-too) |
| Comment hidden (me-too) |
| Comment hidden (me-too) |
Comment 45•9 years ago
|
||
| Comment hidden (off-topic) |
| Comment hidden (off-topic) |
| Comment hidden (me-too) |
Comment 50•9 years ago
|
||
Comment 51•9 years ago
|
||
| Comment hidden (off-topic) |
Comment 53•9 years ago
|
||
Comment 54•9 years ago
|
||
Comment 55•8 years ago
|
||
Comment 56•8 years ago
|
||
Comment 57•7 years ago
|
||
| Comment hidden (me-too) |
| Comment hidden (me-too) |
| Comment hidden (off-topic) |
| Comment hidden (off-topic) |
| Comment hidden (off-topic) |
| Comment hidden (off-topic) |
| Comment hidden (off-topic) |
Comment 65•6 years ago
|
||
We'd probably need bug 57805 for this request to happen. And so far Firefox hasn't implemented it.
(In reply to [:jberkus] Josh Berkus from comment #60)
At this point, there are no paid developers working on Thunderbird,
It doesn't affect the outcome for this bug, but in the interest of accuracy this hasn't been true for a few years.
More interesting perhaps, is that the add-ons community is today significantly more organized that it was a few months ago.
Also, many addons which were abandoned by their author have been revived by a newcomer, or the author was encouraged by the progress to resume support of the addon.
| Comment hidden (me-too) |
| Comment hidden (me-too) |
Comment 70•6 years ago
|
||
(In reply to Wayne Mery (:wsmwk) from bug 1650997)
Where exactly are you clicking that it fails? And does the UI adequately indicate the field is clicked when you are successful? (In other words, is there a clear distinction between success and failure?)
I "work fast", so I quickly click on the Search field, but sometimes I just missed it (clicked close to it, but not exactly on it).
It's very rare cases, but it does happen sometimes.
When it does, and I start typing my search query quickly, I start doing all kind of things against my messages.
Simply, having one-key shortcuts is just a bad idea. I don't know of ANY other program that does it.
Shortcuts should always be together with the Ctrl key.
| Comment hidden (me-too) |
Comment 72•6 years ago
|
||
1). Main issue - Click on the quicksearch box then start typing, not realising that the cursor hasn't appeared in the search box, then the letters typed start destroying the emails - To me it feels like this got worse a year or so ago
2). (Because I'm running dual monitor)... Some other program show a flashing text cursor even when not in focus, leading me to believe I'm in that program, when in fact the focus is Tb - This is not Thunderbird's fault, but the damage is done to the emails in Tb.
3). This is just a gut feeling (I can't prove it and I could be totally wrong with this)... sometimes I think the quicksearch box loses focus for an instant when Tb downloads emails or does other background tasks.
For me, the issue would be 99.9% sorted if there was a option to disable single key shortcuts (even if just alphanumeric)
Been trying to get others at work onto Tb, but I know they are would hit this issue even more than me (based on having to help them find menus, toolbars etc. that have gone wandering)
AFAIK MS Outlook does not use any single key alphanumeric shortcut for an action - just for altering the screen view in some way, so not destructive.
Can donations be ring-fenced to an particular bug?
Comment 73•6 years ago
|
||
I'm also occasionally frustrated with this akward bug when start typing with bad cursor placement or window focus.
Some shortcuts (go to next message...) are only anoying, but shortcuts managing the e-mails are perilous.
Comment 74•6 years ago
|
||
Ten years and no improvement. Congrats Thunderbird Team! ;-)
And seriously: if it isn't possible to correct this ugly design bug, perhaps there's a way to make quick and dirty patch selectively blocking the most dangerous cases like "k" etc. (in about:config)?
Comment 75•6 years ago
|
||
(In reply to witrak from comment #74)
Ten years and no improvement. Congrats Thunderbird Team! ;-)
And seriously: if it isn't possible to correct this ugly design bug, perhaps there's a way to make quick and dirty patch selectively blocking the most dangerous cases like "k" etc. (in about:config)?
Actually there is an add-on that does just that.
Unfortunately, recent Thunderbird updates killed it.
Wayne Sallee
Wayne@WayneSallee.com
| Reporter | ||
Comment 76•6 years ago
|
||
This is now my oldest open bug against any OSS project. Not sure how to feel about that.
Comment 77•6 years ago
|
||
All my marked as unread emails are now marked as read ("shift-c"). Fortunately, I also had marked them as important so the information is not really lost. Also I was able to unarchive the archived emails ("a") and, after about half an hour, un-ignore a thread which I had accidentally marked as ignore ("k").
So I want to get rid of most of the single keystroke commands (which I believe can be useful in text only mail clients or in mail clients which do not have a quick search bar).
I was able to disable all single key commands (plus two more in combination with shift) by commenting out related lines in
comm/mail/locales/en-US/chrome/messenger/messenger.dtd, as follows:
<!-- <!ENTITY archiveMsgCmd.key "a"> -->
<!-- <!ENTITY markThreadAsReadCmd.key "r"> -->
<!-- <!ENTITY markReadByDateCmd.key "c"> -->
<!-- <!ENTITY markAllReadCmd.key "c"> -->
<!-- <!ENTITY markStarredCmd.key "S"> -->
<!-- <!ENTITY markAsJunkCmd.key "j"> -->
<!-- <!ENTITY markAsNotJunkCmd.key "j"> -->
<!-- <!ENTITY killThreadMenu.key "k"> -->
<!-- <!ENTITY killSubthreadMenu.key "k"> -->
<!-- <!ENTITY watchThreadMenu.key "w"> -->
<!-- <!ENTITY nextMsgCmd.key "f"> -->
<!-- <!ENTITY nextUnreadMsgCmd.key "n"> -->
<!-- <!ENTITY nextUnreadThread.key "t"> -->
<!-- <!ENTITY prevMsgCmd.key "b"> -->
<!-- <!ENTITY prevUnreadMsgCmd.key "p"> -->
<!-- <!ENTITY tagCmd0.key "0"> -->
and the related lines in comm/mail/base/content/mainKeySet.inc.xhtml:
<!-- <key id="key_toggleFlagged" key="&markStarredCmd.key;" oncommand="goDoCommand('cmd_markAsFlagged');"/> -->
<!-- <key id="key_markJunk" key="&markAsJunkCmd.key;" oncommand="goDoCommand('cmd_markAsJunk');"/> -->
<!-- <key id="key_markNotJunk" key="&markAsNotJunkCmd.key;" oncommand="goDoCommand('cmd_markAsNotJunk');"
modifiers="shift"/> -->
<!-- <key id="key_markAllRead" key="&markAllReadCmd.key;"
oncommand="goDoCommand('cmd_markAllRead');" modifiers="shift"/> -->
<!-- <key id="key_markThreadAsRead" key="&markThreadAsReadCmd.key;" oncommand="goDoCommand('cmd_markThreadAsRead')"/> -->
<!-- <key id="key_markReadByDate" key="&markReadByDateCmd.key;" oncommand="goDoCommand('cmd_markReadByDate')"/> -->
<!-- <key id="key_nextMsg" key="&nextMsgCmd.key;" oncommand="goDoCommand('cmd_nextMsg')"/> -->
<!-- <key id="key_nextUnreadMsg" key="&nextUnreadMsgCmd.key;" oncommand="goDoCommand('cmd_nextUnreadMsg')"/> -->
<!-- <key id="key_nextUnreadThread" key="&nextUnreadThread.key;" oncommand="goDoCommand('cmd_nextUnreadThread')"/> -->
<!-- <key id="key_previousMsg" key="&prevMsgCmd.key;" oncommand="goDoCommand('cmd_previousMsg')"/> -->
<!-- <key id="key_previousUnreadMsg" key="&prevUnreadMsgCmd.key;" oncommand="goDoCommand('cmd_previousUnreadMsg')"/> -->
<!-- <key id="key_archive" key="&archiveMsgCmd.key;" oncommand="goDoCommand('cmd_archive')"/> -->
<!-- <key id="key_watchThread" key="&watchThreadMenu.key;" oncommand="goDoCommand('cmd_watchThread')" /> -->
<!-- <key id="key_killThread" key="&killThreadMenu.key;" oncommand="goDoCommand('cmd_killThread')" /> -->
<!-- <key id="key_killSubthread" key="&killSubthreadMenu.key;" oncommand="goDoCommand('cmd_killSubthread')" modifiers="shift" /> -->
<!-- <key id="key_tag0" key="&tagCmd0.key;" modifiers="shift any"
oncommand="goDoCommand('cmd_removeTags');"/> -->
I vote for disabling the single keystroke commands for now (and maybe enable them after it is possible to disable them via a Thunderbird configuration setting).
Before being able to offer a patch, I first have to read and understand the pages below https://developer.thunderbird.net/thunderbird-development/fixing-a-bug , and also test the patching process.
So if anyone else wants to build and offer a patch, ...
BTW The initial build of Thunderbird took more than an hour on my laptop but building it again after I made these changes took less than 30 seconds.
Comment 78•5 years ago
|
||
I came across the "tbkeys-lite" addon, which allows to unset key bindings for Thunderbird 68, until they are disabled by default (as common sense would require for modern computer usage).
Comment 79•5 years ago
|
||
SWEET!! tbkeys-lite works like a charm. Thank you so much for this suggestion.
Unbelievable that we still have to rely on addons to remove these shortcuts...
Comment 80•5 years ago
|
||
| workaround | ||
You can paste the following into the settings box of "tbkeys-lite" to really completely disable all one-letter shortcuts:
{
"0": "unset",
"1": "unset",
"2": "unset",
"3": "unset",
"4": "unset",
"5": "unset",
"6": "unset",
"7": "unset",
"8": "unset",
"9": "unset",
"j": "unset",
"k": "unset",
"o": "unset",
"f": "unset",
"#": "unset",
"r": "unset",
"a": "unset",
"x": "unset",
"c": "unset",
"u": "unset",
"b": "unset",
"m": "unset",
"p": "unset",
"s": "unset",
"t": "unset",
"w": "unset",
"]": "unset",
"[": "unset"
}
(taken from one of the reviews)
Comment 81•5 years ago
|
||
tbkeys-lite works on TB 78 as well! Yay!
Comment 83•4 years ago
|
||
I have gotten so used to the "Search when you type" feature in Firefox that I sometimes accidentally start typing in an open Thunderbird email, to search in it and as a result, messages are moved, archived, marked as junk, etc. where ideally, nothing should have happened.
The majority of Thunderbird users probably don't use the single key feature. Developers and super users of course do, but they are probably in the minority, in that way.
For the ordinary user, these single key shortcuts can be quite annoying, since you don't really know if important emails were deleted, marked as junk and moved or something else. And backtracking afterwards is near to impossible, to clean up after the damage is done.
My suggestion is to set single key shortcuts to disabled by default, yet allowing super users to enable single key shortcuts, either by adding this option under "Settings", disabled by default:
[ ] Enable single key shortcuts
... alternatively by adding a line in pref.js as previously suggested in this issue.
You can unset shortcuts with the tbkeys-lite add-on, but that forces the user to grant full access to the computer, which has security implications. Also, configuring tbkeys-lite isn't exactly a simple thing to do, whereas adding or removing a check mark is.
Comment 84•4 years ago
|
||
(In reply to tero gusto from comment #83)
My suggestion is to set single key shortcuts to disabled by default, yet allowing super users to enable single key shortcuts, either by adding this option under "Settings", disabled by default:
[ ] Enable single key shortcuts... alternatively by adding a line in
pref.jsas previously suggested in this issue.You can unset shortcuts with the tbkeys-lite add-on, but that forces the user to grant full access to the computer, which has security implications. Also, configuring tbkeys-lite isn't exactly a simple thing to do, whereas adding or removing a check mark is.
Any method allowing blocking the "feature" would be OK if only doesn't lead to unnecessary negative security implications, in this case - adding an extension. Thus the proposal of berndfinger in https://bugzilla.mozilla.org/show_bug.cgi?id=615957#c77 seems to be reasonable.
Pity that for 2 years nobody from developers tried to use it...
| Comment hidden (metoo) |
Comment 86•4 years ago
|
||
| workaround | ||
@Erik Blake - that focus issue doesn't happen to me, and this single-character commands issue is still an issue to me.
Gladly, the extension "tbkeys-lite" fixes the issue for me.
I disabled all single-character keys, except for "m" (Mark as Read), which is the only one I use, and if I ever do it accidentally, it's not a big issue (easy fix, doesn't delete emails or archive them, or initiates a rocket launch, etc)
{
"0": "unset",
"1": "unset",
"2": "unset",
"3": "unset",
"4": "unset",
"5": "unset",
"6": "unset",
"7": "unset",
"8": "unset",
"9": "unset",
"j": "unset",
"k": "unset",
"o": "unset",
"f": "unset",
"#": "unset",
"r": "unset",
"a": "unset",
"x": "unset",
"c": "unset",
"u": "unset",
"b": "unset",
"p": "unset",
"s": "unset",
"t": "unset",
"w": "unset",
"]": "unset",
"[": "unset"
}
| Comment hidden (offtopic) |
Comment 88•4 years ago
|
||
| workaround | ||
I don't know anything about it, other than that it works. Of course I'd prefer Thunderbird to implement this natively.
The extension seems to be open source anyway: https://github.com/wshanks/tbkeys
(the GitHub page is linked in the extension page)
https://addons.thunderbird.net/en-US/thunderbird/addon/tbkeys-lite/
Comment 89•4 years ago
|
||
In the GitHub page, you have "Security, privacy, and implementation" section.
I don't see why giving a 1 star review just because of the lack of that section in the extension page.
Extensions could well just say "we're all safe and respect privacy", and yet behaving like a spyware...
1 star reviews will just demotivate the developer and then whenever Thunderbird decides to break extensions' compatibility once again, the developer may not feel motivated to spend time on fixing it.
I'm glad this extension exists.
| Comment hidden (offtopic) |
Comment 91•4 years ago
•
|
||
I think we have pretty much exhausted suggestions of how to implement this, none of which has resulted in actual code, which is ultimately the purpose of these bug reports - versus complaints about add-ons, presumed simplicity of implmentation, random discussion, comments about unrelated bugs, etc. which is not within the purpose of this bug report. Therefore, with apologies to those of you who have contributed useful information, I am restricting further comments.
There have in fact been discussions amongst developers as to how this might be done, and it is something the developers plan to tackle., but it was not possible to do this for version 102.
Updated•3 years ago
|
Comment 93•2 years ago
|
||
Good to see that https://addons.thunderbird.net/en-US/thunderbird/addon/tbkeys-lite/ is still an option for version 115.
| Reporter | ||
Comment 94•1 year ago
|
||
Note that this issue has now gotten much worse, because tbkeys is no longer supported as of TB 128. So there is once again, no way to block the single-key shortcuts.
Comment 95•1 year ago
|
||
Ed reports these work for him on Windows
| Comment hidden (metoo) |
Comment 97•11 months ago
|
||
(In reply to Josiah Bruner [:jsbruner] from comment #37)
Please, we don't need any more "me too" or "I can't believe this hasn't been
fixed!" comments.This is non-trivial to implement
Surely it is straightforward. Just disable all single-stroke key shortcuts by default, and add option to enable them for those that want.
Comment 98•11 months ago
|
||
(In reply to Wayne Mery (:wsmwk) from comment #65)
We'd probably need bug 57805 for this request to happen. And so far Firefox hasn't implemented it.
No we don't. Firefox does not have such ridiculous existing keyboard shortcuts, and even if it did, would unlikely result in loss of data (being a browser rather than email client), so that issue is unlikely to be addressed anytime soon in Firefox.
All that is needed is
- Disable all single-key or Shift+key keyboard shortcuts by default;
- Provide option to re-enable them.
I'd be happy without the option to re-enable.
| Comment hidden (me-too) |
Comment 101•2 months ago
|
||
Firefox introduced "about:keyboard" but it is still in alpha / beta phase but available in release client. I think it would be worth it if TB also take use of this and adapt it for TB keyboard shortcuts.
| Assignee | ||
Comment 102•2 months ago
•
|
||
Today I've accidentally put a thing onto my keyboard, it lied on the spacebar, and for 3 seconds it marked lots of messages as read :(
Has happened to me several times in the past.
And it also happened when I tried to enter text while I was focused on the wrong window.
I think this bug needs a fix.
I've had also friends complain about that to me in the past, and they asked for a way to turn that off.
I think we should make that possible.
I happened to have a day off today, but ended up spending the majority of it finding a fix.
I suggest a pragmatic fix, without UI changes, that is less work than a full flexible configuration UI. Given the age of this bug, I suggest something simple, that only works with hidden prefs initially.
(If desired, we could expose that as checkboxes in the pref UI in a follow-up step.)
I wasn't aware that we already had a pref for the spacebar advance. I think it makes sense to keep that configuration switch independently, but I think it also makes sense to have a global switch to disable the single character presses, and I think it should cover the spacebar advance, too.
I'm attempting to move this bug forward, because as I understand, so far nobody was able to do the work.
The patch, and the text that follows below, was created with help from AI.
The patch I'm about to attach adds hidden preferences (about:config only, no UI) to stop accidental triggering of the mail window's bare single-key shortcuts (a=archive, k=ignore thread, the tag keys, message navigation, etc.), which fire from stray keypresses when focus lands in the wrong place. Behavior is unchanged by default; users opt in.
There are three modes via two prefs:
- Completely off (mail.character_shortcuts.enabled=false)
- Plain (default) β today's behavior, single keypress fires the shortcut.
- Lead-in required (mail.character_shortcuts.use_lead_in_keypress=true) β the shortcut fires only just after a "lead-in" chord, Ctrl+a configurable character (mail.character_shortcuts.lead_in_control_key, default .), within a short period of time. This keeps the shortcuts available but unreachable by accident.
Spacebar "advance to next message" follows the same primary switch; Delete/Backspace and Enter have their own independent on/off prefs. Menus, toolbar buttons, and any modifier-based shortcuts are unaffected throughout.
Deliberately chosen Configuration limits: the lead-in is always Ctrl + one character, and that character must be a single non-whitespace character (empty, multi-character, or whitespace values are treated as "completely off" and logged as a warning to the Error Console, once per window). We do not restrict it to ASCII (international/non-Latin single characters are fine), and we do not check it against existing shortcuts β choosing a sane, non-conflicting key (e.g. not Ctrl+Q) is left to the user. The default . was picked because it seems unbound in the mail window and Firefox and is layout-independent.
Why was it implemented like this and not differently?
The naive approach could be a single global keydown listener that swallows the keys (what the tbkeys add-on seems to do via Mousetrap).
The reasons this wasn't done here:
(a) in the 3-pane the message list lives in the about:3pane child document, and a chrome-window key listener doesn't even receive those keystrokes β only Gecko's cross-document
XUL <key>/GlobalKeyListener does (which is exactly why these shortcuts are <key> elements in the first place)
(b) swallowing key events risks side effects on text input, the quick-filter/search box, and compose.
So instead the following approach is suggest, which seems to work.
We disable the shortcuts at the keyset level (disabled="true" on the <key>, which GlobalKeyListener honors live), which is inert and side-effect-free.
Three things needed extra handling that a keyset-only patch would miss:
- macOS: those <key>s are also registered as native Cocoa menu key equivalents that fire before the disabled <key> is consulted, so we also strip the key reference from the referencing menu items (the menu item still works when clicked). A keyset-only disable looked correct but silently failed on macOS.
- Spacebar isn't a <key>; it's gated once in the cmd_space command so every spacebar path is covered.
- Enter isn't a <key> either; it's gated in the thread pane's keypress handler.
The lead-in is likewise implemented as a <key> (it briefly un-disables the others), not a JS listener, for the same cross-document reason. We also rejected disabling at the command level (e.g. cmd_archive), because that would disable the menu and toolbar entries too β and we want those to keep working.
| Assignee | ||
Comment 103•2 months ago
|
||
Updated•2 months ago
|
| Assignee | ||
Comment 104•2 months ago
|
||
| Assignee | ||
Comment 105•2 months ago
|
||
| Assignee | ||
Comment 106•2 months ago
|
||
In addition to the earlier patch, I've attached a second patch, which is much smaller. While the first patch contained exploration of additional ideas, the "minimal patch" it strictly limited to the behavior requested in this bug.
| Assignee | ||
Comment 107•2 months ago
|
||
Here is an experimental add-on I made in my free time that implements the equivalent of patch #1
https://kuix.de/mozilla/thunderbird/disable-character-shortcuts/
Use at your own risk.
If this add-on helps you and you're using it, feel free to add a thumbs-up reaction to this comment, so we get some feedback whether it seen as helpful.
Otherwise, we should probably limit the discussion here in bugzilla to changes that could or should go into Thunderbird core.
Description
•