Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Launchpad Entry: preferred-applications
Packages affected: gnome-control-center, gnome-volume-manager
Selecting preferred applications is more difficult than it should be. It should be easy switch from Openoffice to Abiword and have all filetypes automatically changed. If I prefer F-Spot to G-Thumb, all filetypes *and* the camera importer should be changed. If I change my prefered webbrowser, the panel launcher should change automatically.
List of possible applications should include those in the archive as well, selecting one installs it and marks it preferred.
Switching the default application is currently not very discoverable. It involes right-click, Properties/Open with. Switching the for something like a camera is a problem too, its under "removalble devices" and it requires the user to change the commandline arguments (with no go back to default setting).
- Bob wants to change his default from gthumb to f-spot
- Alice wants to use epiphany instead of firefox by default
To make switching the default applications straightforward we need to cover three areas: launchers in the gnome panel, default behavior on url/mime-type, default behavior for removable devices.
We need to implement:
- Launchers should support "prefered application" in addition to the current "Command". This way the user can have a web-browser launcher that automatically changes if the preference changes.
- The prefered apps dialog should list available applications as well as installed ones. It should install them if the user selects them (integrate add/remove and the mime-types, tags somehow)
The "Removable Drives/Media" capplet should be merged into prefered applications (to the extend that makes sense). The prefered applications should have a methods (desktop file?) to tell if/what it supports for removable media (e.g. ImportFromCamera commandline). It should be possible to use some combobox instead of the current (scary) commandline options.
It should be possible to set the default application via right-click on a generic-app launcher.
The list of generic applications includes:
- web browser
- mail client
- instant messanger
- image viewer
- text editor
- music player
- video player
- terminal emulator
The prefered application is selected by looking into some gconf/dconf/file based configuration.
A possible implementation would use dbus activation to launch the application (e.g. org.gnome.Epiphany). Each application would implement a standard interface (eg. each browser provides a openURL() call etc). Mime-type and removalable media handling would be implemented the same way. A standard interface like "importFotos()" would be provided by the applications. The problem with this approach is that the applications would need to querried (started) to get information like name and icon (the icon should change when the default web-browser changes). There are some plan from upstream to go into this dbus direction.
A alternative approach would be to change:
- the default applications to store a desktop file name in e.g. /desktop/gnome/applications/browser instead of the current "exec" configuration
- the panel to have a new launcher type that says "prefered application" and that uses the gconf information to figure out what launcher to display
the desktop file gets extended to provide information about things like "ImportFotos=gthumb-hal-import %s" etc so that switching can automatically switch the gnome-volume-manager specific commands.
A third option (suggested by vuntz) is to have "redirect" in desktop files. either by a new desktop entry key or by simply using symbolic links. We install a system-wide one, the prefered applications can then change this to a a per-user one. The way the panel searches for laucners is that it stores relative pathes and then searches ~/.gnome2/panel2.d/default/launchers and then XDG_DATA_DIRS/applications. This would solve the panel issue with relatively little additional code.
The method to be used will be discussed with upstream and when a conlcusion is reached add a proper fd.o specification is written (or a existing one is extended).
Once this spec is implemented, the default application launchers in the ubuntu panel config should be switched over to this new method.
The Prefered Applications Capplet and the Removable Media capplet should be merged as far as possible. Ideally when switching the photo manager the photo import applications automatically switches too. This means that a lot of the current entries can go.
BoF agenda and discussion
Managing debian alternatives (update-alternatives and friends) was discussed and discarded because it would require root and is not portable.