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

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

Recommended (Required if building GNOME)

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