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

### Chapter 25. Graphical Environment Libraries

- Prev

  Graphene-1.10.8

- Next

  GTK-4.16.12

- Up
- Home

# GTK-3.24.48

## Introduction to GTK3

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

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

### Package Information

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

- Download MD5 sum: 61b8af1ffb255cdabd44629cd2a05793

- Download size: 13 MB

- Estimated disk space required: 255 MB (add 8 MB for tests)

- Estimated build time: 0.8 SBU (using parallelism=4; add 0.2 SBU for tests)

### GTK3 Dependencies

#### Required

at-spi2-core-2.54.1, gdk-pixbuf-2.42.12, libepoxy-1.5.10, and Pango-1.56.1

#### Recommended

adwaita-icon-theme-47.0 (at runtime; default for some gtk3 settings keys and also needed for one test), docbook-xsl-nons-1.79.2 (for generating manual pages), hicolor-icon-theme-0.18 (needed for tests), ISO Codes-4.17.0, libxkbcommon-1.8.0, libxslt-1.1.42 (for generating manual pages), Wayland-1.23.0, and wayland-protocols-1.40

#### Recommended (Required if building GNOME)

GLib-2.82.5 (with GObject Introspection)

#### Optional

colord-1.4.7, Cups-2.4.11, GTK-Doc-1.34.0, libcloudproviders-0.3.6, PyAtSpi2-2.46.1 (for tests), sassc-3.6.2, tinysparql-3.8.2, and PAPI

## Installation of GTK3

Install GTK3 by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup ..                 \
          --prefix=/usr            \
          --buildtype=release      \
          -D man=true              \
          -D broadway_backend=true &&
    ninja

To test the results you need a graphical session, then issue dbus-run-session ninja test.

Now, as the `root` user:

    ninja install

One test named `check-cursor-names` is known to fail if adwaita-icon-theme-47.0 is not installed.

### Note

If you installed the package on to your system using a “DESTDIR” method, an important file was not installed and must be copied and/or generated. Generate it using the following command as the `root` user:

    gtk-query-immodules-3.0 --update-cache

### Note

If you installed the package to your system using a “DESTDIR” method, `/usr/share/glib-2.0/schemas/gschemas.compiled` was not updated/created. Create (or update) the file using the following command as the `root` user:

    glib-compile-schemas /usr/share/glib-2.0/schemas

## Command Explanations

`-D broadway_backend=true`: This switch enables the HTML5 GTK backend.

`-D man=true`: This switch allows generating manual pages.

`-D gtk_doc=true`: This switch enables building documentation. It requires GTK-Doc-1.34.0.

`-D tracker3=true`: This switch enables the search function based on TinySPARQL in the GTK3 file chooser dialog. It requires tinysparql-3.8.2.

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

## Configuring GTK3

### Config Files

`~/.config/gtk-3.0/settings.ini` and `/etc/gtk-3.0/settings.ini`

### Configuration Information

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

    mkdir -vp ~/.config/gtk-3.0
    cat > ~/.config/gtk-3.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-toolbar-style = GTK_TOOLBAR_BOTH_HORIZ
    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: GTK3 Reference Manual. There are many more themes available at https://www.gnome-look.org/browse/ and other places.

As part of GTK-3.0's redesign, the scroll bar buttons are no longer visible on the scrollbar in many applications. If this functionality is desired, modify the `gtk.css` file and restore them using the following command:

    cat > ~/.config/gtk-3.0/gtk.css << "EOF"
    *  {
       -GtkScrollbar-has-backward-stepper: 1;
       -GtkScrollbar-has-forward-stepper: 1;
    }
    EOF

## Contents

Installed Programs: broadwayd, gtk3-demo, gtk3-demo-application, gtk3-icon-browser, gtk3-widget-factory, gtk-builder-tool, gtk-encode-symbolic-svg, gtk-launch, gtk-query-immodules-3.0, gtk-query-settings, and gtk-update-icon-cache
Installed Libraries: libgailutil-3.so, libgdk-3.so, and libgtk-3.so
Installed Directories: /etc/gtk-3.0, /usr/include/{gail,gtk}-3.0, /usr/{lib,share}/gtk-3.0, and /usr/share/themes/{Default,Emacs}/gtk-3.0

### Short Descriptions

broadwayd | provides support for displaying GTK3 applications in a web browser, using HTML5 and web sockets
gtk3-demo | is a simple program that demonstrates some of the tasks that can be done with GTK3
gtk3-demo-application | is a simple GTK3 application
gtk3-icon-browser | is a utility to explore the icons in the current icon theme. It shows icons in various sizes, their symbolic variants where available, as well as a description of the icon and its context
gtk3-widget-factory | is a program to view GTK3 themes and widgets
gtk-builder-tool | performs various operations on GtkBuilder .ui files
gtk-encode-symbolic-svg | converts symbolic SVG icons into specially prepared PNG files. GTK3 can load and recolor these PNGs, just like original SVGs, but loading them is much faster
gtk-launch | launches an application using the given name. The name should match the application desktop file name, as residing in `/usr/share/applications`, with or without the '.desktop' suffix
gtk-query-immodules-3.0 | collects information about loadable input method modules for GTK3 and writes it to the default cache file location, or to standard output
gtk-query-settings | provides a complete listing of all settings related to GTK3
gtk-update-icon-cache | is an icon theme caching utility that creates mmap()able cache files for icon themes
`libgailutil-3.so` | contains functions that implement the accessibility interfaces defined by the GNOME Accessibility Toolkit
`libgdk-3.so` | contains functions that act as a wrapper around the low-level drawing and windowing functions provided by the underlying graphics system
`libgtk-3.so` | contains functions that provide an API to implement graphical user interfaces

- Prev

  Graphene-1.10.8

- Next

  GTK-4.16.12

- Up
- Home