Proposal for a MIME mapping spec
Waldo Bastian
bastian at kde.org
Mon Jul 19 17:32:13 EEST 2004
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Thursday 08 July 2004 19:50, Jonathan Blandford wrote:
> Thomas Leonard <tal00r at ecs.soton.ac.uk> writes:
> > > The defaults are first read in
> > > $XDG_DATA_DIRS/applications/defaults.list. It is expected that these
> > > defaults are set solely by the distributor of the system. Then, a
> > > $MIME_PREFS_LIST environment variable is checked for other preferred
> > > applications. This is expected to be set by a sysadmin providing their
> > > own defaults. Additionally, each desktop should prepend its own
> > > defaults to this variable.
> >
> > Why is this config information in $XDG_DATA_DIRS? Surely it should be in
> > $XDG_CONFIG_DIRS? MIME_PREFS_LIST seems unnecessary, since desktops can
> > already add to XDG_CONFIG_DIRS (ROX-Session adds
> > /uri/0install/rox.sourceforge.net/lib/DefaultChoices to the choices
> > search path, for example).
>
> I would expect there to be a one-to-one mapping between the desktop
> directories and the defaults.list, and thus it's XDG_DATA_DIRS.
> MIME_PREFS_LIST might be unnecessary -- I'm not fully sold on it yet.
> If we think that adding to XDG_DATA_DIRS is sufficient for this, then we
> can just use that.
>
> > > Then, $XDG_DATA_CONFIG/mime/defaults.list is checked for user-specific
> > > defaults. Finally, it is expected that each desktop will have their
> > > own (optional) user-specific desktop file.
> >
> > XDG_DATA_CONFIG? Do you mean XDG_DATA_DIRS or XDG_CONFIG_DIRS?
>
> Grr.. XDG_CONFIG_DIRS. I get these environment variables confused.
You write "Finally, it is expected that each desktop will have their own
(optional) user-specific desktop file." isn't that what
$XDG_CONFIG_HOME/mime/defaults.list is supposed to take care of? If you use
an environment specific file you end up with GNOME and KDE applications
having different views of the world.
Assuming that $XDG_CONFIG_HOME/mime/defaults.list should be used (at least
primarily) to record the users preferences, I would like to add the following
note wrt behavior in the face of no defined default:
"When activation of a file of a certain MIME Type is required and no default
application has been specified for this MIME Type in any of the default.list
files the following steps should be taken:
1. A list of all suitable applications that can handle this MIME Type is
constructed. The information from the mimeinfo.cache files can be used for
this.
2. If the list contains only a single application this application will become
the default handler for this MIME Type and is registered as such in
$XDG_CONFIG_HOME/mime/defaults.list
3. If the list contains multiple applications the user should be prompted to
select the application that should be used by default. This choice should
then be registered in $XDG_CONFIG_HOME/mime/defaults.list
4. If no suitable application is found at all, the user may be prompted to
provide an application.
[4a] Such application may be registered in $XDG_CONFIG_HOME/mime/defaults.list
despite the fact that the application's .desktop file does not list the MIME
Type
[4b] Such application may be registered in $XDG_CONFIG_HOME/mime/defaults.list
after it is ensured that the MIME Type is listed in the
applications's .desktop file. In case the original .desktop file is not
editable this may require that an editable copy of the .desktop file is
created under $XDG_DATA_HOME/applications first."
With either variant [4a] or variant [4b].
=============
There is also the scenario that an application is chosen that is restricted to
a particular environment (e.g. due to OnlyShowIn=KDE) To prevent flip-flop
behavior I think that if default.list specifies an application that is for
some reason not suitable (e.g. wrong environment) a new default application
should be selected as described above and the resulting default application
should then be added after, and in addition to, the already listed default
applications.
Example:
Assume the application gedit which as an application .desktop file known as
gnome-gedit.desktop that contains OnlyShowIn=GNOME
Also assume the application KEdit which as an application .desktop file known
as kde-KEdit.desktop that contains OnlyShowIn=KDE.
In KDE the user is prompted for a default handler for text/plain and selects
KEdit. This choice is registered in $XDG_CONFIG_HOME/mime/defaults.list:
text/plain=kde-KEdit.desktop;
Now the user runs GNOME and opens a text/file, KEdit is not used because of
OnlyShowIn=KDE, the user is prompted for a default handler for text/plain and
selects gedit. This choice is now registered in
$XDG_CONFIG_HOME/mime/defaults.list as follows:
text/plain=kde-KEdit.desktop;gnome-gedit.desktop
Cheers,
Waldo
- --
bastian at kde.org | KDE Community World Summit 2004 | bastian at suse.com
bastian at kde.org | 21-29 August, Ludwigsburg, Germany | bastian at suse.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQFA+9tuN4pvrENfboIRAiKkAJ4tkh8xR69cnmyW+uugUfA9DNvCMgCfYKsF
Av2ID3C3yCSTwVgLPbwKeO8=
=ARTO
-----END PGP SIGNATURE-----
More information about the xdg
mailing list