If you have been using Linux for a long time, you have probably heard of Desktop Environments like GNOME which ships by default with Ubuntu, and KDE Plasma which ships with Kubuntu. You have probably also heard people talking about how they switched from a bloated Gnome desktop environment to a Minimal i3 window manager.
Don’t worry if you haven’t though, because in this article we will be deconstructing this terminology to explain the difference between a Desktop Environment and a Window Manager and which one you should be using.
What is a Desktop Environment ?
Linux distributions are not monolithic. This means that each Linux-based OS is made of several different components which come together and make up the whole OS. And you can switch up and mix and match those different components of the operating system.
A Desktop Environment (DE) is a collection of software and tools that make up the Graphical user interface. A Desktop environment dictates how a distribution looks. The themes, menu bar, taskbar, icons, application launcher, startup menu, desktop, wallpaper, etc are all a part of the desktop environment.
Apart from this a desktop environment by default also comes with a window manager, compositor (allows us to make transparent windows), terminal emulator (for ex. Gnome terminal in Gnome), a default file manager (Nautilus in Gnome), a default text editor (Gedit in Gnome), image viewer, set of wallpapers, theme changer, screenshot software, notification manager, wallpaper setter, screen locker etc.
All of these combined makes up what is called the “graphical shell”. Obviously, the end-user can change the default applications with their preferred ones.
- GNOME
- KDE
- Cinnamon
- Xfce
- MATE
- Pantheon
What is a Window manager?
As mentioned before, a desktop environment ships with its own window manager. This means that a window manager is a component of a full-fledged desktop environment. A window manager (WM) is system software that controls the placement and appearance of windows within a windowing system. It can also be used as a standalone application without a DE. When used standalone, as the name suggests, it doesn’t come with a compositor, Login-manager or any other extra application (like a GUI text editor) that a DE might come with. However, that is the beauty of DE. Being so barebones allows the user to customise and build on the WM as they please thus making Window managers very flexible.
- i3
- awesome
- bspwm
- dwm
- xmonad
- qtile
- Openbox
- Fluxbox
Why even use a Window manager?
As you can see above, a window manager out of the box is not very useful. By default, it doesn’t ship with any extra applications. If you want a menu bar, you can install your favourite one. If you want transparent windows, you can install a compositor. If you love screenshotting things, you need to install an application like scrot or Fireshot. In fact, a window manager is so barebones that I had to install feh just to change the wallpaper when I first used i3. A lot of window managers are also totally keyboard-dependent with minimal mouse support.
Then why would anyone ever use a Window manager? The answer lies in flexibility. The user can choose everything and anything about the UI. If the user doesn’t want a theme changing application taking but space in the hard drive, they can simply choose not to install it.
Efficient workflow: A lot of power users always want faster, more keyboard-driven workflows in which they don’t have to waste time searching for an application when they can simply use a keyboard shortcut to launch it. A lot of standalone window managers also offer features like tiling (any new window tiles up with another making efficient use of space and providing for swift switching between the windows) and stacking.
Tiling Window managers: i3wm, awesome, bspwm, dwm
Stacking Window managers: Fluxbox, Openbox, Enlightenment etc
Minimal: Users don’t have to care about hundreds of useless applications installed by GNOME. They can install it, but only if they want it. This doesn’t bloat up the system too much.
Customisation: Being minimal also offers up A LOT of space for customisation. You can write your own application launcher, notification-daemon, task manager etc. While it is also possible in a DE, it is often harder or simply useless since there is software already available. Check out Unix Porn for some inspiration.
Should I use a Window manager?
It can be hard to get into a Window manager if you are not used to a keyboard-driven workflow. However, that one week of learning is definitely worth it if you want a faster, more efficient workflow. The extensive use of keyboard shortcuts might feel overwhelming at first but the more you practice, the better you will get.
“Fancying” your setup by installing scripts, building software from scratch, writing your own scripts is also a very good way to get familiar with Linux.
Conclusion
In this article, we learned the basic difference between a window manager and a desktop environment. A desktop manager is basically a window manager plus a bunch of applications that make the system usable. However, some users can find the applications installed by a desktop manager unnecessary and might want a more minimal system with only the applications they want. This is where window managers come in. To learn more about window manager and desktop environments, refer to the Arch Wiki. Thank you and keep exploring.