Add-ons

Firefox is well known for its large library of add-ons which can be used to add new features or modify the behavior of existing features. Firefox's "Add-ons Manager" is used to manage installed add-ons or find new ones.

arch-firefox-search

Configuration

Firefox exposes a number of configuration options. To examine them, enter in the Firefox address bar:

about:config

Once set, these affect the user's current profile, and may be synchronized across all devices via Firefox Sync. Please note that only a subset of the about:config entries are synchronized by this method, and the exact subset may be found by searching for services.sync.prefs in about:config. Additional preferences and third party preferences may be synchronized by creating new boolean entries prepending the config value with services.sync.prefs.sync (documentation is still applicable.) To synchronize the whitelist for the extension NoScript:

services.sync.prefs.sync.capability.policy.maonoscript.sites

The boolean noscript.sync.enabled must be set to true to synchronize the remainder of NoScript's preferences via Firefox Sync.

Firefox also allows configuration for a profile via a user.js file: user.js kept in the profile folder, usually ~/.mozilla/firefox/xxxxxxxx.default/. For a useful starting point, see e.g custom user.js which is targeted at privacy/security conscious users.

One drawback of the above approach is that it is not applied system-wide. Furthermore, this is not useful as a "pre-configuration", since the profile directory is created after first launch of the browser. You can, however, let firefox create a new profile and, after closing it again, copy the contents of an already created profile folder into it.

Sometimes it may be desired to lock certain settings, a feature useful in widespread deployments of customized Firefox. In order to create a system-wide configuration, follow the steps outlined in Locking preferences:

Starting with version 54, Firefox uses PulseAudio for audio playback and capture. For sound to work, you need to install the pulseaudio package.

In case, for whatever reason, PulseAudio is not an option for you, you can use apulse instead. To make this work, it is necessary to exclude /dev/snd/ from Firefox' sandboxing by adding it to the comma-separated list in about:config:

Open-with extension

In the dialog select a video streaming capable player (e.g. /usr/bin/mpv).

(Optional step) Add needed arguments to the player (e.g. you may want --force-window --ytdl for mpv)

(Optional step) Choose how to display the dialogs using the left panel.

Right click on links or visit pages containing videos. If the site is supported, the player will open as expected.

The same procedure can be used to associate video downloaders such as youtube-dl.

Dictionaries for spell checking

Install the hunspell package. You also need to install dictionaries for your language, such as hunspell-fr (for the French language) or hunspell-he (for Hebrew).

By default, Firefox will try to symlink all your hunspell dictionaries in /usr/lib/firefox/dictionaries/. If you want to have less dictionaries offered to you in Firefox, you can remove some of those links. Be aware that it may not stand an upgrade of Firefox.

To enable spell checking for a specific language right click on any text field and check the Check Spelling box. To select a language for spell checking to you have right click again and select your language from the Languages sub-menu.

To get more languages just click Add Dictionaries... and select the dictionary you want to install from the list.

Install mozilla-extension-gnome-keyring-gitAUR (all-JavaScript implementation) to integrate Firefox with GNOME Keyring. To make firefox-gnome-keyring use your login keychain, set extensions.gnome-keyring.keyringName to "login" (without the double quotes) in about:config. Note the lowercase 'l' despite the the keychain name having an uppercase 'L' in Seahorse.

To make the left mouse button warp the scrollbar instead of the middle one on KDE, go to System Settings > Application Style > GTK and set the checkbox for "Left mouse button warps scrollbar".

Plugins

Note: Firefox has removed support for NPAPI plugins, except for Flash. Firefox ESR 52 will support plugins until August 2018.

Font troubleshooting

Firefox has a setting which determines how many replacements it will allow from fontconfig. To allow it to use all your replacement-rules, change gfx.font_rendering.fontconfig.max_generic_substitutions to 127 (the highest possible value).

Setting an email client

Inside the browser, mailto links by default are opened by a web application such as Gmail or Yahoo Mail. To set an external email program, go to Preferences > Applications and modify the action corresponding to the mailto content type; the file path will need to be designated (e.g. /usr/bin/kmail for Kmail).

Outside the browser, mailto links are handled by the x-scheme-handler/mailto mime type, which can be easily configured with xdg-mime. See Default applications for details and alternatives.

Middle-click errors

A common error message you can get while using the middle mouse button in Firefox is:

The URL is not valid and cannot be loaded.

Another symptom is that middle-clicking results in unexpected behavior, like accessing a random web page.

The reason stems from the use of the middle mouse buttons in UNIX-like operating systems. The middle mouse button is used to paste whatever text has been highlighted/added to the clipboard. Then there is the possibly conflicting feature in Firefox, which defaults to loading the URL of the corresponding text when the button is depressed. This can be easily disabled by going to about:config and setting the middlemouse.contentLoadURL option to false.

Alternatively, having the traditional scroll cursor on middle-click (default behavior on Windows browsers) can be achieved by searching for general.autoScroll and setting it to true.

Backspace does not work as the 'Back' button

According to mozillaZine, the Backspace key was mapped based on which platform the browser was running on. As a compromise, this preference was created to allow the Backspace key to either go back/forward, scroll up/down a page, or do nothing.

To make Backspace behave like the back button and go back one page in the session history, set browser.backspace_action to 0 in about:config.

To have the Backspace key scroll up one page and Shift+Backspace scroll down one page, set browser.backspace_action to 1. Setting this property to any other value will leave the key unmapped (Arch Linux defaults to 2, in other words, it is unmapped by default).

Firefox does not remember login information

It may be due to a corrupted cookies.sqlite file in Firefox's profile folder. In order to fix this, just rename or remove cookie.sqlite while Firefox is not running.

Unreadable input fields with dark GTK+ themes

Notes: Anything on that page might be in troubleshooting section as well, so let us keep the info in one place. (Discuss in Talk:Firefox#)

When using a dark GTK+ theme, one might encounter Internet pages with unreadable input and text fields (e.g. Amazon can have white text on white background). This can happen because the site only sets either background or text color, and Firefox takes the other one from the theme. See Firefox Bug 1283086.

This can be prevented by setting browser.display.use_system_colors to false in about:config, which will stop Firefox using your theme's colors in web pages.

"Do you want Firefox to save your tabs for the next time it starts?" dialog does not appear

Silently fails when installing desktop apps from marketplace

Installation of apps from Firefox OS Marketplace will silently fail if there is no ~/.local/share/applications folder.

Firefox detects the wrong version of my plugin

When you close Firefox, the latter saves the current timestamp and version of your plugins inside pluginreg.dat located in your profile folder, typically in ~/.mozilla/firefox/xxxxxxxx.default/.

If you upgraded your plugin when Firefox was still running, you will thus have the wrong information inside that file. The next time you will restart Firefox you will get that message Firefox has prevented the outdated plugin "XXXX" from running on ... when you will be trying to open content dedicated to that plugin on the web. This problem often appears with the official Adobe Flash Player plugin which has been upgraded while Firefox was still running.

The solution is to remove the file pluginreg.dat from your profile and that is it. Firefox will not complain about the missing file as it will be recreated the next time Firefox will be closed. [2]

Javascript context menu does not appear on some sites

In about:config, unset the dom.w3c_touch_events.enabled setting.

Firefox does not remember default spell check language

The default spell checking language can be set as follows:

Type about:config in the address bar.

Set spellchecker.dictionary to your language of choice, for instance en_GB.

Notice that the for dictionaries installed as a Firefox plugin the notation is en-GB, and for hunspell dictionaries the notation is en_GB.

When you only have system wide dictionaries installed with hunspell, Firefox might not remember your default dictionary language settings. This can be fixed by having at least one dictionary installed as a Firefox plugin. Notice that now you will also have a tab Dictionaries in add-ons.

Tearing video in fullscreen mode

Firefox ESR 52 looks bad

Firefox 52 does not support GTK+ >=3.20 and may look unsightly as a result. A possible resolution is compiling Firefox against GTK2 instead, see firefox-esr-gtk2AUR.

Firefox WebRTC module cannot detect a microphone

WebRTC applications for instance Firefox WebRTC getUserMedia test page say that microphone cannot be found. Issue is reproducible for both ALSA or Pulseaudio setup. Firefox debug logs show the following error: