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-45.1, graphene-1.10.8, libei-1.2.0, libxcvt-0.1.2, libxkbcommon-1.6.0, and pipewire-1.0.1
Recommended
desktop-file-utils-0.27, gobject-introspection-1.78.1, and startup-notification-0.12
Recommended (Required to build the Wayland compositor)
libinput-1.25.0, Wayland-1.22.0, wayland-protocols-1.33, and Xwayland-23.2.4
Recommended (Runtime)
blocaled-0.5
Optional
dbusmock-0.30.2 (required for tests), Xorg-Server-21.1.11 (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 \
-Dtests=false \
-Dprofiler=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.11 or Xwayland-23.2.4. You should also replace -Dtests=false
in the meson command, with
-Dtests=true -Dclutter_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. One test named input-capture
is known to fail. A few other tests may fail depending on the 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.
-Dtests=false
: Prevents building the tests, and removes a hard requirement on xvfb-run.
-Dprofiler=false
: Allow building this package without Sysprof. Remove this option if you've installed Sysprof and want to analysis the rendering performance of Mutter.
-Dtests=true -Dclutter_tests=false
: Building all the tests but 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-13.so and libmutter-test-13.so (optional)
Installed Directories: /usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-13
Short Descriptions
mutter
|
is a Clutter based compositing GTK+ Window Manager
|
libmutter-13.so
|
contains the Mutter API functions
|
libmutter-test-13.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
|