Shortkeys (Custom Keyboard Shortcuts) for Firefox v4.0.2
***Important:
You have to refresh already opened web pages after installing shortkeys to make it work on them, better yet - restart the browser after installing the extension.
If your shortcut does not work when an input is focused, this can be turned off in Shortcut Options -> Activation Settings -> ticking the option Active while in form fields
Current limitations based on the Firefox API (more details on github):
- shortkeys only works in the context of a loaded page. What does *NOT* work is: new tab page, addons page, or any other internal pages such as about:config,about:newtab,about:addons, etc.
- shortkeys cannot override Firefox default shortcuts such as: ctrl+j, alt+d and
others using the "Do nothing" action *outside of the webpage* e.g. the default firefox chortcut will still work in the url bar/ search bar - shortkeys does not work in the url bar or the search bar, it only works in the context of a webpage
- shortkeys will start working when the page has finished loading, not *right* after you opened a page, or clicked a link (this annoys me, too, but yeah - API Limitation:(
Shortkeys makes it easy to add custom shortcuts to your browser for the following actions:
- Run custom JS
- Do nothing (for disabling a Firefox shortcut you don't like, in the context of the page, not the whole browser window - explained above)
- Open a bookmark or bookmarklet
- Scroll up/down/left/right by a little or a lot
- Scroll to the top or bottom of the page
- Go back or forward in history
- Jump to existing tab by URL
- Open new tab with URL
- Switch to the previous/next/first/last tab
- Create a new tab or close the current tab
- Clone the current tab
- Close all (unpinned) tabs except for current tab
- Reload the page
- Copy the current URL
- Pin/Unpin the current tab
- Move the current tab left or right
- Zoom in/out/reset
- Blacklist or whitelist specific shortcuts on specific sites
- Clear downloads (page and bar)
- Click button and switch to next tab (for Tribal Wars players)
Shortkeys allows for enabling or disabling key combos while you're currently focused on a form field, so you can have keyboard shortcuts like "r" or "shift+h" and still be able to type those values into a form without triggering the shortcut if you want. You can also blacklist or whitelist sites per-shortcut, to pick and choose which shortcuts you don't want active on which sites (this field also supports regular expressions in the following format: /regexp/). Shortkeys lets you use pretty much any key combo you want. Key combos are zero or more modifier keys (including ⇑, shift, option, ⌥, alt, ctrl, control, command, and ⌘), and one action key (letter, number, punctuation, or special key shown below), combined with + signs. Examples: "shift+r", "k", "ctrl+alt+f7", "command+pageup", etc. You can also string multiple key combos together to make key sequences (like how Gmail has "g i" to go to inbox). Examples: "g g" or "ctrl+t shift+f7". Special action keys that can be used include backspace, tab, clear, enter, return, esc, escape, space, up, down, left, right, home, end, pageup, pagedown, del, delete and f1 through f19 (make sure the F keys are specified in lowecase e.g. f1).
Shortkeys requires the "Your data on all websites" permission because it's the only way to inject JavaScript code into every page, and injecting JavaScript code into every page is the only way to get Firefox to recognize custom shortcuts. If you try to register key listeners (i.e., create shortcuts) outside the context of the page, then they will be ignored by Firefox. I promise that the code that runs on the pages you visit only checks the URL against the blacklists you have set, and adds the shortcuts if they're not blacklisted. That's it. Shortkeys also requires read/write clipboard permissions so that import and export from clipboard can function. If you're still nervous, you're more than welcome to look at the source code: https://github.com/mikecrittenden/shortkeys