#### Beyond Linux® From Scratch (System V Edition) - Version 12.1

### Chapter 25. Graphical Environment Libraries

- Prev

  GTK+-3.24.41

- Next

  GTK Engines-2.20.2

- Up
- Home

# GTK-4.12.5

## Introduction to GTK 4

The GTK 4 package contains libraries used for creating graphical user interfaces for applications.

This package is known to build and work properly using an LFS 12.1 platform.

### Package Information

- Download (HTTP): https://download.gnome.org/sources/gtk/4.12/gtk-4.12.5.tar.xz

- Download MD5 sum: 45db1b94414e7a9f63bd32db9557edf0

- Download size: 17 MB

- Estimated disk space required: 502 MB (with docs; add 23 MB for tests)

- Estimated build time: 1.3 SBU (using parallelism=4; with docs; add 0.5 SBU for tests)

### GTK 4 Dependencies

#### Required

FriBidi-1.0.13, gdk-pixbuf-2.42.10, graphene-1.10.8, ISO Codes-4.16.0, libepoxy-1.5.10, libxkbcommon-1.6.0, Pango-1.51.2, PyGObject-3.46.0, and wayland-protocols-1.33

#### Recommended

adwaita-icon-theme-45.0 (default for some gtk4 settings keys), gst-plugins-bad-1.22.10, gst-plugins-good-1.22.10 (runtime, built with libvpx-1.14.0), hicolor-icon-theme-0.17 (needed for tests and for defaults), and librsvg-2.57.1

#### Recommended (Required if building GNOME)

gobject-introspection-1.78.1

#### Optional

colord-1.4.7, Cups-2.4.7, docutils-0.20.1, FFmpeg-6.1.1 (built with libvpx-1.14.0), Gi-DocGen-2023.3, Highlight-4.10 (runtime, only used by gtk4-demo for syntax highlighting of demo source code), libcloudproviders-0.3.5, sassc-3.6.2, Tracker-3.6.0, Vulkan-Loader-1.3.277, cpdb, and sysprof

## Installation of GTK 4

Install GTK 4 by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup --prefix=/usr           \
                --buildtype=release     \
                -Dbroadway-backend=true \
                -Dintrospection=enabled \
                .. &&
    ninja

If you have Gi-DocGen-2023.3 installed and wish to build the API documentation for this package, issue:

    sed "s@'doc'@& / 'gtk-4.12.5'@" -i ../docs/reference/meson.build &&
    meson configure -Ddocumentation=true                             &&
    ninja

To run the tests, issue: dbus-run-session meson test --setup x11. If you are in a Wayland session, replace x11 with wayland. Nine tests are known to fail if Cantrell fonts are not installed. Many tests will fail if `~/.config/gtk-4.0/settings.ini` exists and the gtk-modules line is not commented out. On systems with NVIDIA graphics cards, the tests may take significantly longer than the above test time.

Now, as the `root` user:

    ninja install

## Command Explanations

`--buildtype=release`: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

`-Dbroadway-backend=true`: This switch enables the HTML5 GDK backend.

`-Dintrospection=enabled`: This switch enables using gobject-introspection-1.78.1 to generate GIR bindings of this packages. These bindings are required by GNOME.

`-Dcloudproviders=enabled`: Use this switch if you have libcloudproviders-0.3.5 installed and wish to enable support for cloud providers in a file chooser window.

`-Dtracker=enabled`: Use this switch if you have Tracker-3.6.0 installed and wish to use search functionality when running a file chooser.

`-Dcolord=enabled`: Use this switch if you have colord-1.4.7 installed and wish to use colord with the CUPS printing backend.

`-Dman-pages=true`: Use this switch if you have docutils-0.20.1 installed and wish to generate the man pages.

`-Dsysprof=enabled`: Use this switch if you have sysprof installed and wish to enable tracing support for GTK4-based applications.

`-Dvulkan=enabled`: Use this switch if you have Vulkan-Loader-1.3.277 installed and wish to build the experimental Vulkan backend. Note that you must have glslc installed if you decide to enable this option.

## Configuring GTK 4

### Config Files

`~/.config/gtk-4.0/settings.ini` and `/usr/share/gtk-4.0/settings.ini`

### Configuration Information

GTK 4 themes change the way a GTK 4 application looks. An icon theme can be used to change the icons that appear on the application's toolbar. If you have installed a GTK 4 theme (e.g. the Adwaita theme built in GTK 4), an icon theme (such as oxygen-icons-5.115.0) and/or a font (Dejavu fonts), you can set your preferences in `~/.config/gtk-4.0/settings.ini`, or the default system-wide configuration file (as the `root` user), in `/usr/share/gtk-4.0/settings.ini`. For the local user, an example is:

    mkdir -pv ~/.config/gtk-4.0
    cat > ~/.config/gtk-4.0/settings.ini << "EOF"
    [Settings]
    gtk-theme-name = Adwaita
    gtk-icon-theme-name = oxygen
    gtk-font-name = DejaVu Sans 12
    gtk-cursor-theme-size = 18
    gtk-xft-antialias = 1
    gtk-xft-hinting = 1
    gtk-xft-hintstyle = hintslight
    gtk-xft-rgba = rgb
    gtk-cursor-theme-name = Adwaita
    EOF

There are many settings keys, some with default values. You can find them at Settings: GTK 4 Reference Manual.

## Contents

Installed Programs: 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
Installed Libraries: libgtk-4.so
Installed Directories: /usr/include/gtk-4.0, /usr/lib/gtk-4.0, and /usr/share/gtk-4.0

### Short Descriptions

gtk4-broadwayd | provides support for displaying GTK 4 applications in a web browser using HTML5 and web sockets
gtk4-builder-tool | performs various operations on GtkBuilder .ui files
gtk4-demo | is a simple program that demonstrates some of the tasks that can be done with GTK 4
gtk4-demo-application | is a simple GTK 4 application which is useful for testing
gtk4-encode-symbolic-svg | 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
gtk4-icon-browser | 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
gtk4-launch | launches an application using the given name. The name should match the application .desktop file name (as seen in `/usr/share/applications`), with or without the '.desktop' extension
gtk4-node-editor | is a utility to show and edit render node files. Such render node files can be obtained e.g. from the GTK inspector
gtk4-print-editor | is a simple program to demonstrate printing using GTK 4 applications
gtk4-query-settings | provides a complete listing of all settings related to GTK 4
gtk4-update-icon-cache | is an icon theme caching utility that creates mmap()able cache files for icon themes
gtk4-widget-factory | is a program to view GTK 4 themes and widgets
`libgtk-4.so` | contains functions that provide an API to implement graphical user interfaces

- Prev

  GTK+-3.24.41

- Next

  GTK Engines-2.20.2

- Up
- Home