Have a way to dynamically change software associations at distribution level

PCMan pcman.tw at gmail.com
Fri Aug 7 21:45:10 PDT 2009


I have yet another simple proposal which will work will existing
implementations.
Why not using the already existing mime-info.cache?
For example, for mime-type text/plain, there might be a key in
mime-info.cache like this:
text/plain=leafpad.desktop;gedit.desktop;scite.desktop;gvim.desktop;
The order of the applications has no relationship with priority of the them.

How about making this order of applications meaningful?
The first application desktop file listed in the string list should be
the default one.
GUI listing those apps to the user should list them in this order
instead of alphabetical order.
Then the users can reorder the application list according to their preferences.

Applications for a specified mime-type listed in system-wide cache
like /usr/share/applications/mime-info.cache should be merged with
user specific cache (~/.local/share/applications/mime-info.cache).
User customed applications which are only in
~/.local/share/applications/mime-info.cache should precedes the ones
listed in system-wide cache.

If an application desktop contains NotShowIn=<Current DE> or
NoDisplay=true, or it doesn't exist, it should be skipped, and the
next one should be the default.

In this way, we can have priorities for available apps supporting a
specific file type without breaking existing implementation and
creating new file formats. Distribution makers can then ship a default
mime-info.cache with applications for each mime-type listed in desired
orders.

I used this technique in my first version of pcmanfm, and it works
well. Later, for maximal compability with gnome, I removed this
implementation and uses defaults.list instead.

Any comments?


More information about the xdg mailing list