Ubuntu: Explaining the whole window manger and desktop things [duplicate]


So I've heard the following terms as much as I remember. Trying to find a source which describes them and their relationship to one another just does not exist. And it is confusing to say the least.

Can someone explain to me, like one would to a five year old the following terms and how the are related or correlate to each other:

  • Gnome
  • KDE
  • Unity
  • Xorg
  • x11
  • x server
  • startx
  • Pantheon
  • GTK
  • QT
  • Window manager


Gnome, KDE, Unity, Pantheon

Gnome, KDE, Unity, Pantheon are desktop environments.
A desktop environment consists of a lot of different tools. e.g: login manager, window manager, application launcher, menus, terminal emulator, file manager, web browser, editor, graphical tools for system configuration and a lot of other utilities. It's a complete package of everything you need.

Image from reddit:
enter image description here

GTK and QT

GTK and QT are toolkits/framework to develop software, e.g: a lot of tools developed for Gnome desktop environment are usin GTK to make their GUI, instead of writing everything myself I can uses these to speed up my development and at the same time use and follow a standard framework which all other programs are using in a same environment.

enter image description here

X, X11 and Xorg

X is a framework, we can even reference it as a protocol, X11 is the last version of this protocol and Xorg (Xorg server: X uses a server client structure) is a implementation of x11, it's like HTTP and browsers, HTTP is a protocol, HTTP2 is the last version and web browsers which are using this protocols to talk to web servers somehow implemented it.

From Wikipedia:

X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting with a mouse and keyboard.

It simply make us able to draw and show things, also contains a lot of necessary drivers.

However even X needs a window manager to uses it's capabilities, it the bellow picture you see twm window manager and xterm and other stuff running a X session, for more information about window managers read the last section.

enter image description here


startx is a script to bring a graphical environment up, it initialize an X session.

Window Managers

Window managers are mostly part of desktop environment, you can even use them instead of using a complete desktop environment. There are a lot of window managers available things like: i3wm, awesome, openbox, fluxbox, blackbox, xfwm4, compiz, etc.

enter image description here

They control how our windows act, how they look like, what elements they have, where should my title and default buttons show up, what happens if I drag/resize/close it? etc. Window managers uses display servers like X or Wayland to achieve these.

Pictures are from Wikipedia.


ELI5 explanation:

  • Xorg,x11,x server - all same thing. It's basically a giant software that makes GUI possible. No X server running => No GUI.
  • window manager - that's what makes windows pretty. X server gives you the bare bones.
  • startx is a command. In the old days that's how you'd bring up the GUI.
  • Gnome, KDE, Unity, Pantheon - all are graphical shells. While X server gives you bare-bones GUI, graphical shells give apps specific look and specific behavior (like Alt+Tab for example). Work together with Window Managers. Often come bundled with extra software like text editors, web browsers, etc. Correction should be given about Unity - it's really just a plug-in for Compiz window manager, which becomes apparent when Unity crashes and you're left with barebones desktop and no launcher or top panel.
  • GTK, QT - graphical toolkits. Basically the "language" of GUI programming. More specifically, they're "libraries", and most of the common languages on Linux desktop like Python or C++ use those libraries for making GUI apps.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »