86

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?

2

4 Answers 4

88

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, GNOME, etc. are suites 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.

7
  • 3
    Some other display/login managers: slim, qingy.
    – dubiousjim
    Commented Oct 19, 2012 at 19:06
  • 3
    Some other window managers: metacity and twm Commented Oct 19, 2012 at 22:19
  • 2
    @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
    Commented Oct 20, 2012 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. Commented Oct 20, 2012 at 0:49
  • Doesn't all desktop environments require a window manager? And all window managers a display manager? That would seem logic to me, but I have installed LXDE but apparently don't have LXDM... Commented Oct 23, 2018 at 16:16
29

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 &
metacity

(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.

2
  • Is uppercase GDM the same as lowercase gdm? Commented Feb 25, 2017 at 6:05
  • 2
    This was a fantasic answer. It doesn't just give you the answer but tells you how to build a better understanding. Thank you.
    – allen kim
    Commented Aug 16, 2018 at 0:37
9

@bahamat answer is complete for the question. However, I am adding definitions of more terms as this question shows up first on related google searches:

  • X Window System (aka X11): A network protocol encoding things such as graphic primitives, images, pointer motion, and key presses.
  • X Display Server (e.g. Xorg and XFree86): X server implementing X11 and providing an interface to keyboards, mice, and video cards.
  • X Display Manager (e.g. SDDM, GDM, and LightDM): Graphical login manager which starts a session on an X server from the same or another computer
  • Widget/GUI toolkit/framework/library (e.g. GTK+ and Qt): Providing things such as buttons, scrollbars, edit boxes, etc.
  • Window Managers (e.g. Metacity and Compiz): Decorating X window primitives and supporting various operations such as moving, resizing, and maximizing of windows.
  • Desktop Environments (e.g. GNOME, KDE, XFCE, and LXDE): Providing libraries and specifications that applications use and follow in order to "play nice" with other applications.

Reference:

https://superuser.com/questions/291298/window-manager-vs-desktop-environment-vs-window-system-whats-the-difference

6

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.

You must log in to answer this question.

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