October 20, 2003
This article was contributed by Biju Chacko
Freedesktop.org has been
quietly working since March 2001 to improve interoperability between X
desktops. Unlike ostensibly similar groups like the
Free Standards Group
freedesktop is not a standards organization. Freedesktop's
mission
is achieved by getting developers to informally hash out ways to interoperate rather than
legislating formal standards documents. Its specifications are hammered out
quickly on mailing lists or IRC, instantly tested in real-world code and
patched accordingly. This speedy, informal approach allows developers to build
interoperability specs without having to disrupt projects with interim hacks
while a standard is finalized. The expectation at freedesktop.org is that the
de facto standards created this way will eventually get
"blessed" by an organization with a mandate to legislate standards.
The benefits of interoperability are often ignored. Nowadays, we take it for
granted that we will be able to cut-and-paste or drag-and-drop
between GNOME and KDE applications. This casual acceptance is a good
thing. Applications should "just work" whether or not they are on
their native desktop. Thanks to freedesktop, they mostly do.
Contrast this with life under very early versions of GNOME and KDE.
Standards simplify the lives of developers trying
to be desktop-neutral. The standardization of
desktop entries and
menus,
for example, allow ISVs to easily install icons for their applications without
having to worry about the end-user's desktop environment.
The developers of a
skinned media player can be assured that their app will look and behave
the same under all compliant window managers if they use the hints
defined in the
Window Manager Spec.
Freedesktop.org has published
several specifications
that have wide acceptance across X desktops. For example, the
Window Manager Spec,
which defines window manager behavior, is supported by GNOME,
KDE, XFce and many other window managers. The qt and GTK+ supported
XEmbed
spec is a protocol to embed one application's controls into another.
The
clipboard spec is a consensus on using the X clipboard.
Several draft specifications haven't been widely implemented.
For example, the one that defines application
menus
has only been implemented by GNOME, but KDE and XFce
have indicated support in future releases. The
Shared
MIME Database creates a common library of MIME types to be
used file handling tools. It's currently implemented only by
ROX Filer
and slated to be part of GTK+ 2.4.
Recently, freedesktop decided to expand the scope of its work to
hosting desktop oriented projects,
especially those that provide needed infrastructure to desktops.
The DRI project recently moved
its CVS repository
to freedesktop.org, for example. Other projects hosted on freedesktop
include Cairo
- a vector graphics library,
D-BUS
- a message bus system,
fontconfig
and pkgconfig.
A particularly interesting new project is HAL, which aims to create a
standard abstraction layer through which desktops can configure and use hardware
devices. It's an ambitious project, but one well worth the effort.
(
Log in to post comments)