The Thunar Extension Framework (thunarx
) provides
developers with an easy way to extend the basic functionality provided by
the Thunar File Manager.
The thunarx
library includes interfaces that can
be implemented by extensions for various purposes.
It is based on the GLib Dynamic Type
System and loads the extensions on demand to reduce the system resources
allocated for the file manager process.
The Thunar Extension Framework was developed with the following goals in mind:
-
It should be easy to extend the functionality of the file manager in certain
ways.
-
The internals of the file manager should be hidden from the extensions to be
able to maintain API/ABI compatibility for extensions over various major
releases of the file manager.
-
Provide basic compatibility with the Nautilus Extension Framework,
so vendors don't need to write several versions of their extensions for the various
file managers. With the current implementation it should be easy to write a small
wrapper library for generic extensions that can be loaded into both Thunar and
Nautilus.
-
Extensions should not be loaded into memory until they are actually required to
save system resources. This differs from the way Nautilus handles extensions and
therefore people that already know how to write Nautilus extensions must be
careful when writing extensions for Thunar, because Thunar actually unloads the
extension when it's no longer needed. The GTypePlugin
and GTypeModule
sections in the GObject
Reference Manual provide details about the handling of dynamic type plugins.
-
Permit developers to write extensions in languages other than C.