Make Firefox Australis finally usable

January 31, 2015

This post is regularly updated since every major version of Firefox breaks things...
Update on 21/05/2015 with Firefox 38 that broke the Options pop-up
Update on 24/09/2015 with Firefox 41 adding an annoying "Open all in tabs" last entry in the bookmarks menus and not opening "Show source" in a new window anymore
Update on 04/01/2016 with Firefox 43 adding a new menu in the "Omnibar" defaulting to search on the selected search engine insted of keyword.URL...
Update on 12/02/2016 with Firefox 44 adding a new entry in the "Tools" menu called "Start a conversation" related to Hello, unfortunately setting loop.enabled;false does not change anything (see reddit)... As suggested I installed yeat-another-extension-to-fix-Mozilla-messing-up-everything called Menu Filter.
Update on 01/03/2016 to remove Firefox 42 adding useless animations while typing in the Omnibar (reddit)
Update on 19/04/2017 with SSLeuth addedUpdate on 21/08/2017 with Firefox 55 breaking Status-4-Evar and adding "one-off searches" in address bar

Since version 29, Firefox has a revolutionary new interface called Australis. Unfortunately for me, when I tried this new GUI, it broke all my setup. My Firefox interface setup is stayed like the Firefox 3.* one. It means no tab bar shown when only one tab is available, the buttons next to the URL bar are in this order: previous, next, refresh, stop, home, URL bar, search bar, activity indicator and then some addons buttons (Note to self: it would be great to add image here).

Another must-have for me is the status-bar, where I can see the loading steps, the links on hover instantly. For a while I did not use at all tabs (to only use the Alt+Tab shortcut to switch between windows, not Alt+Tab between applications then Ctrl+Tab inside Firefox, plus Ctrl+Tab does not recycle order like Alt+Tab does), but the high memory consumption of Firefox forced me to use them. It's been a year since I made the switch, but it is still not as usable as before (I usually have to switch between numerous tabs, not next another, which is a bit of a pain).

At the release of Firefox 29, I tried to reproduce my setup, but I couldn't: previous/forward buttons could not be detached from the URL bar notably, even with the Classic Theme Restorer addon. This was a no-go for me, so I stayed for a while on Firefox 28.

I then discovered the Palemoon browser, a Windows-only x64 bits optimized version of Firefox, with decent defaults. But after using it for months, I discovered that development was really slow, that it was missing some important features of the new web (new HTML5 APIs, notably web audio) and did not backported them to its "classic" Firefox version. I encountered some addons incompatibilities (addons buttons disappearing mainly) too, as such as broken websites.

So yesterday, I tried to see if things had changed. And it did, in a good way (mainly on the Classic Theme Restorer part, hats off to the developer(s)).

Here are my steps to make Firefox usable again.

Addons

From a fresh install, I have to install these addons (in no particular order):

These were addons for strict usability. Now, the others:

about:config

  • browser.tabs.defaultDrawInTitlebar;false
  • browser.tabs.drawInTitlebar;false (these two options were reset when customizing interface or showing Addons menu)
  • keyword.URL;https://encrypted.google.com/search?hl=fr&ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q= (to be created on new fresh installs, in conjunction of keyword.URL Hack!) Mozilla finally broke it, use the Keyword Search addon with a custom search engine for Google Browse By Name as above
  • general.smoothScroll.other;false (this was set to false in previous versions...)
  • layout.word_select.stop_at_punctuation;true (useful for openSUSE ; KDE, see this)
  • browser.urlbar.doubleClickSelectsAll;false (useful for openSUSE ; KDE, see this)
  • browser.urlbar.clickSelectsAll;true (useful for openSUSE ; KDE)
  • browser.urlbar.trimURLs;false and its sister browser.urlbar.formatting.enabled;false
  • browser.ui.zoom.force-user-scalable;true (for Firefox Mobile)
  • browser.search.showOneOffButtons;false (see here... broken with Firefox 43, use this CSS in userChrome.css/Stylish found here or use CTR Options > General UI (1) -> Old search (experimental) as in this answer)
  • browser.search.context.loadInBackground;true (see here, don't focus on search results immediately)
  • privacy.trackingprotection.enabled;true (not related to Australis UI, but an interesting functionality not very much advertised by the Mozilla Foundation..., see here)
  • browser.preferences.inContent;false (yes, Mozilla finally broke the Options pop-up (Firefox 38.0) to make it a ugly tab with big buttons and font like if you are a visual impaired people (which probably use the accessibility options of their OS and do not rely on each software to help them))
  • view_source.tab;false (changed in Firefox 41)
  • browser.urlbar.unifiedcomplete;false (new annoying silent change introduced by Firefox 43, see ghacks for the source of this howto)
  • browser.aboutHomeSnippets.updateUrl;"" (annoying "snippets" on the about:home page pushing Mozilla ads, see link for proper configuration, you have to delete local cache at %APPDATA%\Mozilla\Firefox\Profiles\user\storage\permanent\moz-safe-about+home)
  • Some interesting entries on this ghacks page
  • browser.urlbar.autoFill;false (annoying default in address bar)
  • browser.xul.error_pages.expert_bad_cert;true (no need to click "Advanced" to accept a self-signed SSL certificate anymore)
  • browser.tabs.animate;false (more snappy Ctrl+Tab and Ctr+T by disabling these useless animations)
  • browser.urlbar.oneOffSearches;false (Firefox 55 addition, should be included in CTRpreferences.json)

Addons config

And now, the fun part. NB: Classic Theme Restorer lets one to export its configuration in plaintext to be imported for future deployments, this is the way to go easily here

  • In Classic Theme Restorer, import these preferences:
    • Tabs menu:
      • Squared tabs (classic)
      • Tabs on top (v1)
      • Insert related tab after current tab (about:config preference)
      • Tab close: (default)
      • Close window with last visible tab (about:config preference)
    • Tab colors & text menu: leave defaults
    • Application button menu:
      • Firefox titlebar (about:config preference): disabled (don't touch it, edit about:config as above)
      • Application button: Button disabled
    • General UI (1) menu:
      • Old search
      • Movable back-forward buttons
      • Page context menu: replace icons with labels (back, forward)
      • Private browsing: hide mask indicator
      • Panel menus: alternative background color
      • Panel menus: compact view(bookmarks, history, etc.)
      • Zoom controls on toolbar: hide zoom-reset button
      • New tab page: alternative appearance
    • General UI (2) menu:
      • Activity indicator
    • Location bar menu:
      • Star-button
      • RSS feed-button
      • Hide 'stop & reload' buttons
      • Favicon: current websites icon
      • Security icons
      • Green/blue button colors for verified websites and secure connections
    • Toolbars (1) menu:
      • default, except for 0 additional Toolbar(s)
    • Toolbars (2) menu:
      • Double click opens a 'new' tab (using browser.new.url)
    • Advanced menu:
      • Leave defaults
    • Classic Theme Restorer menu:
      • Leave defaults
  • In SettingSanity:
    • Disable Always show the tab bar in Tools/Options/Tabs
  • In Status-4-Evar:
    • In Status/General, disable protocol hiding
    • In Status/Location bar, disable domain highlighting
    • In Progress/Location bar, disable progres in the location bar
    • In Progress/Toolbar, always show the toolbar item
    • Leave defaults for other menus

userChrome.css

I was unable to to remove these useless and unusable big icons in context menu, so I had to create in my Firefox profile a chrome/userChrome.css file with this content:

/*
http://forums.mozillazine.org/viewtopic.php?p=13742939#p13742939
remove context menu back, forward entries and icons
*/

#context-back:before,
#context-forward:before,
#context-reload:before,
#context-stop:before,
#context-bookmarkpage:before{
   content: attr(aria-label) !important;
  -moz-margin-start:32px !important;
}
#context-navigation{
   -moz-box-orient: vertical !important;
}
#context-navigation > .menuitem-iconic {
  -moz-box-pack: start !important;
}

#context-navigation,
#context-sep-navigation {
  display:none !important;
}

Add this to the previous file to get rid of the annoying "Open all in tabs" entry menu in bookmarks (the trailing line separator is still there though)

/*
https://support.mozilla.org/questions/999609#answer-571672 combined with http://forums.mozillazine.org/viewtopic.php?p=317377#p317377
remove "Open all in tabs" entry menu in bookmarks
*/

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* only needed once */

.openintabs-menuitem,
.openintabs-menuseparator {
  display: none !important;
}

Add this to get rid of the Omnibar animations introduced in Firefox 42 (broken since Firefox 48, yay!):

#PopupAutoCompleteRichResult,
#PopupAutoCompleteRichResult * {
    animation: none !important;
    transition: none !important;
}

I should talk about the buttons' layout, but it would be better as images that I will post later.

TODO: it is possible to automatise all the about:config entries via user.js and the user_pref() function, see the end of this post for a simple example.

Finally, this is very sad to fight against new Mozilla Firefox releases that break usability against hip (who talked about a Google Chrome-alike appearance?). From Firefox 4, I had to install 6 addons to restore functions (I include Classic Theme Restorer, SettingSanity, Status-4-Evar, keyword.URL Hack!, Go and Show Parent Folder) broken or removed on new releases, without counting reset about:config preferences... I don't want to change my habits on the software I use the most on my computer at any new big release, I think this is the software that should adapt to the user, not the opposite.