Advanced topics

This section provides a short introduction to some of the advanced topics in the Thunar Extension Framework.

Memory-Resident Extensions

Some extensions may not play well with Thunar's on-demand loading and unloading of extensions. For example, an extension that uses a desktop library, which in turn registers additional static GTypes will not work after being loaded and unloaded for the first time. For these kind of extensions, Thunar provides the option to make extensions memory resident, which means the extension will be loaded once and afterwards will never be unloaded again until Thunar exits.

Such extensions must set the resident property of the provider plugin in its thunar_extension_initialize() function to TRUE, using the thunarx_provider_plugin_set_resident() method.

Example 2. Making an extension memory resident

1
2
3
4
5
6
7
8
9
G_MODULE_EXPORT void
thunar_extension_initialize (ThunarxProviderPlugin *plugin)
{
  /* setup the types for the extension */
  ...

  /* ensure that the extension will never be unloaded */
  thunarx_provider_plugin_set_resident (plugin, TRUE);
}