Proposal and RFC: DAL, the Desktop Abstraction Layer
eikke at eikke.com
Sat Jan 15 15:01:59 EET 2005
> But the service names are unique so what happens if you have gedit and
> kwrite - they cant both be called org.freedesktop.TextEditor. So would
> gedit be /org/gnome/gedit then? If so how will I know it has a certain
> interface without *knowing* about the app?
If applications announce themselves on the DBUS session bus, they should
use one strict interface. In the case of kwrite and gedit, this could be
org.freedesktop.TextEditor. If an application want to use the services
of a TextEditor, it can find out which one to use like this:
1. Check whether multiple apps offering the same interface are started.
If none is started, start the default one. If only one is started, use
2. If multiple apps are started, use a desktop-specific method (or maybe
non-desktop-specific, if such a standard exists?) to find out what the
"default" handler is. If the default handler is started, use that one.
3. Create a dialog box where the user can choose what app to use.
Normally stage 3 shouldn't ever be reached: I dont think a Gnome user
will have kwrite and kvim or something opened at a time, although it
*is* possible of course.
When starting to use /org/gnome/gedit etc, the abstraction is gone, and
it is very difficult to let applications talk to each other, because
every app would need a list of "the object paths of all possible text
More information about the xdg