keyconfig adds the ability to create new or modify existing shortcuts defined by a <key> element, but only changing those which itself call a function (those with a command or oncommand attribute) has an effect (all others fulfill only cosmetic purposes it seems and are grayed out).
The configuration screen can be accessed via Tools > Keyconfig (in most Applications), the Add-ons Manager, or Ctrl+Shift+F12 (Command+Shift+F12 on MacOS) from the main window.
Currently there is only one list of modified keys per application, so changing a shortcut in one window will also affect other windows if they use the same key name.
Notes:
- All shortcuts listed (except Keyconfig…) are provided by the Application and other extensions, not by keyconfig.
- keyconfig should be able to recognize any keys usable by Gecko
- Don't think that changing a <key> will always remove the original shortcuts. For Example: You can change the shortcut for Copy in the Bookmarks Manager but the original shortcut will still work (in addition to the new shortcut).
- It is possible that keyconfig handles modifiers wrong.
- Any '][' in the code of user defined keys will be replaced by '] [' (which should have the same effect in most cases) since the pref separator is ']['.
- Disabled <key>s are removed from their <keyset> under the assumption that this has no drawbacks.
- Default modifiers can be set by changing ui.key.* prefs in about:config.
- Assigning the Control modifier to a shortcut attached to a menuitem on Mac doesn't work due to bug 519496
- The window-mediator returns an empty title for some recycled Thunderbird Compose windows
- Builds before 1.9.1 require restart after changing shortcuts
- All-In-One Sidebar, FoxyTunes, Click2Tab, Penelope, and Firebug base some of their code on keyconfig.
Other shortcuts:
- URL Suffix: URL ctrl/shift/ctrl+shift behavior
- Keyfixer: platformHTMLBindings.xml [Mac]
- SEARCHHOTKEYS: Find As You Type Link (') and Find As You Type Text (/)
- KeySnail: Key sequences, Emacs behavior
- Vimperator: Vim behavior
- MenuManipulator: Menu accesskeys
Configurations:
- Code: Select all
prefs.js: (use about:config to edit these)
// Display internal shortcut
user_pref("keyconfig.devmode", true);
// Reverse the order in which submenu names are used, defaults are:
// Thunderbird "Menu > Menuitem"
// Others "Menuitem [Menu]"
user_pref("keyconfig.nicenames.reverse_order", true);
// Use another keyconfig profile, can be used to temporary disable all keys
user_pref("keyconfig.profile", "1");
// Disables the warning if an already used key was entered
user_pref("keyconfig.warnOnDuplicate", false);
// Don't wait for additional key stroke, jump immediately to the Apply butten
user_pref("keyconfig.allowAltCodes", false);
// Code which will be run in every window (only if non empty)
user_pref("keyconfig.global.20110323", "Module('UIHook');");
// Module('UIHook'); adds a key to all windows matching this pref
user_pref("keyconfig.UIHook","");
// Hide disabled <key>s in the keyconfig window
user_pref("keyconfig.hideDisabled", true);
userChrome.css:
/* Style different types of keys differently */
#keyconfig-window treechildren::-moz-tree-cell-text(hardcoded) { color: GrayText; }
#keyconfig-window treechildren::-moz-tree-cell-text(disabled) { text-decoration: line-through; }
#keyconfig-window treechildren::-moz-tree-cell-text(user) { font-weight: bold; }
#keyconfig-window treechildren::-moz-tree-cell-text(duplicate) { background-color: rgb(80%, 80%, 80%) !important; color: inherit !important; }
#keyconfig-window treechildren::-moz-tree-cell-text(custom) { font-style: italic; }
Example custom keys.
Changes:
20110522:
- Made keyconfig not depend on other extensions adding the corresponding <command>s for their <key>s
- Checks now also for <broadcaster>s to determine if the <key> has any code
- Made Module('UIHook'); also pass the current window to keyconfig
- Adjusted some translations
- Added keyconfig.hideDisabled pref
- Default disabled <key>s now receive the correct cell property
- The rows have now also receive properties
20110323:
- Added support for Toolkit 2.0 Applications and dropped support for pre Toolkit 1.9
- Added da-DK by Jørgen Rasmussen
- Some changes due the new XPCOM components registration.
- Check browser.backspace_action if cmd_handleBackspace/cmd_handleShiftBackspace should be mapped to goBackKb/goForwardKb
- Should now work from tab ( chrome://keyconfig/content/ )
- Added the keyconfig dialog as the optionsURL as many searched for it in the Add-ons Manager
- Focused duplicates will now use inverted colors
- Using the a key name multiple times should work now
- Space will now be displayed as <VK_SPACE>
- Disabled shortcuts will now be displayed as <Disabled>
- Disabled shortcuts will not anymore be removed from the document, just from the <keyset> (and added to a <keyconfig> element) since that caused problems with some shortcuts (key_toggleMessagePane, key_errorConsole)
- The shortcut box will now be focused after adding a new key
- Removed all targetApplication from install.rdf except the Mozilla Toolkit
- All ][ should now be changed to ] [ (previously only the first was changed)
- Changed all <popup> to <menupopup>
- Modified the overlay to add a new <keyset> and <commandset> instead of using built-in as that could cause a duplicated shortcut in some Applications.
- The <keyset> will now always be detached/reattached on Apply/Disable (the keyconfig.tryToInvalidateCache has been removed)
- The keytext of a modified <key> will now also be removed
- Changes are applied to all open windows immediately
- Removed keyconfig.warnOnClose since that warning is gone
- Changed from uncompressed files inside jar and compressed jar to compressed files inside jar and uncompressed jar according to new Firefox recommendation
Older Changes.