Through the Window

ArticleCategory: [Choose a category, translators: do not translate this, see list below for available categories]

UNIXBasics

AuthorImage:[Here we need a little image from you]

[no author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in es José Manuel Laveda Molina 

es to en Jose M Laveda and Miguel A Sepulveda 

AboutTheAuthor:[A small biography about the author]

Abstract:[Here you write a little summary]

This is a quick review of the Window Desktops available for Linux.

ArticleIllustration:[One image that will end up at the top of the article]

[Illustration]

ArticleBody:[The main part of the article]

Foreword

In this contribution I have collected some on my personal notes on the various window managers (WM) I tried. Take then only as general ideas and mere comments and thought that I hope can be useful to you.

Each WM has chosen different graphic toolkits, languages, etc. (sometimes an "strange" mixture as we'll see), so I should tell the reader that a real comparison of the GUIs in an objective manner is impossible. The state of the art of the graphic toolkits, time of development, quantity of developers and contributors, and many other factors affect to the decision about the "best one", readers should take this into account.

On the other hand, there is always certain subjectivity due to personal tastes and preferences. I'll try to be as neutral as I can having in mind all I've said.

First let me show you the script files that let me use two window managers. They have been useful because I was able to quickly change desktops (thanks to M. Soriano :)).

File /usr/local/flin:

#! /bin/sh
export WM=after
if [ $# = 0 ]; then
        exec startx -- -bpp 16 :0
else
        if [ $1 = 'dual' ]; then
                export WM=after
                exec startx -- -bpp 16 :0 &
                sleep 5
                export WM=kde
                exec startx -- :1 &
        fi
        if [ $1 = 'kde' ];then
                export WM=kde
                exec startx -- -bpp 16 :0
        fi

fi     

My $HOME/.XClients:

#! /bin/bash
#
# Styx's .xinitrc
#
####################################

exec 2>$HOME/xinit.error.log

echo "Parameter 1 $1 " >&2

sysresources=$HOME/.Xdefaults

# merge in defaults and keymaps

if [ -f $sysresources ]; then
         xrdb -merge $sysresources
fi

# You may at this point start your personal applications.
# e.g xscreensaver

# xscreensaver -timeout 2 -cycle 1 &

xmodmap ~/resources/X11/Mapeo.es

xhost +

# Agenda planifier

if [ -f /usr/local/lib/pland ]; then
         /usr/local/lib/pland &
fi

if [ $WM = "kde" ]; then
        exec startkde -display :1
else 
    exec afterstep -display :0
fi 

With this configuration I can type:

Lots Of Graphic Toolkits And Libraries.

The first thing that could confuse users is the disparity of graphic toolkits and other tools used in each window manager (or GUI), all of them are under somekind of public domain license, GPL/LGPL or similar, which allows their free use.

This creates, in my opinion, a problem to the user who only wants to use one, he must be careful about which complements are needed. In all cases we'll find complete information about this point in the documentation and web pages of each project.

Does Linux Need A Standard GUI?

This question may sound silly, and for many users, it has a simple answer: "Use the one you like the most", but for the rest it is and important issue that concerns the future evolution of Linux.

The objective is to obtain a GUI easy to use, intuitive, with powerful on-line help, total integration of the different applications and other characteristics who make our daily work with the system easier and everything must be done with the mouse, also all this integrated into the administration and installation of the o.s. on the computer.

Some companies have started to work on this line of products, so we have the Caldera GUI included in the Caldera Linux distribution or the Red Hat CDE for LINUX. Luckily the Linux community comprises great people many of which actively involved in the development of new software, so there free alternatives to these commercial products, some of which will be described here.

Of course users must have freedom to chose, but with a good GUI native to Linux we would stop hearing the old phrase "LINUX isn't as beautiful as ...". NOTE: Has anybody ever seen a machine working with a LINUX GUI and how people don't know that it is not a Microsoft Windows box?.

It is worth noting that standards make the job of programmers easier, they could know how the window manager and applications interact. Many applications' environment depend strongly on the window manager (this is a bit complex but I think readers would find it easier to believe).

We could summarize saying that the "Polemic has just started".

KDE (The K Desktop Environment)

My first steps with this software weren't easy. I had to installed the QT library. Then I downloaded the KDE Beta2 version in a rpm format (I use RedHat 4.2). The desktop did not work so I have to install the Beta3 release, downloading sources and compiling them for about 1 hour on my Intel Pentium 133 (with 32 Mb RAM). The new beta release of KDE run fine. Incidentally the sources for the library and the KDE desktop are available both in RPM, '.tar' and '.deb' packages.

After setting the environment variables and some "configure;make;make install" the first impression of the environment is impressive. We have a GUI very similar to commercial ones and I can only give and advise to the reader, don't be shy and "surf". With little time to become familiar with the tools of the desktop it is very easy to personalize KDE without problems. The general look and feel of KDE can be configure as a Windows'95 or Motif style desktop colored like CDE, KDE, etc, or even using some specific palette of your choice. In the following figure I have captured my desktop configured as a Motif style CDE (this way it does not remain me of other OS I have long time abandon :) )

[KDE main window]
Figure 1. KDE Main Window

With the lower bar of the screen and the "K" button we can manage all the utilities of the GUI, we can insert anything in the menu (with the kmenuedit tool) or in this tool bar.

The first attractive feature is its on-line help, based nn a navigator that allows consulting software help, man pages and (in the future) 'info' files. Pressing the right button of the mouse you'll see a menu where you must choose the "Help on the screen" entry. You can select the messages language of the GUI by setting the LANG variable, this could also be set with the KDE Control Center.

Another powerful tool is the File Manager (kfm), you can manipulate your files and surf the web, so we have two capabilities in one program.

[KDE Help]
Figure2 . KDE On-Line Help

The number of utilities in this GUI is huge, arranged in network, graphics, administration, multimedia and Internet groups (the user can select what software to install by choosing the right packets). Any user with this GUI will have, at the very least, a set of tools for their daily work, this is the goal of a GUI, many tools integrated which can satisfy the minimum necessities of the user.

For example we can find the "Utilities" item of the menu, here we have a very good calculator (allows up to 15 digits), an hexadecimal editor, graphics viewer, control time tool, floppy formatter, a kind of scheduler, a "post-it" software, menu editor, terminal (kvt) and a zip files management tool. Trying to describe all these tools and all the KDE properties would generate more than an article, maybe more than an issue of LinuxFocus.

A new feature in Beta3 is the KDE Control Center, we can control all the environment and modify it to our taste, remember that certain utilities still must run with the "root" user privilege, like the kuser, for user and groups control. This tool can replace the "Settings" entry in the main menu. The KDE control center is a great resource to configure and customize the desktop.

[KDE Control Center]
Figure 3. KDE Control Center

Clicking with the mouse on any of the icons in the system tree (to the left of the figure), it opens and brings us to that particular subsystem. We can then easily reach the element to be configured. The large majority of the environment parameters can be tested and installed immediately by pushing the button "Apply". There are few cases where we have to restart the manager to examine the results of our changes. For instance, a first step any user can take is to configure the native language of his/hers desktop through the Language entry in the Desktop menu. One can select up to three languages.

If we access the Internet via modem we can use the kppp software; after all entries in the configuration panel are inserted we can use it to control the link, examine the state of the connection, the time and even the cost of the calls. Amazing, the cost can be computed after selecting the country in the configuration menu, for example we have the possibility of configuring the fees for Infovia calls (network owned by Telefonica de España S.A.) here in Spain.

Once connected we can use the mail and news readers, network utilities, etc. that KDE has.

[KPPP]
Figure 4. kppp main window

If you compile and install the software from its sources, as in my case, you will see an entry in the main menu labeled "non-KDE Apps". That is where KDE has inserted (or tried) all the X-based tools we had installed in our previous graphical environment. If some or none show up there after the installation, you can still run the "kappfinder" program that will search all the usual utilities within the graphical environment to perform that task.

Let us look back at figure 1, check the left side of the desktop for a few icons: the Trash one (obvious :) ), Templates to define direct access to devices, URLs, etc. and the Autostart where we can define elements to run when the environment starts (by inserting any file of the type '.kdelnk' previously defined). We can add any direct access we want, for example I've created an external ZIP device direct access with these few steps:

On exiting KDE will try to save the state of all applications and their location for next session. KDE shows us a dialog box where we can see the utilities that can be restarted and those that will loose all their data. This feature is also present in the WINDOWMAKER (described in a few lines).

Finally I'd like to say that daily work with this environment is easy, we can configure the top section of the screen to hold many buttons of the active Apps, and the number of virtual desktops can be modified, we can move easily between them; if we prefer the keyboard we must press <Ctrl>/<Alt> + <Tab> to switch between virtual desktops. Even a single terminal (kvt) can be configured from its main menu to modify the type and colors of the background and the text, if we need to stick this terminal to the desktop we can simply press the icon at the left top of the window.

[kvt main menu]
kvt main menu.

This environment offers enormous possibilities, and although it can all be configured very intuitively I recommend interested readers to check the on-line help for the KDE system.

The Qt Library, The Mother Source of conflicts.

People involved in the KDE development claim that the choice of the QT library was motivated by its low need of resources of the system and its high degree of reliability. This library has generated a big controversy because of the license of this library; free use of its tools is granted for free software development, you must pay only for commercial purposes, but it isn't our known GNU GPL.

Any user can obtain the sources of this library, complete documentation and example source code, an even enjoy KDE, however Qt creatrors maintain some property rights over this product. Some users agree with this distribution policy, and they're developing free software due to the easy use, C++ interface, its state of development, etc. The rest of the community think that this library is free while it's under development, and (maybe in the 1.4 version) it won't be free, getting the benefit of LINUX community but leaving us with nothing.

We can only assert that for the 1.32 version things continue the same, free for the free software and non free for other kind of software. Nobody can guess the company's plan but by now the work developed can't be rejected, and today it's a serious option for developing X Window apps. Other voices defend converting this environment to the GTK toolkit, or developing a free QT implementation.

Personally I think that obtaining a GPLed QT is a great effort in time and people. With no intention to offend, maybe GTK isn't enough to develop a KDE version, but departing from it the toolkit could be improved as the development goes. There are many possibilities and I wouldn't like to see a waste of resources and work with this kind of "wars". The KDE state is very good and it's a serious candidate to become a standard graphics environment for LINUX, for instance the SUSE distribution had bet for it and it will be improved with future releases of its products.

Windowmaker & Afterstep

My first intention was to write a few lines about my current window manager, AfterStep, but recently the Windowmaker project has brought to me attention. I can't confirm this but it seems that the two ideas have been joined in one, Windowmaker is an evolution of the AfterStep or this development has been ended in his 1.3 version. The Windowmaker coordinator (Alfredo K. Kojima) is one of the AfterStep developers. So I will discuss both window managers to see their similarities.

AfterStep is an evolution of the twm, as many window managers. To give more information twm was the base of fvwm which at the same time, is the father of the BowMan an this one became the AfterStep (pheeww!! :) ). The original idea is to imitate the "look and feel" of the NEXTSTEP window manager. The Windowmaker family-tree is left as an exercise for the reader ;).

Windowmaker installation is very easy, additional libraries aren't needed, many thanks for this, and everything comes with the sources. You'll have to compile and install is a little library (sorry for my "innocent lie") libProplist before the rest of the software. After compiling and installing the software and pixmaps (Windowmaker-data.tar.gz) you must run "wmaker.inst" which will modify the file $HOME/.xinitrc and create a $HOME/GNUstep directory for all the configuration files of the window manager. So be careful with your .xinitrc and .Xclients files.

When started a blue background first appears and a single terminal window, nothing strange to an AfterStep user. With the right mouse button we can activate the main menu from where one can start any application; move between different virtual desktops with the middle button. I'm writing this lines from this window manager due to my experience with AfterStep.

[Windowmaker image]
Figure 5. Windowmaker image.

Windows can be rolled by pressing two times on the window bar (and maximized with Control+Shift). Under AfterStep this can be made by pressing the right button of the mouse on the window top, and to change the size you can just select the low line of the window.

The main menu for all windows appears by clicking the right mouse button on the top of the window. This allows us to configure windows and applications characteristics by pointing and clicking on a selection rather than openning a configuration file.

[Window menu]
Window menu


Maybe the most important entry is the Attributes... one, which allows to modify window properties; fix it as sticky window, iconify and focus policy, which icon will represent it, etc. For example:

[Window configuration]
Emacs Window configuration.


Another new feature is that we can add icons to the right of the window, as direct access, manually; we should drag and drop any icon to this place. But I've not succeded placing my xemacs icon :(.

If we want to configure the window manager from the configuration files available, you must read the documentation available in postscript format. All the properties of the program aren't described but in his final part all the syntax and entries are well explained. This has changed a lot since the .steprc file so I advise to read it. Window manager use and personalize is described with many examples of keyboard shortcuts. I think that simplicity and productivity are the main goals of this window manager because his low resources waste and the intensive keyboard use. I can't prove with real data but I could say that it seems faster than KDE and his little brother.

For the AfterStep window manager there is an utility called ascp (AfterStep Control Panel), which allows to configure it from this tool.

[AfterStep Control Panel]

AfterStep Control Panel.

In conclusion we have a good window manager and for AfterStep users it can be considered as the next step ;). I haven't explained and exploited all capabilities but it's a candidate to any machine without excessive resources and with the need of a powerful and easy-to-use window manager. Maybe the main difficulty is the existence of many configuration files, but I don't think it is for a user with little english and LINUX experience :).

Gnome. It Couldn't be :(.

I feel a bit dissapointed for finishing this article with bad news. My objective was to write about the Gnome project and its current state (specially after the announcement from Red Hat and DEBIAN about their support to this project). With this in mind I downloaded all the software from its main ftp site (gnome-0.12.tar.gz and others) and the GTK toolkit (v. 0.99.2).

For new users sake I should remind all that GTK library is the main library for the famous GIMP application, the best graphics design suite for Linux. It started under Gimp and then evolved into a graphic toolkit for X Window under the GNU GPL License, it is now used by Gnome.

At first I was surprised because I couldn't find any help about it, there are some README files, but they aren't enough. I didn't know what to make with the packages, the installation sequence, any special parameters, etc... So the first I thing did, guided by my intuition, was to compile and install all packages except the main one (gnome-xxx). The package that gave me the most trouble was the "slib", although I beleive that finally I've installed it correctly (I hope).

After my first attempts, and with the help of people from one LINUX mailing list, I learned that I should have used gtk 0.99.3. I downloaded the patch file for the upgrade and when I tried to compile I obtained an error message saying that I didn't have Emacs !!. There is a little script file that tries to run Emacs to compile a Lisp file (ranlisp), I could modify it inserting "xemacs" and all was then fine.

It also learned I needed to install the Objective-C compiler to be able to compile some files, Is this really so?.

In conclusion, as far as I was able to observe and considering my limitations, the project is in its very early stage. Maybe it's only for developers (or gurus), and I haven't found any notice mentioning if it's in "Alpha" or "Beta" stage. I don't know if it is a good idea to use C, C++, Objective C, Lisp, Scheme,and ... etc. Should the user installed all these tools to use Gnome? where have I failed?.

I have many suggestions recently from users but I wasn't able to run it with enough time to write this article and a fast overview of it wouldn't be fair. I want to dedicate the necessary time to this project.

Despite of all I promise to to write an article or contact someone qualified to author it so that LinuxFocus readers get a good article about the GNOME. :).

Closing.

This article has tried to explain briefly a few desktop alternatives for LINUX users that will hopefuly make our daily job easier. All work well and are very nice, the possibility of choice is positive.

I hope to have shed some light to the subject of the toolkits available in each environment. It was not my intention to convince anybody about a particular toolkit, I've tried to be as objective as I could, explaining the actual situation and the state of the art of each project. I repeat my apologies if I've offended anybody with my explanations.

Thats all, from this article a big applause to all projects and to the people who are helping Linux not only work well :), but also "beautiful" for all kind of users.

Lesstif, The Great Forgotten One?

Oops, I can't forget saying a few words about a matter that called my attention. In my work I haven't found any window manager based on this library (not mentioning the mwm inherent to all Motif implementations). There is a free clone of the OSF/Motif library which, in this aspect has been ignored?. Why?.

The author has checked that the Linux community in general rejects software under copyright licenses more restrictive than GPL, it is true that this library perhaps does not enough capabilities to develop a desktop environment, its state of growth isn't optimal, etc. (also we could discuss it largely), but when, in fact, CDE seems to become the standard GUI for all the UNIX world, why not a Lesstif CDE?.

When Netscape announced the availability of the sources of his navigator and composer for Linux, will the users be able to compile it with Lesstif?, I think it would be good news for users and developers of this toolkit.

I don't know the answers to all these questions, but I think that there is a lot of software that can benefit from Lesstif characteristics and, with users and developers support it could be a good alternative.



For more information::