Firefox

Firefox is a popular open source graphical web browser from Mozilla.

Installing

Firefox can be installed with the firefox package.

Other alternatives include:

  • Firefox Developer Edition for developers
https://www.mozilla.org/firefox/developer/ || firefox-developer-edition
  • Firefox Beta cutting-edge version
https://www.mozilla.org/firefox/channel/desktop/#beta || firefox-betaAUR or firefox-beta-binAUR

A number of language packs are available for Firefox, other than the standard English. Language packs are usually named as (where languagecode can be any language code, such as de, ja, fr, etc.). For a list of available language packs see firefox-i18n for firefox, firefox-developer-edition-i18n for and firefox-nightly- for .

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.

For instructions on how to install add-ons and a list of add-ons, see Browser extensions.

Adding search engines

Search engines may be added to Firefox by creating bookmarks with the Location field using search URLs completed with %s in place of the query and the field completed with user-defined characters:

Location:
https://duckduckgo.com/html/?q=%s
Keyword:
d

Searches are performed by pre-pending the search term with the keyword of the specified search engine: will query DuckDuckGo using the search term

Search engines may also be added to Firefox through add-on extensions, see this page for a list of available search tools and engines.

A very extensive list of search engines can be found at the Mycroft Project.

Also, you can use the add-to-searchbar extension to add a search to your search bar from any web site, by simply right clicking on the site's search field and selecting Add to Search Bar...

Install the package to add Arch-specific searches (AUR, wiki, forum, packages, etc) to the Firefox search toolbar.

Plugins

Support for all plugins, including Flash Player, was removed in Firefox 85.

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 entries are synchronized by this method, and the exact subset may be found by searching for in . Additional preferences and third party preferences may be synchronized by creating new boolean entries prepending the value with services.sync.prefs.sync. To synchronize the whitelist for the extension NoScript:

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

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

Settings storage

Firefox stores the configuration for a profile via a in the profile folder, usually .

Firefox also allows configuration for a profile via a user.js file: user.js kept also in the profile folder. A user.js configuration supersedes a . 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:

1. Create :

pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");

2. Create (this stores the actual configuration):

//
//...your settings...
// e.g to disable Pocket, uncomment the following lines
// lockPref("extensions.pocket.enabled", false);
// lockPref("browser.newtabpage.activity-stream.feeds.section.topstories", false);

Please note that the first line must contain exactly . The syntax of the file is similar to that of user.js.

Multimedia playback

Firefox uses FFmpeg for playing multimedia inside HTML5 and elements. Go to video-test page or audio-test page to check which formats are actually supported.

Firefox uses PulseAudio for audio playback and capture. If PulseAudio is not installed, Firefox uses alsa instead.

Tip:

Firefox might not play video if audio is not configured. If you are intending to use PipeWire and WirePlumber make sure they are working properly

HTML5 DRM/Widevine

Widevine is a digital rights management tool that Netflix, Amazon Prime Video, and others use to protect their video content. It can be enabled in Preferences > General > Digital Rights Management (DRM) Content. If you visit a Widevine-enabled page when this setting is disabled, Firefox will display a prompt below the address bar asking for permission to install DRM. Approve this and then wait for the "Downloading" bar to disappear, you are now able to watch videos from Widevine protected sites.

Firefox can only play 720p video (or lower) with Widevine, due to not using hardware DRM playback. It is also required that the private mode browsing is disabled, for the window and in the preferences.

Open With extension

  1. Install Open With add-on.
  2. Go to Add-ons > Open With > Preferences.
  3. Proceed with instructions to install a file in your system and test the installation.
  4. Click Add browser.
  5. In the dialog write a name for this menu entry and command to start a video streaming capable player (e.g. /usr/bin/mpv).
  6. (Optional step) Add needed arguments to the player (e.g. you may want for mpv)
  7. Right click on links or visit pages containing videos. Select newly created entry from Open With's menu and 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.

Hardware video acceleration

Hardware video acceleration via VA-API is available under Wayland and Xorg .

To enable VA-API in Firefox:

  1. Ensure that your video card is correctly configured for VA-API:
  2. Ensure WebRender is enabled.
    • Verify WebRender is enabled by opening and then . It is enabled by default in GNOME and other desktop environments .
      • Ensure you are not running Software WebRender as that will not work as of August 2021 .
      • If necessary, Hardware WebRender can be force enabled by setting to true.
  3. Set the following flags in :
    • to true in order to enable the use of VA-API with FFmpeg.
    • media.ffvpx.enabled to to disable the internal decoders for VP8/VP9. This is necessary despite this bug being fixed .
    • to true to enable hardware VA-API decoding for WebRTC .
    • media.rdd-vpx.enabled to to disable the remote data decoder process for VP8/VP9. Firefox attempts to use the RDD process for VP8/VP9 but the RDD sandbox blocks VA-API access . Disabling the remote data decoder for VP8/VP9 process means VA-API will run in the content process instead. In Firefox 96 mostly working support for running VA-API in the RDD process was added.
      • Another possible workaround is to completely disable the RDD process by setting to , instead of just disabling it for VP8/VP9 as above.
    • On Intel, in some cases VA-API might not work with the Intel iHD driver . This might be workaroundable by using the Intel i965 driver . This workaround does not work anymore with Intel Iris Xe graphics, which are only supported by . Luckily Firefox 96 introduced better support for the RDD Process, which should help with . .
      • As a last resort, the content process sandbox can be disabled. However, this is a serious security risk and disables protection against attackers. It is recommended to leave the sandbox settings as default . Nevertheless, to disable the content sandbox set to .
  4. Run Firefox with the following environment variable enabled:
    • In Wayland, with , see #Wayland.
    • In X.org, since 94, Firefox will run in EGL mode by default which is sufficient .
      • For older releases, in X.org, enable EGL with MOZ_X11_EGL=1 or set to true and to in .

Spell checking

Firefox can use system-wide installed Hunspell dictionaries as well as dictionaries installed through its own extension system.

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.

When your default language choice does not stick, see #Firefox does not remember default spell check language.

System-wide Hunspell dictionaries

Install Hunspell and its dictionaries for the languages you require.

Dictionaries as extensions

To get more languages right click on any text field and just click Add Dictionaries... and select the dictionary you want to install from the Dictionaries and Language Packs list.

KDE integration

  • To bring the KDE look to GTK applications (including Firefox), install and . Afterwards, go to System Settings and in Appearance > Application Style > Configure GNOME/GTK Application Style… choose 'Breeze'.
  • To use the KDE file selection and print dialogs in Firefox 64 or newer, install xdg-desktop-portal and , then do one of the following:
  • For integration with KDE MIME type system, proxy and file dialog, one can use variant from AUR with OpenSUSE’s patches applied. Alternatively, integration with MIME types can be achieved by creating a symbolic link to the MIME database from the deprecated ~/.local/share/applications/mimeapps.list that is used by Firefox. See XDG MIME Applications#mimeapps.list.
  • Extensions/add-ons may provide additional integration, such as:

Tips and tricks

For general enhancements see Firefox/Tweaks, for privacy related enhancements see Firefox/Privacy.

Dark themes

If a dark GTK theme is in use (e.g. Arc Dark), it is recommended to start Firefox with a brighter one (e.g. Adwaita). See GTK#Themes and Firefox/Tweaks#Unreadable input fields with dark GTK themes for more information.

Alternatively, starting with Firefox 68 you can make all the Firefox interfaces and even other websites respect dark themes, irrespective of the system GTK theme and Firefox theme. To do this, set to 1 in .

As of Firefox 100, further control of the dark theme of web pages that opt-in (using the CSS media query prefers-color-scheme) and Firefox's own in-content pages is possible with . Setting this to 3 will follow the browser theme, setting this to will follow the system wide dark-mode preference ( as above, which defaults to if the user has not changed the dark-mode preference or if a system doesn't support a system-wide dark-mode preference), while 1 and will always force light-mode and dark-mode respectively. This setting can also be accessed through the user settings of Firefox under General > Language and Appearance > Website appearance.

Frame rate

If Firefox is unable to automatically detect the right value, it will default to 60 fps. To manually correct this, set to the refresh rate of your monitor (e.g. 144 for 144 Hz).

Memory limit

To prevent pages from abusing memory (and possible OOM), we can use Firejail with the option.

New tabs position

To control where new tabs appears (relative or absolute), use and . See for more information.

Screenshot of webpage

You can Take a Screenshot by either using the screenshots button that can be added to the toolbar from the customize screen in the Hamburger menu at More tools > Customize toolbar, by pressing ctrl + shift + s or by right-clicking on the webpage. See for more information.

As an alternative you can use the screenshot button in the developer tools, which can be added through the developer tools Settings menu, under the Available Toolbox Buttons section. The settings for the developer tools are accessible through the three horizontal dots located at the top right of the developer tools pane.

Wayland

More recent versions of Firefox support opting into Wayland mode via an environment variable.

$ MOZ_ENABLE_WAYLAND=1 firefox

To make this permanent, see Environment variables#Graphical environment and start Firefox via the desktop launcher like you normally would.

To verify it worked, look for in . It should say wayland. The presence of means you are running Firefox under Xorg display server, while means your system is running Wayland but executing Firefox as legacy X11 application.

If it is necessary to be regularly switching between Wayland and X.org, it may be useful to add a conditional to your shell's login startup script, e.g. for Bash:

Window manager rules

To apply different configurations to Firefox windows, change the WM_CLASS string by using Firefox's option, to a custom one.

Profiles

To start new Firefox instances, multiple profiles are required. To create a new profile:

$ firefox [--new-instance] -P

Class can be specified when launching Firefox with a not-in-use profile:

$ firefox [--new-instance] -P profile_name --class=class_name

Firefox Profilemaker can be used to create a Firefox profile with the defaults you like.

Touchscreen gestures and pixel-perfect trackpad scrolling

To enable touch gestures (like scrolling and pinch-to-zoom) and one-to-one trackpad scrolling (as can be witnessed with GTK3 applications like Nautilus), set the environment variable before starting Firefox. On Wayland, may also need to be set.

Multiple home pages

To have multiple tabs opened when starting Firefox open a new window and then open the sites you want to have as "home tabs".

Now go to Preferences > Home and under Homepage and new windows click the Use Current Pages button.

Alternatively go directly to Preferences > Home and now under Homepage and new windows set the first field to Custom URLs.. and enter the pages you want as new home pages in the following format:

https://url1.com|https://url2.com|https://url3.com

Troubleshooting

Troubleshoot Mode

The command line switch starts Firefox in Troubleshoot Mode, which disables extensions, themes, hardware acceleration, the JIT and some other features for this session.

This mode can also be enabled by pressing on the hamburger menu while Firefox is open, clicking Help, selecting Troubleshoot Mode and confirming this on the modal dialog that appears. Please note this will require a browser restart.

This mode was previously named Safe Mode until Firefox 88.

Firefox refresh

Some issues experienced by users in Firefox may be caused by profile issues, such as corruption.

If you have ruled out other causes, it may be worth trying a new Firefox profile for testing purposes to see if this will resolve your issue. More information on how to create a new profile and switch between profiles can be found on the Firefox support page.

If this resolves your issue, you should switch back to your original profile and consider refreshing your Firefox.

Refreshing your profile will retain all browsing and download history, bookmarks, web form auto-fill data, cookies, personal dictionary and passwords, and will transfer them to a brand new profile without extensions, themes, extension data and preferences, among other data. A backup of your old profile will also be retained.

To refresh your profile, navigate to , press Refresh Firefox and confirm this on the modal dialog that appears. can also be accessed by pressing the Hamburger menu, selecting Help and then clicking More troubleshooting information.

More information on refreshing your Firefox, including further details about what is transferred to the new profile, can be found on the Firefox support page.

Disable hardware video acceleration

If you are having issues with hardware video acceleration in Firefox, e.g. in case of freezes or graphical corruption, start Firefox in Troubleshoot Mode for testing purposes to confirm that this is the issue. If this step resolves the issue, merely set to in to disable hardware video acceleration, and restart Firefox.

Extension X does not work on some Mozilla owned domains

By default extensions will not affect pages designated by extensions.webextensions.restrictedDomains. If this is not desired, this field can be cleared (special pages such as will not be affected).

Firefox startup takes very long

If Firefox takes much longer to start up than other browsers, it may be due to lacking configuration of the localhost in . See Network configuration#Local network hostname resolution on how to set it up.

Misbehaving Firefox extensions, or too many extensions, may be another source of slow startup. This can be confirmed through the use of Troubleshoot Mode, which will disable extensions on restart.

A further cause of slow start-up may be a profile issue, such as corruption. For more troubleshooting steps around your Firefox profile see #Firefox Refresh.

Font troubleshooting

See Font configuration.

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

Firefox ships with the Twemoji Mozilla font. To use the system emoji font, set to in . Additionally, to prevent the Mozilla font interfering with your system emoji font, change to or remove (see also pacman#Skip files from being installed to system).

Setting an email client

Inside the browser, 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 content type; the file path will need to be designated (e.g. for Kmail).

Outside the browser, 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.

File association

See Default applications.

Firefox keeps creating ~/Desktop even when this is not desired

Firefox uses as the default place for download and upload files. To change it to another folder, set the option as explained in XDG user directories.

Changes to userChrome.css and userContent.css are ignored

Set to true in

Middle-click behavior

To use the middle mouse button to paste whatever text has been highlighted/added to the clipboard, as is common in UNIX-like operating systems, set either or to true in . Having enabled was the default behaviour prior to Firefox 57.

To scroll on middle-click (default for Windows browsers) set to true.

Backspace does not work as the 'Back' button

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

To make go back one page in the tab's history and Shift+Backspace go forward, set to in .

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

Firefox does not remember login information

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

Open a terminal of choice and type the following:

$ rm -f ~/.mozilla/firefox/<profile id>.default/cookies.sqlite

The profile id is a random 8 character string.

Restart Firefox and see if it solved the problem.

If it did not work, check if there exists a file that you could use to manually restore the cookies.

Cannot enter/leave fullscreen

If Firefox detects an EWMH/ICCCM compliant window manager, it will try to send a WM_STATE message to the root window to request Firefox be made to enter (or leave) full-screen mode (as defined by the window manager). Window managers are allowed to ignore it, but if they do, Firefox will assume the request got denied and propagate it to the end user which results in nothing happening. This may result in not being able to full screen a video. A general workaround is to set the to true in .

Related bug reports: Bugzilla 1189622.

JavaScript context menu does not appear on some sites

You can try setting to in .

Firefox does not remember default spell check language

The default spell checking language can be set as follows:

  1. Type in the address bar.
  2. Set to your language of choice, for instance .
  3. Notice that the for dictionaries installed as a Firefox plugin the notation is , and for dictionaries the notation is .

When you only have system wide dictionaries installed with , 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. You may have to change the order of preferred language for displaying pages in about:preferences#general to make the spell check default to the language of the addon dictionary.

Related questions on the StackExchange platform: , ,

Related bug reports: Bugzilla 776028, Ubuntu bug 1026869

Some MathML symbols are missing

You need some Math fonts, namely Latin Modern Math and STIX (see this MDN page: ), to display MathML correctly.

In Arch Linux, these fonts are provided by and , but they are not available to fontconfig by default. See TeX Live#Making fonts available to Fontconfig for details. You can also try other Math fonts. In case you encounter this bug installing otf-latinmodern-math can help.

YouTube videos load but does not play. This also happens on other web browsers.

Verify you have installed. While the video is being loaded, in a terminal application.

pulseaudio --kill
# If there is no autostart
pulseaudio --start

This should ensure the video plays (albeit without sound at first). You should be able to select another video on YouTube and be able to view the video with sound, as long as you do not leave YouTube's single-page application. Once confirmed that is the issue, replace with and re-login to see if it works. See PipeWire#PulseAudio clients for details.

Tearing when scrolling

Try disabling smooth scrolling in Preferences > Browsing.

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:

You can try setting property to at Firefox page and restart Firefox.

This can also help if you are using the PulseAudio module-echo-cancel and Firefox does not recognise the virtual echo canceling source.

Cannot login with my Chinese account

Firefox provides a local service for Chinese users, with a local account totally different from the international one. Firefox installed with the firefox package uses the international account system by default, to change into the Chinese local service, you should install the add-on manager on this page, then you can login with your Chinese account now.

No audio on certain videos when using JACK and PulseAudio

If you are using JACK in combination with PulseAudio and cannot hear any sound on some videos it could be because those videos have mono audio. This happens if your JACK setup uses more than just stereo, but you use normal headphones. To fix this you simply have to connect the port from the PulseAudio JACK Sink to both playback_1 and ports of the system output.

You can also do this automatically using a script:

Keep in mind that the names for the sink and the ports might be different for you. You can check what your JACK setup looks like with a Patchbay like Catia from .

Geolocation does not work

Recently, Google limited the use of its location service with Arch Linux, which causes the following error when geolocation is enabled on a website: . Region-locked services such as Hulu may display a similar error indicating that your location could not be determined even though you have allowed location services for the site.

To avoid these problems, you can switch to use the Mozilla Location Service. In change the setting to:

https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%

See for more details.

Right mouse button instantly clicks the first option in window managers

This problem has been observed in i3, bspwm and xmonad.

To fix it, navigate to and change to true.

See

Firefox window does not repaint after disabling or enabling compositing

Unset the environment variable .

Related bug report: Bugzilla 1711039.

Firefox continuously asks to be set as default browser upon launch

There are a couple things you can try: if you are using a desktop environment, check if Firefox is set as the default browser in your system settings. If it is not, then set it, otherwise you can run the following xdg-settings(1) command, provided by the xdg-utils package, to query which browser is set as default on your system:

$ xdg-settings get default-web-browser

If no value is returned or it is not Firefox, then run this command to set it:

$ xdg-settings set default-web-browser firefox.desktop

If Firefox still asks to be set as the default browser, then it may be quieted if it is set to handle http and https URL schemes. To do so, run these commands:

$ xdg-mime default firefox.desktop x-scheme-handler/http
$ xdg-mime default firefox.desktop x-scheme-handler/https

If those do not work either, check if you have set the environment variable (all values trigger the bug), in which case, unset it. Related bug report: Bugzilla 1516290. If that does not work or you did not set it, navigate Firefox to , check if the variable is set to true and, if so, set it to .

If you wish to disable default browser check entirely, navigate Firefox to and set browser.shell.checkDefaultBrowser to .

Video stuttering

If you experience video stuttering and you notice that Firefox is only hitting one core at 100% when watching videos (especially higher resolution videos), this might help you.

Go into and search for and change from 1 to a higher number. An ad hoc method to find a good number is to increase it one at a time until you get good results, but 4 seems to be a good value.

Bengali font broken in some pages

In most cases, installing the and making Noto Sans Bengali as defaults in Fonts and Colors settings solves it. However, in some social media sites, Bengali fonts may still be broken. In those cases, Mozilla provides a detailed guide on how to see all the fonts gets loaded in a page. By using Page Inspector, find out all the fonts that are being loaded on that particular page. Removing fonts other than Noto Sans from the system will resolve the issue permanently.

There will be some fonts that have been installed as dependency of other package. For example, installs as dependency, which loads itself in some Firefox pages automatically and breaks Bengali fonts on those pages. To solve this issue:

Warning: This will briefly put your system in an incomplete state. See System maintenance#Avoid certain pacman commands.
  • Temporarily forcibly remove :
  • Launch Firefox and reload the problem website.
  • Install once more, as it is a hard Chromium dependency:

See also

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.