There was a discussion recently about how a default application for a mime-type was chosen when no mimeapps.lst specified a preference - some launchers were giving semi-random results that changed unexpectedly.
As you said, the new spec closely follows mime-apps. I think it would be a good idea to head off similar issues in the future by giving a bit more detail in the recommendation for what to do when no preference is found. This is the relevant bullet point at present: "if after all files are handled, we have not yet found a default application, select the most-preferred application (according to associations) that supports the intent" But what makes an application most-preferred, apart from this spec? AFAIK, there is no other way to decide this in general. Of course, a launcher may have a hardcoded default for specific interfaces it recognises - e.g. KDE might pick Konsole for org.freedesktop.Terminal1 - but it should be prepared to handle interfaces it doesn't know. I can see two possible recommendations that make sense: - Pick the default in a simple, consistent manner (e.g. first desktop file sorted by name), and make it obvious how the user should set their preference if they don't like it. - Pick an arbitrary default, and then write it as the preference in XDG_CONFIG_HOME, so the same application will be used until the user picks another one (or uninstalls that one). It might also be worth saying that the spec doesn't rule out using Implements= for cases where there's no default application - where you're interested in all the applications implementing an interface, rather than just one. I don't think anything in the new spec is a problem for that, but it might be good to make that explicit. Other than that, I think it looks like a nice addition. :-) Thomas On Mon, 3 May 2021, at 10:44, David Faure wrote: > Hello everyone, > > I just created > https://gitlab.freedesktop.org/xdg/xdg-specs/-/merge_requests/45 > with the proposal for an intent-apps spec, modeled after the mime-apps spec > (but without the concept of adding/removing associations). > > For context: > > * The desktop entry spec mentions Implement=<intent name> already for some > time, but AFAIK this isn't used anywhere yet? > > * What's missing is a way to let the user (or the sysadmin or the distro) > decide which alternative to prefer (possibly depending on the desktop > environment). mimeapps does this nicely for mimetypes, so intentapps just > reuses that solution, but outside the world of mimetypes > > * This came up in https://gitlab.freedesktop.org/xdg/xdg-specs/-/issues/54 > where we're discussing "Have a standard way for users to specify which > terminal should open .desktop applications with Terminal=true". > The solution involves implementing a DBus interface (dubbed > org.freedesktop.Terminal1). This is similar to the existing > org.freedesktop.FileManager1 DBus interface. All applications implementing > org.freedesktop.Terminal1 will specify > Implements=org.freedesktop.Terminal1 in their desktop file, and intent- > apps.lst files can then be used to pick the preferred one. > > I am willing to implement this on the KDE side, I'm especially interested in > feedback from whoever feels like implementing this in glib and other > implementations. > > -- > David Faure, [email protected], http://www.davidfaure.fr > Working on KDE Frameworks 5 > > > > _______________________________________________ > xdg mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/xdg > _______________________________________________ xdg mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/xdg
