Good evening list<div><br></div><div>During the past couple of weeks, I&#39;ve been working on a spec for intents (best name I could come up with).</div><div><br></div><div>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 functions.</div>

<div>For example, while eog and Gimp may register the same MIME types, Gimp would have an &quot;Image Editor&quot; intent, while eog would have an &quot;Image Viewer&quot; intent.</div><div><br></div><div>The idea behind this spec is to:</div>

<div> - Streamline the ways to describe some default applications in desktop environments (default web browser, terminal emulator, ...)</div><div> - 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 &quot;Open the default Web Browser&quot; instead of &quot;Open <a href="http://google.com">http://google.com</a>&quot;).</div>

<div> - Make it possible to open different applications on the same file/MIME type, depending on what the application wants to do (eg: &quot;Open in your default image editor&quot; from an image viewer)</div><div><br></div>

<div>I originally brought this up on the Razor-Qt mailing list:</div><div><a href="https://groups.google.com/forum/?fromgroups#!topic/razor-qt/LV8StxmvDns">https://groups.google.com/forum/?fromgroups#!topic/razor-qt/LV8StxmvDns</a><br>

</div><div><br></div><div>The spec is a great occasion to keep consistency up; it would be quite similar to the MIME type spec. In three major parts:</div><div> - A description of intents in .desktop files (Intent=Intent1;Intent2;Intent3)</div>

<div> - A way for users to override intents, like mimeapps.list (intents.list)</div><div> - A front-end application to open and set intents without having to link to an xdg library (xdg-intent)</div><div><br></div><div>I recommend reading the above link for more insight into the idea. One point I&#39;d like to stress:</div>

<div>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.</div>

<div><br></div><div>An unanswered question still remains: the naming scheme for each intent. Two obvious options stand:</div><div> - A MIME-style naming scheme: intent/image-editor. I am not convinced it&#39;s the best way to go as developers might get confused between the separation of intents and mime types (intents are *not* mime types)</div>

<div> - A simple name, maybe with periods. ImageEditor, SystemSettings, SystemSettings.Audio, xdg.intent.SystemSettings.Audio.</div><div><br></div><div>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.</div>

<div><br clear="all">J. Leclanche<br>
</div>