Introduction to GTK+ 3

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



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


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


Recommended (Required if building GNOME)


colord-1.4.7, Cups-2.4.10, GTK-Doc-1.34.0, libcloudproviders-0.3.6, PyAtSpi2-2.46.1 (for tests), Tracker-3.7.3, 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 &&

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-46.2 is not installed.



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


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 Tracker 3 in the GTK+-3 file chooser dialog. It requires Tracker-3.7.3.

-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"
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

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 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;


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:,, and
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


provides support for displaying GTK+ 3 applications in a web browser, using HTML5 and web sockets


is a simple program that demonstrates some of the tasks that can be done with GTK+ 3


is a simple GTK+ 3 application


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


is a program to view GTK+ 3 themes and widgets


performs various operations on GtkBuilder .ui files


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


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


collects information about loadable input method modules for GTK+ 3 and writes it to the default cache file location, or to standard output


provides a complete listing of all settings related to GTK+ 3


is an icon theme caching utility that creates mmap()able cache files for icon themes

contains functions that implement the accessibility interfaces defined by the GNOME Accessibility Toolkit

contains functions that act as a wrapper around the low-level drawing and windowing functions provided by the underlying graphics system

contains functions that provide an API to implement graphical user interfaces