Linux – Window Manager vs. Desktop Environment vs. Window System? What’s the difference

desktop-environmentsgnomekdelinuxwindow-manager

I'm confused as to what these terms actually mean AND as to what they do/how they contribute to the system as a whole. In particular, back when I was running Ubuntu, there were several keywords like:

Gnome 
X11 
Xorg 
Metacity 
GTK+

What exactly is the difference between all of these? Which can be changed? Do the same things apply when we're talking about KDE or LXDE?

EDIT: Also, do things like Compiz work in every window manager/window system/desktop environment?

Best Answer

X11 is a network protocol. It encodes things such as graphic primitives, images, pointer motion, and key presses.

Xorg is an X server. It implements X11 and provides an interface to keyboards, mice, and video cards.

GTK+ is a widget toolkit. It provides things such as buttons, scrollbars, edit boxes, etc.

Metacity and Compiz are window managers. They decorate X window primitives and support various operations such as moving, resizing, and maximizing of windows.

GNOME, KDE, and LXDE are desktop environments. They provide libraries and specifications that applications use and follow in order to "play nice" with other applications.

Related Question