Of course there are GUI's. There is the Commond Desktop Environment (much too exensive), Looking Glas (not too expensive but not really the solution), and several free X-Filemanagers that are almost GUI's. Moxfm for example is very well done, but unfortunately it is based on Motif. Anyway, the question is: What is a GUI? What should a GUI be?
First of all, since there are a lot of missunderstandings on this topic, what is NOT a GUI:
IMHO a GUI should offer a complete, graphical environment. It should allow a users to do his everyday tasks with it, like starting applications, reading mail, configuring his desktop, editing some files, delete some files, look at some pictures, etc. All parts must fit together and work together. A nice button with a nice "Editor"-icon is not at all a graphical user environment if it invokes "xterm -e vi". Maybe you have been disappointed long time ago too, when you installed X with a nice window manager, clicked on that beautiful "Help"-Icon ... chrk chrk (the hard disk)...an ugly, unsuable, weird xman appeared on the desktop :-(
The idea is NOT to create a GUI for the complete UNIX-system or the System-Administrator. For that purpose the UNIX-CLI with thousands of tools and scripting languages is much better. The idea is to create a GUI for an ENDUSER. Somebody who wants to browse the web with Linux, write some letters and play some nice games.
I really believed that is even yet possible with Linux until I configured my girlfriends Box. Well, I didn't notice anymore that I work with lots of different kind of menues, scrollbars and textwidgets. I already know that some widgets need to be under the mouse when they should get the keyevents, some sliders wants the middle mouse for dragging and some textwidgets only want emacs-bindings and don't understand keys like "pos1" or "end". And selecting some text is different everywere, too. Even the menues and buttons (for exampel Xaw, Fvwm, XForms, Motif) behave completely different.
One word to the Athena-Widgets: Although there are a few nice applications available that uses these "widgets" we should really get rid of them. Thinking that "Athena is a widget-library" is a similar missunderstanding like "X is a GUI". Athena is an very old example how widget libraries could be implemented with Xlib and Xt. It's more or less a online-documentation for Widget-Set-Programmers, but not a tool for application-programmers. Unfortunately, the old Unix problem, a so good online-documentation that people used it for applications.
So one of the major goals is to provide a modern and common look&feel for all the applications. And this is exactly the reason, why this project is different from elder attempts.
Since a few weeks a really great new widget library is available free in source and price for free software development. Check out
The stuff is called "Qt" and is really a revolution in programming X. It's an almost complete, fully C++ Widget-library that implementes a slightly improved Motif look and feel, or, switchable during startup, Window95.
The fact that it is done by a company (Troll Tech) is IMO a great advantage. We have the sources and a superb library, they have beta testers. But they also spend their WHOLE TIME in improving the library. They also give great support. That means, Qt is also interesting for commercial applications. A real alternative to the terrible Motif :) But the greatest pro for Qt is the way how it is programmed. It's really a very easy-to-use powerfull C++-library.
Qt is also portable, yet to Windows95/NT, but you do not have to worry about that. It's very easy to use UNIX/X specific things in programming, so that porting to NT is hardly possible :-)
I really recommend looking at this library. It has IMO the power to become the leading library for free software development. And it's a way to escape the TCL/TK monsters that try to slow down all our processors and eat up our memory...
It's really time yet to standarize the desktop somewhat. It's nonsense to load 10 different widgets into memory for the same task. Imagine this desktop:
One may argue that a usual UNIX-Box has enough memory to handle all these different kind of widgets. Even if this might be correct, the really annoying thing is, that all these widgets (menus, buttons, scrollbars, etc.) behave slightly different. And this isn't only an academic example, I've really seen such desktops :-}
I know we couldn't get rid of this chaos at once, but my dream is a coexistance between Motif and Qt.
I don't have the time to do this all alone (also since LyX is my main project). But a thing like a Desktop Environment can easily be cut into lots of parts. There is very probably a part for you, too! If you want to learn some X-programming, why not doing a small, neat project for the KDE? If you know others who like to programm something, please prevend them from writing the 1004th tetris games or the 768th minesweeper clone ;-) Think we also have enough XBiffs yet...
So here is my project list so far. Probably there are even more things to do that would fit great into the KDE. It's a very open project.
I started to work on this panel, but would of course love some help. There are also lot of smaller things to do, like a tool to chose a background pixmap (for each virtual desktop) etc.
Also nice icons are needed!
I'm thinking about nice windows, one for each directory, that shows icons for every file. It should be possible to drag files around (either copy or move), even between different windows. Another important point is the support of the floppy-disk, so that mounting/umounting is done user-transparent.
Dragging of icons should be done in a nice way, that means moving around a special window (see Qt's xshape example), NOT like xfm or xfilemanager by setting another monochrome bitmap for the cursor.
So it will also be possible to put files as icons on the desktop. This is IMO a very nice feature. Since applications are launched by the panel, it's even clear that icons are real data-objects. With fvwm-1 and the FvwmFileMgr it wasn't really clear wether an icon is yet a file or an iconified window.
Drag'n'drop inside a Qt application isn't really difficult. The filemanager is IMO a very nice and not too time consuming project. Who wants?
Unfortunatly the Qt multiline-textwidget isn't available in Qt-1.0, but Troll-Tech already announced the beta-testing. So the texteditor can be started in a few weeks, too.
BTW: There is a Troll Tech Qt-competition (look at their webpages). The best application (not only functionallity, but also design counts. Just porting an existing great application to Qt won't probably be enough :-( ) wins $2000 and a few Qt on NT licenses (worth another $2000). They also mentioned a browser-project as an example. So a nice HTML-browser in Qt, ready in Janurary may be worth $4000 (This includes selling the unneeded NT licenses ;-) )
Subscribing can be done by sending a mail with in *Body*:
We may for example port LyX to Qt, so that a comfortable wordprocessor is available. But that is still in discussion in the LyX Team.
A nice vector-orientated drawing tool would also be fine. Well, Xfig is a powerful but ugly monster. But there is "tgif", a very powerful, easy to use but ugly program. The author doesn't like the idea of adding a Qt GUI for the menus, icons and scrollbars, since Qt is C++ and he wants to keep tgif plain C, since on some sites no C++ compiler is available. Well, the KDE doesn't really aim on these old and weird UNIX boxes (also I think a g++ is almost everywhere available). But maybe the tgif-author agrees when somebody else adds a nice GUI to tgif (the sources are free, don't know wether this is GPL). Since tgif yet implements its own GUI this shouldn't be too difficult. It's really easy with Qt to access plain Xlib functionality and functions, so not very much will have to be rewritten. Also C++ makes it very easy to include plain C code.
What about an easy to use, nice newsreader similar to knews? Could also be integrated into the KDE. ... and ... and ... and.
So there is a lot of work (and fun) to do! If you are interested, please join the mailing list. If we get about 20-30 people we could start. And probably before 24th December the net-community will give itself another nice and longtime-needed gift.
The stuff will be distributed under the terms of the GPL.
I admit the whole thing sounds a bit like fantasy. But it is very serious from my side. Everybody I'm talking to in the net would LOVE a somewhat cleaner desktop. Qt is the chance to realize this. So let us join our rare sparetime and just do it!
Hopefully looking foward to lots of followups and replies!
Regards, Matthias Ettrich
(ettrich@informatik.uni-tuebingen.de)
BTW: Usually these postings get a lot of answers like "Use a Mac if you want a GUI, CLI rules!", "I like thousands of different widgets-libraries on my desktop, if you are too stupid to learn them, you should use windoze", "RAM prices are so low, I only use static motif programs", "You will never succeed, so better stop before the beginning", "Why Qt? I prefer schnurz-purz-widgets with xyz-lisp-shell. GPL! Check it out!", etc. Thanks for not sending these as followup to this posting :-) I know I'm a dreamer...
BTW2: You might wonder why I'm so against Tk. Well, I don't like the philosophy: Tk's doesn't have a textwidget, for example, but a slow wordprocessor. Same with other widgets. In combination with TCL the programs become slow and ugly (of course there are exceptions). I didn't yet see any application that uses Tk from C++ or C, although an API seems to exist. TCL/TK is very usefull for prototyping. Ideal for example for kernel configuration. And since Tk looks little similar to Motif, the widgets are also quite easy to use. But I really don't like any TCL/Tk application to stay permanantly on the desktop. And Qt is much easier (at least as easy) to program. Check it out!
BTW3: I don't have any connections to Troll Tech, I just like their product (look at the sources: really high quality!) and their kind of marketing: free sourcecode for free software.
Original document by Matthias Ettrich,
HTMLized by Matt McLeod