Chapter 2: Desktop Environments

  • strict warning: Non-static method view::load() should not be called statically in /home1/thephan1/public_html/sites/all/modules/views/views.module on line 879.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /home1/thephan1/public_html/sites/all/modules/views/handlers/views_handler_filter.inc on line 589.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /home1/thephan1/public_html/sites/all/modules/views/handlers/views_handler_filter.inc on line 589.
  • strict warning: Declaration of views_handler_filter_boolean_operator::value_validate() should be compatible with views_handler_filter::value_validate($form, &$form_state) in /home1/thephan1/public_html/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc on line 149.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /home1/thephan1/public_html/sites/all/modules/views/plugins/views_plugin_row.inc on line 135.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /home1/thephan1/public_html/sites/all/modules/views/plugins/views_plugin_row.inc on line 135.

You're probably wondering why I haven't shown many screenshots of Linux yet. Well, you want a screenshot? Here you go:
Linux Console

The basic Linux setup does NOT have a graphical user interface (GUI). It's just a console that's very reminiscent of DOS. (Although a lot more powerful and open for multiple programs to run at once.) By not having the GUI built into the kernel of the OS, Linux runs a lot faster, especially for those who just want to run it as a server without the need for a GUI. And for those who do want a GUI, they can choose any kind they want and customize it to their heart's desires. (Heck, they can even make their own.)

There are two basic levels to implement in a GUI, the window system/basic graphics, and the desktop environment. Let's take a look at the first.



X11/XFree/XOrg: The Window System
In order to have a GUI, you need to be able to actually DRAW stuff to the screen. This means you need to have some sort of program that runs in the background to do this job. And that is the purpose of the X Window System.

Basically, what it does is it takes control of your graphics card and outputs pretty pictures, as opposed to the simple console letters and numbers. So when someone is writing a program (such as a Desktop Environment) that will draw stuff to the screen, they would call some sort of function along the lines of:

X.DrawImage(SCREEN)

Or some such. This would send the output to X, which would then proceed to . . . draw the picture to the screen! By itself, X isn't much of anything. But it provides an interface so that subsequent programs can actually create a GUI. To think of it abstractly, X is the pencil, the computer screen is the paper, and your hand is the Desktop Environment telling it what to draw.

Oh, and to further confuse things, there are several versions of X out there, any one of which may be running on your Linux install. X11 (or version 11 of X) is the basic one. XFree86 is a spin off of X11. And XOrg is another spin off. Suffice it to say, they're all the same, more or less.

And, of course, there are other options for Window Systems, but X is really the most used one, so I'm not going to go into the others.

Do you really need to know all that much about it? Not really. All this really is, is a bit of information so that you don't go "What the heck is this X thing that is running on my system?"

Here's what Wikipedia has to say about X.



The Desktop Environment
So now you've got X (or something like it) and can draw pretty pictures to your screen. Next you need some sort of program, or set of programs, that actually tells it what to draw. This is your Desktop Environment. This is the stuff you actually SEE.

There are many, MANY desktop environments out there, but we'll just focus on the most popular ones: GNOME, KDE, and XFCE.



Gnome
First up is Gnome. Gnome is one of the most well known environments for Linux. It's been around for quite some time, and is developed on the principle of making things simple and easy to use, with an intuitive interface. Gnome is very customizable, and can be skinned to look pretty as well. It's also very efficient. Many claim that Gnome is one of the fastest running environments out there.

Gnome Screenshot
The default Ubuntu interface, which uses Gnome.

Most notably, Gnome has been chosen as the default environment for Ubuntu, which says a bit about its design. And although the default Gnome theme isn't so attractive to me, the Ubuntu version actually makes it look quite nice.

Overall, it's the environment that most beginners will feel comfortable jumping into and advanced users will appreciate for its simplicity.

Here's what Wikipedia has to say about Gnome.
The official Gnome website
Themes, walpapers, etc for Gnome



KDE
Next up is KDE, one of the most graphically advanced and most customizable desktop environment available for Linux. In fact, it supports many graphical innovations that are yet to be put into Windows. (They may be in Vista.) You can skin just about every aspect of it, change the shapes, layout, colors, etc.

KDE Screenshot
The default Kubuntu interface, using KDE.

You can also make it look like just about any environment out there. Want the familiarity of the Windows XP interface? The default of KDE is very similar, and can be customized to be EXACTLY the same. Or perhaps you prefer the look of Gnome. Just move the taskbars around, add some buttons here and there, and TADA! It now looks like Gnome! Or perhaps the standard interfaces out there aren't enough. No sweat, just customize KDE to your own preferences.

Is there a cost to all the pretty graphics and customizability? Well, yeah, there is some. KDE is known to take more resources and CPU power than other environments out there. (Though there are omnipresent arguments between KDE users and Gnome users about which one runs faster.) I've run both KDE and Gnome on my old, Pentium 3 laptop, and they both run smoothly.

KDE also features many KDE based programs, ranging from web browsing software, instant-messaging, email, programming IDEs, etc. It also has tons of widgets that you can plug into it to add little features, such as system monitoring, multiple desktops, multiple taskbars, etc.

Personally, I've gotten used to KDE, and while Gnome can be very nice indeed, KDE just has a lot of the customizability I've come to love. Still, it's all a matter of preference, and one of the beauties of using Linux is that it's all about choice.

Here's what Wikipedia has to say about KDE.
The official KDE website.
Themes, wallpapers, etc for KDE.



XFCE

And finally, we have XFCE. XFCE is technically not a "big player" like Gnome or KDE, but it is used by many. It's not as pretty as the other two, but it does run a bit faster. It's also very small, and ideal for more portable Linux installations, like a LiveCD or a flash-drive version.

XFCE Screenshot
The XFCE interface, customized to look nice.

In short, this is the desktop environment to use when you don't want all the fancy stuff, and prefer something efficient and functional.

What Wikipedia has to say about XFCE
The official website for XFCE
Themes, skins, etc for XFCE



Window Managers
It's worth mentioning that there are also other, lightweight graphics systems that are only basic window managers. These don't go as far as Gnome, KDE, and XFCE for making a pretty environment, complete with all the tools you need. They're just there to provide basic windowing and GUI support. Here are some examples:
Fluxbox
Enlightenment
And so forth. Gnome, KDE, and XFCE all have their own window managers built in:
KDE = KWin
GNOME = Metacity
XFCE = XFWM

All you really need to know is that these managers draw the windows that run the programs.

If this section is confusing to you, ignore it. It's just bonus information.



Summary
X draws the pictures on the screen.
Gnome, KDE, and XFCE tell X what to draw.
Gnome, KDE, and XFCE make Linux look less like DOS, and more like Windows.
Gnome and KDE are standard to most Linux distros. XFCE isn't always included.
I recommend Gnome for beginners and/or those who like simplicity.
I recommend KDE for people who like tons of customizability. (And it works a lot like Windows too.)
I recommend XFCE for those who want a smaller, faster system.
When in doubt, look at the screenshots and choose the one that looks the most appealing to you. You can always switch later on.

Next Up:
What are packages and how do they work?