Chapter 12. The FreeDesktop Project
While GTK+ provides a great toolkit for building applications, and GNOME itself provides a great set of applications, there are many important features related to the desktop that do not belong in either a widget toolkit library or an individual application set for various reasons. Certain features may be a little lower level than application builders should deal with, and/or ought to be done with desktop neutrality in mind (so that things still work when using a different desktop environment, such as KDE). Fortunately for programmers there is a middle ground. The FreeDesktop project provides several projects that work in any Linux desktop environment. It provides a common application programming interface (API) for many commonly used desktop features.
The Desktop Bus, the Hardware Abstraction Layer, and the Network Manager are three popular FreeDesktop projects that provide useful interfaces to common desktop problems. This chapter demonstrates how to write code that utilizes these FreeDesktop project applications to interact with any Linux desktop environment that implements FreeDesktop. Finally, you will be introduced to a few more FreeDesktop projects that may come in handy in your Linux programming.
D-BUS: The Desktop Bus
D-Bus is an Inter-Process Communication (IPC) mechanism that is part of the FreeDesktop.org project. It was designed to replace Common Object Request Broker Architecture (CORBA) and Desktop Communication Protocol (DCOP), the ...