Desktop Environment vs Window Managers



Some Linux newbies and more experienced users often wonder about the specific difference between desktop environments and window managers such as twm or the i3 tiling window manager. Understanding this difference may help Linux users better understand their system and software.

First, it helps to understand the meaning of "window manager". This is the part of the GUI that controls the window's appearance. Window managers manage the size and placement of windows. Window managers also draw and own the close, maximize, minimize, etc. buttons and the scroll bars and menus (like the "File" menu) commonly seen on many windows. In other words, window managers control the frames that surround applications and the placement of these frames.

Obviously, a window manager provides the basic needs of a desktop. That is, showing the program on the screen or pat of the screen. After placing a picture in the background, a user then has what appears to be a desktop environment. However, is this really a desktop environment?

A desktop is the "invisible window" that allows users to set a wallpaper/background and place "desktop icons". However, just because a GUI has a desktop does not mean it is a "desktop environment". A desktop environment is a collection of software that provides a standard look and feel. For example, the Unity desktop environment contains Xorg (or Mir), Nautilus (called "Files"), the Unity Panel, lens, scopes, the Metacity window manager, and more. Metacity by itself is a window manager, but when Unity and other software is with Metacity, then that is a "desktop environment". In other words, a "desktop environment" is a GUI that has a collection of software that always goes with it. As for another example, the XFCE desktop environment contains the Xfwm window manager, Thunar, Orage, Leafpad, etc.

Before installing a new Linux distro, the user will have an idea about what the desktop will look like when told the distro uses the LXDE desktop environment. Naming a specific desktop environment helps the user know what the distro will look like and what software comes with it.

As for desktop shells, a "shell" means interface. Whether the shell is a command-line (like BASH) or a GUI (like GNOME Shell), the user is given an interface to interact with the system.

Developers can make their own desktop environments easily. First, make a meta-package like an empty Debian that has a list of dependencies. All of the listed dependencies will be the list of software that will be part of the desktop environment. Next (if desired), make a theme, icons, or wallpapers that will go in the package file to give the desktop environment a unique look. For illustration, make a special Openbox or AfterStep theme. Then, put it in a package file with a custom wallpaper and icon theme. Next, add the desired software to the package's dependency list. Once the package is created successfully and correctly, distribute it (via a PPA or some other repo). Alternately, a talented programmer could make their own set of software.

In summary, a window manager is just a window manager. However, if a window manager comes bundled with other packages or the package contains a window manager, then that is a desktop environment.

Further Reading


  • slide.jpg
    57.2 KB · Views: 150,054

Members online