Introduction to Mutter

Mutter is the window manager for GNOME. It is not invoked directly, but from GNOME Session (on a machine with a hardware accelerated video driver).



Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.

Package Information

Mutter Dependencies


gnome-settings-daemon-43.0, graphene-1.10.8, libxcvt-0.1.2, libxkbcommon-1.5.0, and pipewire-0.3.65


Recommended (Required to build the Wayland compositor)

Recommended (Runtime)


dbusmock-0.28.7 (required for tests) and Xorg-Server-21.1.7 (for X11 sessions)

User Notes:

Installation of Mutter

Install Mutter by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=debugoptimized -Dtests=false .. &&

The test suite requires debug functions to be enabled in the build, and an external program called xvfb-run. If you wish to run the tests, you should download and install it before running meson. You can obtain it from xvfb-run, and install it with executable permissions in /usr/bin. xvfb-run needs Xvfb at runtime, and Xvfb can be installed from either Xorg-Server-21.1.7 or Xwayland-22.1.8. You should also replace -Dtests=false in the meson command, with -Dtests=true. The test suite requires the mutter schema to be installed on the system, so it is better to run the tests after installing the package.

You can also test basic functions of Mutter following the section called “Starting Mutter”, after installing it.

Now, as the root user:

ninja install

The tests can now be run: issue ninja test. The tests require an active X or wayland session. The native-unit test is known to fail. A lot of tests will fail if the opengl rendering is not done in hardware.

Command Explanations

--buildtype=debugoptimized: Override the default buildtype (debug), which would produce unoptimized binaries. It's used instead of --buildtype=release to work around an issue causing gnome-shell to crash.

-Dtests=false: Prevents building the tests, and removes a hard requirement on xvfb-run.

-Dprofiler=false: Use this option if Sysprof is not installed, and you don't want meson to download Sysprof source code.

Starting Mutter

Mutter is normally used as a component of gnome-shell, but it can be used as a standalone Wayland compositor too. To run Mutter as a Wayland compositor, in a virtual console, issue:

mutter --wayland -- vte-2.91

Replace vte-2.91 with the command line for the first application you want in the Wayland session. Note that once this application exits, the Wayland session will be terminated.

Mutter can also function as a nested compositor in another Wayland session. In a terminal emulator, issue:

MUTTER_DEBUG_DUMMY_MODE_SPECS=1920x1080 mutter --wayland --nested -- vte-2.91

Replace 1920x1080 with the size you want for the nested Wayland session.


Installed Programs: mutter
Installed Libraries:
Installed Directories: /usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-11

Short Descriptions


is a Clutter based compositing GTK+ Window Manager

contains the Mutter API functions