I'm new to Ubuntu (and Linux in general). Sometimes when looking at programs in the Ubuntu Software Center, I see things about the programs being 'for the GTK+ environment', or 'for GNOME', or a whole lot of other things. All I know is that I've got Ubuntu 12.04 LTS, and what I'm seeing through my monitor appears to be the controversial Unity interface.

What are these other things I see mentioned in the descriptions of programs (such as KDE, GTK, QT, GNOME, GNOME 'shell', etc.)? Are they Linux GUIs that are alternatives to Unity? Are they dependencies that I need to have?

I've spent the last several months getting used to Ubuntu in its present form (though I confess, I have played around with Compiz, which is fun as hell). Will these other things completely turn my world upside down if I use them?

  • 2
  • Welcome to Ask Ubuntu! I understand all these new terms seem confusing when you start using Ubuntu/Linux. However, I also think your question is too broad to answer. As @UriHerrera already showed, the information is already present on this site as well. I'm voting-to-close this question. See also the FAQ for more information about what kind of questions are fit for this site. – gertvdijk Jan 29 '13 at 21:40
  • 2
    There's nothing to apologise for :) – Flimm Jan 29 '13 at 22:13
  • 3
    In addition to their being nothing to apologize for, I also don't agree that this is too broad to answer. That is, by current standards, too broad, which is why we should probably not close this as a duplicate of it. This is considerably narrower and already has good answers. – Eliah Kagan Jan 30 '13 at 0:20
  • 1
    @EliahKagan That is a plain exception to the rule as explicitly mentioned on the top of the question. And I disagree with you about this being a narrower question, as this question is about both DEs and UI toolkits. Effectively, it's at least half a duplicate. And I could write a book as an answer, so, it's definitely a "too broad" type of Q. – gertvdijk Jan 30 '13 at 0:24

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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.