GTK-4.14.5

#### Beyond Linux® From Scratch (systemd Edition) - Version 12.2

### Chapter 25. Graphical Environment Libraries

- Prev

  GTK+-3.24.43

- Next

  Gtkmm-3.24.9

- Up
- Home

# GTK-4.14.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.2 platform.

### Package Information

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

- Download MD5 sum: 4d7c8edbdd0aed4048053ca9f805ade4

- Download size: 17 MB

- Estimated disk space required: 711 MB (with docs; add 66 MB for tests)

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

### GTK 4 Dependencies

#### Required

FriBidi-1.0.15, gdk-pixbuf-2.42.12, graphene-1.10.8, ISO Codes-4.16.0, libepoxy-1.5.10, libxkbcommon-1.7.0, Pango-1.54.0, PyGObject-3.48.2, and wayland-protocols-1.36

#### Recommended

adwaita-icon-theme-46.2 (default for some gtk4 settings keys), gst-plugins-bad-1.24.7, gst-plugins-good-1.24.7 (runtime, built with libvpx-1.14.1), hicolor-icon-theme-0.18 (needed for tests and for defaults), and librsvg-2.58.3

#### Recommended (Required if building GNOME)

GLib-2.80.4 (with GObject Introspection)

#### Optional

colord-1.4.7, Cups-2.4.10, docutils-0.21.2, Gi-DocGen-2024.1, Highlight-4.13 (runtime, only used by gtk4-demo for syntax highlighting of demo source code), libcloudproviders-0.3.6, sassc-3.6.2, Tracker-3.7.3, Vulkan-Loader-1.3.294, cpdb, glslc, and sysprof

## Installation of GTK 4

Install GTK 4 by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup --prefix=/usr            \
                --buildtype=release      \
                -D broadway-backend=true \
                -D introspection=enabled \
                -D vulkan=disabled       \
                .. &&
    ninja

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

    sed "s@'doc'@& / 'gtk-4.14.5'@" -i ../docs/reference/meson.build &&
    meson configure -D documentation=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.

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

`-D introspection=enabled`: This switch enables using GObject Introspection to generate GIR bindings of this packages. These bindings are required by GNOME.

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

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

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

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

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

`-D vulkan=enabled`: Use this switch if you have Vulkan-Loader-1.3.294 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-6.0.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.43

- Next

  Gtkmm-3.24.9

- Up
- Home