Open Bug 588710 Opened 11 years ago Updated 3 months ago

Implement "about:shortcuts" showing all shortcuts and allowing the editing of shortcuts

Categories

(Firefox :: General, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: Ryuji, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

(Whiteboard: [testday-20110603])

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b5pre) Gecko/20100818 Minefield/4.0b5pre
Build Identifier: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b5pre) Gecko/20100818 Minefield/4.0b5pre

Firefox should show the all keyboard shortcuts. 

Reproducible: Always
yeah. Songbird has done it. I wonder if it is doable. If there is no time to create a about:shortcuts page, we could just add "Shortcuts" to Firefox Menu, linking "Shortcuts" to https://support.mozilla.com/en-US/kb/Keyboard%20shortcuts
Perhaps in the future, shortcuts on the page can be modified too.
Summary: Create about:shortcuts page showing keyboard shortcuts in Firefox and Add "Shortcuts" into Firefox Menu → Implement "about:shortcuts" showing all shortcuts and allowing editing of shortcuts
Summary: Implement "about:shortcuts" showing all shortcuts and allowing editing of shortcuts → Implement "about:shortcuts" showing all shortcuts and allowing the editing of shortcuts
No longer blocks: FirefoxButton
Severity: normal → enhancement
OS: Windows 7 → All
Hardware: x86 → All
As a feature request, this can be confirmed.
Status: UNCONFIRMED → NEW
Component: General → Menus
Ever confirmed: true
QA Contact: general → menus
Whiteboard: [testday-20110603]
Version: unspecified → Trunk
Hmm... if this is released into Firefox, this would be a good selling point for Firefox.
Tim, would that be something for your extension?
Component: Menus → General
QA Contact: menus → general
(In reply to comment #6)
> Tim, would that be something for your extension?

That sounds indeed interesting. I was looking for a way to replace the current config pane...
For anyone interested, I'd modify this addon's config pane to be accessible via about:shortcuts

https://addons.mozilla.org/en-US/firefox/addon/customizable-shortcuts/

Maybe I could also change the name of the add-on - I never really liked it :)
Just adding a hyperlink to the Help menu of Firefox isn't good enough.

There are still many users who don't have a constant Internet connection and who browse offline copies of webpages and who have Firefox installed from a Firefox install pack provided to them by a friend or an acquaintance who does have better Internet access. Firefox shouldn't discriminate offline users!


So I propose that the following pages be included (in some form) in the default installation packages of Firefox:

1. https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly
2. https://support.mozilla.org/en-US/kb/mouse-shortcuts-perform-common-tasks

IMHO, the whole section https://support.mozilla.org/en-US/products/firefox/get-started (with all of its subpages) should come out-of-the-box with Firefox (with a special warning that users are advised to check the often-updated web version of those pages if an old and not so up-to-date/relevant version of those pages drags into a newer release of Firefox) as one should be able to see a list of all keyboard and mouse shortcuts of Firefox without having to use the Internet to get to the Mozilla Support site. It's such a basic thing to have, it must be included in some form in future versions of Firefox as keyboard and mouse shortcuts define the whole web browsing experience (for most people) and having information about them is simply a must.

P.S. Locale packs for Firefox could offer localized versions of 'about:shortcuts' or the more general 'about:get-started' (i.e. https://support.mozilla.org/en-US/products/firefox/get-started, that includes the shortcuts information pages as part of its index of contents).
¡Hola Tim!

So a random human poped over at #firefox (snippet below for your reding pleasure) and asked for this very feature today.

I kind of liked the idea too so here it is this comment.

Maybe something to add to [photon-onboarding]?

¡Gracias!
Alex

Guest97 (IRC)
is there a screen in FF that shows me what keys are bound to what ?
Mossop (IRC)
No
Guest97 (IRC)
Mossop ok thanks, maybe about:keys would be nice :D
if they can't be redefined i guess this is good enough https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly#w_windows-tabs
Flags: needinfo?(ttaubert)
Not sure what I can contribute here. I discontinued the add-on, but it's still on GitHub if anyone feels like picking it up. I certainly won't :)
Flags: needinfo?(ttaubert)
Atom editor could serve as an inspiration. Every core or extension action has a command name associated, and shortcuts are assigned to those command names inside a certain scope (represented by CSS selector).

For more details see http://flight-manual.atom.io/behind-atom/sections/keymaps-in-depth/

Now, I am not sure if it is necessary to implement scopes, WebExtensions do not support them either and for extension pages, it is probably better to use addEventListener anyway, but the decoupledness of commands and keybindings is necessary.

I do not actually know how the core keybindings are implemented but the 
WebExtensions already register commands so the interface could start with managing WebExt commands.

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/commands
This is a much more pressing issue in Firefox Quantum, since WebExtensions can no longer remap Firefox's internal hotkeys, unlike old pre-Quantum extensions such as Keybinder.

This feature would need to be able to not only modify shortcuts, but also to assign more than one shortcut to a single function, and to remove all keys from a function.
(That last point would also fix issues such as bug 52821, which is about it being too easy to hit Ctrl-Q and close the browser.)


I would expect the Firefox native UI to be very similar to the one provided by the old Keybinder eextension (screenshots are on the extension page), including having having the commands sorted into sections, and having the ability to search.

https://addons.mozilla.org/en-US/firefox/addon/keybinder/
Blocks: 1215061

I recommend allowing it to be opened by extensions, like chrome.tabs.create(url: 'chrome://extensions/configureCommands'); in Google Chrome.

Depends on: 1303384

I've been only vaguely aware of enhancements in the pipeline, i.e. Firefox 66, until now I didn't realise that the 66 enhancement will be limited to extensions (bug 1303384).

A more cohesive approach e.g. about:shortcuts will be welcome. The sooner, the better.

Pre-defined, unalterable shortcuts are a annoyance. (For me the most frequent annoyance is Control-Shift-C.)

about:shortcuts itself should respond well to navigation using the keyboard. (about:addons in Firefox 65.0 does not.)


(In reply to YF (Yang) from comment #14)

I recommend allowing it to be opened by extensions, …

+1

however I suspect that prevention of (special) about: URLs is pretty much set in stone.

Instead, I guess that there might be a step-by-step approach:

  1. from about:addons
  2. to shortcuts for extensions
  3. to about:shortcuts

(In reply to Tim Taubert [:ttaubert] (inactive) from comment #8)

https://addons.mozilla.org/en-US/firefox/addon/customizable-shortcuts/

For posterity, in the Wayback Machine:
https://web.archive.org/web/20151205211220/https://addons.mozilla.org/en-US/firefox/addon/customizable-shortcuts/

I also thought this was a greater change for the 10 years old keybinding problem. I'm not really happy about the actual solution but it was possible for me to update 2 addon shortcuts and downgrade to release version with working shortcuts! :D

Increased work for Addon Developer and Flagfox as ex. offer me ~10 empty shortcuts to set... very long Addon Site. I have to scroll much between Addons to change my keys. I cant see how other (old) shortcuts react on my keybinding change (which is unbound and or need to be changed) while changing Addon shortcuts. I cant see/change Firefox Core shortcuts for better key placement and prevent miss clicking. I also miss a feature like restore to standard shortcuts.

about:shortcuts will be the beśt and cleanest option ever. Addon Developer dont need to hurry up and the user is not disturbed by "incorrect" Addons like Flagfox. "about:shortcuts" will also be a great support for Thunderbird and solve most of the shortcut troubles of many users (which wait for a shortcut addon), addon designer (change shortcut requests), firefox dev (no more keybinding requests/api),.

Example:

Search box:

[Del. Shortcut] [KEY] [Source] [Description]

[X] [STRG+T] [Firefox Core] [Open a new Tab]
[X] [STRG+ALT+F1] [Tree Style Tab] [Open TST Sidebar]
[X] [STRG+ALT+F1] [Tree Style Tab] [Open TST Configuration]
[X] [STRG+SHIFT+ALT+X] [Feedbro] [Open Feedreader]
[X] [ ] [Dropdown Menu] [Dropdown Menu]

[[Add new Shortcut]] [[Restore standard Shortcuts]] [[Delete All Addon Shortcuts]] (<<< Buttons - self explanatory)

[ ] Allow newly installed Addons to change this configuration. (Checkboxes - self explanatory...)
[ ] Allow Addons to change Firefox Core shortcuts.
[ ] Replace old Keybinding with ("empty") instead of waiting for a manual change.

Key: Self defined up to 4 keys. (Click in and push combination)
Source: Name of the source which provide the shortcut [Dropdown menu of available sources (FF Core, FF Dev Bar, Addons as ex.]
Description: Offer the provided shortcuts by the chosen source [Dropdown menu - depending on source]
Endless slots for shortcuts in such a list.

Firefox Core need to offer the basic shortcuts. The Addons only need to provide a "Description" of each provided shortcut and his code. Source = Addon name. "Firefox Core" shortcuts and changed shortcuts should be marked somehow.

A notification after Addon installation would be an idea. Ex.: "18 new Shortcuts under about:shortcuts"

Simple - efficient - future proof and all the shortcut issues are gone.

Tradewatcher brings up some good points. I have also come up against the problem of keyboard shortcuts conflicting across add-ons, so having the UI let you see and edit add-ons' shortcuts in one place would definitely be a desirable end-goal (I'd certainly take a core-only solution for starters, though).

I would REALLY like the ability to remove the Ctrl+W shortcut to close tabs/windows, as my Emacs reflexes cause me to accidentally close Firefox windows not infrequently. WebExtensions such as Shortkeys are unable to disable factory shortcuts in all contexts, with the current APIs.

Note that not being able to disable built-in keyboard shortcuts is an accessibility issue, and this bug should have the access Keyword added to it.

Agree to this. I always keep pressing ctrl+S and ctrl+W accidentally when I'm in the browser's window. I really hope they would add a feature that disables certain keyboard shortcuts.

Please, please add literally ANY way to disable shortcuts. This is a blocker to me - I can't use some websites with current shortcuts, so I have to switch to Chromium for now.

Why - more and more often these days, browser is used as a host for advanced applications with their own sets of shortcuts. You can e.g. host VS Code in a browser. It's important to be able to make browser shortcuts "get out of the way", otherwise you can't use the browser with this tool at all.

Seriously, people have been begging for this for 20 years #57805... Thunderbird too...pls... about:shortcuts especially now that plugageddon has obliterated the plug in developer community. At least with Firefox we have Chrome and Waterfox as alternatives, but there just isn't an alternative to Thunderbird.

(In reply to Krzysztof Stanisławek from comment #19)

Please, please add literally ANY way to disable shortcuts.

Does compiling patched FF from sources fall into ANY way category?

In reply to Anatoli Babenia from https://bugzilla.mozilla.org/show_bug.cgi?id=588710#c21
What the author of comment #19 is expressing is their frustration at the fact that this issue gets in his way and how much it detracts from their experience. I fully understand their frustration. My personal issue is that from time to time I lose work because I type C-win a tab that I have been editing and it gets closed. I would love to be able to disable this shortcut.

In a more general way, I believe that fully customizable keyboard shortcuts is a very important feature from a user experience stand point because frequent users of shortcuts employ them at a more semantic level without actually thinking of which finger they are moving to which key, and once they have a gesture memorized and have come to rely on it to produce a certain result, they understandably become very frustrated when it doesn't work, or even worse when it destroys their work.

Made an account here just to bump this and say I would be really interested in any official UI even approximating customizable keyboard shortcuts in Firefox. Third party extensions have a whole host of issues that make them inconsistent at best, since the most effective ones just inject JS straight onto the web page. Being able to trigger custom keyboard shortcuts (even if some are un-editable) at any time, on any page, regardless of mouse focus would really be a godsend for Firefox.

This has been a feature request now for 20 years (bug 57805, 1.5 million bug reports ago as of writing), and every other thread I've read about the issue (bug 1215061, bug 927603, bug 257241) has mostly danced around the question: is this something that Mozilla is interested in implementing? If not, that's totally cool, no further questions. If so, great, not asking for a timeline or anything it'd just be good to know we're all on the same page about the utility of this feature, especially for developers.

A clear "yes we will get to this eventually" or "no we don't plan on pursuing this" would be really appreciated.

Depends on: 1656476

It might be easier to implement customization if there is already a view just listing the shortcuts.

TLDR: Rework Shortcuts, so that the user can re-route them, add custom shortcuts to functions and remove bindings (e.g. ^Q, who didn't got hit by this yet). Also there is Bug 1584542 about global shortcuts (for both the widget and web exts), which could/would influence shortcut handling, so we can maybe do both together.

I'm NI you as this issue is way to large for an outside contributor to tackle, especially as it needs coordination between the UI, deep internals (this code used to be XUL) and accessability (all this keyCode vs keyChar, different layouts, ...).
Nevertheless (as has been pointed out by others), it's a very useful/desirable feature, which would make sense to implement.

I'm kindly asking you (if time allows) to coordinate the work towards this feature(s) or maybe forward this to someone more appropriate, so we have clear instructions on how to work towards this goal.

Thanks in Advance!

Flags: needinfo?(jmathies)

Not sure jimm is the best person to reply to that.

Gijs, given this is something external contributors may want to hack on, would you be fine taking patches for this?

Probably most of the work would want to be done in dependent bugs, and initially probably just a skeleton listing the shortcuts, and the url being enabled behind a pref, would do. I'd be happy to help out Marc or other people that would want to hack on this.

Flags: needinfo?(gijskruitbosch+bugs)
No longer depends on: 1656476

(In reply to Emilio Cobos Álvarez (:emilio) from comment #26)

Not sure jimm is the best person to reply to that.

Gijs, given this is something external contributors may want to hack on, would you be fine taking patches for this?

This is quite a lot of work. There already isn't a single way of enumerating all shortcuts (ie most are implemented using <key> elements, but not all, and on macOS the OS itself also tries to handle them based on menu information and its own (editable!) shortcuts, which doesn't necessarily update correctly). The last time I tried just updating existing key elements didn't work, though maybe that's fixed now (but even then, we'd have to convert non-<key>-implemented shortcuts to use those or to support editing the keybindings some other way.

So there are:

  • technical issues in terms of unifying existing shortcuts
  • technical issues in terms of updating them based on user preferences
  • ux issues in interacting with macOS's way of doing shortcuts

plus then we'd need significant automated test coverage, and we'd need to figure out a way of representing the customized shortcuts in about:support, and we'd need to document things on SUMO (which now just lists shortcuts as if they're always the same).

It's also not clear what would happen when the application's default for a shortcut changes - should that reset the user-customized version, or not, or...? What happens if the user has customized some shortcut to do a particular thing, and then the application adds a new shortcut for a new feature (or adds a shortcut to an existing feature) that conflicts?

With a smaller set of resources available for development as Mozilla has shrunk, I am not enthusiastic about expanding Firefox / Toolkit's feature scope in ways that impact very very few people. We're forced to think very hard about the cost/benefit balance here, and I don't think customizable shortcuts for built-in features are that common a request. Even from the comments on this bug, improving quit protection / control over just that shortcut appears like it'd satisfy half or more of the people commenting here, and that's a much smaller project.

Probably most of the work would want to be done in dependent bugs, and initially probably just a skeleton listing the shortcuts, and the url being enabled behind a pref, would do. I'd be happy to help out Marc or other people that would want to hack on this.

I do think having a builtin discoverable list of shortcuts is a good idea, and there is bug 492557 which covers the "show all shortcuts" request, and has (now somewhat old...) work-in-progress patches for that.

Depends on: 492557, 1568133
Flags: needinfo?(gijskruitbosch+bugs)
Severity: normal → N/A
Flags: needinfo?(jmathies)
Priority: -- → P3

It's also not clear what would happen when the application's default for a shortcut changes - should that reset the user-customized version, or not, or...? What happens if the user has customized some shortcut to do a particular thing, and then the application adds a new shortcut for a new feature (or adds a shortcut to an existing feature) that conflicts?

What users, well I, want is the ability to override. To say "what Ctrl+N does", regardless of what the default Ctrl+N does or what other ways there are to do it or even Ctrl+N being the only way to do it. Specifically, it is assignment of functionality to keys, not vise-versa. In this sense there can never be conflicts – user preference always wins. And when the time comes that what ever Ctrl+N was set to do is no longer a feature, simply do nothing.

With a smaller set of resources available for development as Mozilla has shrunk, I am not enthusiastic about expanding Firefox / Toolkit's feature scope in ways that impact very very few people. We're forced to think very hard about the cost/benefit balance here, and I don't think customizable shortcuts for built-in features are that common a request.

Here's my +1.

You need to log in before you can comment on or make changes to this bug.