Firefox Wayland

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


Firefox can be installed with the firefox package.

Firefox-wayland latest versions: 86.0, 85.0.1, 85.0, 82.0.3, 81.0.1, 75.0, 72.0.2. Firefox-wayland architectures: aarch64, armh, armv7hl, i586, noarch, x8664. A replacement for X is currently being developed called Wayland. It would be nice if when Wayland comes out, Firefox would be ready and support Wayland without needing X. Reproducible: Always Wayland won't be ready for widespread use for some time.

Other alternatives include:

  • Firefox Developer Edition — for developers firefox-developer-edition
  • Firefox Extended Support Release — long-term supported version firefox-esrAUR or firefox-esr-binAUR
  • Firefox Beta — cutting-edge version firefox-betaAUR or firefox-beta-binAUR
  • Firefox Nightly — nightly builds for testing (experimental features) firefox-nightlyAUR
  • Firefox KDE — Version of Firefox that incorporates an OpenSUSE patch for better KDE integration than is possible through simple Firefox plugins. firefox-kde-opensuseAUR
  • 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.

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.


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 Keyword field completed with user-defined characters:

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

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 firefox-extension-arch-searchAUR package to add Arch-specific searches (AUR, wiki, forum, packages, etc) to the Firefox search toolbar.


Support for all plugins, including Flash Player, was removed in Firefox 85.[1][2]


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

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. To synchronize the whitelist for the extension NoScript:

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:

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

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.

The factual accuracy of this article or section is disputed.

Reason:firefox depends on libpulse, not pulseaudio (Discuss in Talk:Firefox#Firefox and Pulseaudio)

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:

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.

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

Hardware video acceleration

Hardware video acceleration via VA-API is available under Wayland (see Firefox gets VA-API on Wayland) and (see bugzilla X11 implement VAAPI and Phoronix news VA API X11).

  • AMDGPU users under linux-hardened may need to rebuild linux-hardened with CONFIG_CHECKPOINT_RESTORE=y due to mesarequiring the kcmp syscall.
  • Hardware video acceleration on multi-GPU systems is affected by a device selection bug.
  • VP8/VP9 decoding is affected by a sandboxing bug. FF84+ users may set media.rdd-vpx.enabled to false to bypass the RDD process.

Before trying VA-API support in Firefox be sure to:

  • Install correct VA-API driver for your video card and verify VA-API has been enabled and working correctly, see Hardware video acceleration;
    • For Intel graphics, use the i965 driver libva-intel-driver if your hardware supports it.
    • The iHD driver intel-media-driver (needed by Broadwell or newer) is currently broken due to sandbox violations caused by the driver (see Bugzilla 1619585). This can be worked around by setting the security.sandbox.content.level flag to 0, at the risk of losing sandbox protection.
  • Use a compositor that supports hardware acceleration, either:
    • WebRender from the new Servo browser engine, which can be enabled as explained in /Tweaks#Enable WebRender compositor. It is enabled by default in GNOME and other DEs [3].
    • Gecko's legacy OpenGL back-end, which can be enabled as explained in /Tweaks#Enable OpenGL compositor;
  • Set the following flags in about:config:
    • media.ffmpeg.vaapi.enabled to true in order to enable the use of VA-API with FFmpeg;
    • media.ffvpx.enabled to false to disable the internal decoders for VP8/VP9.
    • media.rdd-vpx.enabled to false to disable the remote data decoder process for VP8/VP9. As of Firefox 85 its sandbox blocks VA-API access [4].
    • media.navigator.mediadatadecoder_vpx_enabled to true to enable hardware VA-API decoding for WebRTC[5][6].
  • Run Firefox with the following environment variable enabled:
    • In Wayland, with MOZ_ENABLE_WAYLAND=1, see #Wayland.
    • In, with MOZ_X11_EGL=1.
  • You can verify that VA-API is enabled by running Firefox with MOZ_LOG='PlatformDecoderModule:5' environment variable and check in the log output that VA-API is enabled and used (search for the 'VA-API' string) when playing a video for example. Pay attention to these logs as they might indicate that only one of the two possible compositors described before (OpenGL or WebRender) works with VA-API on your particular setup.
  • For Intel GPU, the intel_gpu_top utility from package intel-gpu-tools can be used to monitor the GPU activity during video playback for example. For AMD GPU, use radeontop.
  • To allow hardware decoding in YouTube, the video codec used must be supported by the hardware. The profiles supported by your GPU can be checked with Hardware video acceleration#Verifying VA-API and the YouTube codecs used can sometimes (if offered by YouTube!) be controlled with the h264ify or enhanced-h264ify extensions. Alternatively, you can install firefox-h264ifyAUR.
Note: Some videos (i.e. YouTube VR) may show a black image after setting media.ffvpx.enabled to false.

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 integration

  • To bring the KDE look to GTK apps (including Firefox), install breeze-gtk and kde-gtk-config. 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 xdg-desktop-portal-kde, then do one of the following:
    • Set widget.use-xdg-desktop-portal to true in about:config.
    • Launch firefox with GTK_USE_PORTAL=1environment variable.
  • For integration with KDE MIME type system, proxy 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:
    • Browser integration in Plasma: requires plasma-browser-integration and the Plasma Integration add-on.

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 true and ui.systemUsesDarkTheme to 1 in about:config[7].

Frame rate

If Firefox is unable to automatically detect the right value, it will default to 60 fps. To manually correct 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.

New tabs position

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

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 [9] for more information.

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


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

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.

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

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.


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

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

Touchscreen gestures and pixel-perfect trackpad scrolling

This article or section is a candidate for merging with Firefox/Tweaks#Enable touchscreen gestures.

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

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:


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 about:* 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 /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).

Firefox ships with Twemoji Mozilla font. To use system emoji font set to emoji in about:config.

Firefox has problems with Emoji presentation [10]. Set gfx.font_rendering.fontconfig.max_generic_substitutions to 0 as workaround.

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.

Changes to userChrome.css and userContent.css are ignored

Set toolkit.legacyUserProfileCustomizations.stylesheets to true in about:config

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:

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 cookies.sqlite.bak 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 full-screen-api.ignore-widgets to true in about:config.

Related bug reports: Bugzilla 1189622.

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


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: [12], [13], [14]

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

In Arch Linux, these fonts are provided by texlive-coreandtexlive-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. In case you encounter this bug [16] installing otf-latinmodern-math can help.

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

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

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 front-center port from the PulseAudio JACK Sink to both playback_1 and playback_2 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 cadence.

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: Geolocation error: Unknown error acquiring position. 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 about:config change the setting to:

See FS#65241 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 about:config and change ui.context_menus.after_mouseup to true.

See [17]

See also

  • mozillaZine unofficial forums
Retrieved from ''
Upstream wiki
Binary package information

Firefox is Mozilla's web browser. It is not the same thing as Firefox OS, which was a full operating system.

Aurora is the 'unbranded' version of Mozilla's Firefox.


USE flags

USE flags forwww-client/firefoxFirefox Web Browser

clang Use Clang compiler instead of GCC
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
eme-free Disable EME (DRM plugin) cabability at build time
geckodriver Enable WebDriver support
gmp-autoupdate Allow Gecko Media Plugins (binary blobs) to be automatically downloaded and kept up-to-date in user profiles
hardened Activate default security enhancements for toolchain (gcc, glibc, binutils)
hwaccel Force-enable hardware-accelerated rendering (Mozilla bug 594876)
jack Add support for the JACK Audio Connection Kit
lto Enable Link Time Optimization (LTO). Requires Gold linker when using GCC or LDD linker when using Clang
openh264 Use media-libs/openh264 for H.264 support instead of downloading binary blob from Mozilla at runtime
pgo Add support for profile-guided optimization using gcc-4.5, for faster binaries. This option will double the compile time.
pulseaudio Add support for PulseAudio sound server
screencast Enable support for remote desktop and screen cast using media-video/pipewire
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
system-av1 Use the system-wide media-libs/dav1d and media-libs/libaom library instead of bundled.
system-harfbuzz Use the system-wide media-libs/harfbuzz and media-gfx/graphite2 instead of bundled.
system-icu Use the system-wide dev-libs/icu instead of bundled.
system-jpeg Use the system-wide media-libs/libjpeg-turbo instead of bundled.
system-libevent Use the system-wide dev-libs/libevent instead of bundled.
system-libvpx Use the system-wide media-libs/libvpx instead of bundled.
system-webp Use the system-wide media-libs/libwebp instead of bundled.
wayland Enable dev-libs/wayland backend
wifi Enable wireless network functions
Data provided by the Gentoo Package Database · Last update: 2021-04-23 21:39 More information about USE flags

The above list of USE flag is not comprehensive. Use equery (part of app-portage/gentoolkit) for a full list:


To compile the source version of Firefox ESR, issue:

Be aware that non-ESR versions are not getting stabilized.

Emerging the source version of Firefox can be a long process; a pre-compiled (binary) version does exist in the Gentoo repository, however users of the pre-built package should note the warning below and this message. To emerge the Firefox binary, issue:

The disadvantage of using pre-compiled www-client/firefox-bin package is that almost all of the USE flags in the list above cannot be set. Be aware that setting these flags while using this package will not alter the binary.


Running under Wayland

Since Firefox 65, it is possible to run Firefox natively under Wayland by launching it with the GDK_BACKEND=wayland environment variable set after having emerged Firefox with the USE flag wayland enabled. From a terminal:

To set Firefox to always open using the Wayland backend, set the following environment variable in the user's shell. Bash is the default user shell on Gentoo systems:


Enabling multitouch

Xinput2 scrolling

This brings touch scrolling and multitouch support for Firefox:

MOZ_USE_XINPUT2environment variable has to be set to a value of 1 in /etc/env.d/80firefox, or just before launching firefox in a shell. for example:

This also eliminates the predefined scroll step size for touchpad scrolling! All scrolling will be really smooth.

Wacom tablets/touchscreens may need extra configuration so they emit true touch events for X.

Multitouch zoom

This only works when the multitouch events reach Firefox, therefore the Xinput2 activation above has to be done first.

Descriptionabout:config optionValue
Multitouch activationgestures.enable_single_finger_inputFalse
Zoom inbrowser.gesture.pinch.incmd_fullZoomReduce
Zoom outbrowser.gesture.pinch.outcmd_fullZoomEnlarge

Middle mouse scroll (autoscroll)

Traditionally in Linux, the middle mouse button is used to paste the currently selected (highlighted) text into a text field. On Windows systems, the middle mouse button in Firefox is used for click-and-drag scrolling up and down the page. This functionality can be enabled in Firefox by opening about:config and setting the following value[1]:

  • general.autoScroll = true

Middle click-and-drag scrolling should now be enabled.

Although not necessary, sometimes it is desirable to disable all other middle-click functionality within Firefox when using click-and-drap scrolling. Open about:config and set the following values to disable middle-click functionality:

  • middlemouse.contentLoadURL = false
  • middlemouse.openNewWindow = false
  • middlemouse.paste = false


Firefox >= 54 has 4 threads enabled by default. Threads can be adjusted by modifying the following in the about:config interface:

Descriptionabout:config optionValue
Increase the threadsdom.ipc.processCountN

Where N is an integer number.

Audio backend

Firefox's cubeb audio library supports a number of different backends[2][3].

Firefox Wayland Vaapi

Descriptionabout:config optionValue

Disabling percent-encoding

Normally, URLs that are copied from the address bar get percent-encoded. This may cause an annoyance when certain non-Latin symbols (such as Cyrillic) get encoded, as they become unreadable to humans.

To disable percent-encoding when copying from the address bar, set the about:config option network.standard-url.escape-utf8 to false.

Unfortunately Firefox does not support non-Latin symbols in anchors, those remain encoded (not percent-encoded, though).

Disable enforced digital signatures verification in Firefox >=48

This concerns mandatory add-ons signature in Firefox and can lead to security issues.

Method 1

Create this file:

Then insert this:

Firefox Wayland Hardware Acceleration


Method 2

Method 3

This patch works for both firefox 49 and firefox 51, and seems to be robust to changes.

Firefox Wayland Support