Desktops Environments and Window Managers, So what's the difference anyways?
The difference between Window Managers and Desktop Environments is pretty simple -- like kindergarten-style, stay within the lines while coloring simple.
A Desktop Environment is a fully featured graphical user interface to aid with the interaction with your operating system. DEs typically provide a handful of applications bundled together to accomplish tasks in a graphical manner as opposed to using the command line. They often come with a desktop shell, which is a place to hold your fancy shortcut icons, as well as other tools such as file managers. Think Windows' Explorer or OS X's Finder. And of course, a DE provides a means to manage your currently open application windows. Said differently, a Desktop Environment also provides a Window Manager.
A Window Manager, on the other hand, has the much more streamlined task of simply managing how you interact with your application windows without all of the extra bloat. WM's are often designed to be highly customizable via configuration files or graphical settings tools, and typically do a single job: managing your application windows. That is, they provide a method to start an application, move a window around, resize your application window and close said window.
Why use a Window Manager over a Desktop Environment?
This is a fundamental question that even IBM's Watson would have trouble answering. Sure, you could use the cop-out response and say "It depends on the user's preference." However, not to pretend we're in the presidential debate or anything, but we're going to answer that question with more questions:
1) Do you want your user interface to be lightweight?
2) Do you want a very high level of customization in your UI?
3) Do you like to hack on configuration files and do a lot of tweaking?
4) Do you care about function over form?
5) Do you dislike conforming to an OS's strict design and layout rules? (Fight the system!)
If you answered "yes" to three or more of the questions above, you may want to try using one of the Window Managers we'll explore shortly. Picking a WM can be tough -- trust us, there are tons of choices out there. We'll hopefully save you some trial and error here, or at least give you a kickstart.
Types of Window Managers
OK, first let's talk about the different kinds of Window Managers out there. Essentially, there are three types of Window Managers and they're categorized by how they display and render your application windows:
1) Tiling Window Managers: A WM that "tiles" application windows by default, like a ceramic floor tile, rather than overlapping them on your screen. Though, most tiling window managers these days still allow you to "stack" windows as you'll read below.
2) Stacking Window Managers: The most popular approach, which emulates a physical desktop where files and folders can be stacked on top of each other. Stack some papers on that nice IKEA desk of yours and you'll get the idea.
3) Compositing Window Managers: Tricky to explain but worth the mention. Without requiring you to have a computer science degree, we'll explain it this way: Compositing WM's utilize a newer method of processing the on-screen rendering of application windows by using a special off-screen buffer to handle sweet effects and eye candy. Even more simply put, it uses magic to give your windows some visual pizazz out of the box. Basically, you can stack your application windows with added effects like drop shadows and transparencies.
Now that you're well-versed on the types of Window Managers out there, let's take a look at some of the more popular implementations of these different WM types.
Table of Contents
First up is AwesomeWM. With a name like "Awesome" who needs an explanation? Here's one anyways. AwesomeWM is considered a Tiling Window Manager that utilizes the very powerful programming language, Lua, for its configuration. It also supports several different default window layouts to help with your workflow. A window layout is a predefined location for your application windows to occupy. For example, if you keep a web browser up side by side with a word processor, there's a default layout for that. You can switch to it via MetaKey + spacebar to cycle through the layouts. What's a MetaKey you ask? It's the "Windows Key" on a standard PC keyboard. You can also configure the MetaKey to be any key on your keyboard with some tweaking. One of the most touted features of AwesomeWM is that the use of a mouse is completely optional, though we challenge you to comfortably browse the web without a mouse. That said, there is still a mouse-driven menu available by default for AwesomeWM.
- Very powerful configuration via Lua programming language. You can customize AwesomeWM from the ground up.
- Can solely use the keyboard, no mouse required for the hardcore hackers out there.
- Very lightweight.
- It's called AwesomeWM for a reason.
What would make you want to choose AwesomeWM?
1) If you like using the keyboard -- for everything.
2) If you prefer a very lightweight environment.
3) If you like the Lua programming language.
4) You don't mind hacking configuration files to get your environment exactly how you want it.
Alternatives with similar functionality to AwesomeWM:
Next up is Fluxbox, which is a Stacking Window Manager that sports a taskbar and pop-up dialog menu. It's designed to be very lightweight and highly customizable. You aren't required to have any programming knowledge to configure and customize Fluxbox, which is a plus for the less technical users. You can customize the mouse-driven menu via flat text configuration files as well as other defaults. On the con side, it's nowhere near as customizable as AwesomeWM, but it's still lightweight and very fast. No bloat here.
You can quickly access the menu by right-clicking on the desktop area. On top of that, you can make the menu "stick" to the desktop by left-clicking on its title bar. A nifty feature if you like quick access to your menus.
- Easy to use and configure.
- Quick mouse-driven menu.
- No programming language knowledge required.
- Menu can stay visible or hidden for quick access to application launching.
Why would you want to choose Fluxbox?
1) If you like a simple, easy-to-configure, lightweight Window Manager.
2) If you like mouse-driven menus.
3) If you don't want to learn a programming language to configure your environment.
Alternatives with similar functionality to Fluxbox:
Enlightenment, more specifically Enlightenment 16 or simply E16, is a Compositing Window Manager and is touted as "The original eye-candy window manager". It's a very beautiful and easy-to-configure WM. E16 supports mouse-driven menus as well as easy-to-configure keyboard shortcuts. Since Enlightenment is a Compositing Window Manager, you get those fancy drop shadows and window transparencies. To configure E16, there's no need to hack on any configuration files as it provides a settings manager by default. However, there is always the option to manually edit the config files if you'd like. Basically, E16 is for the folks who want to be able to stare at their screen and drool when they need a break from working.
- Very beautiful interface with eye candy.
- Easy to use and configure via the Settings Tool.
- Quick mouse-driven menus.
- No programming experience required to configure the environment.
- Tons of themes available out there in the Enlightenment community to provide a never-ending supply of eye candy options.
- Very nice support for "virtual desktops previews" to help handle a large number of open application windows at one time.
Why would you want to choose Enlightenment 16?
1) If you like a sleek-looking UI.
2) If you want a lightweight WM without the need to hack on config files.
3) If your apartment smells of rich mahogany and you have many leather-bound books.
Alternatives with similar functionality to Enlightenment 16:
Sorry, E16 is in a world of its own. The only comparison really is E17, a currently under-development successor to E16 which is being written from the ground up.
More information can be found here: http://enlightenment.org/
Lastly, we're going to bring up an oldie, but goodie -- WindowMaker. It's designed to emulate the old NeXT GUI. Those of you using OS X or an iPhone can thank NeXT for your current environment, though there is little resemblance on the surface these days. WindowMaker is a very fast and efficient Stacking Window Manager. It supports mouse-driven menus as well as clickable dock launcher icons. Another tantalizing feature is its use of dockapps, small widgets that can be placed in the WindowMaker dock.
- Designed to emulate NeXTstep GUI, which was a groundbreaking and unmatched interface in its heyday.
- Extremely stable codebase thanks to its maturity.
- Configuration manager much like Enlightenment -- no need to manually edit configuration files if you don't want to.
- You can still manually edit configuration files.
- No programming experience required to configure the environment.
Why would you want to choose WindowMaker?
1) You had a NeXT machine back in the '90s.
2) You like a nice mix of form and function.
3) You like square icons.
Alternatives with similar functionality to WindowMaker:
Choosing a Window Manager can actually be a very fun and educational experience. After trying out different WMs, you'll hopefully learn some of the beauty in open source operating systems and arm yourself with the ability to choose and customize your environment. More and more users are being directed to do things a certain way by the other major operating systems out there. These days, users are presented with increasingly few opportunities to choose what they want in their computing environment. After playing around with the different options out there, you might find that a more fine-tuned environment suits you. You'll not only work faster and more efficiently, but you'll actually enjoy looking at your computer screen due to the customized beauty you can create.