glfs/x/lib/gtk4.xml
Douglas R. Reno c5408a2d70 Add an entity for the gi-docgen URL and change several packages to use
it.

This should make the different URLs we had previously consistent with
one another, and ease maintenance burden.

This is only temporary though since eventually gi-docgen will become
part of the book, when Pierre's python-modules branch is brought into
trunk.
2022-12-16 13:18:44 -06:00

469 lines
16 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY gtk4-download-http "&gnome-download-http;/gtk/&gtk4-minor;/gtk-&gtk4-version;.tar.xz">
<!ENTITY gtk4-download-ftp "&gnome-download-ftp;/gtk/&gtk4-minor;/gtk-&gtk4-version;.tar.xz">
<!ENTITY gtk4-md5sum "de29b8eefe5f691e42569971b2a474f9">
<!ENTITY gtk4-size "19 MB">
<!ENTITY gtk4-buildsize "426 MB (add 12 MB for tests)">
<!ENTITY gtk4-time "1.0 SBU (using parallelism=4, add 0.2 SBU for tests)">
]>
<sect1 id="gtk4" xreflabel="GTK-&gtk4-version;">
<?dbhtml filename="gtk4.html"?>
<title>GTK-&gtk4-version;</title>
<indexterm zone="gtk4">
<primary sortas="a-gtk4">GTK-4</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to GTK 4</title>
<para>
The <application>GTK 4</application> package contains libraries used for
creating graphical user interfaces for applications.
</para>
&lfs112_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&gtk4-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&gtk4-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &gtk4-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &gtk4-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &gtk4-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &gtk4-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">GTK 4 Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="fribidi"/>,
<xref linkend="gdk-pixbuf"/>,
<xref linkend="graphene"/>,
<xref linkend="iso-codes"/>,
<xref linkend="libepoxy"/>,
<xref linkend="libxkbcommon"/>,
<xref linkend="pango"/>,
<xref linkend="pygobject3"/>, and
<xref linkend="wayland-protocols"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="adwaita-icon-theme"/> (default for some gtk4 settings keys),
<xref linkend="gst10-plugins-bad"/>,
<xref role='runtime' linkend="gst10-plugins-good"/> (runtime,
built with <xref role='nodep' linkend='libvpx'/>),
<xref linkend="hicolor-icon-theme"/> (needed for tests and for defaults), and
<xref linkend="librsvg"/>
</para>
<bridgehead renderas="sect4">Recommended (Required if building GNOME)</bridgehead>
<para role="recommended">
<xref linkend="gobject-introspection"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="colord"/>,
<xref linkend="cups"/>,
<xref linkend="ffmpeg"/> (built with
<xref role='nodep' linkend='libvpx'/>),
<xref linkend="gtk-doc"/>,
<xref role="runtime" linkend="highlight"/>
(runtime, only used by <command>gtk4-demo</command> for syntax
highlighting of demo source code),
<xref linkend="sassc"/>,
<xref linkend="tracker3"/>,
<ulink url="&gi-docgen-url;">gi-docgen</ulink>,
<ulink url="https://gitlab.gnome.org/World/libcloudproviders">libcloudproviders</ulink>, and
<ulink url="https://vulkan.lunarg.com/sdk/home">vulkan</ulink>
</para>
<para condition="html" role="usernotes">
User Notes: <ulink url="&blfs-wiki;/gtk4"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of GTK 4</title>
<para>
Install <application>GTK 4</application> by running the following
commands:
</para>
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
meson --prefix=/usr --buildtype=release -Dbroadway-backend=true .. &amp;&amp;
ninja</userinput></screen>
<para>
To run the tests, issue: <command>meson test --setup x11</command>. If you
are in a Wayland session, replace x11 with wayland. A few tests may fail.
</para>
<!-- [pierre]: 4.6.0, wayland: 727 ok; 2 Expected Fail; 1 Fail; 1 Skipped
[bdubbs]: 4.6.3, x11, 724 OK, 2 Expected Fail, 12 Fail. 1 Skipped
[pierre]: 4.6.6, wayland, 738 OK, 2 Expected Fail, 1 Fail. 1 Skipped
[pierre]: 4.6.7, wayland, 737 OK, 2 Expected Fail, 1 Fail. 1 Skipped. 1 Timeout
[bdubbs]: 4.6.7, x11, 758 OK, 2 Expected Fail, 9 Fail. 1 Skipped. 1 Timeout
[pierre]: 4.8.1, wayland, 765 OK, 2 Expected Fail, 2 Fail. 1 Skipped
[bdubbs]: 4.8.2, x11, 753 OK, 2 Expected Fail, 14 Fail. 1 Skipped-->
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>ninja install</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/meson-buildtype-release.xml"/>
<para>
<parameter>-Dbroadway-backend=true</parameter>: This switch enables the
HTML5 GDK backend.
</para>
<para>
<option>-Dcloudproviders=enabled</option>: Use this switch if you have
<ulink url="https://gitlab.gnome.org/World/libcloudproviders">libcloudproviders</ulink>
installed and wish to enable support for cloud providers in a file
chooser window.
</para>
<para>
<option>-Dsysprof=enabled</option>: Use this switch if you have
<xref linkend="sysprof"/> installed and wish to enable tracing support for
GTK4-based applications.
</para>
<para>
<option>-Dtracker=enabled</option>: Use this switch if you have
<xref linkend="tracker3"/> installed and wish to use search functionality
when running a file chooser.
</para>
<para>
<option>-Dcolord=enabled</option>: Use this switch if you have
<xref linkend="colord"/> installed and wish to use colord with the CUPS
printing backend.
</para>
<para>
<option>-Dgtk_doc=true</option>: Use this switch if you have
<ulink url="&gi-docgen-url;">gi-docgen</ulink>
installed and wish to generate the API reference documentation.
</para>
</sect2>
<sect2 role="configuration">
<title>Configuring GTK 4</title>
<sect3 id="gtk4-config">
<title>Config Files</title>
<para>
<filename>~/.config/gtk-4.0/settings.ini</filename> and
<filename>/usr/share/gtk-4.0/settings.ini</filename>
</para>
<indexterm zone="gtk4 gtk4-config">
<primary sortas="e-AA.home-gtk4-settings.ini">~/.config/gtk-4.0/settings.ini</primary>
</indexterm>
<indexterm zone="gtk4 gtk4-config">
<primary
sortas="e-usr-share-path-settings.ini">/usr/share/gtk-4.0/settings.ini</primary>
</indexterm>
</sect3>
<sect3><title>Configuration Information</title>
<para>
<application>GTK 4</application> themes change the way a
<application>GTK 4</application> application looks. An icon theme can
be used to change the icons that appear on the application's toolbar.
If you have installed a <application>GTK 4</application> theme (e.g.
the Adwaita theme built in <application>GTK 4</application>),
an icon theme (such as <xref linkend="oxygen-icons5"/>) and/or a font
(<xref linkend="dejavu-fonts"/>), you can set your preferences in
<filename>~/.config/gtk-4.0/settings.ini</filename>, or the default
system-wide configuration file (as the
<systemitem class="username">root</systemitem> user), in
<filename>/usr/share/gtk-4.0/settings.ini</filename>. For the local
user, an example is:
</para>
<screen><userinput>mkdir -pv ~/.config/gtk-4.0
cat &gt; ~/.config/gtk-4.0/settings.ini &lt;&lt; "EOF"
<literal>[Settings]
gtk-theme-name = <replaceable>Adwaita</replaceable>
gtk-icon-theme-name = <replaceable>oxygen</replaceable>
gtk-font-name = <replaceable>DejaVu Sans 12</replaceable>
gtk-cursor-theme-size = <replaceable>18</replaceable>
gtk-xft-antialias = <replaceable>1</replaceable>
gtk-xft-hinting = <replaceable>1</replaceable>
gtk-xft-hintstyle = <replaceable>hintslight</replaceable>
gtk-xft-rgba = <replaceable>rgb</replaceable>
gtk-cursor-theme-name = <replaceable>Adwaita</replaceable></literal>
EOF</userinput></screen>
<para>
There are many settings keys, some with default values. You can find
them at <ulink
url="https://developer.gnome.org/gtk4/stable/GtkSettings.html">Settings:
GTK 4 Reference Manual</ulink>.
</para>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
gtk4-broadwayd,
gtk4-builder-tool,
gtk4-demo,
gtk4-demo-application,
gtk4-encode-symbolic-svg,
gtk4-icon-browser,
gtk4-launch,
gtk4-node-editor,
gtk4-print-editor,
gtk4-query-settings,
gtk4-update-icon-cache, and
gtk4-widget-factory
</seg>
<seg>
libgtk-4.so
</seg>
<seg>
/usr/include/gtk-4.0,
/usr/lib/gtk-4.0, and
/usr/share/gtk-4.0
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="gtk4-broadwayd">
<term><command>gtk4-broadwayd</command></term>
<listitem>
<para>
provides support for displaying GTK 4 applications in a web
browser using HTML5 and web sockets
</para>
<indexterm zone="gtk4 gtk4-broadwayd">
<primary sortas="b-gtk4-broadwayd">gtk4-broadwayd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-builder-tool">
<term><command>gtk4-builder-tool</command></term>
<listitem>
<para>
performs various operations on GtkBuilder .ui files
</para>
<indexterm zone="gtk4 gtk4-builder-tool">
<primary sortas="b-gtk4-builder-tool">gtk4-builder-tool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-demo">
<term><command>gtk4-demo</command></term>
<listitem>
<para>
is a simple program that demonstrates some of the tasks that can be
done with GTK 4
</para>
<indexterm zone="gtk4 gtk4-demo">
<primary sortas="b-gtk4-demo">gtk4-demo</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-demo-application">
<term><command>gtk4-demo-application</command></term>
<listitem>
<para>
is a simple GTK 4 application which is useful for testing
</para>
<indexterm zone="gtk4 gtk4-demo-application">
<primary sortas="b-gtk4-demo-application">gtk4-demo-application</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-encode-symbolic-svg">
<term><command>gtk4-encode-symbolic-svg</command></term>
<listitem>
<para>
converts symbolic SVG icons into special PNG files. GTK 4 can load
and recolor these PNGs, just like original SVGs, but loading them
is much faster
</para>
<indexterm zone="gtk4 gtk4-encode-symbolic-svg">
<primary sortas="b-gtk4-encode-symbolic-svg">gtk4-encode-symbolic-svg</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-icon-browser">
<term><command>gtk4-icon-browser</command></term>
<listitem>
<para>
is a utility to explore the icons in the current icon theme. It
shows icons in various sizes, their symbolic variants when
available, as well as a description of the icon and its context
</para>
<indexterm zone="gtk4 gtk4-icon-browser">
<primary sortas="b-gtk4-icon-browser">gtk4-icon-browser</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-launch">
<term><command>gtk4-launch</command></term>
<listitem>
<para>
launches an application using the given name. The name should match
the application .desktop file name (as seen in
<filename class="directory">/usr/share/applications</filename>),
with or without the '.desktop' extension
</para>
<indexterm zone="gtk4 gtk-launch">
<primary sortas="b-gtk4-launch">gtk4-launch</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-node-editor">
<term><command>gtk4-node-editor</command></term>
<listitem>
<para>
is a utility to show and edit render node files. Such render
node files can be obtained e.g. from the GTK inspector
</para>
<indexterm zone="gtk4 gtk4-node-editor">
<primary sortas="b-gtk4-node-editor">gtk4-node-editor</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-print-editor">
<term><command>gtk4-print-editor</command></term>
<listitem>
<para>
is a simple program to demonstrate printing using GTK 4
applications
</para>
<indexterm zone="gtk4 gtk4-print-editor">
<primary sortas="b-gtk4-print-editor">gtk4-print-editor</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-query-settings">
<term><command>gtk4-query-settings</command></term>
<listitem>
<para>
provides a complete listing of all settings related to GTK 4
</para>
<indexterm zone="gtk4 gtk4-query-settings">
<primary sortas="b-gtk4-query-settings">gtk4-query-settings</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-update-icon-cache">
<term><command>gtk4-update-icon-cache</command></term>
<listitem>
<para>
is an icon theme caching utility that creates mmap()able cache
files for icon themes
</para>
<indexterm zone="gtk4 gtk4-update-icon-cache">
<primary sortas="b-gtk4-update-icon-cache">gtk4-update-icon-cache</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtk4-widget-factory">
<term><command>gtk4-widget-factory</command></term>
<listitem>
<para>
is a program to view GTK 4 themes and widgets
</para>
<indexterm zone="gtk4 gtk4-widget-factory">
<primary sortas="b-gtk4-widget-factory">gtk4-widget-factory</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libgtk-4">
<term><filename class="libraryfile">libgtk-4.so</filename></term>
<listitem>
<para>
contains functions that provide an API to implement graphical user
interfaces
</para>
<indexterm zone="gtk4 libgtk-4">
<primary sortas="c-libgtk-4">libgtk-4.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>