Firefox Wayland



This section details the manual installation and configuration of Waylandcompositors and related services and utilities.

  1. Firefox Wayland Default
  2. Firefox Wayland Environment Variable
  3. Firefox Wayland Opensuse
  4. Firefox On Wayland

Firefox 75 due to be released next month should finally have its native Wayland support in good order. Merged yesterday were the Firefox Wayland patches for VA-API video acceleration support in conjunction with FFmpeg. And so the slow, almost never-ending march towards Wayland continues. I wonder if the march will ever end. Re: setting wayland for Firefox Environment variables do not have the inherent concept of 'graphical' or not. They are either set when the parent starts the childprocess or they aren't.

Installation

Unlike Xorg, Wayland implementations combine the display server,the window manager and the compositor in a single application.

Desktop Environments

GNOME, KDE Plasma and Enlightenment have Wayland sessions. GNOME uses itsWayland session by default. When using these desktop environments, applicationsbuilt with GTK+ will automatically choose the Wayland backend, while Qt5 and EFLapplications might require setting some environmentvariables if used outside KDE or Enlightenment,respectively.

Standalone compositors

Void Linux currently packages the following Wayland compositors:

  • Weston: reference compositor for Wayland
  • Sway: an i3-compatible Wayland compositor
  • Wayfire: 3D Wayland compositor
  • Hikari: a stacking compositor with some tiling features
  • Cage: a Wayland kiosk

Video drivers

Both GNOME and KDE Plasma have EGLStreams backends for Wayland, which means theycan use the proprietary NVIDIA drivers. Most other Wayland compositors requiredrivers that implement the GBM interface. The main driver for this purpose isprovided by the mesa-dri package. The 'GraphicsDrivers' section has more details regardingsetting up graphics in different systems.

Seat management

Wayland compositors require some way of controlling the video display andaccessing input devices. In Void systems, this requires a seat manager service,which can be either elogind or seatd. Enabling them is explained in the'Session and Seat Management' session.

Native applications

Qt5-based applications requireinstalling the qt5-wayland package and setting the environment variableQT_QPA_PLATFORM=wayland-egl to enable their Wayland backend. Some KDE specificapplications also require installing the kwayland package.EFL-based applications requiresetting the environment variable ELM_DISPLAY=wl, and can have issues withoutit, due to not supporting XWayland properly.GTK+-based applicationsshould use the Wayland backend automatically. Information about other toolkitscan be found in the Waylanddocumentation.

Media applications, such as mpv(1),vlc(1) and imv work natively on Wayland.

Web browsers

Mozilla Firefox ships with a Wayland backend which is disabled by default. Toenable the Wayland backend, either set the environment variableMOZ_ENABLE_WAYLAND=1 before running firefox or use the providedfirefox-wayland script.

Browsers based on GTK+ or Qt5, such as Midori andqutebrowser(1), should work onWayland natively.

Running X applications inside Wayland

Firefox Wayland

If an application doesn't support Wayland, it can still be used in a Waylandcontext. XWayland is an X server that bridges this gap for most Waylandcompositors, and is installed as a dependency for most of them. Its package isxorg-server-xwayland. For Weston, the correct package is weston-xwayland.

Configuration

The Wayland library uses the XDG_RUNTIME_DIR environment variable to determinethe directory for the Wayland socket.

Install elogind as your session manager toautomatically setup XDG_RUNTIME_DIR.

Alternatively, manually set the environment variable through the shell. Makesure to create a dedicated user directory and set its permissions to 700. Agood default location is /run/user/$(id -u).

It is also possible that some applications use the XDG_SESSION_TYPEenvironment variable in some way, which requires that you set it to wayland.

Package Details: firefox-wayland-hg r635306.b898442a9527-1

Package Actions

  • View PKGBUILD / View Changes
Git Clone URL: https://aur.archlinux.org/firefox-wayland-hg.git (read-only, click to copy)
Package Base: firefox-wayland-hg
Description: Standalone web browser from mozilla.org (mozilla-unified hg, release branding, targeting wayland)
Upstream URL: https://www.mozilla.org/firefox/
Keywords:
Licenses: GPL, MPL, LGPL
Conflicts: firefox
Provides: firefox
Submitter: onny
Maintainer: thotypous (PedroHLC)
Last Packager: thotypous
Votes: 14
Popularity: 0.061224
First Submitted: 2018-03-09 15:10
Last Updated: 2021-04-16 22:09

Dependencies (44)

  • dbus-glib(dbus-glib-git)
  • ffmpeg(ffmpeg-semifull-git, ffmpeg-tmblock-git, ffmpeg4.0, ffmpeg-cuda, ffmpeg-v4l2-request-git, ffmpeg-svt, ffmpeg-gl-transition, ffmpeg-intel-full-git, ffmpeg-mmal, ffmpeg-svt-av1-git, ffmpeg-nox-git, ffmpeg-svt-vp9-git, ffmpeg-headless, ffmpeg-ndi, ffmpeg-decklink, ffmpeg-git, ffmpeg-libfdk_aac, ffmpeg-nocuda, ffmpeg-full, ffmpeg-amd-full, ffmpeg-full-git, ffmpeg-amd-full-git)
  • gtk3(gtk3-cosy, gtk3-adwaita-3-32-git, gtk3-git, gtk3-ubuntu, gtk3-no_deadkeys_underline, gtk3-patched-filechooser-icon-view, gtk3-typeahead, gtk3-classic)
  • icu(icu-git-static, icu-git)
  • libevent(libevent-git, libevent-fb)
  • libjpeg (libjpeg-droppatch, mozjpeg-git, libjpeg-turbo-git, libjpeg-turbo-minimal-git, mozjpeg, libjpeg-turbo)
  • libpulse(libpulse-bluedio, pulseaudio-pali, libpulse-airplay, libpulse-hsphfpd, pulseaudio-dummy, libpulse-nosystemd-git, libpulse-nosystemd-minimal-git, libpulse-nosystemd, pulseaudio-git)
  • libvpx(libvpx-1.6, libvpx-full-git, libvpx-1.7, libvpx-git)
  • mime-types (mailcap-mime-types, mailcap)
  • ttf-font (neuropol-ttf, ttf-droid-emojiless, ttf-noto-fonts-ib, pixeled-ttf, ttf-win7-fonts, ttf-ms-win8, ttf-ms-win8-arabic, ttf-ms-win8-hebrew, ttf-ms-win8-sea, ttf-ms-win8-indic, ttf-ms-win8-japanese, ttf-ms-win8-korean, ttf-ms-win8-zh_cn, ttf-ms-win8-zh_tw, ttf-ms-win8-thai, ttf-ms-win8-other, ttf-noto-fonts-simple, ttf-droid-simple, ttf-kids, ttf-gabriola, ttf-win10, ttf-liberation-sans-narrow, ttf-cavafy-script, ttf-ms-fonts, ttf-dejavu-ib, ttf-droid-ib, ttf-zelda, ttf-oxygen, ttf-oxygen-gf, ttf-share-gf, ttf-gost, nerd-fonts-dejavu-complete, otf-inconsolata-dz, ttf-paratype, ttf-d2coding, ttf-dejavu-emojiless, ttf-tr2n, noto-fonts-lite, ttf-ms-win10, ttf-ms-win10-japanese, ttf-ms-win10-korean, ttf-ms-win10-sea, ttf-ms-win10-thai, ttf-ms-win10-zh_cn, ttf-ms-win10-zh_tw, ttf-ms-win10-other, ttf-ibm-plex-mono-git, ttf-agave, ttf-ms-win10-auto, gnu-free-fonts, noto-fonts, ttf-bitstream-vera, ttf-croscore, ttf-dejavu, ttf-droid, ttf-ibm-plex, ttf-liberation)
  • xorg-server-xwayland (xorg-server-xwayland-notty, xorg-server-xwayland-sd_notify, xorg-xwayland-git, xorg-xwayland-hidpi-git, xorg-server-xwayland-dev, xorg-server1.19-xwayland-git, xorg-xwayland-rootless-nosystemd-minimal-git, xorg-xwayland)
  • zlib(zlib-static, zlib-git, zlib-asm, minizip-asm, zlib-ng-git, zlib-ng)
  • autoconf2.13(make)
  • cbindgen(make)
  • clang(clang-pypy-stm, clang39, clang38, llvm-tce, clang8, llvm-toolchain-nightly-bin, llvm-minimal-git, llvm-git, clang-rc, clang-stable)(make)
  • diffutils(diffutils-git, diffutils-patched-exclude-directory-git)(make)
  • gtk2(gtk2-patched-gdkwin-nullcheck, gtk2-ubuntu, gtk2-git, gtk2-minimal-git, gtk2-patched-filechooser-icon-view)(make)
  • imake(make)
  • inetutils(inetutils-hostname, gettext-hostname, inetutils-git)(make)
  • jack(jack-git, jack-stub, jack-dbus, jack2-git, pipewire-jack-git, jack2)(make)
  • libpipewire02(make)
  • lld(llvm-toolchain-nightly-bin, llvm-git, lld-rc, lld-stable)(make)
  • llvm(llvm-pypy-stm, llvm39, llvm-asserts, llvm38, llvm-tce, llvm11, llvm11-libs, llvm11-ocaml, llvm8, llvm-toolchain-nightly-bin, llvm-minimal-git, llvm-rc, llvm-stable)(make)
  • mercurial(mercurial-hg, mercurial-stable-hg)(make)
  • mesa(mesa-noglvnd, mesa-rc, mesa-stable, mesa-git, mesa-minimal-git, mesa-minimal+-git, mesa-d3d12)(make)
  • nasm(nasm-git)(make)
  • nodejs(nodejs6-bin, nodejs-git, nodejs-nightly, nodejs-lts-dubnium, nodejs-lts-erbium, nodejs-lts-fermium)(make)
  • python(python-dbg)(make)
  • python-psutil(make)
  • python-setuptools(make)
  • python-zstandard(make)
  • rust(rust-i586-git, rust-git, rust-mrustc, rustup-git, rust-nightly, rust-nightly-bin, rust-wasm, rust-bin, rustup)(make)
  • unzip(unzip-natspec, unzip-iconv)(make)
  • yasm(yasm-git)(make)
  • zip(zip-natspec)(make)
  • hunspell-en_US(optional) – Spell checking, American English
  • libnotify(libnotify-gtk2, libnotify-id-git, libnotify-id)(optional) – Notification integration
  • networkmanager(networkmanager-secure, networkmanager-noscan, networkmanager-git, networkmanager-consolekit, networkmanager-iwd)(optional) – Location detection via available WiFi networks
  • pulseaudio(pulseaudio-bluedio, pulseaudio-pali, pulseaudio-airplay, pulseaudio-hsphfpd, pulseaudio-dummy, pulseaudio-nosystemd-git, pulseaudio-nosystemd-minimal-git, pipewire-common-pulse-git, pulseaudio-git, pipewire-full-pulse-git, pipewire-pulse-git, pipewire-pulse)(optional) – Audio support
  • speech-dispatcher(speech-dispatcher-git)(optional) – Text-to-Speech
  • xdg-desktop-portal(xdg-desktop-portal-git)(optional) – Required for screen sharing

Required by (127)

  • activityfox-git(requires firefox)
  • admin-git(requires firefox)(optional)
  • alterlinux-welcome-page(requires firefox)(optional)
  • anylogic-ple(requires firefox)(optional)
  • anylogic-ple-8.2.4(requires firefox)(optional)
  • anylogic-professional(requires firefox)(optional)
  • anylogic-professional-8.2.4(requires firefox)(optional)
  • anylogic-university(requires firefox)(optional)
  • anylogic-university-8.2.4(requires firefox)(optional)
  • arc-firefox-theme-git(requires firefox)
  • atelierb(requires firefox)(optional)
  • autofirma(requires firefox)
  • autofirmaja(requires firefox)
  • ayatana-indicator-session(requires firefox)(optional)
  • bright-cmgui(requires firefox)
  • browsh(requires firefox)
  • browsh-bin(requires firefox)
  • cacaoweb-bin(requires firefox)
  • clean-home(requires firefox)(optional)
  • conkeror-git(requires firefox)
  • crunchyroll-guest-pass-finder(requires firefox)(optional)
  • dat-fox-helper-git(requires firefox)
  • eid-mw(requires firefox)(optional)
  • firefox-auto-tab-discard(requires firefox)
  • firefox-extension-amazon-container(requires firefox)
  • firefox-extension-arch-search(requires firefox)
  • firefox-extension-available-goodreads(requires firefox)
  • firefox-extension-bitwarden(requires firefox)
  • firefox-extension-block-site(requires firefox)
  • firefox-extension-bypass-paywalls(requires firefox)
  • firefox-extension-canvasblocker(requires firefox)
  • firefox-extension-containerise(requires firefox)
  • firefox-extension-dustman(requires firefox)
  • firefox-extension-enhancedsteam(requires firefox)
  • firefox-extension-facebook-container(requires firefox)
  • firefox-extension-feedly-notifier(requires firefox)
  • firefox-extension-flagfox(requires firefox)
  • firefox-extension-foxyproxy(requires firefox)
  • firefox-extension-gnome-shell-integration(requires firefox)
  • firefox-extension-google-search-link-fix(requires firefox)
  • firefox-extension-greasemonkey(requires firefox)
  • firefox-extension-gsconnect(requires firefox)
  • firefox-extension-hide-fixed-elements(requires firefox)
  • firefox-extension-image-block(requires firefox)
  • firefox-extension-kdeconnect(requires firefox)
  • firefox-extension-keepassxc-browser(requires firefox)
  • firefox-extension-leechblock(requires firefox)
  • firefox-extension-localcdn(requires firefox)
  • firefox-extension-mooltipass(requires firefox)
  • firefox-extension-multi-account-containers(requires firefox)
  • firefox-extension-plasma-integration(requires firefox)
  • firefox-extension-privacy-pass(requires firefox)
  • firefox-extension-radical-native(requires firefox)
  • firefox-extension-search-by-image(requires firefox)
  • firefox-extension-smart-referer(requires firefox)
  • firefox-extension-sponsorblock(requires firefox)
  • firefox-extension-tab-session-manager(requires firefox)
  • firefox-extension-textarea-cache(requires firefox)
  • firefox-extension-textern-native-git(requires firefox)
  • firefox-extension-trackmenot(requires firefox)
  • firefox-extension-undo-close-tab-button(requires firefox)
  • firefox-extension-unity-launcher-api-e10s(requires firefox)
  • firefox-extension-user-agent-switcher(requires firefox)
  • firefox-extension-video-download-helper(requires firefox)
  • firefox-extension-xdm-browser-monitor(requires firefox)
  • firefox-extension-yomichan(requires firefox)
  • firefox-extension-youtube-classic(requires firefox)
  • firefox-hardening(requires firefox)(optional)
  • firefox-mega(requires firefox)
  • firefox-onetab(requires firefox)
  • firefox-passff-git(requires firefox)
  • firefox-saka-key(requires firefox)
  • firefox-searchengine-ddghtml(requires firefox)
  • firefox-sync(requires firefox)
  • firefox-theme-ft-deepdark(requires firefox)
  • firefox-theme-gnome-git(requires firefox)
  • firefox-theme-nasa-night-launch(requires firefox)
  • firefox-userchromejs(requires firefox)
  • firefox_remove_ctrl_q(requires firefox)
  • gnome-web-shortcuts-extension-git(requires firefox)
  • hub-kids(requires firefox)(optional)
  • hub-young(requires firefox)(optional)
  • ice-dev(requires firefox)(optional)
  • ice-ssb(requires firefox)(optional)
  • ice-ssb-git(requires firefox)(optional)
  • icedtea-web-doc-jre32(requires firefox)(make)
  • icedtea-web-jre32(requires firefox)(make)
  • jazz-midi-plugin-bin(requires firefox)(optional)
  • justbrowsing-firefox-profile(requires firefox)(optional)
  • justbrowsing-webapps(requires firefox)(optional)
  • keysnail-git(requires firefox)
  • kget-integrator-firefox(requires firefox)(optional)
  • lastpass(requires firefox)(optional)
  • legacyfox(requires firefox)
  • mobile-config-firefox(requires firefox)
  • mozilla-custom-dictionaries(requires firefox)(optional)
  • openstack-horizon(requires firefox)(check)
  • openstack-horizon-doc(requires firefox)(check)
  • pennywise-bin(requires firefox)(optional)
  • pentadactyl-git(requires firefox)(optional)
  • pronounce-git(requires firefox)(optional)
  • pyf9-git(requires firefox)(make)
  • python-bokeh(requires firefox)(optional)
  • qqbot(requires firefox)(optional)
  • remmina-plugin-url(requires firefox)(optional)
  • rofi-applets-menus(requires firefox)(optional)
  • rofi-theme-android-1080p(requires firefox)(optional)
  • rofi-theme-android-720p(requires firefox)(optional)
  • rofi-theme-applet-1080p(requires firefox)(optional)
  • rofi-theme-applet-720p(requires firefox)(optional)
  • rofi-theme-fonts(requires firefox)(optional)
  • rofi-theme-launcher-1080p(requires firefox)(optional)
  • rofi-theme-launcher-720p(requires firefox)(optional)
  • rofi-theme-menu-1080p(requires firefox)(optional)
  • rofi-theme-menu-720p(requires firefox)(optional)
  • rofi-theme-powermenu-1080p(requires firefox)(optional)
  • rofi-theme-powermenu-720p(requires firefox)(optional)
  • rofi-theme-used(requires firefox)(optional)
  • slimerjs(requires firefox)
  • spice-xpi(requires firefox)
  • tfe(requires firefox)
  • turboprint(requires firefox)(optional)
  • uget-integrator-firefox(requires firefox)(optional)
  • web-media-controller-mpris(requires firefox)(optional)
  • web-media-controller-mpris-git(requires firefox)(optional)
  • webui-aria2-git(requires firefox)(optional)
  • zoom-firefox(requires firefox)

thotypous commented on 2021-02-22 15:34

If you don't want to build yourself, daily builds of this package are available at https://aur.chaotic.cx

PedroHLC commented on 2020-03-03 15:09

I believe you guys will want to:

  • run Firefox under wayland compositor with MOZ_ENABLE_WAYLAND=1

  • set widget.wayland-dmabuf-*.enabled to true and media.ffvpx.enabled to false, at about:config

As explained by FF dev Martin Stránský in his posts.

Firefox

For screen sharing on swaywm, take a look at: https://www.reddit.com/r/swaywm/comments/fq1qoe/how_to_use_xdgdesktopportalwlr_to_share_the_screen/flskv61/

thotypous commented on 2021-02-22 15:34

If you don't want to build yourself, daily builds of this package are available at https://aur.chaotic.cx

thotypous commented on 2021-02-01 12:30

@GLaDTheresCake Maybe mach tries to use rustup when it is installed? We actually only use this PKGBUILD on a clean chroot (and rustup is not a makedepend), so it works fine. We make daily binary builds of this package at chaotic-aur.

However, if you suggest modifications to make the PKGBUILD more friendly for users not building on a clean chroot, I'd happily apply the modifications (as long as they are simple). I think most users won't want to build this package themselves, though (it takes around 1 hour to build in a 40-core machine).

GLaDTheresCake commented on 2021-01-31 18:03

The build is failing for me with the following error:

kubrick commented on 2020-10-12 15:43

You don't need that hack for the pipewire patch.

All you need to do is pull the correct Mercurial bookmark as the 'beta' one reverts to the previous layout.

source=('hg+$_repo#revision=autoland'

does it for me.

thotypous commented on 2020-05-22 22:01

For the file dialog to work on swaywm, set widget.use-xdg-desktop-portal to false.

columbariu_s commented on 2020-05-14 19:17

Can't download from the mozilla firefox repo.

I have around 10Mb/s down and the download takes a long time (>20min). Could that be a timeout, or something like that?

hg clone with --verbose and --debug returns

edit: layout

PedroHLC commented on 2020-05-02 14:18

PedroHLC commented on 2020-04-03 15:14

@jkbl, please post error messages using LANG=en_US.UTF-8:

It looks like an upstream problem with a testing component (we're already including nss-hg as dependency). Also, seems to be failing since 27/03.

Firefox Wayland Default

Ping me in a week if it isn't fixed yet.Till then, you can always find my latest successful daily build here.

Firefox Wayland Environment Variable

Firefox

jklb commented on 2020-04-03 15:00

PedroHLC commented on 2020-03-23 10:46

Hi @Fandekasp. For that to work, you'll need to rebuild/update nss-hg.

Firefox on wayland

Firefox Wayland Opensuse

I'll be studying to add it with a condition in the dependencies list. It would be better cause you would know when an update is needed before start building. But It would depend on me changing it manually on every change.

Firefox On Wayland

You can also catch up with my daily builds in Chaotic-AUR.