source: gnome/platform/mutter.xml

trunk
Last change on this file was 7609bf4, checked in by Douglas R. Reno <renodr@…>, 4 days ago

Update to mutter-46.0

  • Property mode set to 100644
File size: 12.6 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY mutter-download-http "&gnome-download-http;/mutter/&gnome-46;/mutter-&mutter-version;.tar.xz">
8 <!ENTITY mutter-download-ftp " ">
9 <!ENTITY mutter-md5sum "fb8c5c6269dbb9f8d1fe5b9ef9b146a6">
10 <!ENTITY mutter-size "6.4 MB">
11 <!ENTITY mutter-buildsize "83 MB (with tests)">
12 <!ENTITY mutter-time "0.5 SBU (Using parallelism=4; add 1.4 SBU for tests)">
13]>
14
15<sect1 id="mutter" xreflabel="Mutter-&mutter-version;">
16 <?dbhtml filename="mutter.html"?>
17
18
19 <title>Mutter-&mutter-version;</title>
20
21 <indexterm zone="mutter">
22 <primary sortas="a-Mutter">Mutter</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Mutter</title>
27
28 <para>
29 <application>Mutter</application> is the window manager for
30 <application>GNOME</application>. It is not invoked directly,
31 but from <application>GNOME Session</application> (on a
32 machine with a hardware accelerated video driver).
33 </para>
34
35 &lfs121_checked;
36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&mutter-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&mutter-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &mutter-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &mutter-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &mutter-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &mutter-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">Mutter Dependencies</bridgehead>
72
73 <bridgehead renderas="sect4">Required</bridgehead>
74 <para role="required">
75 <xref linkend="gnome-settings-daemon"/>,
76 <xref linkend="graphene"/>,
77 <xref linkend="libei"/>,
78 <xref linkend="libxcvt"/>,
79 <xref linkend="libxkbcommon"/>, and
80 <xref linkend="pipewire"/>
81 </para>
82
83 <bridgehead renderas="sect4">Recommended</bridgehead>
84 <para role="recommended">
85 <xref linkend="desktop-file-utils"/>,
86 &gobject-introspection;, and
87 <xref linkend="startup-notification"/>
88 </para>
89
90 <bridgehead renderas="sect4">Recommended (Required to
91 build the Wayland compositor)</bridgehead>
92 <para role="recommended">
93 <xref linkend="libinput"/>,
94 <xref linkend="wayland"/>,
95 <xref linkend="wayland-protocols"/>, and
96 <xref linkend="xwayland"/>
97 </para>
98
99 <bridgehead renderas="sect4"
100 revision="sysv">Recommended (Runtime)</bridgehead>
101 <para role="recommended" revision="sysv">
102 <xref linkend="blocaled" role="runtime"/>
103 </para>
104
105 <bridgehead renderas="sect4">Optional</bridgehead>
106 <para role="optional">
107 <!-- sorted as "d" instead of "p" -->
108 <xref linkend="python-dbusmock"/> (required for tests),
109 <xref linkend="libdisplay-info"/>,
110 <!--<xref linkend="sysprof"/>,-->
111 <xref linkend="xorg-server"/> (for X11 sessions), and
112 <ulink url="&sysprof-url;">sysprof</ulink>
113 </para>
114
115 <!-- NOTE: Mutter compiles shipped Cogl and Clutter for it's own
116 internal use. This is because upstream have decided that Cogl and
117 Clutter should be only used by Mutter in the future, so the development
118 of Cogl and Clutter is now performed in the Mutter repository. The
119 "standalone" Cogl and Clutter are considered obsolete now and we have
120 archived them. -->
121
122 </sect2>
123
124 <sect2 role="installation">
125 <title>Installation of Mutter</title>
126
127 <para>
128 Install <application>Mutter</application> by running the following
129 commands:
130 </para>
131
132<screen><userinput>mkdir build &amp;&amp;
133cd build &amp;&amp;
134
135meson setup --prefix=/usr \
136 --buildtype=release \
137 -Dtests=false \
138 -Dprofiler=false \
139 .. &amp;&amp;
140ninja</userinput></screen>
141
142<!--
143 <para>
144 To test the results, issue:
145 <command>dbus-run-session ninja test</command>. The tests
146 require an active X session to run correctly. It is not necessary to
147 run a separate D-bus session if not in a GNOME session, but it
148 provides a clean environment in any case. One test,
149 <filename>native-headless</filename>, is known to fail.
150 </para>
151 -->
152 <!-- there are no added problems in sysv, AFAICT. Running the tests is
153 not easy whatever the init system. But using the instructions below in
154 a gnome session on sysv works (no test failure)...
155 <para revision='sysv'>
156 This package does not come with a test suite that runs properly in the
157 SystemV environment.
158 </para>
159 -->
160
161 <para>
162 The test suite requires an
163 external program called <command>xvfb-run</command>. If you wish to run
164 the tests, you should download and install it before running
165 <command>meson</command>.
166
167 You can obtain it from <ulink
168 url="&sources-anduin-http;/mutter/xvfb-run">xvfb-run</ulink>, and install
169 it with executable permissions in <filename
170 class="directory">/usr/bin</filename>. <command>xvfb-run</command> needs
171 <command>Xvfb</command> at runtime, and <command>Xvfb</command> can be
172 installed from either <xref linkend='xorg-server'/> or <xref
173 linkend='xwayland'/>.
174
175 You should also replace <parameter>-Dtests=false</parameter> in the
176 <command>meson</command> command, with
177 <parameter>-Dtests=true -Dclutter_tests=false</parameter>. The test
178 suite requires the mutter schema to be installed on the system, so it is
179 better to run the tests after installing the package.
180 </para>
181
182 <para>
183 You can also test basic functions of <application>Mutter</application>
184 following <xref linkend='mutter-starting'/>, after installing it.
185 </para>
186
187 <para>
188 Now, as the <systemitem class="username">root</systemitem> user:
189 </para>
190
191<screen role="root"><userinput>ninja install</userinput></screen>
192
193 <para>
194 If you wish to run the tests, remove the reference to
195 <application>Zenity</application> which is not a part of BLFS
196 from one test:
197 </para>
198
199<screen role='test'><userinput>sed 's/zenity --[a-z]*/gtk4-demo/' -i ../src/tests/x11-test.sh</userinput></screen>
200
201 <para>
202 Now run the test suite:
203 </para>
204
205<screen role='test'><userinput>ninja test</userinput></screen>
206
207 <para>
208 The tests require an active X or wayland session.
209 One test named
210 <!-- https://gitlab.gnome.org/GNOME/mutter/-/issues/2848 -->
211 <!--<filename>cogl-test-framebuffer-get-bits-gl3</filename> and-->
212 <!-- This needs a pipewire daemon running. As at Aug 2023
213 the method to run a pipewire daemon is not in BLFS
214 (but in editor notes), so claim this a known failure. -->
215 <filename>input-capture</filename> is known to fail.
216 <!-- As Xi noted in #18580, this test is flaky. -->
217 An additional test named
218 <filename>cogl-test-offscreen-texture-formats-gles2</filename> is known
219 to fail. <!-- https://gitlab.gnome.org/GNOME/mutter/-/issues/3343 -->
220 A few other tests may fail depending on the configuration.
221 Don't make any mouse or keyboard input while the test suite is
222 running or some tests may fail.
223 </para>
224
225 </sect2>
226
227 <sect2 role="commands">
228 <title>Command Explanations</title>
229
230 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
231 href="../../xincludes/meson-buildtype-release.xml"/>
232
233 <para>
234 <parameter>-Dtests=false</parameter>: Prevents building the tests,
235 and removes a hard requirement on <command>xvfb-run</command>.
236 </para>
237
238 <para>
239 <parameter>-Dprofiler=false</parameter>: Allow building this package
240 without <application>Sysprof</application>. Remove this option if
241 you've installed <application>Sysprof</application> and want to
242 analysis the rendering performance of
243 <application>Mutter</application>.
244 </para>
245
246 <para>
247 <option>-Dtests=true -Dclutter_tests=false</option>: Building all the
248 tests but the tests for the shipped <application>Clutter</application>
249 library. The <application>Clutter</application> tests are known to
250 fail with <parameter>--buildtype=release</parameter>.
251 </para>
252
253 <para>
254 <option>-Dlibdisplay_info=true</option>: Use this switch for the
255 <command>meson setup</command> command if you've installed
256 <xref linkend='libdisplay-info'/> and you want to use it for mutter
257 to improve the monitor EDID parsing.
258 </para>
259
260 </sect2>
261
262 <sect2 role="starting" id="mutter-starting">
263 <title>Starting Mutter</title>
264
265 <!-- Mutter as a Wayland compositor works with recent mutter releases.
266 IIRC mutter can also be used as a X window manager: just replace
267 "twm" with "mutter &dash;&dash;x11" in xinitrc. But I've not tested
268 such a configuration recently (I don't build Xorg Server or xinit
269 these days. -->
270
271 <para>
272 <application>Mutter</application> is normally used as a component of
273 <application>gnome-shell</application>, but it can be used as a
274 standalone Wayland compositor too. To run
275 <application>Mutter</application> as a Wayland compositor, in a
276 virtual console, issue:
277 </para>
278
279 <screen role='nodump'><userinput>mutter --wayland -- vte-2.91</userinput></screen>
280
281 <para>
282 Replace <command>vte-2.91</command> with the command line for the
283 first application you want in the Wayland session. Note that once this
284 application exits, the Wayland session will be terminated.
285 </para>
286
287 <para>
288 <application>Mutter</application> can also function as a nested
289 compositor in another Wayland session. In a terminal emulator, issue:
290 </para>
291
292 <screen role='nodump'><userinput>MUTTER_DEBUG_DUMMY_MODE_SPECS=1920x1080 mutter --wayland --nested -- vte-2.91</userinput></screen>
293
294 <para>
295 Replace <replaceable>1920x1080</replaceable> with the size you want
296 for the nested Wayland session.
297 </para>
298 </sect2>
299
300 <sect2 role="content">
301 <title>Contents</title>
302
303 <segmentedlist>
304 <segtitle>Installed Programs</segtitle>
305 <segtitle>Installed Libraries</segtitle>
306 <segtitle>Installed Directories</segtitle>
307
308 <seglistitem>
309 <seg>
310 mutter
311 </seg>
312 <seg>
313 libmutter-14.so and libmutter-test-14.so (optional)
314 </seg>
315 <seg>
316 /usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-14
317 </seg>
318 </seglistitem>
319 </segmentedlist>
320
321 <variablelist>
322 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
323 <?dbfo list-presentation="list"?>
324 <?dbhtml list-presentation="table"?>
325
326 <varlistentry id="mutter-prog">
327 <term><command>mutter</command></term>
328 <listitem>
329 <para>
330 is a <application>Clutter</application> based compositing
331 <application>GTK+</application> Window Manager
332 </para>
333 <indexterm zone="mutter mutter-prog">
334 <primary sortas="b-mutter">mutter</primary>
335 </indexterm>
336 </listitem>
337 </varlistentry>
338
339 <varlistentry id="libmutter">
340 <term><filename class="libraryfile">libmutter-14.so</filename></term>
341 <listitem>
342 <para>
343 contains the <application>Mutter</application> API functions
344 </para>
345 <indexterm zone="mutter libmutter">
346 <primary sortas="c-libmutter">libmutter-14.so</primary>
347 </indexterm>
348 </listitem>
349 </varlistentry>
350
351 <varlistentry id="libmutter-test">
352 <term><filename class="libraryfile">libmutter-test-14.so</filename></term>
353 <listitem>
354 <para>
355 contains the <application>Mutter</application> test suite API
356 functions; this library is only installed if the test suite of
357 this package is enabled and it is needed by
358 <application>gnome-shell</application> test suite
359 </para>
360 <indexterm zone="mutter libmutter-test">
361 <primary sortas="c-libmutter-test">libmutter-test-14.so</primary>
362 </indexterm>
363 </listitem>
364 </varlistentry>
365
366 </variablelist>
367
368 </sect2>
369
370</sect1>
Note: See TracBrowser for help on using the repository browser.