Filed under: OS Updates, Features, Linux, Open Source

Flipping the Linux switch: Desktop environments vs. window managers

Enlightenment Window Manager ScreenshotPicture this: It's late at night. You've restarted your computer. The optical drive is whirring contentedly, but you have butterflies in your stomach. Tonight is the night you install Linux for the first time.

You choose your language, and then your keyboard layout. This is pretty easy, so far. A partitioner works its magic on your hard disk, either resizing your Windows partition or wiping it completely.

Suddenly you are blindsided by the question: Which default desktop environment would you like to install?

Do you know? Do you care? What in the blazes is a desktop environment, anyway? How is that different from a window manager? When is it more appropriate to use one over the other?Simply put, a desktop environment in Linux is, well, what "Windows" is to Windows. It's the coordinated interface that is your desktop. It's a complete package of graphical applications that sits on your X (graphical) server which in turn sits on an imposing, cold, command line. Linux desktop environments (such as GNOME and KDE) are robust (window manager fans may go so far as to say "bloated") series of applications designed to work together. GNOME is based on the GTK+ toolkit, and KDE is based on Qt. A little confusing? Fear not. We'll cover GNOME and KDE (and the controversy that surrounds them) in more detail in the next two weeks.
GNOME desktop environment in action

A window manager is a seemingly simple concept. It's a graphical interface that simply (are you sitting down for this?) manages windows. Most window managers, to the new Linux user, look exceedingly sparse. There are no recognizable panels, and often times no taskbars or visible menus. There may be a few mysterious applets associated with the window manager. It may not be readily apparent how to move or resize windows.

Larger shot of Enlightenment Window Manager

Window managers sound a bit scary? Desktop environments sound big and complicated? How do you determine which you're better off using?

There are are few things you need to take into consideration. The first matter is hardware. You can use a full-bodied desktop environment on a machine that is (much) older or has less than wonderful specifications, and it might run fine. More than likely, though, it'll be a slow, frustrating experience. Older hardware is a relative term: KDE 3.5 will run fine on 512 megs of RAM with a fast enough processor (around 1 Ghz), and might be tolerable on half that, depending on what else you have running in the background. GNOME is a little less resource intensive, and a slightly slower processor with 256 megs of RAM would be workable for most.

A machine with less than 128 megs of RAM would be a prime candidate for a window manager. It'll run a lot faster, and even though it has more of a learning curve, increases your chance of a positive Linux experience.

The other consideration, of course, is how you're going to use the machine. A machine that is used solely for a dedicated task (such as a personal video recorder or file server) should be focusing most of its processing power on the task at hand... not on running background processes for applications you're not going to use. In these cases, you'll likely want a window manager.

Enlightenment, Fluxbox and WindowMaker are popular window managers, but there are literally dozens of them. Chances are good there are more than a few in your distribution's repositories, so that you'll be able to install one quickly and (fairly) painlessly. They're so lightweight that trying out a couple on an older piece of hardware or installing one alongside a desktop environment to play with won't cause noticeable drag on your system.

Most new Linux users feel more at home with the Windows and Mac-esque feel of a desktop environment, and we'd recommend at least starting with one if at all possible. While the majority of new users opt for KDE or GNOME, Xfce is a great choice should your hardware be straddling the system requirements fence. Desktop environments give a powerful, cohesive overview of what your shiny new (or not so new) Linux box can do.