Home Page








Features Contents

22nd November 2009


Brian Grainger

email.gif (183 bytes)


The day I got my Small Cheap Computer (SCC) was a significant one in my use of computers. For the first time since the change from DOS to Windows I had a significantly changed interface, which I found useful for the particular need I had for this type of machine. This got me to thinking about how I could generate a breed of Puppy, (my favourite brand of GNU/Linux), with this type of simplified interface. As usual, I started to search the web for information on such interfaces but I was not too successful because I did not know the technical jargon around windowing systems. I knew the terms for features of Windows but not for windowing systems in general. Eventually, I picked up some jargon and along the way learned a bit about windowing systems in general. I thought I would share my new found knowledge.


When one uses Windows it is easy to think that this is the only way to do things - a start button, a task bar, a system tray, desktop icons. This is one of the reasons it is hard for seasoned Windows users to convert to Linux. They want it to look and behave like Windows and a lot of free software coders don't want to provide that! Times are changing though. Ubuntu, while not looking too much like Windows, is gaining significant support. Even Windows itself is changing with Windows 7 a different way of using the taskbar and its pursuit of the system without menus. The SCC, which by a combination of Microsoft persuasion and misguided ideology of Linux users, has all but disappeared to morph into the altogether different netbook. However, there has recently been a push to provide a computer for seniors that has a simpler to use interface - the SimplicITy computer - as well as notices of intention of a Google OS and ARM based computers in the near future, which will be using different interfaces.


So, how do we get from the concept of a graphical user interface (GUI), to what we see on the screen? The first thing to note is that we have some hardware through which we communicate to the computer. In the early days of GUIs the input devices were a keyboard and mouse and the output device a screen. Various other peripherals are coming into play now but I am going to restrict the discussion to these devices as they are still dominant.


Having got the hardware we need some software to provide the communication between the hardware and the internal computer software systems. This software is called the Windowing System. Microsoft Windows lumps everything together so it is hard to refer to the separate elements. Die-hard fans may recall Intuition as the Windowing System of the Amiga. Incidentally, it was only as I started to uncover this recent information that I realised just how far ahead of its time the Amiga was! The Kickstart disk/ROM along with the custom chips of the Amiga provided this Windowing System and much else besides.

With Linux the Windowing System is the X-Windows System, specifically designed to operate on a network so you have an X-Server and an X-Client. On stand alone machines these can be in the same machine but in a network environment they do not have to be. The implementation of the X-Windows System was originally called Xfree86 but in recent years, following disagreements with the use of Xfree, XOrg has become the dominant implementation. Mac users also have an implementation of the X-Windows System.

We have now got a way to communicate with the hardware. The next step is ...


The Windows Manager controls the way that windows appear and are positioned. They come in various types:


A tiling windows manager draws the windows onscreen in non-overlapping areas.


A stacking windows manager draws windows one at a time from the rearmost to the frontmost. This allows windows to overlap one another, but can be slow in rendering. Faster processors and graphical techniques have helped to overcome the rendering problem but it can still be seen on screens with many windows to display.


A Dynamic windows manager can switch between a tiled or a floating window layout.


This is the most flexible of windows managers. It differs from all that has gone before by programs drawing the windows to independent buffers. The compositing windows manger then composes these buffers into a single output screen. There are lots of advantages to this approach. The individual windows behave as separate objects. Advanced effects can be achieved such as 3-D, transparency, fading, bending, etc. The graphics do not flicker as they are updated.

There are few examples of a Dynamic Windows Manager but operating systems in general have been progressing from Tiling to Stacking to Compositing Windows Managers. Windows 1.0 was a Tiling windows manager but from version 2 to XP Windows has used a stacking Windows Manager. It has not been possible to differentiate it from the windows system as a whole. The later versions of Windows, Vista, Windows Server 2008 and Windows 7, have a Compositing Windows Manager called Desktop Windows Manager (as if Microsoft invented the term!). This has been necessary to create the Aero interface.

The Amiga used a Stacking Windows Manager but, unlike Windows and many other systems which use a desktop metaphor, used a Workbench metaphor. Those with long memories will recall the Workbench floppy. In those days it took 2 floppies, Kickstart and Workbench, to get a multi-tasking windowing system on the Amiga. Now it takes a CD of compressed software to get Microsoft Windows working. I told you the Amiga was way ahead of its time!

The MacOSX was the first example of a Compositing Windows Manager.

Linux systems use a number of different Windows Managers, mostly Stacking, with the most well used being KWin, part of KDE, and MetaCity, the default for Gnome. There are a small number of Compositing Windows Managers for Linux but Compiz is the most frequently used.


One of the problems I had with understanding the components of a windowing system was the concept of a desktop environment. We all know of the Microsoft Windows desktop environment and Linux users also know of the K desktop Environment (KDE) and Gnome. What I could not work out was whether a desktop environment included a Windows Manager or whether a Windows Manager included a Desktop Environment. I now realise that neither situation is valid. A Desktop Environment is a term to describe the desktop metaphor with or without an associated Windows Manager. KDE includes a Windows Manager - KWin. With Gnome one has to choose a Windows Manager to go with it. What the Desktop Environment does include is the associated applications to perform the default tasks of that system.

Having determined that Desktop Environment is not really a hierarchical term it is time to talk about ...


We now come to the nitty gritty of what defines what your screen will look like and how it behaves.

Components options:


to provide a background image to your desktop/windows

Multiple Desktops

Allows you to reduce clutter by having multiple desktops and being able to switch between them


to provide decoration around windows

Title bar

To provide decoration at the top of a window. It may display the program name that owns the window or the document name displayed within the window. The title bar may also include widgets to maximise, minimise and close the window.


to launch programs from a menu. A menubar may have its own components such as a taskbar or a system tray.


Shows RUNNING applications including those minimised. This is a Microsoft Windows term.

Task Panel

Same as a Taskbar but free floating rather than a horizontal or vertical bar.


Generic name for a taskbar/taskpanel

System Tray

A bar to display RUNNING applets/programs that have no dedicated window. In Microsoft Windows these are usually launched at startup and are ready for user interaction at any time.


To launch programs from a menu (usually of icons). This is like a menu bar but is usually totally customised and positioned by the user. Also, it does not have separate components.

Quick Launch Bar

A special toolbar which is part of the menu bar to launch often used programs without having to search the menu bar. This is a Microsoft Windows term.


Same as a tool bar but free floating rather than a horizontal or vertical bar.


Another term for a program Launcher. A start button is a type of program launcher. A set of tabbed windows is also a type of program launcher.

Start Button

A desktop widget that provides a menu of items - usually programs that can be launched but Microsoft Windows also provides a menu of documents that can be launched with their associated program. This is an example of a Program Launcher

Tabbed Windows

Enables applications to be grouped by theme and the theme chosen by selecting the tab

Widget (1)

Rather than a full application program a widget is a component program to do one simple task. Examples include: display a desktop clock; display a calendar; display machine status info

Widget (2)

Refers to an item that is used to construct a window feature. Examples include: maximise or minimise control; radio button selection widget; drop down list widget; list box widget. When a widget is selected an action, associated with the widget, is performed.

Behaviour options:


A function to hide a toolbar or panel when the mouse is moved away

Keyboard equivalents

To enable mouse functionality to be replicated by keyboard sequences

Accessibility options

To provide facilities to assist users with less than normal sight or movement capability. Examples include narrator; magnifier; mouse keys


As the mouse moves over an icon/window/etc the associated item becomes active without clicking the mouse.

Root menu

A menu which appears when the desktop is clicked

Shortcut provision

Enables icons to be placed on the desktop/menus/toolbars which link to programs or documents which can then be launched by clicking the shortcut.

Task Switching

Enables switching of which task is active by mouse/keyboard


The ability to display special effects when events such as window opening/closing/minimising occurs. Audible transitions may be possible with some Windows Managers.

Virtual desktop

The provision whereby the display is a viewport onto a larger desktop rather than the desktop itself. Facilities to move the viewport around the desktop are included.

3D Effects

The facility to display multiple desktops as a 3D object. One example is to display the desktops on the faces of a cube. The cube is then rotated to display the desktop to be active.


From this journey through the build of a GUI it can be seen that there can be lots of options along the way. Is this a good or a bad thing?

With Microsoft Windows the options are chosen for you and occasionally changed between versions. This means that for the non technical user there are no decisions to make and therefore it is very easy to learn and get going. The drawback is that the user has no control over what is the best interface for them.

The same applies with the MacOS, although it is generally thought, by Macolytes at least, that its system is more intuitive than Windows.

Linux is a whole new ball game. This thrives on choice. There are many different Windows Managers. Is there any wonder that there are so many Linux distros. Not only do you chose the base point - (Debian - Slackware - Suse - Red Hat/Fedora - Puppy, etc.) but then you can choose your Windows Manager. In the Microsoft Windows world applications are not free - so you are not offered much choice in that matter. In the Linux world applications are free and your are offered lots. Do you want an all singing and dancing Office package such as Open Office or a more cut down version such as Abiword/Gnumeric? What browser do you want - Firefox - Opera - Dillo ...? What media player - Mplayer - VNC - Gxine ...? What File Manager - Rox - Nautilus - Konquerer ...? There are so many options that even what appears to be a single distro, such as Ubuntu or Puppy, can be offered in many different flavours. Ubuntu has Gnome with Metacity Window Manager but you could add Compiz and there is a Kubuntu flavour if you favour KDE. Then there is the netbook remix for use on netbooks. Then there is Easy-Peasy, also for netbooks. All this choice can confuse the general user - but at least you can create something you like.


Where do I stand after all my research? Well, I am looking for a Windows Manager that uses tabbed windows as a Program Launcher and includes very little else apart from the basic apps. There then needs to be a widget included that can easily switch interfaces between the standard Puppy interface and this simplified one. With all this choice it must be there somewhere!