Difference between revisions of "Firefox"

From ArchWiki
Jump to navigation Jump to search
(→‎Multimedia playback: youtube.com/html5 is gone)
 
(555 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
[[tr:Firefox]]
+
[[Category:Web browser]]
{{i18n|Firefox}}
+
[[Category:Mozilla]]
[[Category:Web Browser]]
+
[[ar:Firefox]]
 +
[[cs:Firefox]]
 +
[[de:Firefox]]
 +
[[es:Firefox]]
 +
[[fr:Firefox]]
 +
[[it:Firefox]]
 +
[[ja:Firefox]]
 +
[[ko:Firefox]]
 +
[[ru:Firefox]]
 +
[[zh-hans:Firefox]]
 +
{{Related articles start}}
 +
{{Related|Browser plugins}}
 +
{{Related|Firefox/Tweaks}}
 +
{{Related|Firefox/Profile on RAM}}
 +
{{Related|Firefox/Privacy}}
 +
{{Related|Chromium}}
 +
{{Related|Opera}}
 +
{{Related articles end}}
 +
[https://www.mozilla.org/firefox Firefox] is a popular open source graphical web browser from [https://www.mozilla.org Mozilla].
  
[[fr:Firefox]]
+
== Installing ==
{{Article summary start}}
 
{{Article summary text|Installing and troubleshooting the Firefox browser and plugins}}
 
{{Article summary heading|Related}}
 
{{Article summary wiki|Browser Plugins}}: Acquiring and installing plugins such as [[Flash]]
 
{{Article summary wiki|Firefox Tweaks}}: Configuration and modifications
 
{{Article summary end}}
 
  
[http://www.firefox.com Firefox] is a popular open-source graphical web browser from [http://www.mozilla.com Mozilla].
+
Firefox can be [[install]]ed with the {{Pkg|firefox}} package.
  
== Installing ==
+
Other alternatives include:
The {{Pkg|firefox}} package can be found in the [[Official Repositories|official repositories]] and can be installed with [[pacman]].
 
  
There are a number of language packs available if English is not your preferred language. To see a list of available language packs, try:
+
* {{App|Firefox Developer Edition|for developers|https://www.mozilla.org/firefox/developer/|{{Pkg|firefox-developer-edition}}}}
{{bc|$ pacman -Ss firefox-i18n}}
+
* {{App|Firefox Extended Support Release|long-term supported version|https://www.mozilla.org/firefox/organizations/|{{AUR|firefox-esr}} or {{AUR|firefox-esr-bin}}}}
 +
* {{App|Firefox Beta|cutting-edge version|https://www.mozilla.org/firefox/channel/desktop/#beta|{{AUR|firefox-beta}} or {{AUR|firefox-beta-bin}}}}
 +
* {{App|Firefox Nightly|nightly builds for testing ([https://developer.mozilla.org/Firefox/Experimental_features experimental features])|https://www.mozilla.org/firefox/channel/desktop/#nightly|{{AUR|firefox-nightly}}}}
 +
* {{App|Firefox KDE|Version of Firefox that incorporates an OpenSUSE patch for better [[#KDE/GNOME integration|KDE integration]] than is possible through simple Firefox plugins.|https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox|{{AUR|firefox-kde-opensuse}}}}
 +
* On top of the different Mozilla build channels, a number of forks exist with more or less special features; see [[List of applications#Gecko-based]].
  
If firefox doesn't antialias and hint your font, try to install {{AUR|ttf-ms-fonts}} and take a look at [[Font_Configuration]].
+
A number of language packs are available for Firefox, other than the standard English. Language packs are usually named as {{ic|firefox-i18n-''languagecode''}} (where {{ic|''languagecode''}} can be any language code, such as '''de''', '''ja''', '''fr''', etc.). For a list of available language packs see [https://www.archlinux.org/packages/extra/any/firefox-i18n/ firefox-i18n] for {{Pkg|firefox}},[https://www.archlinux.org/packages/community/any/firefox-developer-edition-i18n/ firefox-developer-edition-i18n] for {{Pkg|firefox-developer-edition}} and [https://aur.archlinux.org/packages/?K=firefox-nightly- firefox-nightly-] for {{AUR|firefox-nightly}}.
  
 
== Add-ons ==
 
== 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 of Firefox.  You can find new add-ons or manage installed add-ons with Firefox's "Add-ons Manager."
 
  
For a list of popular add-ons, see: [https://addons.mozilla.org/en-US/firefox/extensions/?sort=popular Mozilla's add-on list sorted by popularity].
+
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 can be added to Firefox through normal add-ons, see [https://addons.mozilla.org/firefox/search-tools/ this page] for a list of available search engines.
 +
 
 +
A very extensive list of search engines can be found at the [https://mycroftproject.com/ Mycroft Project].
 +
 
 +
Also, you can use the [https://firefox.maltekraus.de/extensions/add-to-search-bar 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...''
 +
 
 +
==== arch-firefox-search ====
 +
 
 +
[[Install]] the {{AUR|arch-firefox-search}} package to add Arch-specific searches (AUR, wiki, forum, etc, as specified by user) to the Firefox search toolbar.
  
 
== Plugins ==
 
== Plugins ==
''See: [[Browser Plugins]]''
+
 
 +
The only plugin supported by Firefox is [[Browser plugins#Adobe Flash Player|Adobe Flash Player]] (NPAPI version). Other plugins are [https://support.mozilla.org/en-US/kb/npapi-plugins no longer supported].
  
 
To find out what plugins are installed/enabled, enter:
 
To find out what plugins are installed/enabled, enter:
 +
 
  about:plugins
 
  about:plugins
in the Firefox address bar. Or go to ''Addons'' from the main bar drop downs <!-- I use vimperator so I do not know what's the name --> and select the ''Plugins'' tab.
 
  
=== GNOME integration ===
+
in the Firefox address bar or go to the ''Add-ons'' entry in the Firefox Menu and select the ''Plugins'' tab.
Install {{AUR|firefox-extension-gnome-keyring-git}} from the [[Arch User Repository|AUR]] to integrate Firefox 3.6.x with Gnome-keyring.
+
 
 +
== 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 [https://www.mozilla.org/firefox/sync/ Firefox Sync]. Please note that only a subset of the {{ic|about:config}} entries are synchronized by this method, and the exact subset may be found by searching for {{ic|services.sync.prefs}} in {{ic|about:config}}. Additional preferences and third party preferences may be synchronized by creating new boolean entries prepending the config value with {{ic|services.sync.prefs.sync}} ([https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Firefox_Sync/Syncing_custom_preferences documentation] is still applicable.) To synchronize the whitelist for the extension [https://addons.mozilla.org/firefox/addon/noscript/ NoScript]:
 +
 
 +
services.sync.prefs.sync.capability.policy.maonoscript.sites
 +
 
 +
The boolean {{ic|noscript.sync.enabled}} must be set to {{ic|true}} to synchronize the remainder of NoScript's preferences via Firefox Sync.
 +
 
 +
Firefox also allows configuration for a profile via a {{ic|user.js}} file: [http://kb.mozillazine.org/User.js_file user.js] kept in the profile folder, usually {{ic|~/.mozilla/firefox/''xxxxxxxx''.default/}}. For a useful starting point, see e.g [https://github.com/pyllyukko/user.js 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, [https://support.mozilla.org/en-US/kb/back-and-restore-information-firefox-profiles#w_restoring-a-profile-backup 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 [http://kb.mozillazine.org/Locking_preferences Locking preferences]:
 +
 
 +
1. Create {{ic|/usr/lib/firefox/defaults/pref/local-settings.js}}:
  
You can also install {{AUR|firefox-extension-firefoxnotify-git}} to get libnotify/notifyOSD integration.
+
pref("general.config.obscure_value", 0);
 +
pref("general.config.filename", "mozilla.cfg");
  
=== Dictionaries for spell checking ===
+
2. Create {{ic|/usr/lib/firefox/mozilla.cfg}} (this stores the actual configuration):
Right click in any text entry field and add the dictionary for the solicited language. Restart Firefox, and click in a text entry field again to enable spell checking.
 
  
Or get it from pacman:
+
//
  pacman -Ss hunspell
+
//...your settings...
 +
// e.g to disable Pocket, uncomment the following line
 +
  // lockPref("browser.pocket.enabled", false);
  
=== Adding Firefox search engines ===
+
Please note that the first line must contain exactly {{ic|//}}. The syntax of the file is similar to that of {{ic|user.js}}.
  
Visit https://addons.mozilla.org/en-US/firefox/browse/type:4/ and install.
+
=== Multimedia playback ===
  
If you want to custom one, take a look at: {{ic|~/.mozilla/firefox/xxx.default/searchplugins/}} where xxx is your profile ID).
+
Firefox uses [[FFmpeg]] for playing multimedia inside HTML5 {{ic|<audio>}} and {{ic|<video>}} elements. Go to [https://www.quirksmode.org/html5/tests/video.html video-test page] or [https://hpr.dogphilosophy.net/test/ audio-test page] to check which formats are actually supported.
  
====arch-firefox-search====
+
HTML5 DRM playback is supported by the Google Widevine CDM, it is however not enabled by default. See ''Preferences > General > Digital Rights Management (DRM) Content'' if you want to learn more.
Adds Arch-specific searches (AUR, wiki, forum, etc, as specified by user) to the Firefox search toolbar.
 
# pacman -S arch-firefox-search
 
  
== Projects related to Firefox ==
+
See [[Firefox/Tweaks#Enable additional media codecs]] for advanced configuration and enabling support for Widevine (Netflix, Amazon Video, etc.).
=== Firefox derivatives ===
 
Two different forks of Mozilla Firefox:
 
  
*Debian’s Iceweasel ([[Wikipedia:Iceweasel]]; http://wiki.debian.org/Iceweasel). It is being developed by Debian and is based on 2.0.
+
Firefox uses [[PulseAudio]] for audio playback and capture. For sound to work, you need to install the {{Pkg|pulseaudio}} package.
*GNU/IceCat ([[Wikipedia:GNU IceCat]]; AUR: {{AUR|icecat}}) - formerly known as GNU IceWeasel, is a web browser distributed by the GNU Project. IceCat is made entirely of free software. It is compatible with the GNU/Linux operating system and almost all of Firefox's addons. GNU/IceCat really can fully replace Firefox.
 
  
=== Firefox with better KDE integration ===
+
In case, for whatever reason, [[PulseAudio]] is not an option for you, you can use [[Advanced Linux Sound Architecture#PulseAudio compatibility|apulse]] instead. To make this work, it is necessary to exclude {{ic|/dev/snd/}} from Firefox' sandboxing by adding it to the comma-separated list in {{ic|about:config}}:
*{{AUR|firefox-kde-opensuse}}
 
:with OpenSUSE patch, integrates better with KDE.  OpenSUSE's patch and integration of Firefox with KDE is considered the best by many users.
 
  
*{{Pkg|kpartsplugin}}
+
security.sandbox.content.write_path_whitelist
:This plugin uses KDE's KParts to embed file viewers into non-KDE browsers
 
  
*[http://kde-look.org/content/show.php/?content=117962 Oxygen KDE]
+
{{Note|The trailing slash on {{ic|/dev/snd/}} is important, otherwise ''apulse'' will report "Permission denied" errors.}}
:This addon provides further integration with KDE's Oxygen theme, color scheme detection, Faenza icons and various customizations.
+
 
 +
If you have no audio even when using ''apulse'', try adding {{ic|16}} to {{ic|security.sandbox.content.syscall_whitelist}} in {{ic|about:config}}.
 +
 
 +
==== Open With extension ====
 +
 
 +
# Install [https://addons.mozilla.org/firefox/addon/open-with/ Open With] add-on.
 +
# Go to ''Add-ons > Open With > Preferences''.
 +
# Proceed with instructions to install a file in your system and test the installation.
 +
# Click ''Add browser''.
 +
# In the dialog write a name for this menu entry and command to start a video streaming capable player (e.g. [[mpv|/usr/bin/mpv]]).
 +
# (Optional step) Add needed arguments to the player (e.g. you may want {{ic|--force-window --ytdl}} for ''mpv'')
 +
# 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''.
 +
 
 +
=== 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 [https://addons.mozilla.org/firefox/language-tools/ Dictionaries and Language Packs list].
 +
 
 +
{{Tip|For Russian, the extension is packaged as {{Pkg|firefox-spell-ru}}.}}
 +
 
 +
=== KDE/GNOME integration ===
 +
 
 +
* To bring the [[KDE]] look to GTK apps (including Firefox), install {{Pkg|breeze-gtk}} and {{Pkg|kde-gtk-config}}. Afterwards, go to ''System Settings > Application Style > GNOME/GTK Application Style''. Be sure to choose 'Breeze' in 'Select a GTK2/GTK3 Theme' and check 'Show icons in GTK buttons' and 'Show icons in GTK menus'.
 +
* To make the left mouse button warp the scrollbar instead of the middle one on KDE, go to ''System Settings > Application Style > GNOME/GTK Application Style'' and choose 'Jump to the mouse cursor position' in the 'On left-clicking the scroll bar' option.
 +
* To use the KDE file selection and print dialogs in Firefox 64 or newer:
 +
*# Install {{Pkg|xdg-desktop-portal}} and {{Pkg|xdg-desktop-portal-kde}},
 +
*# Set {{ic|1=GTK_USE_PORTAL=1}} as [[environment variable]] or  [[Desktop entries#Modify environment variables|edit the .desktop file]] and add {{ic|1=GTK_USE_PORTAL=1}} to the {{ic|Exec}} lines.
 +
* For integration with [[KDE]] MIME type system and file dialog, one can use {{AUR|firefox-kde-opensuse}} 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 {{ic|~/.config/mimeapps.list}} from the deprecated {{ic|~/.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:
 +
** Browser integration in [[Plasma]]: requires {{Pkg|plasma-browser-integration}} and the [https://addons.mozilla.org/firefox/addon/plasma-integration/ Plasma Integration add-on].
 +
** {{AUR|mozilla-extension-gnome-keyring-git}} (all-JavaScript implementation) to integrate Firefox with [[GNOME Keyring]]. To make firefox-gnome-keyring use your login keychain, set {{ic|extensions.gnome-keyring.keyringName}} to {{ic|login}} in {{ic|about:config}}. Note the lowercase 'l' despite the the keychain name having an uppercase 'L' in Seahorse.
 +
 
 +
=== Smooth Scrolling ===
 +
 
 +
{{Merge|Firefox/Tweaks#Mouse and keyboard|Keep similar things in one place.}}
 +
 
 +
In order to get smooth physics-based scrolling in Firefox, the {{ic|general.smoothScroll.msdPhysics}} configurations can be changed to emulate a snappier behaviour like in other web browsers. For a quicker configuration, append the following to {{ic|~/.mozilla/firefox/'''your-profile'''/user.js}} (requires restart):
 +
 
 +
user_pref("general.smoothScroll.lines.durationMaxMS", 125);
 +
user_pref("general.smoothScroll.lines.durationMinMS", 125);
 +
user_pref("general.smoothScroll.mouseWheel.durationMaxMS", 200);
 +
user_pref("general.smoothScroll.mouseWheel.durationMinMS", 100);
 +
user_pref("general.smoothScroll.msdPhysics.enabled", true);
 +
user_pref("general.smoothScroll.other.durationMaxMS", 125);
 +
user_pref("general.smoothScroll.other.durationMinMS", 125);
 +
user_pref("general.smoothScroll.pages.durationMaxMS", 125);
 +
user_pref("general.smoothScroll.pages.durationMinMS", 125);
 +
 
 +
Additionally the mouse wheel scroll settings have to be changed to react in a smooth way as well:
 +
 
 +
user_pref("mousewheel.min_line_scroll_amount", 30);
 +
user_pref("mousewheel.system_scroll_override_on_root_content.enabled", true);
 +
user_pref("mousewheel.system_scroll_override_on_root_content.horizontal.factor", 175);
 +
user_pref("mousewheel.system_scroll_override_on_root_content.vertical.factor", 175);
 +
user_pref("toolkit.scrollbox.horizontalScrollDistance", 6);
 +
user_pref("toolkit.scrollbox.verticalScrollDistance", 2);
 +
 
 +
If you have troubles on machines with varying performance, try modifying the {{ic|mousewheel.min_line_scroll_amount}} until it feels snappy enough.
 +
 
 +
== 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 the all Firefox interfaces and even other websites respect dark themes, irrespective of the system GTK theme and Firefox theme. To do this, set {{ic|browser.in-content.dark-mode}} to {{ic|true}} and {{ic|ui.systemUsesDarkTheme}} to {{ic|1}} in {{ic|about:config}} [https://bugzilla.mozilla.org/show_bug.cgi?id=1488384#c23].
 +
 
 +
=== Frame rate ===
 +
 
 +
If you have a high refresh rate monitor, Firefox might not be able to automatically detect the right value, in which case it will default to rendering at 60 Hz.  To manually set this, set {{ic|layout.frame_rate}} to the refresh rate of your monitor, e.g. 144 for 144 Hz.
 +
 
 +
=== Memory limit ===
 +
 
 +
To prevent pages from abusing memory (and possible [[Wikipedia:Out_of_memory|OOM]]), we can use [[Firejail]] with the {{ic|rlimit-as}} option.
 +
 
 +
Decreasing [[swappiness]] may also help.
 +
 
 +
=== New tabs position ===
 +
 
 +
To control where new tabs appears (relative or absolute), use {{ic|browser.tabs.insertAfterCurrent}} and {{ic|browser.tabs.insertRelatedAfterCurrent}}. See [https://support.mozilla.org/en/questions/1229062] for more informations.
 +
 
 +
=== Screenshot of webpage ===
 +
 
 +
You can ''Take a Screenshot'' by either clicking the ''Page actions'' button (the three horizontal dots) in the address bar or by right-clicking on the webpage. See [https://support.mozilla.org/en-US/kb/firefox-screenshots] for more information.
 +
 
 +
As an alternative you can use the screenshot button in the [https://developer.mozilla.org/en-US/docs/Tools/Taking_screenshots Developer Tools].
 +
 
 +
=== Wayland ===
 +
 
 +
More recent versions of Firefox support opting into Wayland via an environment variable.
 +
 
 +
$ MOZ_ENABLE_WAYLAND=1 firefox
 +
 
 +
You may enter {{ic|about:support}} in the URL bar to check the ''Window Protocol''. It should say ''wayland'' instead of ''x11''.
 +
 
 +
To make this permanent, see [[Environment variables#Graphical environment]] and start Firefox via the desktop launcher like you normally would. To verify it worked check the ''Window Protocol'' again.
 +
 
 +
=== Window manager rules ===
 +
 
 +
To apply different configurations to Firefox windows, change the WM_CLASS string by using Firefox's {{ic|--class}} 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''
 +
 
 +
=== Touchscreen gestures and pixel-perfect trackpad scrolling ===
 +
 
 +
{{Merge|Firefox/Tweaks#Enable touchscreen gestures|Same solution.}}
 +
 
 +
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 {{ic|1=MOZ_USE_XINPUT2=1}} [[environment variable]] before starting Firefox.
  
 
== Troubleshooting ==
 
== Troubleshooting ==
  
=== Firefox 4 New Menu Bar/Firefox Button ===
+
=== All Firefox extensions disabled (May 2019) ===
By default, Arch Linux shows the classic layout of the menu bar. To activate the new Firefox 4 layout with the "Firefox" button replacing the menu bar, uncheck View -> Toolbars -> Menubar.
+
 
 +
{{Warning|'''Do not''' delete and re-install your addons to try and fix the issue, as you will lose your addons' data.}}
 +
 
 +
Between 3–5 May 2019, all Firefox addons (web extensions, themes, search engines, and language packs) were mistakenly marked as '''Legacy addons''', and could not be enabled. The [https://bugzilla.mozilla.org/show_bug.cgi?id=1548973 bug] was caused by an expired intermediate certificate.
 +
 
 +
For most users, the issue has been fixed in Firefox 66.0.4 and Firefox ESR 60.6.2. The addons should be automatically re-enabled as soon as the patched version of Firefox is installed. Certain users, such as those who have set a Master Password, might require extra steps. Please see Firefox's [https://support.mozilla.org/en-US/kb/add-ons-disabled-or-fail-to-install-firefox official support page] for more information.
 +
 
 +
=== 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  {{ic|/etc/hosts}}. See [[Network configuration#Local network hostname resolution]] on how to set it up.
 +
 
 +
=== 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 {{ic|gfx.font_rendering.fontconfig.max_generic_substitutions}} to {{ic|127}} (the highest possible value).
  
In GNU/Linux, you will just get a plain grey button instead of the new orange one from Windows. However you can change this to either a Firefox icon or the icon followed by the "Firefox" text.
+
=== Setting an email client ===
  
Adding the following to your {{ic|~/.mozilla/firefox/userprofile/chrome/userChrome.css}} file will place the icon before the text:
+
Inside the browser, {{ic|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 {{ic|mailto}} content type; the file path will need to be designated (e.g. {{ic|/usr/bin/kmail}} for Kmail).
{{bc|#appmenu-toolbar-button {
 
  list-style-image: url("chrome://branding/content/icon16.png");
 
}
 
}}
 
Adding the following to the same file will ''remove'' the "Firefox" text:
 
{{bc|#appmenu-toolbar-button > .toolbarbutton-text,
 
#appmenu-toolbar-button > .toolbarbutton-menu-dropmarker {
 
  display: none !important;
 
}
 
}}
 
  
{{Note|You need to create both the {{ic|chrome}} directory and {{ic|userChrome.css}}, if they do not already exist.}}
+
Outside the browser, {{ic|mailto}} links are handled by the {{ic|x-scheme-handler/mailto}} mime type, which can be easily configured with [[xdg-mime]]. See [[Default applications]] for details and alternatives.
  
=== Open containing folder problems (KDE) ===
+
=== File association ===
If Firefox launches something other than your preferred file manager when using the "Open Containing Folder" option in the Downloads manager, make sure you select your file manager of choice (e.g. Dolphin) in KDE's System Settings:
 
:'''System Settings -> Default Applications -> File Manager'''
 
  
If you have already selected your file manager of choice and Cervisia (or a file manager other than your favorite) is opening modify your user's {{ic|~/.local/share/applications/defaults.list}} to include these two lines:
+
See [[Default applications]].
x-directory/normal=kde4-dolphin.desktop;kde4-kfmclient_dir.desktop;
 
inode/directory=kde4-dolphin.desktop;kde4-kfmclient_dir.desktop;kde4-gwenview.desktop;kde4-filelight.desktop;kde4-cervisia.desktop;
 
  
 
=== Firefox keeps creating ~/Desktop even when this is not desired ===
 
=== Firefox keeps creating ~/Desktop even when this is not desired ===
Firefox use Desktop as the default place for download and upload files. To set it to other folder, create {{ic|~/.config/user-dirs.dirs}} and add:
 
XDG_DESKTOP_DIR="/home/<user>/"
 
XDG_DOWNLOAD_DIR="/home/<user>/<dir>"
 
XDG_TEMPLATES_DIR="/home/<user>/<dir>"
 
XDG_PUBLICSHARE_DIR="/home/<user>/<dir>"
 
XDG_DOCUMENTS_DIR="/home/<user>/<dir>"
 
XDG_MUSIC_DIR="/home/<user>/<dir>"
 
XDG_PICTURES_DIR="/home/<user>/<dir>"
 
XDG_VIDEOS_DIR="/home/<user>/<dir>"
 
Change {{ic|<user>}} and {{ic|<dir>}} to the actual directory.
 
  
=== How to prevent plugins from allowing popups? ===
+
Firefox uses {{ic|~/Desktop}} as the default place for download and upload files. To change it to another folder, set the {{ic|XDG_DESKTOP_DIR}} option as explained in [[XDG user directories]].
Ever wondered why pop-ups appear even though you have blocked them? It seems that the Flash plugin can bypass default settings and annoy us with those pesky pop-ups. Fear not, for we can prevent it from doing that.
 
  
To get around it:
+
=== Make plugins respect blocked pop-ups ===
# Type about:config into the Firefox location bar.
+
 
# Right-click on the page and select New and then Integer.
+
Some plugins can misbehave and bypass the default settings, such as the Flash plugin. You can prevent this by doing the following:
# Name it privacy.popups.disable_from_plugins
+
 
# Set the value to 2.
+
# Type {{ic|about:config}} into the address bar.
 +
# Right-click on the page and select ''New > Integer''.
 +
# Name it {{ic|privacy.popups.disable_from_plugins}}.
 +
# Set the value to {{ic|2}}.
  
 
The possible values are:
 
The possible values are:
* 0: Allow all popups from plugins.
 
* 1: Allow popups, but limit them to dom.popup_maximum.
 
* 2: Block popups from plugins.
 
* 3: Block popups from plugins, even on whitelisted sites.
 
  
=== Middle-click errors ===
+
* {{ic|'''0'''}}: Allow all popups from plugins.
! The URL is not valid and cannot be loaded.
+
* {{ic|'''1'''}}: Allow popups, but limit them to {{ic|dom.popup_maximum}}.
Another symptom is that middle-clicking results in unexpected behavior, like accessing a random web page.
+
* {{ic|'''2'''}}: Block popups from plugins.
 +
* {{ic|'''3'''}}: Block popups from plugins, even on whitelisted sites.
  
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 disabled like so:
+
=== Middle-click behavior ===
  
Open the browser, and type the following into the address bar:
+
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 {{ic|middlemouse.contentLoadURL}} or {{ic|middlemouse.paste}} to {{ic|true}} in {{ic|about:config}}. Having {{ic|middlemouse.contentLoadURL}} enabled was the default behaviour prior to Firefox 57.
about:config
 
Search for '''middlemouse.contentLoadURL''' and set it to false.
 
  
Alternatively, having the traditional scroll cursor on middle-click (default behaviour on Windows browsers) can be achieved by searching for '''general.autoScroll''' and setting it to true.
+
To scroll on middle-click (default for Windows browsers) set {{ic|general.autoScroll}} to {{ic|true}}.
  
 
=== Backspace does not work as the 'Back' button ===
 
=== Backspace does not work as the 'Back' button ===
As per [http://ubuntu.wordpress.com/2006/12/21/fix-firefox-backspace-to-take-you-to-the-previous-page/ this article], the feature has been removed in order to fix a bug. Follow the next steps to retain the original behaviour.
 
  
Open the browser and type the following address:
+
According to [http://kb.mozillazine.org/Browser.backspace_action MozillaZine], the {{ic|Backspace}} key was mapped based on which platform the browser was running on. As a compromise, this preference was created to allow the {{ic|Backspace}} key to either go back/forward, scroll up/down a page, or do nothing.
about:config
+
 
Search for '''browser.backspace_action''' and set it to 0 (zero).
+
To make {{ic|Backspace}} go back one page in the tab's history and {{ic|Shift+Backspace}} go forward, set {{ic|browser.backspace_action}} to {{ic|0}} in {{ic|about:config}}.
 +
 
 +
To have the {{ic|Backspace}} key scroll up one page and {{ic|Shift+Backspace}} scroll down one page, set {{ic|browser.backspace_action}} to {{ic|1}}. Setting this property to any other value will leave the key unmapped (Arch Linux defaults to {{ic|2}}, in other words, it is unmapped by default).
 +
 
 +
=== Firefox does not remember login information ===
  
=== Firefox does not remember login information  ===
+
It may be due to a corrupted {{ic|cookies.sqlite}} file in [https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data Firefox's profile] folder. In order to fix this, just rename or remove {{ic|cookie.sqlite}} while Firefox is not running.
It may be cause of a corrupted {{ic|cookies.sqlite}} file in [http://support.mozilla.com/en-US/kb/Profiles#How_to_find_your_profile Firefox's profile] folder. In order to fix this, just rename or remove the cookie.sqlite while Firefox is not running.
 
  
 
Open a terminal of choice and type the following:
 
Open a terminal of choice and type the following:
  $ cd ~/.mozilla/firefox/xxxxxxxx.default/
+
 
$ rm -f cookies.sqlite
+
  $ rm -f ~/.mozilla/firefox/<profile id>.default/cookies.sqlite
{{Note|xxxxxxxx represents a random string of 8 characters.}}
+
 
 +
The profile id is a random 8 character string.
  
 
Restart Firefox and see if it solved the problem.
 
Restart Firefox and see if it solved the problem.
  
=== Broken websites / input fields with dark Gtk Themes ===
+
=== "Do you want Firefox to save your tabs for the next time it starts?" dialog does not appear ===
When using a dark [[GTK]] theme, one might encounter Internet pages with unreadable input and text fields (p.e. Amazon - 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.
 
  
A work around is to explicitly setting standard colours for all web pages in {{ic|~/.mozilla/firefox/.../chrome/userContent.css}}.
+
From the [https://support.mozilla.com/en-US/questions/767751 Mozilla support] site:
  
The following sets input fields to standard black text / white background; both can be overridden by the displayed site, so that colors are seen as intended:
+
# Type {{ic|about:config}} in the address bar.
{{bc|
+
# Set {{ic|browser.warnOnQuit}} to {{ic|true}}.
input {
+
# Set {{ic|browser.showQuitWarning}} to {{ic|true}}.
    -moz-appearance: none !important;
 
    background-color: white;
 
    color: black;
 
}
 
  
textarea {
+
=== Firefox detects the wrong version of my plugin ===
    -moz-appearance: none !important;
+
 
    background-color: white;
+
When you close Firefox, the latter saves the current timestamp and version of your plugins inside {{ic|pluginreg.dat}} located in your profile folder, typically in {{ic|~/.mozilla/firefox/''xxxxxxxx''.default/}}.
    color: black;
+
 
}
+
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 {{ic|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 [[Browser plugins#Adobe Flash Player|Adobe Flash Player plugin]] which has been upgraded while Firefox was still running.
}}
+
 
This will force the colours ("Allow paged to choose their own colors [..]" setting, in the '''Preferences > Content > Color''' dialog):
+
The solution is to remove the file {{ic|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. [https://bugzilla.mozilla.org/show_bug.cgi?id=1109795#c16]
{{bc|
+
 
input {
+
=== JavaScript context menu does not appear on some sites ===
    -moz-appearance: none !important;
+
 
    background-color: pink !important;
+
You can try setting {{ic|dom.w3c_touch_events.enabled}} to {{ic|0}} in {{ic|about:config}}.
    color: green !important;
+
 
}
+
=== Firefox does not remember default spell check language ===
 +
 
 +
The default spell checking language can be set as follows:
 +
 
 +
# Type {{ic|about:config}} in the address bar.
 +
# Set {{ic|spellchecker.dictionary}} to your language of choice, for instance {{ic|en_GB}}.
 +
# Notice that the for dictionaries installed as a Firefox plugin the notation is {{ic|en-GB}}, and for {{Pkg|hunspell}} dictionaries the notation is {{ic|en_GB}}.
 +
 
 +
When you only have system wide dictionaries installed with {{Pkg|hunspell}}, Firefox might not remember your default dictionary language settings. This can be fixed by having at least one [https://addons.mozilla.org/firefox/language-tools/ 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 {{ic|about:preferences#general}} to make the spell check default to the language of the addon dictionary.
  
textarea {
+
Related questions on the '''StackExchange''' platform: [https://stackoverflow.com/questions/26936792/change-firefox-spell-check-default-language/29446115], [https://stackoverflow.com/questions/21542515/change-default-language-on-firefox/29446353], [https://askubuntu.com/questions/184300/how-can-i-change-firefoxs-default-dictionary/576877]
    -moz-appearance: none !important;
 
    background-color: pink !important;
 
    color: green !important;
 
}
 
}}
 
Change color values to suit, or use an add-on like [https://addons.mozilla.org/en-US/firefox/addon/2108 Stylish].
 
  
=== File association problems ===
+
Related bug reports: [https://bugzilla.mozilla.org/show_bug.cgi?id=776028 Bugzilla 776028], [https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1026869 Ubuntu bug 1026869]
For non-[[GNOME]] users, Firefox may not associate file types (in the "Open With" part of the download dialog). Installing {{Pkg|libgnome}} amends the problem:
 
pacman -S libgnome
 
If you are using KDE you can also do the following:
 
ln -s ~/.local/share/applications/mimeapps.list ~/.local/share/applications/mimeinfo.cache
 
From now on Firefox should use the applications which are explicitly set in KDE.
 
  
=== "I'm Feeling Lucky" Mode ===
+
=== Some MathML symbols are missing ===
Some search engine has a feeling lucky feature. For example Google has "I'm Feeling Lucky"  and DuckDuckGo has "I'm Feeling Ducky".
 
  
To activate them:
+
You need some Math fonts, namely Latin Modern Math and STIX (see this MDN page: [https://developer.mozilla.org/en-US/docs/Mozilla/MathML_Project/Fonts#Linux]), to display MathML correctly.
# Type "'''about:config'''" in the address bar.
 
# Search for the string '''keyword.url'''
 
# Modify its value (if any) to the URL of the search engine.  
 
  
:: For google, set it to:
+
In Arch Linux, these fonts are provided by {{Pkg|texlive-core}} '''and''' {{Pkg|texlive-fontsextra}}, but they are not available to fontconfig by default. See [[TeX Live#Making fonts available to Fontconfig]] for details. You can also try other [[Fonts#Math|Math fonts]].
:: {{bc|<nowiki>http://www.google.com/search?btnI=I%27m+Feeling+Lucky&q=</nowiki>}}
 
:: For DuckDuckGo, set it to:
 
:: {{bc|<nowiki>https://duckduckgo.com/?q=\</nowiki>}}
 
  
=== "Do you want Firefox to save your tabs for the next time it starts?" dialog does not appear ===
+
=== Tearing video in fullscreen mode ===
From the [http://support.mozilla.com/en-US/questions/767751 Mozilla Support] site:
 
  
# Type "'''about:config'''" in the address bar.
+
If you are using the Xorg Intel or Nouveau drivers and experience tearing video in fullscreen mode, try [[Firefox tweaks#Enable OpenGL Off-Main-Thread Compositing (OMTC)]].
# Set '''browser.warnOnQuit''' to '''true'''.
 
# Set '''browser.showQuitWarning''' to '''true'''.
 
  
=== Firefox has high CPU usage and feels slow on scrolling with nVidia GPUs ===
+
=== Tearing when scrolling ===
  
In some cases, forcing the proprietary nVidia driver to store pixmaps in video memory instead of system memory can yield massive improvements in the perceived performance of pixmap-intensive applications like Firefox. Run
+
Try disabling smooth scrolling in ''Preferences > Browsing''.
  
$ nvidia-settings -a InitialPixmapPlacement=2
+
=== Firefox WebRTC module cannot detect a microphone ===
  
from the terminal; if desired results are achieved add this line to a script and use your desktop environment's autorun facilities to execute it on every startup. Alternatively, add the parameter to your {{ic|~/.nvidia-settings-rc}} and run
+
WebRTC applications for instance [https://mozilla.github.io/webrtc-landing/gum_test.html 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:
  
  $ nvidia-settings --load-config-only
+
{{hc|1=$ NSPR_LOG_MODULES=MediaManager:5,GetUserMedia:5 firefox|2=
 +
...
 +
[Unnamed thread 0x7fd7c0654340]: D/GetUserMedia VoEHardware:GetRecordingDeviceName: Failed 1
 +
}}
  
on startup. This setting is documented in [http://cgit.freedesktop.org/~aplattner/nvidia-settings/tree/src/libXNVCtrl/NVCtrl.h?id=b27db3d10d58b821e87fbe3f46166e02dc589855#n2797 nvidia-settings source code]. Make sure you have added other perfomance-improving settings, see [[NVIDIA]].
+
You can try setting {{ic|media.navigator.audio.full_duplex}} property to {{ic|false}} at {{ic|about:config}} Firefox page and restart Firefox.
  
=== Firefox uses ugly fonts on certain webpages ===
+
This can also help if you are using the PulseAudio [[PulseAudio/Troubleshooting#Enable Echo/Noise-Cancellation|module-echo-cancel]] and Firefox does not recognise the virtual echo canceling source.
  
When Firefox uses bitmap fonts, it can happen that on certain webpages the fonts are very ugly (compared to Google Chrome for example):
+
=== Cannot login with my Chinese account ===
  
http://i.imgur.com/SMVdi.png vs http://i.imgur.com/jNmxU.png
+
Firefox provides a local service for Chinese users, with a local account totally different from the international one. Firefox installed with the {{Pkg|firefox}} package uses the international account system by default, to change into the Chinese local service, you should install the add-on manager on [http://mozilla.com.cn/thread-343905-1-1.html this page], then you can login with your Chinese account now.
  
To fix that, just disable bitmap fonts for X:
+
== See also ==
$ sudo ln -s /etc/fonts/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/
 
  
==See also==
+
* [https://www.mozilla.org/firefox/ Official website]
* [http://web.glandium.org/blog/?p=97 Facts about Debian and Mozilla® Firefox]
+
* [https://www.mozilla.org/ Mozilla Foundation]
:An account of the trademark issues from the Firefox package maintainer for Debian.
+
* [[MozillaWiki:Firefox]]
* [http://www.gnu.org/software/gnuzilla/ Gnuzilla and IceWeasel]
+
* [https://addons.mozilla.org/ Firefox Add-ons]
:Official website for the GNU Mozilla forks.
+
* [https://addons.mozilla.org/firefox/themes/ Firefox themes]
 +
* [[Wikipedia:Mozilla Firefox]]
 +
* [http://forums.mozillazine.org/ mozillaZine] unofficial forums

Latest revision as of 10:09, 8 December 2019

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 Extended Support Release — long-term supported version
https://www.mozilla.org/firefox/organizations/ || firefox-esrAUR or firefox-esr-binAUR
  • Firefox Beta — cutting-edge version
https://www.mozilla.org/firefox/channel/desktop/#beta || firefox-betaAUR or firefox-beta-binAUR
https://www.mozilla.org/firefox/channel/desktop/#nightly || firefox-nightlyAUR
  • Firefox KDE — Version of Firefox that incorporates an OpenSUSE patch for better KDE integration than is possible through simple Firefox plugins.
https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox || firefox-kde-opensuseAUR

A number of language packs are available for Firefox, other than the standard English. Language packs are usually named as firefox-i18n-languagecode (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 firefox-developer-edition and firefox-nightly- for firefox-nightlyAUR.

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 can be added to Firefox through normal add-ons, see this page for a list of available search 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...

arch-firefox-search

Install the arch-firefox-searchAUR package to add Arch-specific searches (AUR, wiki, forum, etc, as specified by user) to the Firefox search toolbar.

Plugins

The only plugin supported by Firefox is Adobe Flash Player (NPAPI version). Other plugins are no longer supported.

To find out what plugins are installed/enabled, enter:

about:plugins

in the Firefox address bar or go to the Add-ons entry in the Firefox Menu and select the Plugins tab.

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:

1. Create /usr/lib/firefox/defaults/pref/local-settings.js:

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

2. Create /usr/lib/firefox/mozilla.cfg (this stores the actual configuration):

//
//...your settings...
// e.g to disable Pocket, uncomment the following line
// lockPref("browser.pocket.enabled", 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 <audio> and <video> elements. Go to video-test page or audio-test page to check which formats are actually supported.

HTML5 DRM playback is supported by the Google Widevine CDM, it is however not enabled by default. See Preferences > General > Digital Rights Management (DRM) Content if you want to learn more.

See Firefox/Tweaks#Enable additional media codecs for advanced configuration and enabling support for Widevine (Netflix, Amazon Video, etc.).

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:

security.sandbox.content.write_path_whitelist
Note: The trailing slash on /dev/snd/ is important, otherwise apulse will report "Permission denied" errors.

If you have no audio even when using apulse, try adding 16 to security.sandbox.content.syscall_whitelist in about:config.

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 --force-window --ytdl 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.

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.

Tip: For Russian, the extension is packaged as firefox-spell-ru.

KDE/GNOME integration

  • To bring the KDE look to GTK apps (including Firefox), install breeze-gtk and kde-gtk-config. Afterwards, go to System Settings > Application Style > GNOME/GTK Application Style. Be sure to choose 'Breeze' in 'Select a GTK2/GTK3 Theme' and check 'Show icons in GTK buttons' and 'Show icons in GTK menus'.
  • To make the left mouse button warp the scrollbar instead of the middle one on KDE, go to System Settings > Application Style > GNOME/GTK Application Style and choose 'Jump to the mouse cursor position' in the 'On left-clicking the scroll bar' option.
  • To use the KDE file selection and print dialogs in Firefox 64 or newer:
    1. Install xdg-desktop-portal and xdg-desktop-portal-kde,
    2. Set GTK_USE_PORTAL=1 as environment variable or edit the .desktop file and add GTK_USE_PORTAL=1 to the Exec lines.
  • For integration with KDE MIME type system and file dialog, one can use firefox-kde-opensuseAUR 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 ~/.config/mimeapps.list 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:

Smooth Scrolling

Merge-arrows-2.pngThis article or section is a candidate for merging with Firefox/Tweaks#Mouse and keyboard.Merge-arrows-2.png

Notes: Keep similar things in one place. (Discuss in Talk:Firefox#)

In order to get smooth physics-based scrolling in Firefox, the general.smoothScroll.msdPhysics configurations can be changed to emulate a snappier behaviour like in other web browsers. For a quicker configuration, append the following to ~/.mozilla/firefox/your-profile/user.js (requires restart):

user_pref("general.smoothScroll.lines.durationMaxMS", 125);
user_pref("general.smoothScroll.lines.durationMinMS", 125);
user_pref("general.smoothScroll.mouseWheel.durationMaxMS", 200);
user_pref("general.smoothScroll.mouseWheel.durationMinMS", 100);
user_pref("general.smoothScroll.msdPhysics.enabled", true);
user_pref("general.smoothScroll.other.durationMaxMS", 125);
user_pref("general.smoothScroll.other.durationMinMS", 125);
user_pref("general.smoothScroll.pages.durationMaxMS", 125);
user_pref("general.smoothScroll.pages.durationMinMS", 125);

Additionally the mouse wheel scroll settings have to be changed to react in a smooth way as well:

user_pref("mousewheel.min_line_scroll_amount", 30);
user_pref("mousewheel.system_scroll_override_on_root_content.enabled", true);
user_pref("mousewheel.system_scroll_override_on_root_content.horizontal.factor", 175);
user_pref("mousewheel.system_scroll_override_on_root_content.vertical.factor", 175);
user_pref("toolkit.scrollbox.horizontalScrollDistance", 6);
user_pref("toolkit.scrollbox.verticalScrollDistance", 2);

If you have troubles on machines with varying performance, try modifying the mousewheel.min_line_scroll_amount until it feels snappy enough.

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 the all Firefox interfaces and even other websites respect dark themes, irrespective of the system GTK theme and Firefox theme. To do this, set browser.in-content.dark-mode to true and ui.systemUsesDarkTheme to 1 in about:config [1].

Frame rate

If you have a high refresh rate monitor, Firefox might not be able to automatically detect the right value, in which case it will default to rendering at 60 Hz. To manually set this, set layout.frame_rate 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 rlimit-as option.

Decreasing swappiness may also help.

New tabs position

To control where new tabs appears (relative or absolute), use browser.tabs.insertAfterCurrent and browser.tabs.insertRelatedAfterCurrent. See [2] for more informations.

Screenshot of webpage

You can Take a Screenshot by either clicking the Page actions button (the three horizontal dots) in the address bar or by right-clicking on the webpage. See [3] for more information.

As an alternative you can use the screenshot button in the Developer Tools.

Wayland

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

$ MOZ_ENABLE_WAYLAND=1 firefox

You may enter about:support in the URL bar to check the Window Protocol. It should say wayland instead of x11.

To make this permanent, see Environment variables#Graphical environment and start Firefox via the desktop launcher like you normally would. To verify it worked check the Window Protocol again.

Window manager rules

To apply different configurations to Firefox windows, change the WM_CLASS string by using Firefox's --class 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

Touchscreen gestures and pixel-perfect trackpad scrolling

Merge-arrows-2.pngThis article or section is a candidate for merging with Firefox/Tweaks#Enable touchscreen gestures.Merge-arrows-2.png

Notes: Same solution. (Discuss in Talk:Firefox#)

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 MOZ_USE_XINPUT2=1 environment variable before starting Firefox.

Troubleshooting

All Firefox extensions disabled (May 2019)

Warning: Do not delete and re-install your addons to try and fix the issue, as you will lose your addons' data.

Between 3–5 May 2019, all Firefox addons (web extensions, themes, search engines, and language packs) were mistakenly marked as Legacy addons, and could not be enabled. The bug was caused by an expired intermediate certificate.

For most users, the issue has been fixed in Firefox 66.0.4 and Firefox ESR 60.6.2. The addons should be automatically re-enabled as soon as the patched version of Firefox is installed. Certain users, such as those who have set a Master Password, might require extra steps. Please see Firefox's official support page for more information.

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 /etc/hosts. See Network configuration#Local network hostname resolution on how to set it up.

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 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.

File association

See Default applications.

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

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

Make plugins respect blocked pop-ups

Some plugins can misbehave and bypass the default settings, such as the Flash plugin. You can prevent this by doing the following:

  1. Type about:config into the address bar.
  2. Right-click on the page and select New > Integer.
  3. Name it privacy.popups.disable_from_plugins.
  4. Set the value to 2.

The possible values are:

  • 0: Allow all popups from plugins.
  • 1: Allow popups, but limit them to dom.popup_maximum.
  • 2: Block popups from plugins.
  • 3: Block popups from plugins, even on whitelisted sites.

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 middlemouse.contentLoadURL or middlemouse.paste to true in about:config. Having middlemouse.contentLoadURL enabled was the default behaviour prior to Firefox 57.

To scroll on middle-click (default for Windows browsers) set general.autoScroll 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 go back one page in the tab's history and Shift+Backspace go forward, 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.

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.

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

From the Mozilla support site:

  1. Type about:config in the address bar.
  2. Set browser.warnOnQuit to true.
  3. Set browser.showQuitWarning to true.

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. [4]

JavaScript context menu does not appear on some sites

You can try setting dom.w3c_touch_events.enabled to 0 in about:config.

Firefox does not remember default spell check language

The default spell checking language can be set as follows:

  1. Type about:config in the address bar.
  2. Set spellchecker.dictionary to your language of choice, for instance en_GB.
  3. 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. 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: [5], [6], [7]

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: [8]), to display MathML correctly.

In Arch Linux, these fonts are provided by texlive-core and texlive-fontsextra, 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.

Tearing video in fullscreen mode

If you are using the Xorg Intel or Nouveau drivers and experience tearing video in fullscreen mode, try Firefox tweaks#Enable OpenGL Off-Main-Thread Compositing (OMTC).

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:

$ NSPR_LOG_MODULES=MediaManager:5,GetUserMedia:5 firefox
...
[Unnamed thread 0x7fd7c0654340]: D/GetUserMedia  VoEHardware:GetRecordingDeviceName: Failed 1

You can try setting media.navigator.audio.full_duplex property to false at about:config 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.

See also