Thunar allows the user to perform certain tasks, like
It is very important to limit the responsibilities of the file manager to file management tasks - in the tradition of good UNIX tools, that perform exactly one task - and not try to create an all-around tool. The following diagram tries to sum up the basic tasks of Thunar:
Thunar’s architecture should be very modular and extensible. One module should be easily replacable with a better implementation without affecting the other modules. Therefore it’s important to develop good and flexible interfaces between the different modules.
The architecture (and thereby the responsibilities) of Thunar are split up into several more or less independent modules.
All interaction with the user takes place in the User Interface, which is the top most component in the Thunar architecture and the only public interface (except for the IPC interface, but the IPC interface is a minor requirement for the first version).
The framework in use will be the GTK+ framework, including GLib/GObject, Pango, GDK, GTK and parts of the Xfce development framework (especially libexo). It is not recommended to use any of the high-level Gnome libraries. In particular, libxml2 should not be used, because the simple XML parsing required for the file manager can be done using the GLib Markup Parser (a sample implementation of a MIME info XML parser is available).
The Actions component acts as a proxy between the User Interface and the other components. The Actions shouldn’t be implemented as a separate module, but should be integrated into the User Interface to a certain degree, using the GtkAction facility.
The MIME System should be designed independent of the other components
of Thunar, to make it easy to move it to libexo or libxfce4util
later on, so other Xfce applications can use it (for example, the panel
might want to use it).