foXdesktop - a new Xperience



Description

foXdesktop is an attempt to create a new UNIX-based desktop environment
using FOX, a multi-platform widget set written in C++.
The main design goals are:

As a result every foXdesktop application is supposed to both integrate seamlessly
into an existing foXdesktop environment and still be useful standing alone
and/or within another environment (GNOME, KDE, Enlightenment...).
Although FOX is a multi-platform library foXdesktop is UNIX-specific.


Why another desktop environment?

The reason for foXdesktop is I am not happy with the existing desktops on UNIX.

KDE sucks

I first used KDE but felt more and more uncomfortable with it as it became
heavier and slower with every release. KDE is big, no, huge in memory and disk space.
It is not very modular: The file manager is a a browser too and even more.
This may not be bad but if you are going to use it as a file manager only
you are forced to have its browsing capabilities installed too. Much worse is
the KDE distribution. In the kdebase tarball there are the "base" applications.
But what if you do not want them all? Okay, as an advanced user you have the
possibility to install kdebase only partly but nobody actually does this.
The KDE desktop all together provides a consistant look and feel, but if you are going
to use something "non-KDE-aware" you soon run into trouble. With e.g. the wrong
window manager the KDE control centre is no longer able to embed its components.
Certain standards are not met: Everyone else uses xscreensaver but KDE has its own
implementation. Don't get me wrong, I don't condemn this, but how do you manage to
use xscreensaver in KDE if you want? The same with esd (the enlightened sound daemon)
and KDE's Arts. KDE does not use the UNIX environment variable LANG
but has its own configuration. Hmm, just ugly! Even the cut 'n' paste implementation
is slightly different from anything else.

GNOME sucks too

I had enough so I switched to GNOME.
At the first glance GNOME was the desktop of choice: Common standards were met
(of course since GNOME is a GNU project ;-) ), the file manager was just a file manager
and it was much easier to replace the window manager by another one.
GNOME had this "kdebase" problem too but not as much as KDE.
But GNOME does not need KDE's disadvantages at all since it brings its own:
First of all the underlaying widget set GTK is just slow
even if you don't use those CPU consuming GTk themes. And GNOME is even slower.
Much worse, GTK and GNOME are written in C instead of C++. Again, don't get me wrong.
C may be the best language for certain tasks, but the object-oriented paradigma
is the way of choice for desktop programming. GTK's programmers must have understood this
as they invented a complex system of structs and macros to make C some kind of object-oriented.
In fact they managed to poorly emulate C++ in C. Okay, there are C++ bindings
called GTK-- and GNOME-- with even a nice API.
The problem is you unnecessarily need an additional wrapper that only makes your
applications slower. For that reason alone I left GNOME behind but things are going worse:
GNOME 1.4 will replace its old and slow file manager GMC with Nautilus, a new all-in-one
"desktop shell" and eventually introduce Evolution, the new GNOME Outlook.
As a result I cannot recommend GNOME for advanced users and programmers either.


History

Because neither KDE nor GNOME could fulfill my needs I have used icewm, a powerful
window manager, plus a whole bunch of plain GTK programs. As a programmer I don't
like GTK very well but most (and even some very good) X applications are written
using GTK. Each piece of my desktop was quite good standing alone but some kind
of "magic" between them like in KDE or GNOME was missing. But I could live with it.
A real problem was I needed a good file manager. All GNOME libraries only for GMC?
KDE only for Kruiser (a very good WinExplorer-like file manager)? Some xterms instead?
I tried all solutions but neither satisfied me. Until I fortunately found XWC
(X Win Commander) based on FOX, a widget set completely unknown to me.
There were serveral things I would have implemented a different way but at a whole
XWC was just the file manager of choice. Some very simple changes were necessary
to make FOX and XWC compile with GCC 2.95.2 so I sent those solutions to the
authors of FOX and XWC. Ups, these things were already fixed in FOX; I was using
a deprecated version. The problem was with the current FOX drop XWC did not compile.
I tried to hack it a bit but didn't manage to make it compile. I tried again and
it compiled but did not run. XWC's author did not reply my mails.
As I was told on the FOX mailing list he had stopped working on XWC.
Okay, what now? During my failed hacking experiment I noticed that FOX was the perfect
widget set for my needs. It's written in C++, is lightweight, copies M$ Window's
look and feel, has a very clean API and implementation and comes with almost all
necessary widgets. So I decided to write my own file manager using FOX.
In XWC you could change its colours, fonts... Cool features but better done in a separat
application than in a file manager. As a result the first thing to do was implementing
some kind of FOX control centre. foXcontrol was born. I soon realized that I'd better
don't hard-wire those colour... settings but make foXcontrol a component-based framework
instead. Since that time things have evolved. The component concept can now be found
in libfoXdesktop in a more generalized way. libfoXdesktop has become the (leightweight) core
of what has become "foXdesktop" extending FOX with code, icons, and common registry settings.
There are not much foXdesktop applications yet one of them being foXcommander, the
successful third result of hacking XWC.

foXdesktop is available and partly usable right now!
If you have enough of KDE and GNOME then give it a try!


Copyright

All parts of foXdesktop are free software; you can redistribute them and/or
modify them under the terms of either the GNU General Public License or the
GNU Lesser General Public License as (both) published by the Free Software Foundation;

See the single foXdesktop libraries/programs for details.


Contact

Homepage:
http://foxdesktop.sourceforge.net

Mailing list:
foxdesktop-devel@lists.sourceforge.net

Mailing list subscription page:
http://lists.sourceforge.net/lists/listinfo/foxdesktop-devel