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: customizable-file-manager
Packages affected: nautilus; possibly all file manager packages
This spec aims to develop a mechanism that would allow GNOME users to transparently switch from Nautilus to an alternate file manager, like Dolphin or Thunar.
The default file manager in GNOME can now be selected in the Preferred Applications tool.
- Not everyone likes Nautilus.
- KDE provides a way to change the file manager (by changing the handler for the "folder" file type), so why not GNOME?
- Providing this option would increase the modularity of GNOME.
- Daniel has migrated to GNOME from Xfce and found Nautilus to be too cumbersome for his taste. He wants to still use Nautilus to handle the desktop, but switch to his favorite program, Thunar, for file management operations.
- Joe has migrated from Windows, where he used an orthodox file manager like Total Commander. He wants his folders to be opened in GNOME Commander.
- Rose is a Kubuntu user, but prefers Firefox to Konqueror as her web browser of choice. Unfortunately, Firefox uses the GNOME interface for the "Open containing folder" function, and with no way to change the file manager, she is forced to install Nautilus and get used to using two file managers at once (Nautilus and Konqueror/Dolphin).
A very hackish way to achieve this would be moving the nautilus binary out of the way and replacing it with a wrapper script, determining based on the arguments what to launch: the real nautilus for the desktop (--desktop) or an alternate file manager.
A much cleaner solution is to rewrite the desktop files for Nautilus in /usr/share/applications (nautilus, nautilus-computer, nautilus-home, nautilus-folder-handler), redirecting them to a new wrapper script, which can be called, for example, gnome-file-manager. The wrapper script would read the value for the default file manager using gconf (there is currently no gconf setting for this; it can be, for example, /desktop/gnome/applications/file_manager) and then call it with the required arguments.
Since the arguments can differ, each file manager package (nautilus itself, konqueror, dolphin, thunar, gnome-commander, krusader, mc, etc.) can ship with its own set of scripts installed under /etc (for example, /etc/gnome-file-manager/thunar) providing a unified interface to the main wrapper script. This, however, is a last resort measure.
The "System" tab in gnome-default-applications-properties is currently only used for the terminal emulator. There is enough room to add the file manager chooser there. This will be the only UI change required.
Since we should be able to change the file manager without installing Nautilus, the nautilus-* desktop files will need to be moved out of the nautilus package and into a new package (for example, gnome-file-manager-common), on which Nautilus will then depend.
If there is currently no clean way to obtain a list of available file managers in GNOME, the means to register a file manager in the system will need to be added, and each file manager package will need to be repackaged to register itself in its postinst scenario. Preferably, if we have to invent the mechanism, should be DE-agnostic (for example, not depend on gconf).
There are no migration issues. The process is transparent; existing Nautilus users would continue to use it, unaware of the underlying changes.