What is KDE, GTK, GTK+, QT, and/or GNOME?

GTK, GTK+, and Qt are GUI toolkits. These are libraries that developers use to design graphical interfaces, all running on top of the X Server. These are things that you need to install as dependencies. They're the Linux "equivalent" to Windows' GDI/GDI+. When an application uses any of these, it will always have a general "look and feel".

GNOME and KDE are Desktop Environments. GNOME primarily uses the GTK+ toolkit, while KDE primarily uses the Qt toolkit. There are applications designed for GNOME or KDE, such as a settings menu or a default music player, usually in the appropriate toolkit. These Desktop Environments have a set of utilities/window managers/design specification to create a more unified desktop. You can mix the two if you feel like it, but you may run into issues with colliding standards and applications (which you might occasionally run into on systems like Arch).

Unity uses many of the GNOME utilities (Nautilus, Rhythmbox, etc.), so Unity is more GNOME than KDE.


GTK+ is the "GIMP Toolkit" (http://en.wikipedia.org/wiki/GTK+) ; this refers to the widgets - the bits that make up GUI applications, like buttons, menus, drop lists, etc - and the underlying bits you can't see, like libraries for storing configuration.

Unity is a desktop environment - based on Gnome. GNOME is a desktop environment that uses GTK+ as its GUI toolkit. KDE is another desktop environment. It's more like Windows in general style and uses Qt as its GUI toolkit.

The good news is that Qt applications run just fine in Unity.

The medium news is that some applications written for KDE use quite a lot of the KDE desktop and pull in a lot of dependencies. While this won't break anything, it can consume a lot of system resources running chunks of KDE that you're not really using.

An application written on Qt is not necessarily the same as an app written for KDE, though. There are plenty of apps that use Qt for their GUI and don't use the KDE libraries.