This is a homepage for the "keyfixer" Extension for Firefox and Thunderbird. Keyfixer is a Mozilla Extension (a type of add-on) that changes the key bindings for Mac OS X users to behave like Windows key bindings. For example, Home/End move the cursor to the beginning/end of the current line instead of the top/bottom of the window.
Current Version: 0.5
You can also directly download keyfixer 0.4.3 here (not recommended). By default, Firefox will block this download, so you'll need to click "Allow" when the yellow message appears at the top.
- keyfixer_0-4-3.xpi - Extension installer
Keyfixer 0.5 on Mozilla's website is the officially maintained version. Mozilla now automatically tests and updates the compatible version for Firefox without my direct intervention. Thunderbird testing will sometimes lag, so you may have to occasionally bug me to update the Thunderbird version. I don't use Thunderbird anymore, so this variant is not directly supported anymore.
The source code is otherwise unchanged since about May 2009.
Nov 5, 2009
Keyfixer 0.4.3 has been uploaded to Mozilla's add-on site. This version changes the Firefox max-version to 3.6.* and the Thunderbird max version to 3.0.*, in anticipation of the imminent releases of these versions. There were no other changes.
May 12, 2009
Keyfixer 0.4.2 is now a publicly available plug-in!
March 17, 2009
I've submitted keyfixer 0.4.2 again for consideration as a publicly available extension on Mozilla's website. If this is accepted, then you'll all get automatic updates from Mozilla instead of having to check. Please let me know if you have any reviews of keyfixer that I can use to strengthen the case (matt dot ball at ieee dot org).
March 16, 2009
Keyfixer 0.4.2 is now available, with a simple change to allow it to install on all Firefox 3.1 versions.
Dec 31, 2008
As of Dec 31, 2008, the request to make keyfixer a public was rejected with the following comments:
Quote from the reviewer:
- One of the requirements to go public on addons.mozilla.org is that your add-on must have some reviews either on AMO or elsewhere on the web. See Reviews on AMO for some ideas on how to do that. If you have non-AMO hosted reviews (e.g. on blogs, forums, etc... please send those links in). Once you have those reviews in place, please renominate to go public on AMO.
- We are looking for at least 3 comprehensive and detailed reviews about the functionality of the add-on.
You can view older releases here: All Keyfixer releases
Changes from 0.4.1 to 0.4.2
- Increased maxVersion from 3.1b3pre to 3.2a1pre. This will allow you to install keyfixer on any Firefox 3.1 build.
Changes from 0.4 to 0.4.1
- Binds both Control and Command to the text navigation and editing short-cuts. 0.4 only binds the Command key.
- Note: The control key is not made available for all short-cuts, like Ctrl-T and such. It's only for the cursor navigation keys.
Downloading the source
For version 0.4.2 and earlier, all versions of keyfixer are maintained in a Mercurial distributed version control system. You can download the source by first installing mercurial (version 1.1.2 or higher) and running this command:
hg clone http://mavaball.net/files/keyfixer my_keyfixer_dir
- Mozilla Extension: keyfixer_0-4.xpi
- Source: keyfixer_0-4-src.tar.gz
- Support: Blog Entry for Comments
- Supports Thunderbird (version 2.0.0.*) and Firefox (version 2.0.0.*, 3.0.*, and 3.1)
- Now distributed as an Extension, so that you don't have to uninstall and reinstall every time Firefox or Thunderbird is upgraded
- Uses all the Windows key bindings, not just home and end. However, some don't work (like Ctrl-Ins) due to higher-level system key bindings that override.
- Cmd-Left/Right Arrow doesn't move between words when composing a GMail message. This is a GMail issue.
- Shortcuts that use the "Insert" key don't work, probably because Mac OS X uses this key for help or something (I get a question mark sometimes when I press it). Most Mac keyboards don't have this button anyways, so it's possible that most people won't notice.
Keyfixer v0.3 was released in May 2008 and is described here.
This version does not work with Thunderbird or with Firefox 3.1, and has a relatively small set of key bindings.
For this version, you need to uninstall the extension before upgrading, then reinstall it afterward.
Keyfixer v0.2 was published by Jim Mendenhall of Starry Hope in April 2007.
This version stopped working around Firefox version 126.96.36.199, which prompted the release of version 0.3.
Note: Jim has switched off of Mac and onto Ubuntu Linux, and hasn't posted about Mac programming ever since.
Keyfixer v0.1 was published by Jim Mendenhall in November 2006. See background blog here.
Keyfixer is a very light-weight Firefox plugin that simply replaces the existing
platformHTMLBindings.xml file (located in Chrome.jar). If you want to manually change your own key bindings, the general process is to unzip keyfixer, edit
platformHTMLBindings.xml, and re-zip keyfixer. You can do this by starting with the 'source' or with the extension itself. Using the source is easier for doing lots of iterations, but using the extension is probably faster for a one shot, or if you don't have good tools.
Description of files
- keyfixer_0.4.1/content/platformHTMLBindings_new_2.xml - New key bindings for Firefox/Thunderbird 2.x
- keyfixer_0.4.1/content/platformHTMLBindings_new_3.xml - New key bindings for Firefox 3.0.x
- keyfixer_0.4.1/content/platformHTMLBindings_ref_2.xml - Reference (default) key bindings for Firefox/Thunderbird 2.x
- keyfixer_0.4.1/content/platformHTMLBindings_ref_3.xml - Reference (default) key bindings for Firefox 3.0.x
- keyfixer_0.4.1/content/keyfixer.png - keyfixer's icon
- keyfixer_0.4.1/chrome.manifest - Tells Chrome (i.e., the Firefox/Thunderbird user interface) how to override the platformHTMLBindings.xml file
- keyfixer_0.4.1/install.rdf - Describes the extension to Firefox/Thunderbird when installing it
Hacking the Source
- Download keyfixer_0-4-1_src.tar.gz
- unzip this source:
tar -xvzf keyfixer_0-4-1_src.tar.gz
- Open the correct platformHTMLBindings.xml file for your system:
- For Firefox/Thunderbird 2.x, open keyfixer_0.4.1/content/platformHTMLBindings_new_2.xml
- For Firefox 3.0.x, open keyfixer_0.4.1/content/platformHTMLBindings_new_3.xml
- Using a text editor, directly edit the XML to update the key bindings you want. Look at the existing key bindings and comments to help you out.
- Save this file.
keyfixer_0.4.1/build.shto generate the XPI file
- Install this XPI file into Firefox/Thunderbird as you would any other extension.
Hacking the XPI
There are two tricks here:
- Files with a .xpi extension are just .zip files
- Files with a .jar extension are just .zip files
To hack the .xpi file, unzip keyfixer_0-4-1.xpi using 'unzip' (or winzip or pkunzip, etc) and also unzip the resulting .jar file within the Chrome directory. Change the appropriate
platformHTMLBindings.xml files, and re-zip everything in the reverse order you unzipped them.
Let me know if you have any questions or find any problems with these (quickly written and unverified) instructions. (leave a comment on the Blog Entry).
Here is a list of feature requests for keyfixer:
- Olly - A preferences dialog would be most welcome. I'd like to be able to switch the behavior of Ctrl-Left/Right to Alt-Left/Right since Spaces on Leopard already uses Ctrl-Left/Right
Keyfixer is in the public domain and can be used for any purpose you want.
keyconfig - A similar Extension
The 'keyconfig' Mozilla Extension also allows the user to change key bindings, but keyconfig cannot change all keys that keyfixer changes and vice-versa. This is because of the Mozilla architecture, and design choices between keyconfig and keyfixer.
keyconfig complements keyfixer, allowing the user to change a higher range of key bindings.