source: gnome/platform/mutter.xml@ 91318eb

12.0 12.1 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 91318eb was 91318eb, checked in by Pierre Labastie <pierre.labastie@…>, 15 months ago

Add "setup" to meson commands

I've not been very consistent on typography, but it is a start

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