Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I posted a question and noticed people weren't distinguishing correctly between many of these things: Windows Managers vs Login Managers Vs Display Managers Vs Desktop Environment. Can someone please clear this up, i.e. tell us the difference between them and how they are related perhaps?

What category does Xorg fall under? What about Gdm/Kdm/Xdm? People also talk about X. What is X?

share|improve this question
I asked this a while back on SU: superuser.com/questions/291298/… – n0pe Sep 9 '11 at 16:04
up vote 22 down vote accepted

From the bottom up:

  • Xorg, XFree86 and X11 are display servers. This creates the graphical environment.
  • [gkx]dm (and others) are display managers. A login manager is a synonym. This is the first X program run by the system if the system (not the user) is starting X and allows you to log on to the local system, or network systems.
  • A window manager controls the placement and decoration of windows. That is, the window border and controls are the decoration. Some of these are stand alone (WindowMaker, sawfish, fvwm, etc). Some depend on an accompanying desktop environment.
  • A desktop environment such as XFCE, KDE or GNOME are a suite of applications designed to integrate well with each other to provide a consistent experience.

In theory (and mostly so in practice) any of those components are interchangeable. You can run kmail using GNOME with WindowMaker on Xorg.

share|improve this answer
Some other display/login managers: slim, qingy. – dubiousjim Oct 19 '12 at 19:06
Some other window managers: metacity and twm – Emanuel Berg Oct 19 '12 at 22:19
@EmanuelBerg: metacity is mostly useless without GNOME and twm is mostly useless. That aside, my intention is only to provide examples, not an exhaustive list. – bahamat Oct 20 '12 at 0:39
Well, I didn't ask for an exhaustive list, if that was your interpretation. Just gave two more examples. But, as for what is useless or not, that's for everyone to find out for himself. For one, I use metacity every day, and I haven't had GNOME in ages (check out my post below). The more information, the better. – Emanuel Berg Oct 20 '12 at 0:49

In one sentence: Your display manager create a nice graphical display where you can use a login manager to login to your X session which will start a window manager and may start a desktop manager.

share|improve this answer

If you experiment with this, it'll be clear:

In /etc/rc2.d, you'll find files that are instructions what your computer should do when it starts.

If you use GNOME, look for a file with gdm in its name, then replace the S (first letter of the name) by a lowercase s. (GDM is as you might have guessed the GNOME display manager. If you use some other suite, of course, find out what display manager it uses, then disable it in the same way.)

Now, reboot your computer and you'll notice that the login screen no longer shows up. Conclusion 1: No display manager, no login screen.

Instead, you'll log in to the console. Now, try for example to play a movie (or do anything with graphics). Won't work! This is because X isn't running. Conclusion 2: No X, no graphics.

Third step, starting X: By typing xinit, depending on your ~/.xinitrc file, a set of applications might get started. But, to illustrate, try running X with only a terminal, say, urxvt. So, put urxvt in .xinitrc and comment-out (with #) everything else, then type xinit.

You should now see the urxvt window. Here, you could play movies, etc. But instead, let's move the urxvt window somewhere else. Can't do it. Conclusion 3: No window manager, none of the usual GUI functionality you are probably used to. So, type exit in urxvt. (That command will exit the terminal, but, as that was the only process run as specified in .xinitrc, X will terminate as well.)

Last step, modify .xinitrc once more:

urxvt &

(note the & so the processes will run concurrently)

Run X again and see the result. The last part of the puzzle: metacity, a window manager.

To get out, type pkill -9 metacity. (On this, urxvt will terminate as well, possibly because, as it was run in the background (with &), metacity is the only process X monitors.)

Good luck. Probably, you'll get stuck on some detail, but it's worth it, to gain understanding.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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