HardyPreferedApplications

Differences between revisions 1 and 9 (spanning 8 versions)
Revision 1 as of 2007-10-17 14:41:27
Size: 2568
Editor: p54A66D68
Comment:
Revision 9 as of 2008-08-06 16:16:41
Size: 5239
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
 * '''Launchpad Entry''': UbuntuSpec:foo
 * '''Packages affected''':
 * '''Launchpad Entry''': UbuntuSpec:preferred-applications
 * '''Packages affected''': gnome-control-center, gnome-volume-manager
Line 10: Line 10:
This should provide an overview of the issue/functionality/change proposed here. Focus here on what will actually be DONE, summarising that so that other people don't have to read the whole spec. 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.
Line 14: Line 21:
This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.
TBD
Line 20: Line 25:
This should cover the _why_: why is this change being proposed, what justifies it, where we see this justified. 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).
Line 24: Line 33:
== Assumptions ==  * Bob wants to change his default from gthumb to f-spot
 * Alice wants to use epiphany instead of firefox by default
Line 28: Line 38:
You can have subsections that better describe specific parts of the issue. 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.
Line 30: Line 42:
== Implementation ==
Line 32: Line 43:
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like: 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.
Line 36: Line 97:
Should cover changes required to the UI, or specific UI that is required to implement this

=== Code Changes ===

Code changes should include an overview of what needs to change, and in some cases even the specific details.

=== Migration ===

Include:
 * data migration, if any
 * redirects from old URLs to new ones, if any
 * how users will be pointed to the new way of doing things, if necessary.
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.
Line 51: Line 104:
It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD testing, and to show off after release.

This need not be added or completed until the specification is nearing beta.

== Outstanding Issues ==

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.
TBD
Line 61: Line 108:
Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected. Managing debian alternatives (update-alternatives and friends) was
discussed and discarded because it would require root and is not
portable.

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.

Summary

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.

Release Note

TBD

Rationale

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).

Use Cases

  • Bob wants to change his default from gthumb to f-spot
  • Alice wants to use epiphany instead of firefox by default

Design

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.

UI Changes

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.

Test/Demo Plan

TBD

BoF agenda and discussion

Managing debian alternatives (update-alternatives and friends) was discussed and discarded because it would require root and is not portable.


CategorySpec

HardyPreferedApplications (last edited 2008-08-06 16:16:41 by localhost)