* Detecting desktop capabilities * Abstract When applications wish to integrate well with different desktop technologies, one approach is standardisation of every ISV interface; another is to allow an application to detect, and integrate with several different desktop interfaces. This specification presents a simple way for applications to detect various preferred technology sets for use in desktop integration. * Specification An application has two ways to detect what desktop environment it is running under, before it falls-back to some best-guess / default mechanism. This mechanism forms an advisory (or 'hinting') function only, many applications should never care about this variable. a) the 'DESKTOP' environment variable - this should be the primary source of desktop information or b) the '_NET_DESKTOP' root window string, X property on screen 0 if the environment variable is not set. The 'DESKTOP' variable will take the form of a : separated ordered list of technologies; with preferred mappings occuring from the initial to the final elements. * Defined Elements Clearly many technologies could be annotated and ordered in the DESKTOP string; and we encourage this, however it is important to ensure that a sufficiently unique name is chosen, and (preferably) added to this specification. Registered technologies & names (alphabetical order): Toolkits: gtk, motif, qt, Button order: button-corner, button-inset File Access: gnome-vfs, kio Element names must contain only lower-case alpha/numeric characters using the ASCII. * Examples In many cases, we would expect to see eg. DESKTOP="button-inset:kio:qt" or perhaps DESKTOP="button-corner:gnome-vfs:gtk" however more complex scenarios should be tolerated; for example - if a user was concerned that a more powerful file access layer was used if available, but preferring kio to gnome-vfs they might specify: DESKTOP="button-inset:kio:gnome-vfs:qt"