Needs feedback: Work on new "intents" spec

Jerome Leclanche adys.wh at
Thu Mar 15 12:44:54 PDT 2012

Good evening list

During the past couple of weeks, I've been working on a spec for intents
(best name I could come up with).

Intents are a way for applications to programatically describe what
functions they are able to fulfill. They go hand-in-hand with MIME types,
which describe on what type of content they are able to fulfill such
For example, while eog and Gimp may register the same MIME types, Gimp
would have an "Image Editor" intent, while eog would have an "Image Viewer"

The idea behind this spec is to:
 - Streamline the ways to describe some default applications in desktop
environments (default web browser, terminal emulator, ...)
 - Provide a way for applications to get and set the default application
for an action *without* having to pass it a mime-based argument (eg "Open
the default Web Browser" instead of "Open").
 - Make it possible to open different applications on the same file/MIME
type, depending on what the application wants to do (eg: "Open in your
default image editor" from an image viewer)

I originally brought this up on the Razor-Qt mailing list:!topic/razor-qt/LV8StxmvDns

The spec is a great occasion to keep consistency up; it would be quite
similar to the MIME type spec. In three major parts:
 - A description of intents in .desktop files
 - A way for users to override intents, like mimeapps.list (intents.list)
 - A front-end application to open and set intents without having to link
to an xdg library (xdg-intent)

I recommend reading the above link for more insight into the idea. One
point I'd like to stress:
Intents free to be chosen by the developer; XDG would recommend specific
intent names for specific actions (eg: ImageEditor for editing images).
However, should a developer want to give an intent to an use case that has
not been specifically listed by XDG (say, a twitter client), they would be
free to choose their own. If more apps appear with the same use case, xdg
would do well to list an official intent.

An unanswered question still remains: the naming scheme for each intent.
Two obvious options stand:
 - A MIME-style naming scheme: intent/image-editor. I am not convinced it's
the best way to go as developers might get confused between the separation
of intents and mime types (intents are *not* mime types)
 - A simple name, maybe with periods. ImageEditor, SystemSettings,
SystemSettings.Audio, xdg.intent.SystemSettings.Audio.

Would love to gather some more feedback from this list before writing a
spec. I also want to write some tools for it, including a python library
and, essentially, xdg-intent.

J. Leclanche
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the xdg mailing list