Hacking Mozilla Firefox keyboard shortcuts

I may be old and crusty but that's not my problem. I simply want control-h to work as backspace, they way God intended. The extensive shortcut mappings in Firefox cause it to show the history sidebar instead. There has to be a way around this.

Fortunately, Firefox is implemented in XUL, so the description of much of the behavior is in text form, not coded in binary. You just have to know where to look for it. My instance of Firefox is installed at /opt/firefox (and yes, I will end up changing it for everyone sharing this computer, but that's only me), so we do our work there

For my purposes, it was sufficient to just assign the showHistory to another key. What we do is extract the key definitions from the .jar file containing them, modify and replace.

        % cp /opt/firefox/chrome/en-US.jar .
        % mkdir tmp
        % cd tmp
        % unzip ../en-US.jar
        % vi locale/browser/browser.dtd
Now it gets more interesting. This file is the definitions of the entities used in broswer.jar:content/browser/browser.xul (which you can hack with the same technique). I located the this line
        <!ENTITY historySidebarCmd.commandKey   "h">
and simply remapped to some other poor slob, like 'z', giving this:
        <!ENTITY historySidebarCmd.commandKey   "z">
All that's left is to put it back in the jar and go
        % jar -u0f ../en-US.jar locale/browser/browser.dtd
	% sudo cp ../en-US.jar /opt/firefox/chrome/en-US.jar
Close all your open firefox instances and restart. It almost works. Now control-h sends you back a page. Someday I'll figure it out the way I like it. Until then, maybe this information will serve as a guideline to someone else.

Disclaimer: Don't blame me if these instructions don't work for your version of firefox. Make sure you have an installation kit downloaded *BEFORE* you try something like this, just in case firefox goes paws up after your surgery.