Desktop Environment

Last Updated: 2023-02-05

Desktop Environment is not a must for Linux, e.g. Ubuntu Server edition ships without a desktop. Desktop is just another software running in Linux, and it can be swapped.

GNOME vs KDE vs Others

The most popular Linux desktop environments: GNOME and KDE.

  • KDE: Based on the QT GUI widget toolkit. QT was not GPL compatible until version 3.0.
  • GNOME: Based on GTK+ (Gimp ToolKit) GUI widget toolkit. GTK+ (GUI toolkit) was created to build GIMP in 1997. GNOME was founded partly because QT was not GPL compatible.
  • Others
    • Cinnamon
    • XFCE is lightweight, good for remote desk.

E.g. Ubuntu uses GNOME by default, but has several other flavors with different desktop environments: Kubuntu uses KDE, Xubuntu uses XFCE, etc.

X11 vs X.org vs XDG vs FreeDesktop.org

  • X11, a.k.a. X Window System, provides a basic framework for GUI. X protocol had been version 11 since 1987, thus X11.
  • X.org is a popular open source implementation of X11.
  • XDG stands for X Development Group, the old name of FreeDesktop.org.
  • FreeDesktop.org is part of X.org Foundation.


  • Wayland is intended as a simpler replacement for X.
  • GNOME and KDE are expected to be ported to it.


dbus (short for Desktop Bus)is a message bus that allows different processes and applications to communicate with each other.

  • dbus-x11 is an older implementation of dbus that creates a new dbus-daemon for each graphical display that is opened (i.e. when a user logs in). This dbus-daemon (and any of its services) dies whenever that graphical session ends.
  • dbus-user-session instead has a systemd user service, where the dbus-daemon is shared among all of a user's sessions (graphical, ssh, tty, etc). This dbus-daemon dies when the last of a user’s login sessions has ended. dbus-user-session has a hard dependency on systemd which only supports running one graphical session per user at a time.

Ubuntu Frame

A fullscreen shell based on Wayland, used in kiosk, IoT and digital signage solutions, including smart mirrors, health kiosks, industrial panels and more.

Ubuntu Frame supports a range of applications built with GTK3/4, Qt5/6, Flutter, Electron and SDL2, and it also has a solution for applications based on HTML5, Java.