====== Firefox Configuration Tips ===== [[wp>Firefox]] is, of course, one of the best browsers in the world, as well as my personal favorite. However, getting programs to your liking always takes a little bit of work. The resources below should expediate this process and shed some light on my personal configuration. **Note:** When installing an extension from a site other than https://update.mozilla.org, it will be necessary to add the site to the "Allowed Sites" list by clicking on the button in the yellow bar that appears at the top of the browser window. ===== Setup ===== When installing Firefox using the installer, be sure to select the "Developer Tools" option if you want to be able to use extensions such as the DOM Inspector, the Web Developer extension, as well as other programming related extensions. Many people miss this and then get confused about how to enable such tools. * Update plugin symlinks in Linux from existing Mozilla installation $> cd /usr/lib/mozilla-firefox/plugins && find /usr/lib/mozilla/plugins -type f -printf "%f\n" | xargs -i sudo ln -s /usr/lib/mozilla/plugins/{} {} ===== Extensions ===== These are some of my favorite [[https://update.mozilla.org/extensions/?application=firefox|extensions]] (aka plugins) for Firefox that I just cannot live without. I have made this page to serve as a reference for myself, but also to share with others the extensions that I find useful. I have split the list up into several categories based on user type. At times, I browse the web as an [[wp>luser]], requiring only the core functionality of the program. Even then I like my geek tools, which eliminate common annoyances that typical users wouldn't even recognize or find useful. However, when I really get down to work, I play the role of [[wp>uber|ubergeek]], requiring tools such as the javascript console, source view, and DOM structure. Finally, I list extensions which make firefox more than just a browser. ==== luser ==== * [[https://addons.update.mozilla.org/extensions/moreinfo.php?id=32&application=firefox&version=1.0|Focus Last Selected Tab (FLST)]] - Brings focus to the last tab that was selected when closing the active tab. Offers tabflipping. * [[https://addons.update.mozilla.org/extensions/moreinfo.php?id=357&application=firefox&version=1.0|SmoothWheel]] - Scrolls the document smoothly when scrolling the mouse wheel. * [[https://addons.update.mozilla.org/extensions/moreinfo.php?id=241&application=firefox&version=1.0|Disable Download Targets]] - Prevents sites spawning blank windows when clicking binary downloads. * [[https://addons.update.mozilla.org/extensions/moreinfo.php?id=256&application=firefox&version=1.0|Download Manager Tweak]] - Improves download manager appearance and allows it to be openned in a new tab * [[http://www.extensionsmirror.nl/index.php?showtopic=166|Session Saver]] - A number of session saving extensions that will help to recover previous browsing states. ([[http://forums.mozillazine.org/viewtopic.php?t=164513|Crash Recovery]] is minimal version) * [[http://extensionroom.mozdev.org/more-info/ctc|Close Tab Context (CTC)]] - Adds "Close Tab" to main context menu. * [[http://twanno.mozdev.org/installation.html|Duplicate Tab]] - Make a copy of the current tab when creating a new tab. * [[http://update.mozilla.org/extensions/moreinfo.php?id=79&application=firefox|Nuke Anything]] * [[http://update.mozilla.org/extensions/moreinfo.php?id=433&application=firefox|FlashBlock]] - Nothing slows down a site like a bunch of flash animations. Pick and choose which ones to run. * [[http://roachfiend.com/archives/2005/02/07/bugmenot/|BugMeNot]] - Bypass compulsory web registration via Firefox's context menu. ==== geek ==== * [[https://addons.update.mozilla.org/extensions/moreinfo.php?id=39&application=firefox&version=1.0|Mouse Gestures]] - Allows you to execute common commands (like forward/back) by performing mouse movements. * [[https://addons.update.mozilla.org/extensions/moreinfo.php?id=158&application=firefox&version=1.0|Tabbrowser Preferences]] - Enables enhanced control for tabbed browsing (tames links to work within the confines of tabs). * [[http://www.pikey.me.uk/mozilla/?extension=pc|Popup Counter]] - Keeps tally of number of popups blocked. * [[http://extensionroom.mozdev.org/more-info/clearhttpauth|Clear HTTP Auth]] - Clears HTTP authentication //(duplicate feature exists in WebDeveloper extension)// * [[http://dietrich.ganx4.com/foxylicious/|Foxylicious]] - Integrates your [[http://del.icio.us/|del.icio.us]] bookmarks into the bookmarks menu. * [[http://spellbound.sourceforge.net|Spellbound]] - Adds a spellchecking component to textareas and input boxes on web forms. //(requires some setup effort)// * [[http://dorando.emuverse.com/projects/mozilla/readme.html|Tab Dragging]] - Enables tabs to be reordered by dragging them //(no visual indicator))// ==== ubergeek ==== * [[http://www.chrispederick.com/work/firefox/webdeveloper/download/|Web Developer]] - The ultimate web development extension. * [[http://update.mozilla.org/extensions/moreinfo.php?id=36&application=firefox|Javascript Console Status]] //(not working in 1.0)// * [[http://www.pryan.org/mozilla/site/TheOneKEA/javaconsole/|Show Java Console]] - Enable "Show Java Console" tool. * [[http://addons.update.mozilla.org/extensions/moreinfo.php?id=315&application=firefox&version=1.0|View Cookies]] - Adds a tab to the Page Info dialog box, which shows the cookies of the current webpage. * [[https://update.mozilla.org/extensions/moreinfo.php?id=271&application=firefox|ColorZilla]] - Color picker for web pages. * [[http://extensionroom.mozdev.org/more-info/mozex|MozEx]] (primarily on Linux) ==== ...and beyond! ==== * [[http://update.mozilla.org/extensions/moreinfo.php?id=219&application=firefox|FoxyTunes]] - Control your media player from within firefox. * [[https://addons.update.mozilla.org/extensions/moreinfo.php?id=272&application=firefox&version=1.0|fireFTP]] - Completely integrated ftp client for firefox ===== Usability ===== **Embrace mouse gestures!!** I promise you, I am not just going on about some useless geek feature that I want you to try. Mouse gestures will practically change the way your browse (remember how much leg pulling had to be done to get tabs accepted?) It really isn't hard at all. To take your first step, simply right click and shuffle your mouse to the left. As you can see, you just performed the most commonly used feature of the web browser, //the back button//. __Everyone__ should be using mouse gestures. They are easy, ergonomic, and efficient. **Use mouse gestures!!** There is one change I just cannot live without. I much prefer the Reload gesture to be //GestureDown, GestureUp// rather than the other way around. I find it much hard to do the push-pull motion. But perhaps it is just me! ===== Themes ===== Currently, my favorite theme for Firefox is [[https://update.mozilla.org/themes/moreinfo.php?id=213|PlastikFox]]! **Update:** My theme interests have found a new home with [[http://www.tom-cat.com/mozilla/firefox.html|Mostly Crystal]]!! **Update again:** Lately I have just be using the default theme of Firefox, which integrates so nicely with Ubuntu's beautiful desktop. ===== Chrome Modifications ===== There are many well documented [[http://www.mozilla.org/support/firefox/tips|UI changes]] that can be made by adding special definitions to the userChrome.css file in the profile directory of mozilla. The changes listed below are either additional modifications or a variant of the changes listed on the mozilla page. ==== Move Sidebar to Right ==== The suggestion on the mozilla page is to use the right-to-left directive on the hbox selector. However, this causes the cursor in the application to become bidirectional and has all the elements of a hack. After reporting a bug to bugzilla, I learned that there is a cleaner way to achieve this desired behavior by using a proprietary mozilla style, -moz-box-direction. /* Place the sidebar on the right edge of the window */ window > hbox { -moz-box-direction: reverse; } ===== Key Bindings and Mouse Configuration ===== Many browsers seemed to have picked up on VIM-style keybindings for scrolling up and down which, in my opinion, makes reading websites much more comfortable. The two keys of which I am speaking are //k// and //j//, respectively. These bindings can be added by creating the file userHTMLBindings.xml in the mozilla/firefox program directory ${mozilla}/res/builtin/ with the following contents: In Gnome 2.8 (or just in Fedora, I don't know for sure) the default for advancing the next or previous tab is Ctrl-Tab and Ctrl-Shift-Tab respectively. For users coming from KDE, this is a change since those key combinations typically toggle desktops. If you are not using Gnome and you would like to use these settings, an extension named [[https://addons.update.mozilla.org/extensions/moreinfo.php?application=firefox&version=1&id=380|SwiftTabs]] will give you this option. For now, I am sticking to the Gnome defaults. If you use Firefox under Windows, this next part is automatic, but for the time being, getting all 7 buttons working requires some work under linux. Check out the follow [[http://www.gloegl.de/30.html|tutorial]] for configuring the appropriate z-axis mapping. ===== Optimizations ===== For broadband users, Firefox can be made to render pages much faster by issuing http requests in parallel rather than one after the other. It is termed [[wp>HTTP_pipelining|pipelining]]. To edit these preferences you need to open the configuration page of Firefox by typing the following into the address bar: about:config This will bring up a long list of Preferences. You can filter them by typing in the box labled "Filter": network.http.p At this point, make the following 3 changes and one addition to the list: * find **network.http.pipelining** and toggle the value to true by selecting //Toggle// from the context menu * find **network.http.proxy.pipelining** and toggle the value to true by selecing //Toggle// from the context menu * find **network.http.pipelining.maxrequest** and change it's value to 30 * CTRL+Click in an empty area and select //New > Integer// from the context menu. Enter the name in a pop-up window: **nglayout.initialpaint.delay** and set it's value to 500. (This value is the number of milliseconds firefox should wait before beginning to paint the page. You might want to experiment with it to find your preference.) A also like to modify the typeaheadfind feature in ways that the preferences dialog does not permit. Below are the three changes I typically make (again, keys in the about:config dialog): * find **accessibility.typeaheadfind** and toggle the value to true by selecting //Toggle// from the context menu * find **accessibility.typeaheadfind.autostart** and toggle the value to false by selecting //Toggle// from the context menu * find **accessibility.typeaheadfind.enabletimeout** and toggle the value to false by selecting //Toggle// from the context menu ===== Tricks ===== When working with tabs often, tab management becomes somewhat of an issue, if you are not aware of all the possible ways to manipulate them in advanced ways. First off, you should defintion get the tabbrowser preferences extension listed above, which adds all sorts of scenarios to the tabbrowsing preferences. With that in place, the following tricks will really help you to keep your tabs under wrap. * double-clicking on the tab bar will create a new tab at the end of the set * hitting ALT+Enter in either the search box or the location bar will open the resulting page in a new tab * middle clicking a link will open that link in a new tab * CTRL+k and CTRL+l will select and highlight the search box and the location bar, respectively (a huge time saver) * control when close button appears on tabs - [[http://kb.mozillazine.org/Browser.tabs.closeButtons|browser.tabs.closeButtons]] ===== Resources ===== * [[http://kb.mozillazine.org/Firefox_:_Tips|Firefox Tips]] (mozillaZine) * [[http://lesliefranke.com/sandbox/presentations/firefoxwdev/firefoxwdev.htm|Web Development with Firefox]] * [[http://www.456bereastreet.com/archive/200501/favourite_mozilla_and_firefox_extensions|Other Favorite Extensions]]