Comparing the Window Managers: Which is Best for You?
The idea that you could just change the way your computer's user interface looks like and behaves is pretty foreign to most people that typically use Windows or Apple's OSX. In the world of Linux operating systems, as well as other open source UNIX based systems like FreeBSD or openSolaris, this capability is a given.
In fact the choice of a prefered user interface may play a significant part in the choice of a Linux distribution since the default desktop environment, including the window manager, panels, menus, and default apps, tend to get the most attention and polish through higher attention to detail, better integration, better support, and so on.
So what do you choose, and how best to choose? Before answering that, along with an overview of a number of representative choices, let's just clarify what is it that makes up the user interface (or UI for short).
At the foundation of it all is a software engine that enables the very display of graphical elements and the capability of controlling them with a mouse and keyboard. In Linux this is typically the X Windows system (Xorg or X11), and new ones are being developed (Wayland, Mir etc.). But this isn't our concern here. It does its job of drawing stuff and hopefully does it well. What we're interested in is what it draws and how do we interact with it, and that's where Window Managers, and more broadly Desktop Environments, come in.
A Window Manager is what allows you to actually open, move, resize, dock or otherwise manipulate windows of an application using your mouse and keyboard, and they come in many varying forms. A deskop environment includes a window manager, but integrates it with a larger set of tools and processes that typically make it a smoother and richer experience. Deskop environments are a bit fuzzy to define, but you can think of them as window managers with various complementary components added.
Here we cover both window managers and desktop environments as we're focusing mainly on the end user experience.
How to Choose
The choice of a window manager or a desktop environment comes down to your preferences in terms of look and feel as well as your needs in terms of desired functionality and workflow. Ideally you want the environment to serve you and be adapted to your needs and desires rather than getting in the way. Different people may be served by different things as everyone may have their own definition of what works for them and what gets in the way.
Having a decent idea of what you're looking for goes a long way towards choosing what's right for you. For example you might want an environment that is sleek and visually pleasant, well integrated, and offering many helpful features or your sole focus may be speed and simplicity, or you might simply want something that closely mimics what you're already used to (such as Windows and OSX environments).
Desktop Environments - The "Mainstream" Choices
I call these choices "mainstream" because they are the window managers and desktop environments that most often ship by default in the most popular Linux distributions, same ones that typically aim for ease of use, attractive appearance, and powerful features. They tend to be most complete, most integrated, most polished, and therefore tend to count among the flagships of the Linux world.
Unity is a complete desktop environment developed by Canonical for Ubuntu to succeed GNOME2. When it first came out as a default UI for Ubuntu it was met with quite a lot of grumbling, and still remains somewhat controversial. The main problem initially was that it was actually quite poor and unflexible compared to what we had with GNOME2 so it felt like a step back. But in time Unity became much more polished and powerful, becoming a respectable desktop environment in its own right.
Unity is a kind of variant on the concept advanced by GNOME3, but executed quite differently. Both share a fairly minimalist and unobstructed desktop style with an overlay menu, referred to as the "shell", providing powerful search and selection tools. Unity is still quite different though, taking its own unique path.
Unity is for you if you're looking for a very sleek and cool looking desktop environment that is also well polished, fairly powerful, strongly integrated with system functions, and well supported. It may not be for you if you dislike the newfangled desktop environments that, according to some, try too hard to impress with flashy stuff and gloss while not really adding much in terms of utility. It always depends on what you consider to be useful and valuable, of course.
It is also the face of Ubuntu, and if this is the type of user experience you're looking for you'll probably be best served using Ubuntu.
One of the oldest and longest standing desktop environments, GNOME continues to live on despite the rise of newcomers like Unity and Cinnamon. GNOME3 was a radical step, almost as radical as the evolution from KDE3 to KDE4, but arguably in terms of layout changes even more radical.
GNOME3 basically started this trend of minimalism aided by a rich semi-transparent dark overlay where a handful of top applications can be launched, the rest searched for, and running applications arranged across workspaces. GNOME3 also strives for elegant minimalism in the way it presents windows and desktop functions such as, for instance, the system tray.
Icons that typically go into the system tray are put into a tray that seems to lie below the actual desktop and rises the desktop to show itself when you move your mouse to the bottom edge of the screen (similar to the gadgets bar in the OSX dashboard). If there are any notifications they will also peek out from the bottom. Since GNOME 3.12 it also offers support for HiDPI screens such as Retina screens on newer Apple MacBooks. If you like the aesthetical sensibilities of OSX, and the idea of relying heavily on a search centered overlay shell to find, launch and manage apps appeals to you, GNOME3 may be an excellent choice.
For those who have used GNOME before a GNOME Classic variant is also available, which offers a somewhat similar layout while still generally following its modern aesthetics. A more faithful classic GNOME environment is MATE (pictured above), which is pretty much GNOME2 rebranded and forked into a new project for continued maintenance.
"Traditional layout, advanced features, easy to use, powerful, flexible." That's the tagline for Cinnamon, a relatively new desktop environment spearheaded by the Linux Mint project. The tagline says it all. It's effectively about combining the best of both worlds; the classic environments such as GNOME2 and some of the modern features and characteristics of modern interfaces such as GNOME3. You'll see elements that remind of both.
The layout is pretty simple; a panel at the bottom (or optionally on top) with an elegant menu that reminds of a Windows Start menu, a system tray with notifications and the space showing open windows in between. One of the best things about it is edge snapping and edge tiling which allows you to easily snap windows to all four edges and tile them together in various configurations, which is very helpful for arranging your focus and workflow.
Cinnamon also supports applets for the panel, desklets (widgets) for the desktop, extensions for additional functionality, and of course, themes. The file manager is an elegant variant of Nautilus from the classic GNOME called Nemo.
Often seen as an alternative to those who like GNOME, but wish for greater speed and flexibility, Xfce offers probably the most features and flexibility at best performance. It tends to be quite straightforward to intermediary or advanced Linux users. It wont hold your hand at every step, but is very easy to figure out. Xfce doesn't really have a single layout that can be meaningfully called "the default" since both the official project and distributions which include it frequently put out different configurations, and users can very easily change them.
For example, in Xfce the panel can be anywhere you want, at any size, with any content and functionality you want in it behaving in almost any way you can think of. Whether you want a powerful everything and the kitchen sink panel sticking across the full width of your bottom screen edge or a simple OSX like dock with a few application launchers, you can have it all. Same goes for the main menu. It can be placed anywhere and you can even have multiple different ones.
The appearance can also be customized with many themes for both window decorations and UI elements so it can look like almost anything you want.
If you like the ability to customize your user interface to your hearts content and do it fairly easily, need all of the features you've come to expect from a desktop environment, but want it fast then Xfce is a very strong candidate.
KDE has historically been one of the two major desktop environments existing from the early days of the Linux desktop, the other one being GNOME. The two have often inspired classic KDE vs. GNOME schisms in the community having taken fairly different user interface philosophies. KDE has always focused on being extremely powerful, featureful, and configurable, not shying away from giving users options to tweak even when this seemed to have come at the expense of simplicity and elegance and somewhat increased its learning curve.
Its power was always hard to ignore, however, and many appreciated all that can be done with it. With the advent of KDE4 it was reinvented through and through with new technologies and designs which marked a tremendous shift for the project which at the time stirred quite a controversy. KDE4 is now mature, stable, and as powerful as ever, probably much more so than KDE3 was. KDE4 also improved its ease of use to some degree, and gave it a much more modern feel.
KDE has an easily recognizable style. First thing that tends to come to mind when thinking of KDE is all the gloss, glassy transparency, powerful widgets, and the sheer power of configurability. The motto is that everything you see is a widget, and the typical arrangement that it is known for, with a Windows-like panel at the bottom, is just one way of arranging the widgets. The panel itself is a widget, and the panel can also contain other widgets arranged the way you want them.
This makes it somewhat like Xfce in terms of flexibility and configurability, but with more features and greater integration. Every detail can be rearranged and reconfigured, even such things as the order of buttons in the title bar, where do application menus display, which toolbar buttons to display and in what size, how fast are all the animations, and so on.
KDE is also very heavy on bling and effects. There are animations for everything, also configurable, and the whole UI tends to be laden with gradients, glassy effects, glow, and shadows. It seems to aim for this futuristic cool factor, but clearly this isn't for everyone. Of course, with different themes and configuration options it is possible to pare it down to something less flashy.
KDE's native apps are worth a mention as well since they tend to be some of the most powerful applications you'll find in Linux, in big part because the KDE developers don't shy away from giving you features. Considering how much functionality you get it's fair to say they actually manage to do a pretty fine job at still keeping it easy to use.
KDE's file manager is perhaps the best example of a contrast between KDE's philosophy of high functionality versus the predominant minimalism of the likes of GNOME. The thing is a swiss knife for file management, supporting virtually every way, shape or form of managing files you can think of. Another notable example is the Kate text editor, which easily competes with some of the best code editors out there including all of the favorites you can find in Windows and OSX.
So is KDE for you? If you want a complete, fully featured, extremely configurable desktop environment whose default layout resembles Windows, and you like its flashy aesthetics, then it may very well be. If you're a stickler for minimalism then you might want to give others a try.
Razor QT is another relative newcomer to the scene, and it is a ligthtweight desktop environment built in the QT toolkit, like KDE, which may make it a decent alternative for those who like to use KDE apps and tools, but want something lighter, faster, and less flashy. The layout is a familiar configuration with a bottom panel and a standard desktop. The main selling points are its light weight and speed as well as the use of QT libraries instead of GTK.
Another lightweight desktop environment that is very similar to Razor-QT, but predating it, is LXDE. This, quite simply, stands for Lightweight X Desktop Environment. Like Razor-QT LXDE follows pretty much exactly the same familiar layout. The project is aiming to switch to QT as of 2014 and because of this, and many similarities between the two projects, LXDE may merge with Razor-QT into a single environment called LXDEQT.
Speaking of Razor-QT and LXDE it's also worth mentioning older examples such as IceWM, which pretty much follow the same philosophy, but IceWM has been around for much longer ad has a somewhat more old school aesthetic.
Last, but not least, there is a quite odd but very cool kid on the block. Enlightenment is a peculiar Window Manager that offers enough to fit the label of a desktop environment. It's built on top of its own set of libraries unlike all of the above which use either GTK or QT. And they've done an impressive job at building a technology that can generate various animations and effects in a full featured window manager as well as a panel with an amazingly light footprint on resources.
It's a bit of a wunderkid, one of its kind, and with a somewhat offbeat style; futuristic, flashy, very fast, and very configurable. Best way to experience what it's like is to try it out, and the best way to try it out adequately may be to spin up one of the distributions dedicated to it such as Bodhi Linux or eLive.
An interesting factoid about Enlightenment is just how long E17 remained in development, without official release other than alpha's and beta's while for years of that time actually being so stable in practice that many people already used it on their systems without more issues than they might have with another system that's in stable release. Developers insisted on taking their time to get it just right, releasing only when ready, no matter how many years it took. It didn't take that long after the final E17 release, however, to release E18.
Minimalist Window Managers
Next we've got a whole slew of very lightweight window managers, not quite entire desktop environments, whose goal is to offer just basic window management without any bells and whistles and do it each in their own unique and sometimes innovative way. Here's a quick rundown of some of them.
Openbox is so simple you can barely notice it's there. When you start it there's nothing but a blank background and a cursor. Click and you get a menu which is the start of all the action, allowing you to browse to and launch installed applications. Windows are normally dragged and resized with the standard controls for closing, maximizing and minimizing. There's one configuration tool, obConf, which allows changing the theme of the window title bar and border, with a number of themes pre-installed. It can also configure a bunch of other subtle options.
OpenBox is excellent in combination with various components from other desktop environments. For instance you can take a panel from Xfce and make it run when you run OpenBox by editing a configuration file. You can mix and match between components of all of the above mentioned environments and openbox to your heart's content, effectively creating a desktop environment of your own. And that's probably the best thing about having openbox, in exactly the uber minimalist form it is in.
Here we have.. more boxes. FluxBox is a fork of an earlier window manager called BlackBox carrying some improvements. Unlike OpenBox these actually have a panel, but like with OpenBox the central navigational tool is the right click menu anywhere on the desktop. One interesting and helpful thing about FluxBox menus is that its submenus can be detached and dragged anywhere, left to act as sort of vertical panels.
Windows are minimized to the panel, and there are also workspaces to put them in. Where is what is indicated very minimalistically, via textual rather than graphical cues on the panel.
As such FluxBox may be enough for all the necessary window operations, for those who truly don't need anything but the bare essentials and enjoy the zen like simplicity of minimalism infused with just enough cool functionality to keep things fun and productive.
Tiling Window Managers
Still very much in the minimalist territory tiling window managers actually strip down the typical dragging and resizing funcionality of windows by instead fitting them into a tiled grid. The way this typically works you open one application window and it may fill the screen. Open another one and the two arrange side by side. Open a third one and you may end up with two windows on the left tiled on top of each other and the third taking the right side (or vice versa).
Depending on the window manager there are ways to move windows from tile to tile as well as reduce the sizes of tiles. Such window managers tend to rely heavily on keyboard shortcuts for doing various operations as well as launching applications.
Two great examples of tiling window managers are dwm and awesome (yes, it's called "awesome"). In both there is a top panel which indicates currently open windows, numbers representing workspaces (or tile spaces as it were), and in awesome a small menu at the top left corner. Launching applications is typically done by pressing a key combination and then typing up the name of the program. As you type it suggests available programs and allows you to select them to launch.
Yes there are more! Once we begin scratching beneath the surface of the world of window managers and desktop environments in the incredibly diverse world of Linux and UNIX it's almost like falling down the rabbit hole. There are Window Managers that attempt to mimic old systems such as AmiWM for Amiga OS and GNUStep for NEXTStep (in fact a precursor to OSX). There are also window managers which used to be used in popular desktop environments like GNOME, but have since been dropped, like Sawfish, and now Metacity.
And then.. if you've got appetite for more there's this huge list of window managers to explore.
But at this point I hope that this article helps you get a good idea of what's out there, and what's possible, and that you're now better equipped to make an informed choice that's best for you.