Saturday, June 5, 2010

Overview and Explanation of Linux Desktop Environments

Something most new Linux users often struggle to understand when first using Linux is the concept of desktop environments. What a desktop environment actually is I feel gets further clouded when users start exploring different "spins" of a distro. For example it is very common for a new user to think Kubuntu or Xubuntu is something entirely different from the well known Ubuntu. Many do not know that they can easily install any *buntu on any other *buntu with a single command!

Just as choosing the distro can be difficult so can choosing the right desktop environment. The following is an overview of some of the best known desktop environments so you can be more informed in your decision.

The most popular desktop environment currently in use is Gnome, it is the desktop environment that powers the three most popular desktop Linux distros (Ubuntu, Fedora, and Linux Mint). Gnome is a fully developed desktop environment that provides a fully integrated application set. It is easy to use and provides GUI tools for making edits to all the different features that are available within it. It is a very "user friendly" desktop environment that is fantastic for new users.

Gnome's memory foot print is modest for all the features it provides. A default Gnome install uses around 180megs of RAM. If you like eye candy on your computer odds are you will want to be running compiz (desktop effects) on your Gnome desktop. A default Gnome install with compiz running uses slightly more memory, right about 205megs.

In terms of popularity KDE is the second most popular desktop environment. Like Gnome it is fully matured and provides it's own full application set as well as GUI tools for configuration. KDE also has a wide selection of "plasma widgets", which are handy applets you can place all around your desktop for all sorts of tasks. They range from something as practical as a calculator to as useless as a display from "The Matrix".

Over all KDE is much more customizable than Gnome, but this comes at a cost. A default KDE install uses around 510megs of RAM, if you are looking for eye candy it does not cost as much to run kwin (KDE's built in desktop effects) as it does to run compiz. With kwin enabled a default KDE install uses around 520megs of RAM.

XFCE is designed to be simplistic and quick. It does not provide much in the way of eye candy (although you can run compiz on it) but, it is a decently fast/responsive desktop environment. While XFCE does have some of it's own applications, such as it's file manager Thunar and the XFCE system monitor, it does still borrow some applications from the Gnome environment (such as nm-applet network manager). Don't think XFCE is an immature project though, what it borrows from Gnome is more to save itself from reinventing the wheel than from lack of ability. XFCE does not have quite as many tools for making GUI edits as Gnome or KDE, but it does have a fairly good configuration panel.

Designed to be quick and lightweight XFCE leaves a low memory footprint on the system you have it running on. At defaults XFCE uses around 140megs of RAM.

LXDE is a newer project in the world of Linux desktop environments. Similar to XFCE, LXDE's goal is to provide a fast, lightweight desktop environment with little resource usage. LXDE has a few of it's own applications, but those applications it still lacks it borrows from Gnome and XFCE. The age of the LXDE project really shows when you start to look into making customizations to things. Many adjusts have to still be made by manually editing configuration files, not a bad thing if you know your system well (or are willing to learn it), but this can be a giant set back for a beginner who wants things to "just work".

LXDE may be a much younger project than XFCE, but it does a fantastic job of resource conservation. A fresh install of LXDE uses 100megs of RAM, the lowest of all the desktop environments I am reviewing today.

I cannot do an overview of Linux desktop environments without mentioning E17. E17 is designed to be a lightweight, but elegant desktop environment. It is very successful at both of these tasks. E17 uses all of it's own libraries, that have been built from the ground up for speed and flexibility. E17 is a tinkerers delight, you can customize and change anything and everything.

A base install of E17 leaves a memory footprint of around 110megs of RAM. Now, while a base install is functional, half the fun of E17 is playing with widgets, changing transitions, and generally toggling everything you can just to see how shiny you can make your desktop. After I had my E17 fully configured it's memory footprint was increased to a whopping 120megs of RAM.

A few of you may be wondering if E17 is so lightweight, flexible, and flashy why don't more distros opt to use it for their desktop environment? There are two reasons for this. First and foremost is the fact that E17 is very much "beta" software. Compiling the latest version from source at any given point can have piles of crashes/segfaults that can make using it a giant headache. Second, if you do take the time to piece together a stable E17 build (check out Elive or Bodhi for two good examples of what E17 can do) the desktop environment takes some getting used to. For many it will feel foreign regardless if they are used to using another Linux desktop environment or a Windows machine.

Final Thoughts:
All of the various desktop environments have their advantages and their disadvantages. Which one is right for you largely depends on your task at hand. Personally I run LXDE on my netbook, KDE on my gaming laptop, and Gnome on my home media center. If you are not sure which is best for you, try them out! It is all free software after all, get a feel for which desktop environment you
are most comfortable on and use that one.

Is there another desktop environment that you enjoy using that I failed to mention here? If so let me know, I am always looking to tinker with new things.

~Jeff Hoogland


  1. I think you did a great job of mentioning the most popular windows managers around, and these are certainly great qwm's for a beginner with linux. Something that might be helpful is showcasing a few of the less popular but more exotic window managers, such as Awesome WM or fluxbox. When I was first starting with linux, one of the things that really got me excited was trying a window manager that worked differently than a Windows box, and a tiling window manager or floating window manager might add that extra elegance or exotic touch. Great article.

  2. Holy crap, e17 is still beta? Hasn't it been beta since like 2000?

  3. Not that I use it (haven't had the time), but I'm interested in EDE (Equinox DE), as it's based on FLTK, a toolkit as advanced as Qt (but not equally mature) and yet lightweight.

  4. "XFCE does not have quite as many tools for making GUI edits as Gnome or KDE, but it does have a fairly good configuration panel"

    Hmmm. I think I'd have to disagree, and not just on the spelling (it's Xfce, not XFCE, see Wikipedia or the Xfce site). As an ex-Gnome user I found the Xfce 4.6 desktop to be more configurable and more easily configurable (with GUI-based commands) than Gnome. Xfce is particularly well ahead with its panel and with the ease of tweaking launcher menus.

  5. Jeff,

    How are you measuring the memory usage? Using top I estimate KDE 4.4.3 and X11 on Fedora 11 is using about 244 megs. I totalled the resident memory and added the highest shared memory value (22m). This is with Desktop Search and Konqueror preloading disabled.

    54m 7600 5.5 X
    39m 22m 3.9 plasma-desktop
    21m 15m 2.2 kwin
    21m 15m 2.2 krunner
    20m 16m 2.1 kded4
    14m 11m 1.5 ksmserver
    11m 9.9m 1.2 klipper
    11m 9188 1.2 knotify4
    11m 9380 1.1 kaccess
    10m 7876 1.1 kglobalaccel
    10m 8260 1.0 nm-applet
    7056 5160 0.7 kio_trash
    6948 5752 0.7 klauncher
    6056 4364 0.6 pulseaudio
    5656 4420 0.6 nepomukserver
    4380 2936 0.4 kdeinit4
    3312 2376 0.3 kdm
    1272 1080 0.1 startkde

  6. Just wanted to also plug Puppy Linux which consumes a "whopping" 100 MB of RAM.
    Great for older hardware and lots of programs and add-ons if you choose.
    I run Puppy Linux on my old 733 MHz / 256 MB RAM clunker computer and it runs like a champ!

  7. I am going to say you 'forgot' Plasma Netbook, a.k.a. Search and Launch
    Best implemented in Kubuntu Netbook & Sabayon.
    I think it has the elegant appeal of E17 (Elive really is art) with icons as directories, but throws in some functional tweaks like the query bar, favorites atop-screen by the upward taskbar, & newspaper activity on the other page. Call me crazy, but I want to get this desktop to play nice with LinuxMint KDE (I miss KickOff, even though the mouse pointer can launch applications). I think I had it working on Sabayon by "different activity for each virtual desktop", but LinuxMint won't run it effectively. I lose windows when I move the cursor off. Anyway, check out Plasma Netbook Reference Platform.

  8. Thanks for this! I've used Ubuntu since 2007, but still a beginner. This post cleared up a lot of stuff for me. I never understood the pros and cons of the various desktop environments until now.

  9. @Jeff Hoogland
    Thanks for the post though I have a request if I may?Can we have this same content in chart form or in PDF?Not necessarily as a comparison but as a quick ref guide.

  10. What are you looking for in chart form anonymous? The only number information I really provide are average RAM usage. Are you looking for a general feature checklist beyond this?

  11. @Karl

    u are a rich son, ...

    in a commonly machine, the 244Mb are important for use IDE, KDE and plasma have too many cached object on memory, for eye candy only.. not much usefully, and konqueror has poor rendering engine not standar compilant, with commonly crasheds on flash player sites or javascript hard based web sites

  12. @author

    hello author of this article..

    its a good start point for make understandt about Linux philosophy on users, but u must aclared that Desktop enviorement are of 2 types: all-provided-object or desktop-provided-object based. By example, KDE are a "all-provide-features" based phylosophy, wheantime LXDE are focused on "desktop-only-objects", in Gnome and XFce cases, theyre trying actualy to make and all featured desktops.. that last phylosophy (now a fact on KDE4) its the consecuence and start point on consume resources..

  13. I am a dummy. Is there a Linux distro which is a Win XP look feel behave ??

  14. Please remember that Linux is not "Free Windows". That being said take a look at Zorin OS

  15. Thank you Jeff, its just that KDE/Gnome/XFCE / unity/ is all greek to me so I wish to start with something like xp

  16. The Ice Window Manager can conflict with the GNOME-Support so XFCE can be a functional answer to reducing the management complexity of menus.