| TWiki . People . JuanGonzalez |
Freedesktop.org is a "collaboration zone" working on interoperability and shared technology for X Window System desktops. While it's not a formal standards organization (like ISO), they create de facto specifications that are becoming widely used in modern Linux desktops.
They create specifications for all the typical operations of traditional desktop environments, including for example:
For this proposal, the relevant specifications are the two latest, let's look at them a bit deeper.
Most widely used desktop enviroments (KDE&GNOME) have adopted a similar format for "desktop entries" which is in benefit of users because makes their desktop applications available in both (and more) desktops with no extra work, simplifiyng interoperatibilty betwen them and making developers life a bit easier.
These desktop entries are plain text files with the extension .desktop. There are also desktop entry files, that are to describe how a directory is to be formatted/displayed, which are just called .directory .
The basic format of the desktop entry file requires that there be a "group" header named [Desktop Entry]. This "group" entry denotes that all {key,value} pairs following it belong in the Desktop Entry group. There may be other groups present in the file, but this is the most important group which explicitly needs to be supported.
Compliant implementations MUST not remove any fields from the file, even if they don't support them. This is interesting for LG3D? integration because it allows to add specific requirements that are not present in traditional desktops (like Z position), and may probe interesting to be used as the standard for LG3D? as it's already for Gnome and KDE.
This specification defines how to build a user visible hierarchy of applications. Information about each entry of this hierarchy is stored in a desktop entry (the ones defined before in this document), and the layout of them is described using an XML file which defines where and how to display all of this "desktop entries". The specification allows to restrict elements to one single desktop environment, or the reverse, allow items in all but one desktop.
Since the "standards" proposed by freedesktop.org for desktop entries and menu definition has been adopted by the Free Standards Group, and are referenced in their Linux Standard Base specifications, most modern linux distributions (desktops) are working to get them fully integrated (since KDE3.4 and Gnome2.10 they both integrate these standards). Even Solaris is planning to integrate them when they update to Gnome 2.10 (next Nevada release).
In fact, one little survey that I started in the LG3D? forum has shown that, at least, the following distributions already follow the standard:
In order to integrate the specified elements it will be necessary to first create:
At this point, we have the hability to read and abstractly recreate the menu and the desktop in memory, let's look at them separatly:
Once the "menu entries" can be managed from Java, loading the user Desktop is trivial, just load all files from ~/Desktop directory and it's in memory. It looks plausible to regenerate the desktop structure in every run. The complexity comes in how to show those Desktop icons to the user. Some ideas have been tried in the past, like the abandoned Microsoft's Task Gallery palette, or the Rooms3D software, but we will have to dig on what the users think is the better way to show all this icons whithout cluttering the desktop, and using the third dimension.
The desktop layout manager is a good candidate to be pluggable.
This part is a little more tricky, because LG3D? already has a way to build the menu through .lgcfg files, which leads to (at least) two possible solutions:
It's to the comunnity to decide which one is a better option (or even propose some other), but there is time (work) before arriving to this part, and the forum will bring some light on it.
Here is a Gantt chart to show you the expected schedule for this deliverables:
Last point in this schedule refers to the creation of comunnity suggested plugins for the Desktop plugin.
It's expected to have a working implementation of the desktop by june mid-term evaluation, and work on menu after this.
I'm very sorry for my poor english , hope you understood me ;)
-- Main.opsi - 01 May 2006
----- Revision r11 - 11 May 2006 - 19:49:46 - Main.opsi
|