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).
Note
Development versions of BLFS may not build or run some packages
properly if LFS or dependencies have been updated since the most
recent stable versions of the books.
Package Information
Mutter Dependencies
Required
gnome-settings-daemon-46.0,
graphene-1.10.8, libei-1.3.0, libxcvt-0.1.2, libxkbcommon-1.7.0, and pipewire-1.2.5
Recommended
desktop-file-utils-0.27, GLib-2.82.2 (with GObject Introspection), and
startup-notification-0.12
Recommended (Required to build the Wayland compositor)
libinput-1.26.2, Wayland-1.23.0, wayland-protocols-1.38, and Xwayland-24.1.3
Recommended (Runtime)
blocaled-0.6
Optional
dbusmock-0.32.2 (required for tests),
libdisplay-info-0.2.0, Xorg-Server-21.1.13 (for X11 sessions),
and sysprof
Installation of Mutter
Install Mutter by running the
following commands:
mkdir build &&
cd build &&
meson setup --prefix=/usr \
--buildtype=release \
-D tests=false \
-D profiler=false \
.. &&
ninja
The test suite requires 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.13 or Xwayland-24.1.3. You should also replace
-D tests=false
in the
meson command, with
-D tests=true -D
clutter_tests=false
. 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
If you wish to run the tests, remove the reference to Zenity which is not a part of BLFS from one
test:
sed 's/zenity --[a-z]*/gtk4-demo/' -i ../src/tests/x11-test.sh
Now run the test suite:
ninja test
The tests require an active X or wayland session. Some tests are
flaky (especially under a high system load) so if a test fails you
can try to re-run it alone with the meson test <test
name>
command. A few tests may fail
depending on some system configuration. Don't make any mouse or
keyboard input while the test suite is running or some tests may
fail.
Command Explanations
--buildtype=release
:
Specify a buildtype suitable for stable releases of the package, as
the default may produce unoptimized binaries.
-D tests=false
: Prevents
building the tests, and removes a hard requirement on xvfb-run.
-D profiler=false
: Allows
building this package without Sysprof. Remove this option if you've
installed Sysprof and want to
analyze the rendering performance of Mutter.
-D tests=true -D clutter_tests=false
:
This builds all of the tests except for the tests for the shipped
Clutter library. The Clutter tests are known to fail with
--buildtype=release
.
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.
Contents
Installed Programs:
mutter
Installed Libraries:
libmutter-14.so and libmutter-test-14.so
(optional)
Installed Directories:
/usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-14
Short Descriptions
mutter
|
is a Clutter based
compositing GTK+ Window
Manager
|
libmutter-14.so
|
contains the Mutter API
functions
|
libmutter-test-14.so
|
contains the Mutter test
suite API functions; this library is only installed if
the test suite of this package is enabled and it is
needed by gnome-shell
test suite
|