LWN.net Logo

The Freedesktop.org Project

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)

Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds