Reputation: 28385
Is there a way to customize Firebug's keyboard shortcuts? I love being able to step through JavaScript code using Firebug's Script panel, but it looks like I'm limited to either using the default keyboard shortcuts for stepping over/into/out of code or using the mouse to click the appropriate button.
Am I missing something?
Is there some secret about:config hack in Firefox/Firebug that would help me?
Upvotes: 12
Views: 1973
Reputation: 20125
While it is possible to change the shortcuts within Firebug's source code, there is also a way to add different keys for those actions without touching the source.
To do so you have to install an extension, which allows you to define custom shortcuts like Dorando keyconfig.
Steps to do for that extension:
Screenshots for clarification:
* That is the value of the oncommand
attribute. So, if you want to add a shortcut for resuming the JavaScript execution, you need to copy Firebug.Debugger.resume(Firebug.currentContext)
from the cmd_firebug_resumeExecution
command.
Upvotes: 0
Reputation: 1327224
As stated in their discussion forum, you can try keyconfig... otherwise, it is a known bug/limitation.
Upvotes: 6
Reputation: 25210
You can change them manually. Go to this directory:
In recent versions the extension comes in a single file with the extension XPI. Just rename it to ZIP, create a directory and extract its contents into it.
Linux:
.mozilla/firefox/*****.default/extensions/[email protected]/
Windows:
%APPDATA%\Mozilla\Firefox\Profiles\<profile>\extensions\[email protected]\
Then modify this file (these are my remapping settings):
content/firebug/debugger/script/scriptPanel.js (Firebug 2.0)
this.keyListeners =
[
chrome.keyCodeListen("F5", Events.isShift, Obj.bind(this.rerun, this, context), true),
chrome.keyCodeListen("F5", null, Obj.bind(this.resume, this, context), true),
chrome.keyCodeListen("F6", null, Obj.bind(this.stepOver, this, context), true),
chrome.keyCodeListen("F7", null, Obj.bind(this.stepInto, this, context)),
chrome.keyCodeListen("F8", null, Obj.bind(this.stepOut, this, context))
];
content/firebug/js/scriptPanel.js (before Firebug 2.0)
this.keyListeners =
[
chrome.keyCodeListen("F5", null, Obj.bind(this.resume, this, context), true),
chrome.keyListen("/", Events.isControl, Obj.bind(this.resume, this, context)),
chrome.keyCodeListen("F6", null, Obj.bind(this.stepOver, this, context), true),
chrome.keyListen("'", Events.isControl, Obj.bind(this.stepOver, this, context)),
chrome.keyCodeListen("F7", null, Obj.bind(this.stepInto, this, context)),
chrome.keyListen(";", Events.isControl, Obj.bind(this.stepInto, this, context)),
chrome.keyCodeListen("F8", null, Obj.bind(this.stepOut, this, context)),
chrome.keyListen(",", Events.isControlShift, Obj.bind(this.stepOut, this, context))
];
In versions before 2.0 you should also change the localization file, so the tooltips should the correct keys:
locale/en-US/firebug.properties
firebug.Continue=Continue (F5)
firebug.StepOver=Step Over (F6)
firebug.StepInto=Step Into (F7)
firebug.StepOut=Step Out (F8)
And that is all. Unfortunately, you have to do it every time you update Firebug. Though there is already a request to allow their customization directly within Firebug.
Upvotes: 8
Reputation: 176229
Another option would be to configure the shortcuts manually in file
%APPDATA%\Mozilla\Firefox\Profiles\<profile>\extensions\[email protected]\content\firebug\browserOverlay.xul
For example, I removed the shortcut on F12 by commenting the corresponding section because it conflicts with the Undo Closed Tab shortcut of Tab Mix Plus.
Disadvantage: An update of Firebug will overwrite the modified configuration.
Upvotes: 1
Reputation: 37663
As @VonC mentioned, there is an open ticket on this. In my experience, keyconfig doesn't work for this purpose. I did write a patch that allows for the debugger execution control keys to be customized in about:config. I have also posted an XPI with this fix if you don't want to wait for it to be accepted upstream, and/or you don't want to build it yourself.
Upvotes: 2