25

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?

1
  • Already asked in 2010 on AskUbuntu and asked a few months later on Unix&Linux. Splitting the StackExchange hairs in so many parts doesn't always make sense. Aug 10, 2016 at 18:45

3 Answers 3

30

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.

6
  • This is a really great and simple answer +1. However, can the Xorg server be changed or is it a linux standard? Also, I've never heard of GTK+ or Metacity in a KDE environment -- are they Gnome specific?
    – n0pe
    May 31, 2011 at 23:48
  • 3
    Xorg is simply one implementation of X11; it just happens to be the most popular FOSS implementation. KDE specifies that Qt is used as its widget toolkit, so it is not possible for a KDE app to use GTK+ since it will then no longer be a KDE app. It is possible to use Metacity under KDE (the window manager is rarely part of the DE specification, just a sane default), but most of the reason for people using KDE in the first place is due to its configurability, and Metacity is the very antithesis of configurability. May 31, 2011 at 23:54
  • One more question, and thanks for the info up to this point. Do window managers play a part in dual-screen compatibility? I'm about to switch from KDE to a lightweight solution (blackbox/openbox, that area) and I'm wondering if these even effect dual-screens or that kind of stuff.
    – n0pe
    May 31, 2011 at 23:57
  • 1
    They shouldn't, but some may provide additional features under multi-monitor situations (snap to screen edge, send to screen, etc.). Jun 1, 2011 at 0:00
  • user113907 mentions: "X11 is the window system (the thing that draws the windows on the screen)". You mention: "X11 is a network protocol". Can this be reconciled?
    – dotancohen
    Sep 20, 2014 at 12:47
4

Here are the terms defined, along with some Ubuntu-centric examples.

  • Window Manager: Takes the requests of windows and puts them where they need to go. Does things like titlebars, menus, etc. Example: Metacity

  • Desktop Environment: A superset of Window Managers that add things like panels, backgrounds, and other niceties. Example: GNOME

  • Windowing System: The actual low-level software that allows for things like windows to even exist in the first place, and draws them on the screen. Example: Xorg

In general, you may also be interested to know that the window manager and desktop environment are what the user interacts with. You don't directly touch (unless you are in a recovery shell) the windowing system.

Note also that these things can be modular to respect with another. For example, you can use any window manager on Xorg, and any desktop environment on top of any window manager.

0
4

GNOME is a desktop environment (it handles the desktop icons and panels).

Metacity is one of GNOME's window managers (it keeps windows organized).

GTK+ is GNOME's widget toolkit (it draws the buttons and checkboxes).

X11 is the window system (the thing that draws the windows on the screen).

Xorg is an open-source implementation of X11 (usually synonymous with X11).

Compiz is a window manager and desktop compositor (a desktop compositor is a program that renders special effects, such as a desktop cube, on your screen).

You can run Compiz in GNOME, KDE, and Unity at least. Just get the CCSM package by entering this into the terminal:

$ sudo apt-get install ccsm
$ ccsm

(Don't enter the dollar sign and the space after it; these just mean that you are not logged in as root.) In CCSM (Compiz Config Settings Manager), turn on and configure whatever desktop effects you want. Be careful! You may lose the titlebars in GNOME and UNITY. If that happens, press Ctrl-Alt-F1 and then type in:

$ top

Look under the PID column and note the number on the xorg entry. Then enter:

$ sudo kill pid

The login screen should appear immediately. Log in again and avoid making the mistake your did last time. Sorry for the long discourse.

1
  • Ignacio Vazquez-Abrams mentions: "X11 is a network protocol". You mention: "X11 is the window system (the thing that draws the windows on the screen)". Can this be reconciled?
    – dotancohen
    Sep 20, 2014 at 12:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .