source: x/lib/gtk4.xml

trunk
Last change on this file was 3c5822f, checked in by Douglas R. Reno <renodr@…>, 6 days ago

Update to gtk-4.14.3

  • Property mode set to 100644
File size: 18.4 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 gtk4-download-http "&gnome-download-http;/gtk/&gtk4-minor;/gtk-&gtk4-version;.tar.xz">
8 <!ENTITY gtk4-download-ftp " ">
9 <!ENTITY gtk4-md5sum "b7d1d14307535649097a09fdf50f942c">
10 <!ENTITY gtk4-size "17 MB">
11 <!ENTITY gtk4-buildsize "711 MB (with docs; add 66 MB for tests)">
12 <!ENTITY gtk4-time "1.3 SBU (using parallelism=4; with docs; add 1.3 SBU for tests)">
13]>
14
15<sect1 id="gtk4" xreflabel="GTK-&gtk4-version;">
16 <?dbhtml filename="gtk4.html"?>
17
18 <title>GTK-&gtk4-version;</title>
19
20 <indexterm zone="gtk4">
21 <primary sortas="a-gtk4">GTK-4</primary>
22 </indexterm>
23
24 <sect2 role="package">
25 <title>Introduction to GTK 4</title>
26
27 <para>
28 The <application>GTK 4</application> package contains libraries used for
29 creating graphical user interfaces for applications.
30 </para>
31
32 &lfs121_checked;
33
34 <bridgehead renderas="sect3">Package Information</bridgehead>
35 <itemizedlist spacing="compact">
36 <listitem>
37 <para>
38 Download (HTTP): <ulink url="&gtk4-download-http;"/>
39 </para>
40 </listitem>
41 <listitem>
42 <para>
43 Download (FTP): <ulink url="&gtk4-download-ftp;"/>
44 </para>
45 </listitem>
46 <listitem>
47 <para>
48 Download MD5 sum: &gtk4-md5sum;
49 </para>
50 </listitem>
51 <listitem>
52 <para>
53 Download size: &gtk4-size;
54 </para>
55 </listitem>
56 <listitem>
57 <para>
58 Estimated disk space required: &gtk4-buildsize;
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 Estimated build time: &gtk4-time;
64 </para>
65 </listitem>
66 </itemizedlist>
67
68 <bridgehead renderas="sect3">GTK 4 Dependencies</bridgehead>
69
70 <bridgehead renderas="sect4">Required</bridgehead>
71 <para role="required">
72 <xref linkend="fribidi"/>,
73 <xref linkend="gdk-pixbuf"/>,
74 <xref linkend="graphene"/>,
75 <xref linkend="iso-codes"/>,
76 <xref linkend="libepoxy"/>,
77 <xref linkend="libxkbcommon"/>,
78 <xref linkend="pango"/>,
79 <xref linkend="pygobject3"/>, and
80 <xref linkend="wayland-protocols"/>
81 </para>
82
83 <bridgehead renderas="sect4">Recommended</bridgehead>
84 <para role="recommended">
85 <xref linkend="adwaita-icon-theme"/> (default for some gtk4 settings keys),
86 <xref linkend="gst10-plugins-bad"/>,
87 <xref role='runtime' linkend="gst10-plugins-good"/> (runtime,
88 built with <xref role='nodep' linkend='libvpx'/>),
89 <xref linkend="hicolor-icon-theme"/> (needed for tests and for defaults), and
90 <xref linkend="librsvg"/>
91 </para>
92
93 <bridgehead renderas="sect4">Recommended (Required if building GNOME)</bridgehead>
94 <para role="recommended">
95 &gobject-introspection;
96 </para>
97
98 <bridgehead renderas="sect4">Optional</bridgehead>
99 <para role="optional">
100 <xref linkend="colord"/>,
101 <xref linkend="cups"/>,
102 <xref linkend="docutils"/>,
103 <xref linkend="ffmpeg"/> (built with
104 <xref role='nodep' linkend='libvpx'/>),
105 <xref linkend="gi-docgen"/>,
106 <xref role="runtime" linkend="highlight"/>
107 (runtime, only used by <command>gtk4-demo</command> for syntax
108 highlighting of demo source code),
109 <xref linkend="libcloudproviders"/>,
110 <xref linkend="sassc"/>,
111 <xref linkend="tracker3"/>,
112 <xref linkend="vulkan-loader"/>,
113 <ulink url="https://github.com/OpenPrinting/cpdb-libs">cpdb</ulink>,
114 <ulink url="https://github.com/google/shaderc">glslc</ulink>, and
115 <ulink url="&sysprof-url;">sysprof</ulink>
116 <!--<ulink url="https://vulkan.lunarg.com/sdk/home">vulkan</ulink>-->
117 </para>
118
119 </sect2>
120
121 <sect2 role="installation">
122 <title>Installation of GTK 4</title>
123
124 <para>
125 Install <application>GTK 4</application> by running the following
126 commands:
127 </para>
128
129<screen><userinput>mkdir build &amp;&amp;
130cd build &amp;&amp;
131
132meson setup --prefix=/usr \
133 --buildtype=release \
134 -Dbroadway-backend=true \
135 -Dintrospection=enabled \
136 -Dvulkan=disabled \
137 .. &amp;&amp;
138ninja</userinput></screen>
139
140 <para>
141 If you have <xref linkend='gi-docgen'/> installed and wish to build
142 the API documentation for this package, issue:
143 </para>
144
145<screen remap='doc'><userinput>sed "s@'doc'@&amp; / 'gtk-&gtk4-version;'@" -i ../docs/reference/meson.build &amp;&amp;
146meson configure -Ddocumentation=true &amp;&amp;
147ninja</userinput></screen>
148
149 <para>
150 To run the tests, issue: <command>dbus-run-session meson test --setup
151 x11</command>. If you are in a Wayland session, replace x11 with wayland.
152 Nine tests are known to fail if
153 <ulink url="https://gitlab.gnome.org/GNOME/cantarell-fonts">Cantrell fonts</ulink>
154 are not installed. Many tests will fail if
155 <filename>~/.config/gtk-4.0/settings.ini</filename> exists and the gtk-modules
156 line is not commented out.
157 On systems with NVIDIA graphics cards, the tests may take significantly
158 longer than the above test time.
159 </para>
160<!-- [pierre]: 4.6.0, wayland: 727 ok; 2 Expected Fail; 1 Fail; 1 Skipped
161 [bdubbs]: 4.6.3, x11, 724 OK, 2 Expected Fail, 12 Fail. 1 Skipped
162 [pierre]: 4.6.6, wayland, 738 OK, 2 Expected Fail, 1 Fail. 1 Skipped
163 [pierre]: 4.6.7, wayland, 737 OK, 2 Expected Fail, 1 Fail. 1 Skipped. 1 Timeout
164 [bdubbs]: 4.6.7, x11, 758 OK, 2 Expected Fail, 9 Fail. 1 Skipped. 1 Timeout
165 [pierre]: 4.8.1, wayland, 765 OK, 2 Expected Fail, 2 Fail. 1 Skipped
166 [bdubbs]: 4.8.2, x11, 753 OK, 2 Expected Fail, 14 Fail. 1 Skipped
167 [pierre]: 4.8.3, wayland, 760 OK, 2 Expected Fail, 5 Fail. 3 Skipped
168 [bdubbs]: 4.10.0, x11, 701 OK, 0 Expected Fail, 15 Fail. 1 Skipped, 2 Timeout
169 above over ssh
170 [bdubbs]: 4.10.0, x11, 712 OK, 0 Expected Fail, 6 Fail. 1 Skipped, 0 Timeout
171 above on native x11
172 [bdubbs]: 4.12.0, x11, 1453 OK, 0 Expected Fail, 9 Fail. 5 Skipped, 0 Timeout
173 above on native x11
174 [bdubbs]: 4.12.1, x11, 1455 OK, 0 Expected Fail, 7 Fail. 5 Skipped, 0 Timeout
175 above on native x11
176 [renodr]: 4.12.4, x11, 1535 OK, 0 Expected Fail, 8 Fail, 5 Skipped, 0 Timeout
177 above on native X11
178 [rahul]: 4.14.1, wayland, 4174 OK, 0 Expected Fail, 81 Fail, 2 Skipped, 0 Timeout
179 above on native wayland (Plasma 6)
180 [renodr]: 4.14.2, wayland, 4211 OK, 0 Expected Fail, 43 Fail, 2 Skipped, 0 Timeout
181 above on wayland in GNOME
182 [renodr]: 4.14.3, wayland, 4250 OK, 0 Expected Fail, 42 Fail, 2 Skipped, 0 Timeout
183 above on wayland in GNOME
184-->
185
186 <para>
187 Now, as the <systemitem class="username">root</systemitem> user:
188 </para>
189
190<screen role="root"><userinput>ninja install</userinput></screen>
191 </sect2>
192
193 <sect2 role="commands">
194 <title>Command Explanations</title>
195
196 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
197 href="../../xincludes/meson-buildtype-release.xml"/>
198
199 <para>
200 <parameter>-Dbroadway-backend=true</parameter>: This switch enables the
201 HTML5 GDK backend.
202 </para>
203
204 <para>
205 <parameter>-Dintrospection=enabled</parameter>: This switch enables
206 using GObject Introspection to generate GIR bindings
207 of this packages. These bindings are required by GNOME.
208 </para>
209
210 <para>
211 <option>-Dcloudproviders=enabled</option>: Use this switch if you have
212 <xref linkend="libcloudproviders" role="nodep"/> installed and wish to
213 enable support for cloud providers in a file chooser window.
214 </para>
215
216 <para>
217 <option>-Dtracker=enabled</option>: Use this switch if you have
218 <xref linkend="tracker3"/> installed and wish to use search functionality
219 when running a file chooser.
220 </para>
221
222 <para>
223 <option>-Dcolord=enabled</option>: Use this switch if you have
224 <xref linkend="colord"/> installed and wish to use colord with the CUPS
225 printing backend.
226 </para>
227
228 <para>
229 <option>-Dman-pages=true</option>: Use this switch if you have
230 <xref linkend='docutils'/> installed and wish to generate the man
231 pages.
232 </para>
233
234 <para>
235 <option>-Dsysprof=enabled</option>: Use this switch if you have
236 <ulink url="&sysprof-url;">sysprof</ulink> installed and wish to enable
237 tracing support for GTK4-based applications.
238 </para>
239
240 <para>
241 <option>-Dvulkan=enabled</option>: Use this switch if you have
242 <xref linkend="vulkan-loader"/> installed and wish to build the
243 experimental Vulkan backend. Note that you must have
244 <ulink url="https://github.com/google/shaderc/blob/main/downloads.md">glslc</ulink>
245 installed if you decide to enable this option.
246 </para>
247
248 </sect2>
249
250 <sect2 role="configuration">
251 <title>Configuring GTK 4</title>
252
253 <sect3 id="gtk4-config">
254 <title>Config Files</title>
255 <para>
256 <filename>~/.config/gtk-4.0/settings.ini</filename> and
257 <filename>/usr/share/gtk-4.0/settings.ini</filename>
258 </para>
259
260 <indexterm zone="gtk4 gtk4-config">
261 <primary sortas="e-AA.home-gtk4-settings.ini">~/.config/gtk-4.0/settings.ini</primary>
262 </indexterm>
263
264 <indexterm zone="gtk4 gtk4-config">
265 <primary
266 sortas="e-usr-share-path-settings.ini">/usr/share/gtk-4.0/settings.ini</primary>
267 </indexterm>
268 </sect3>
269
270 <sect3><title>Configuration Information</title>
271
272 <para>
273 <application>GTK 4</application> themes change the way a
274 <application>GTK 4</application> application looks. An icon theme can
275 be used to change the icons that appear on the application's toolbar.
276 If you have installed a <application>GTK 4</application> theme (e.g.
277 the Adwaita theme built in <application>GTK 4</application>),
278 an icon theme (such as <xref linkend="oxygen-icons"/>) and/or a font
279 (<xref linkend="dejavu-fonts"/>), you can set your preferences in
280 <filename>~/.config/gtk-4.0/settings.ini</filename>, or the default
281 system-wide configuration file (as the
282 <systemitem class="username">root</systemitem> user), in
283 <filename>/usr/share/gtk-4.0/settings.ini</filename>. For the local
284 user, an example is:
285 </para>
286
287<screen><userinput>mkdir -pv ~/.config/gtk-4.0
288cat &gt; ~/.config/gtk-4.0/settings.ini &lt;&lt; "EOF"
289<literal>[Settings]
290gtk-theme-name = <replaceable>Adwaita</replaceable>
291gtk-icon-theme-name = <replaceable>oxygen</replaceable>
292gtk-font-name = <replaceable>DejaVu Sans 12</replaceable>
293gtk-cursor-theme-size = <replaceable>18</replaceable>
294gtk-xft-antialias = <replaceable>1</replaceable>
295gtk-xft-hinting = <replaceable>1</replaceable>
296gtk-xft-hintstyle = <replaceable>hintslight</replaceable>
297gtk-xft-rgba = <replaceable>rgb</replaceable>
298gtk-cursor-theme-name = <replaceable>Adwaita</replaceable></literal>
299EOF</userinput></screen>
300
301 <para>
302 There are many settings keys, some with default values. You can find
303 them at <ulink
304 url="https://developer.gnome.org/gtk4/stable/GtkSettings.html">Settings:
305 GTK 4 Reference Manual</ulink>.
306 </para>
307
308 </sect3>
309 </sect2>
310
311 <sect2 role="content">
312 <title>Contents</title>
313
314 <segmentedlist>
315 <segtitle>Installed Programs</segtitle>
316 <segtitle>Installed Libraries</segtitle>
317 <segtitle>Installed Directories</segtitle>
318
319 <seglistitem>
320 <seg>
321 gtk4-broadwayd,
322 gtk4-builder-tool,
323 gtk4-demo,
324 gtk4-demo-application,
325 gtk4-encode-symbolic-svg,
326 gtk4-icon-browser,
327 gtk4-launch,
328 gtk4-node-editor,
329 gtk4-print-editor,
330 gtk4-query-settings,
331 gtk4-update-icon-cache, and
332 gtk4-widget-factory
333 </seg>
334 <seg>
335 libgtk-4.so
336 </seg>
337 <seg>
338 /usr/include/gtk-4.0,
339 /usr/lib/gtk-4.0, and
340 /usr/share/gtk-4.0
341 </seg>
342 </seglistitem>
343 </segmentedlist>
344
345 <variablelist>
346 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
347 <?dbfo list-presentation="list"?>
348 <?dbhtml list-presentation="table"?>
349
350 <varlistentry id="gtk4-broadwayd">
351 <term><command>gtk4-broadwayd</command></term>
352 <listitem>
353 <para>
354 provides support for displaying GTK 4 applications in a web
355 browser using HTML5 and web sockets
356 </para>
357 <indexterm zone="gtk4 gtk4-broadwayd">
358 <primary sortas="b-gtk4-broadwayd">gtk4-broadwayd</primary>
359 </indexterm>
360 </listitem>
361 </varlistentry>
362
363 <varlistentry id="gtk4-builder-tool">
364 <term><command>gtk4-builder-tool</command></term>
365 <listitem>
366 <para>
367 performs various operations on GtkBuilder .ui files
368 </para>
369 <indexterm zone="gtk4 gtk4-builder-tool">
370 <primary sortas="b-gtk4-builder-tool">gtk4-builder-tool</primary>
371 </indexterm>
372 </listitem>
373 </varlistentry>
374
375 <varlistentry id="gtk4-demo">
376 <term><command>gtk4-demo</command></term>
377 <listitem>
378 <para>
379 is a simple program that demonstrates some of the tasks that can be
380 done with GTK 4
381 </para>
382 <indexterm zone="gtk4 gtk4-demo">
383 <primary sortas="b-gtk4-demo">gtk4-demo</primary>
384 </indexterm>
385 </listitem>
386 </varlistentry>
387
388 <varlistentry id="gtk4-demo-application">
389 <term><command>gtk4-demo-application</command></term>
390 <listitem>
391 <para>
392 is a simple GTK 4 application which is useful for testing
393 </para>
394 <indexterm zone="gtk4 gtk4-demo-application">
395 <primary sortas="b-gtk4-demo-application">gtk4-demo-application</primary>
396 </indexterm>
397 </listitem>
398 </varlistentry>
399
400 <varlistentry id="gtk4-encode-symbolic-svg">
401 <term><command>gtk4-encode-symbolic-svg</command></term>
402 <listitem>
403 <para>
404 converts symbolic SVG icons into special PNG files. GTK 4 can load
405 and recolor these PNGs, just like original SVGs, but loading them
406 is much faster
407 </para>
408 <indexterm zone="gtk4 gtk4-encode-symbolic-svg">
409 <primary sortas="b-gtk4-encode-symbolic-svg">gtk4-encode-symbolic-svg</primary>
410 </indexterm>
411 </listitem>
412 </varlistentry>
413
414 <varlistentry id="gtk4-icon-browser">
415 <term><command>gtk4-icon-browser</command></term>
416 <listitem>
417 <para>
418 is a utility to explore the icons in the current icon theme. It
419 shows icons in various sizes, their symbolic variants when
420 available, as well as a description of the icon and its context
421 </para>
422 <indexterm zone="gtk4 gtk4-icon-browser">
423 <primary sortas="b-gtk4-icon-browser">gtk4-icon-browser</primary>
424 </indexterm>
425 </listitem>
426 </varlistentry>
427
428 <varlistentry id="gtk4-launch">
429 <term><command>gtk4-launch</command></term>
430 <listitem>
431 <para>
432 launches an application using the given name. The name should match
433 the application .desktop file name (as seen in
434 <filename class="directory">/usr/share/applications</filename>),
435 with or without the '.desktop' extension
436 </para>
437 <indexterm zone="gtk4 gtk-launch">
438 <primary sortas="b-gtk4-launch">gtk4-launch</primary>
439 </indexterm>
440 </listitem>
441 </varlistentry>
442
443 <varlistentry id="gtk4-node-editor">
444 <term><command>gtk4-node-editor</command></term>
445 <listitem>
446 <para>
447 is a utility to show and edit render node files. Such render
448 node files can be obtained e.g. from the GTK inspector
449 </para>
450 <indexterm zone="gtk4 gtk4-node-editor">
451 <primary sortas="b-gtk4-node-editor">gtk4-node-editor</primary>
452 </indexterm>
453 </listitem>
454 </varlistentry>
455
456 <varlistentry id="gtk4-print-editor">
457 <term><command>gtk4-print-editor</command></term>
458 <listitem>
459 <para>
460 is a simple program to demonstrate printing using GTK 4
461 applications
462 </para>
463 <indexterm zone="gtk4 gtk4-print-editor">
464 <primary sortas="b-gtk4-print-editor">gtk4-print-editor</primary>
465 </indexterm>
466 </listitem>
467 </varlistentry>
468
469 <varlistentry id="gtk4-query-settings">
470 <term><command>gtk4-query-settings</command></term>
471 <listitem>
472 <para>
473 provides a complete listing of all settings related to GTK 4
474 </para>
475 <indexterm zone="gtk4 gtk4-query-settings">
476 <primary sortas="b-gtk4-query-settings">gtk4-query-settings</primary>
477 </indexterm>
478 </listitem>
479 </varlistentry>
480
481 <varlistentry id="gtk4-update-icon-cache">
482 <term><command>gtk4-update-icon-cache</command></term>
483 <listitem>
484 <para>
485 is an icon theme caching utility that creates mmap()able cache
486 files for icon themes
487 </para>
488 <indexterm zone="gtk4 gtk4-update-icon-cache">
489 <primary sortas="b-gtk4-update-icon-cache">gtk4-update-icon-cache</primary>
490 </indexterm>
491 </listitem>
492 </varlistentry>
493
494 <varlistentry id="gtk4-widget-factory">
495 <term><command>gtk4-widget-factory</command></term>
496 <listitem>
497 <para>
498 is a program to view GTK 4 themes and widgets
499 </para>
500 <indexterm zone="gtk4 gtk4-widget-factory">
501 <primary sortas="b-gtk4-widget-factory">gtk4-widget-factory</primary>
502 </indexterm>
503 </listitem>
504 </varlistentry>
505
506 <varlistentry id="libgtk-4">
507 <term><filename class="libraryfile">libgtk-4.so</filename></term>
508 <listitem>
509 <para>
510 contains functions that provide an API to implement graphical user
511 interfaces
512 </para>
513 <indexterm zone="gtk4 libgtk-4">
514 <primary sortas="c-libgtk-4">libgtk-4.so</primary>
515 </indexterm>
516 </listitem>
517 </varlistentry>
518 </variablelist>
519 </sect2>
520</sect1>
Note: See TracBrowser for help on using the repository browser.