Xfce Digest, Vol 22, Issue 1

Benedikt Meurer benedikt.meurer at unix-ag.uni-siegen.de
Thu Sep 1 19:04:10 CEST 2005


Dan Coit wrote:
> Benedikt & Erik:
> 
> It pleases me to know that rewriting XFSound is "trivial" and apparently 
> easy to do.  If only I were a programmer I would tackle to project 
> myself however my expertise lies in a different area.  Nonetheless if 
> updating the module is in fact an easy thing to call with DBus or any 
> other component, whom can I applaud for taking on the job?  On the other 
> hand if it is non-trivial I could understand why it isn't being 
> addressed.  <poetic mode> Oh woe is me!  A mere simple user in a 
> programmer's esoteric and complex world! </poetic mode>

It's quite easy to understand: You usually have the choice between two
operation modes in todays software world:

(a) Quick and dirty
(b) Right and stable

(a) offers the advantage that you see the result very soon, but the
solution itself very likely needs tweaking (or even a complete rewrite)
soon (probably two or three releases after the first release). (b) takes
more time initially and people (esp. your marketing guys) won't be happy
for a long time as they "don't see anything", but the final solution
will work for a long time and will be easy to adopt and adjust.

In case of the sound system:

We have three major systems today, the KDE implementation, the GNOME
implementation and Galago (which can be used for sound notification, but
that's not the initial intention of the system).

What would be nice to have, is a single specification adopted by all
desktop, which associates sounds with certain events and specifies a
D-BUS interface for the sound daemon.

The D-BUS interface would be simple. You just need a method to tell the
daemon to play a certain sound, e.g.

 org.freedesktop.SoundDaemon.Play(event:String)

The daemon implemenation would then lookup whether the user has
associated a sound with the event, and if there's one, play the file.

So far, so easy.

The tricky part is to unify the configuration of the sound system (that
is the association with sounds to events, and the list of available
events plus their descriptions). The specification would also need to
define a set of basic events, which are likely to be used in every
implementation: most probably events from the session manager (startup,
logout, etc.) and the window manager (maximize, iconify, etc.).

The above would result in a really simple and easy to implement/use
system. Unfortunately, if you check existing implementations, you'll see
that for example KDE supports more actions than just playing a sound
file, that require additional information from the application to be
really useful.

While I would personnally be fine adopting the current KDE
implementation as freedesktop standard (but based on D-BUS instead of
DCOP), but yannow, the world isn't that nice, and "free desktop" means
primarly that everybody is "free" to mumble. ;-)

The last (and trivial) option would be to add a custom implementation to
Xfce 4.4. But that's pretty shortsighted, esp. if we're going to ditch
that system for 4.6 in favour of a standard (which will be hopefully
established then).

I'll need to look at Galago again, but IIRC there was the usual problem,
that Galago specifies the API (actually a D-BUS interface), but not the
configuration and registration (as described above).

> Peace
> Dan

greets,
Benedikt



More information about the Xfce mailing list