GTK+-3.24.43

Introduction to GTK+ 3

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

[Note]

Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

GTK+ 3 Dependencies

Required

at-spi2-core-2.54.0, gdk-pixbuf-2.42.12, libepoxy-1.5.10, and Pango-1.54.0

Recommended

Recommended (Required if building GNOME)

Optional

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

Installation of GTK+ 3

Install GTK+ 3 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]

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]

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 GTK+-3 file chooser dialog. It requires tinysparql-3.8.0.

-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 GTK+ 3

Config Files

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

Configuration Information

GTK+ 3 themes change the way a GTK+ 3 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+ 3 theme (e.g. the Adwaita theme built in GTK+ 3), 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: GTK+ 3 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 GTK+ 3 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 GTK+ 3

gtk3-demo-application

is a simple GTK+ 3 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 GTK+ 3 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. GTK+ 3 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 GTK+ 3 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 GTK+ 3

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