GTK+

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

Inhaltsverzeichnis
  1. GTK+ 2.x / GTK+ 3.x
  2. Unterartikel
  3. Bestimmen, ob das Programm GTK+ 2 oder 3 v...
  4. Links

./logo-gtk.png GTK+ 🇬🇧 (GIMP Toolkit +) ist eine freie Komponentenbibliothek, mit der grafische Benutzeroberflächen (GUIs) geschrieben werden können.

Die Geschichte von GNOME hängt stark mit GTK+ zusammen. Weil KDE wegen der damals unfreien Lizenz von Qt ebenfalls unfrei galt, wurde GNOME ins Leben gerufen, um eine freie Desktop-Umgebung bereitzustellen. Man entschied sich, das vorhandene Toolkit von GIMP – daher der Name GIMP Toolkit – auszubauen, und damit entstand GTK+. Am 14. April 1998 kam GTK+ 1.0, seit 11. März 2002 gibt es GTK+ 2.0 und ab Februar 2011 GTK+ 3.0, das ab Ubuntu 11.10 zum Einsatz kommt. Nur bei gleicher Hauptversionsnummer wird Abwärtskompatibilität garantiert.

Heutzutage basiert nicht nur GNOME auf GTK+, sondern auch andere Desktop-Umgebungen wie Xfce und LXDE sowie unzählige Einzelprogramme. An dieser Stelle soll auch ein weit verbreiteter Irrtum ausgeräumt werden: Wenn ein Programm GTK+ zur Gestaltung der grafischen Oberfläche verwendet, hat das gar nichts mit GNOME zu tun. Es existieren allerdings Programme, die zusätzlich noch GNOME-Bibliotheken verwenden und dann tatsächlich GNOME voraussetzen.

GTK+ 2.x / GTK+ 3.x

Mit dem Wechseln von GNOME 2 auf GNOME 3 wurde auch die neue Version 3.0 von GTK+ eingeführt, welche aber inkompatibel zur alten Version 2.x ist. Dies hat zur Folge, dass sämtliche Anwendungen, welche GTK+ als grafische Benutzeroberfläche nutzen, angepasst werden müssen. Aber auch einige Jahre nach der Veröffentlichung von GTK+ 3 verwenden noch einige Programme, wie z.B. GIMP, Firefox oder auch Thunderbird, die alte Komponentenbibliothek.

Daher werden auf jedem System beide Versionen immer parallel installiert. Dies hat aber zur Folge, dass sämtliche Designs jeweils ein GTK+-2.x-und ein GTK+-3.x-Design mitbringen müssen, ansonsten wird für das fehlende Design das Standarddesign von GTK+ verwendet. Am auffälligsten ist dies unter Ubuntu GNOME, wenn man das dunkle "Adwaita"-Design verwendet. Alle Programme, welche GTK+ 3 verwenden, werden dunkel dargestellt, während die anderen Programme, die noch GTK+ 2.x verwenden, weiterhin ein helles Design verwenden.

Aber auch bei der Desktop-Gestaltung gibt es je nach verwendeter grafischer Oberfläche Unterschiede. Während Unity und die GNOME Shell hauptsächlich GTK+ 3 verwenden, nutzen Xfce und LXDE noch zu großen Teilen GTK+ 2.x. Bei GNOME Flashback ist hingegen zu beachten, dass es sich zwar die Weiterführung des alten GNOME-2.x-Desktops handelt, welches aber schon an GTK+ 3 angepasst wurde und daher kein GTK+ 2 mehr verwendet.

Unterartikel

Die folgenden Unterartikel gehen darauf ein, wie man das GTK+ an seine eigenen Bedürfnisse anpassen kann.

Artikelserie GTK+
Wiki/Icons/Tango/preferences-desktop-theme.png
GTK+-Design wechseln
Neue GTK+-Designs installieren, auswechseln und vergleichen.
Wiki/Icons/develop.png
GTK+-Programmierung
Mittels GTK+ Oberflächen für Programme erstellen.
Wiki/Icons/ubuntugnome.png
GNOME-Shell-Design anpassen
Das Aussehen der GNOME-Shell nach seinen Wünschen anpassen.
KDE-Anwendungen_unter_GNOME/kdeundergnome_logo.png
GTK-Anwendungen unter KDE
Das Aussehen von GTK-Anwendungen unter KDE anpassen.

Bestimmen, ob das Programm GTK+ 2 oder 3 verwendet

Möchte man überprüfen, ob ein Programm noch GTK+ 2 oder schon GTK+ 3 verwendet, dann kann man folgenden Befehl nutzen:

ldd /usr/bin/inkscape | grep gtk 

Dabei werden mit dem Befehl ldd sämtliche Verlinkungen zu den von dem Programm benötigten Bibliotheken ausgegeben. Diese Ausgabe wird dann durch den Befehl grep auf die GTK+-Bibliotheken beschränkt. Bei einer Anwendung, die GTK+ 3.x verwendet, wird folgendes ausgegeben:

libgtk-3.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-3.so.0

Nutzt das Programm hingegen GTK+ 2.x, enthält die Ausgabe folgendes:

libgtk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0

Falls gar nichts ausgegeben wird, dann nutzt das Programm nicht die GTK+-Bibliotheken des Systems.