source: x/lib/gtk4.xml@ 18aa9339

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods 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 18aa9339 was 3fb1f9a, checked in by Xi Ruoyao <xry111@…>, 16 months ago

gtk4: Make gi-docgen usage explicit

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