What’s a window manager? – 1.1
When talking about the graphical user interface in Linux, people use confusing terms such as “X Windows”, “Window Manager”, and “Desktop Environment”. Maybe you’re wondering what’s the difference between these three – don’t they all mean the graphical user interface? This tuXfile clears the terminology a bit.
< The X Window System >
Microsoft Windows is based on a graphical user interface (GUI for short) where you can control the apps by pointing and clicking. But Linux, just like Unix or MS-DOS, is completely text based. This means that everything in Linux can be done without any GUI, and it’s a plus when using Linux, for example, as a server because the computer’s resources aren’t wasted in running a GUI. However, most of us normal home users want a pretty GUI where we can use graphical apps and point and click to our heart’s content. So how do we get to the GUI?
Because Linux is text based, you run the GUI on top of it. In Unix the GUI is called X Window System or X for short. The term X Windows is also widely used, but it’s technically incorrect. I personally use the incorrect term anyway, because it’s short and handy, but keep in mind some Linux users avoid using the term X Windows.
The X Window System makes it possible to run graphical apps on Linux. X is responsible for the hardware related settings: it controls, for example, the mouse, keyboard, and the monitor settings like refresh rate and resolution. The graphical apps themselves don’t need to care for the hardware they’re running on. The apps just talk to X and tell it what they want to display. X listens to the apps and converts the apps’ display commands into something that the graphics hardware can display. So, X makes it possible for the graphical apps to display their interface on the screen, but X doesn’t control the windows where the apps are displayed.
The Linux version of X used to be XFree86, but these days, most newer distros use X.org. X.org is a fork of XFree86 that was created because of some licensing issues. So, if you want a GUI in Linux, you must run X.org on top of it. Most Linux users, including me, mean XFree86 or X.org when they say X Windows or X Window System, or just X.
< Window managers >
Because X provides the place to put the windows on but doesn’t control them, you need additional software that takes care of handling the windows. The piece of software dealing with the windows is the window manager. The window manager is just an X program itself, and like the other graphical apps, it also needs the X Windows in order to work. It’s just a special piece of X software because all it does is take care of the windows.
The window manager controls the way your desktop works: how the windows look and act. The window manager decides what kind of decorations to put around the windows. It’s the window manager’s job to provide ways of controlling the windows, like moving, hiding, resizing, iconifying, or closing them. The window manager decides what window at the moment accepts input from you and what window is on the top. The window manager also controls the ways you do these tasks: what mouse buttons you click or what keys you press in order to accomplish these window management tasks.
The window manager may also provide additional things. Different window managers have different features, but most window managers today provide a menu or menus for launching apps. Many window managers provide virtual desktops – multiple screens you can switch between pretty much the same way as you switch between windows, but instead of switching between apps only, you switch between whole desktops. Some window managers may also provide graphical configuration programs in order to make configuring them easy.
Since there are dozens of different window managers out there, you can change your desktop’s look and feel completely by changing the window manager. Of course MS Windows lets you have different desktop themes, but in Linux, you can change everything. The window managers may focus on different things: one is very configurable, one provides lots of keyboard shortcuts for many different tasks, one is very minimalist and provides only the essential features for handling the windows, one is graphically pleasing with stunning window decorations and menus, one is fast and slick, one imitates the look and feel of Windows, and so on…
< Desktop environments >
The window manager provides everything you need for controlling the windows on your desktop, and for many users, this is just enough. However, you may want some additional features and may want the window manager to take care of the whole desktop, but providing these additional features isn’t a window manager’s problem. This is where you need a desktop manager, or a desktop environment, whatever you wish to call it.
Like the name suggests, a desktop manager takes care of your whole desktop by providing and controlling additional helpful features that don’t directly deal with handling the windows. For example, a desktop environment may provide you with a taskbar or many taskbars, additional menus, icons on the desktop, screen savers, and many little utility programs like a graphical file manager, search tool, text editor, and so on.
The two big players in the desktop manager field are KDE (K Desktop Environment) and GNOME (GNU Network Object Model Environment). There are a lot of differences between them, but they have one thing in common: you must use a window manager in addition to a desktop environment. A desktop environment takes care of the whole desktop, but it’s still the window manager’s job to control the windows. One of the biggest differences between KDE and GNOME is the way they play with window managers. KDE has its own window manager, so if you use KDE, it’ll be really painful to change the window manager you use with it. However, GNOME doesn’t come with its own window manager, so you can freely choose what window manager to use with it.
< So what should I use? >
Since there are many different window managers out there, it may be really hard to decide what to use. I suggest you try a few window and desktop managers and decide yourself what works the best for you. I personally like KDE. For a long time I used a window manager called Window Maker and considered desktop environments to be only useless resource hogging bloat, but KDE 3 is nice. Yes, it has a lot of features (= useless bloat) but it’s still pretty fast and looks really slick.
If you’re new to Linux, you’re most likely using KDE right now because many distros install it by default. However, if you’d like to try out other window managers and desktop environments, just go ahead and try many of them – there’s a gazillion of them to choose from. For further info about different window managers, check out xwinman.org. Remember that there are a lot of holy window manager wars, and for everyone, the window manager they’re using themselves is the right and only one and all other window managers suck.