Ubuntu – KDE, GTK, GTK+, QT, and/or GNOME

desktop-environmentsgtkqt

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?

Best Answer

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.