1. Extensions
    1. Installed
    2. In testing
    3. Might use again
    4. Previously used
  2. Surviving the XULocalypse
  3. Configuration
    1. Keybindings
  4. Remaining work
  5. History
  6. Remaining issues
  7. Alternative browsers

TL;DR: I use Firefox, for technical and political reasons. This page documents my config and why.

I run the "Quantum" version (57+) as it's a huge performance improvement, even on older machines. Some plugins fell by the wayside but I was able to find replacement for most of what I need. I installed it from the upstream tarballs on some machine, but I also tried using Snap which also works generally well. I documented that procedure in the Debian wiki. For machines running under buster or later, the quantum version is available as a Debian package (now ESR too!) so those hacks are not necessary.

Extensions

This section documents the Firefox add-ons I am using, testing, or have used in the past.

Installed

I have those extensions installed and use them very frequently:

Ideally, all of those should be packaged for Debian.

In testing

I am testing those and they might make it to the top list once I'm happy:

Those should probably not be packaged in Debian until they make it to the top list.

Might use again

Those were in testing for a while, then installed, but then I got tired of them...

Previously used

I once used those but eventually removed them for various reasons. Some are unsupported, non-free software, inconvenient, too hard to use or simply irrelevant.

Surviving the XULocalypse

I wasn't very affected by the "XULocalypse", or the removal of older "XUL" extensions from Firefox 60. My biggest blocker was it's all text! and I quickly found a replacement. Others have had more trouble, however, here are some references:

And here are the replacements I have found:

Those are the extensions I was using for which no replacement exists:

In my experience, if your upstream is still active, chances are the extension was ported, provided there are APIs for the feature. The new "webext" interface has the advantage of being almost directly compatible with Chrome extensions, which makes it easier to maintain a plugin across browsers but there are, as we can see, some limitations in the newer APIs.

For users that can't afford to switch over the the newer extensions, there are already two forks of Firefox created in direct response to the removal of XUL/XPCOM from Firefox 57:

It is unclear, however, whether those browsers will be sustainable in the long term.

Configuration

I have set the following configuration options, in a user.js file that I version-control into git:

I also set privacy parameters following this user.js config which, incidentally, is injected in temporary profiles started with this firefox-tmp script I use to replace chromium --temp-profile. This is part of the effort to sanitize default Firefox behavior in Debian.

I also override certain site's stylesheets in my ~/.mozilla/firefox/*/chrome/userContent.css CSS file. For example, this restricts the width of pages in the Debian wiki:

/* limit paragraph width to ease reading, and center */
@-moz-document domain(wiki.debian.org) {
    div#content { max-width: 60em !important; margin: auto !important; }
}
@-moz-document domain(lwn.net) {
    div.ArticleText { max-width: 60em !important; margin: auto !important; }
}

The syntax of this file is basically undocumented. Its location and basic usage is documented in MozillaZine but not much further.

I add some search engines that are misconfigured from Mycroft and import my set of Debian bookmarks for quick access to Debian resources.

More similar projects:

Keybindings

I use the default keybindings in Firefox, but try to bind some extensions by hand. I have also meddled with using the web browser without the mouse.

I was originally using vimperator for a while, until the XULocalypse anyway...

Since then, quite a few vimperator alternatives have popped up. tridactyl is possibly the most prominent one. tridactyl has some annoyances, like C-f being bound to "page down" although that can be disabled with :unbind <C-f>.

vimium-ff (vimium) and vim-vixen are also working alternatives right now, although the vimperator folks say they lack some features, I couldn't figure out which. Vimium has the major problem of not entering the "edit mode" (where keybindings are not effective) in text areas, or at least in Etherpad.

SurfingKeys is another vim-like extension.

pentadactyl is the father to all of those, but seems to have disappeared off the internet. vimfx also did not survive the XULocalypse.

There's also lighter versions like link hints and key jump.

Krabby, another of those implementations, has an interesting list of alternatives. Krabby itself is marked as inactive in Qutebrowser's list of alternatives, it hasn't had a commit since 2021 at the time of writing (April 2023).

Other dead alternatives include:

See also the builtin Firefox shortcuts.

Remaining work

My Firefox configuration is not fully automated yet. The user.js hacks above only go so far. For example, the search engine override doesn't seem to work anymore. Similarly, it is not possible to populate the following:

Bookmarks and search engines seems to be hackable through a distribution file (and a different one on mobile??), but I haven't figured out how that works just yet. It also seems extensions are going to become harder since Mozilla decided to stop sideloading for some obscure reason...

I miss the times where bookmarks where just that HTML file sitting in the profile directory...

History

I have been a long time user of the "Mozilla" family of web browsers. My first web browser (apart from lynx) was probably the venerable Netscape Navigator, which was eventually opened source into what was then called Pheonix and then Firefox. I eventually abandoned Firefox because of stability and features: an HTML5 video site would crash firefox, and when I tried it in Chromium, it worked, so I gave on up on Firefox then.

But now (Jan 2017) I have switched back to Firefox, mostly because of privacy reasons. There are multiple privacy issues in Chromium (which is supposed to be the unbranded version of the Google Chrome browser). Some infamous privacy intrusions were fixed, but others werent: bug Debian bug #792580 (phones home to DoubleClick and Google Analytics) was filed in 2015 and I confirmed it in 2016, and it's still not fixed. I have also found troubling the site engagement profile that Chromium builds on you (which carries over into the Incognito mode). I also had concerns that Chromium would keep history indefinitely, but it looks like it actually keeps it for 90 days. Firefox is now actually worst than Chromium in that regard as it keeps a dynamic number of pages instead of a configurable delay. I also had problems with Chromium not opening tabs when it's lacking focus (Debian bug #848930), a new regression that was really annoying as I visit a lot of websites... There's the ungoogled-chromium project which attempts to correct all of those issues, but that is yet another browser, and it's not packaged in Debian, so not really an option for me right now.

So long story short, I use firefox now. It's nice to root for the underdog anyways.

Remaining issues

My remaining concerns with Firefox, right now, are:

Alternative browsers

Even though writing a browser is hard these days, quite a few people have tried to tackle this. Here are some interesting alternatives here:

Dead browsers:

Created . Edited .