====== Plugins ======

See [[:Usage:Plugins]] for information on the available plugins.

Zim has a simple plugin system to add extended functionality. Plugins are just perl scripts that are installed in a directory where zim can find them. If the user chooses to use the plugin the script is loaded during program initialization.

At the moment there is not (yet) a real plugin API, so plugins need to work directly with the internal structures of the program. This means that plugins often need to be updated for newer versions of zim.

==== Locations ====
Plugin scripts are looked for in ''XDG_DATA_DIR/zim/plugins/'' this means that by default they will be located in ''/usr/share/zim/plugins'' or ''/usr/local/zim/plugins''. Users can install their own plugins in ''~/.local/share/zim/plugins''.

For more information on this directory scheme have a look at the freedesktop [[http://freedesktop.org/wiki/Standards_2fbasedir_2dspec|basedir specification]].

==== API ====
See the [[class diagram]] for a description of zim's object structure. Study the default plugins to see how you can define new menu items etc.

==== Icons ====
Any custom icons you need should be put in ''XDG_DATA_DIR/pixmaps/zim/'', they will be loaded automatically. You can use the basename if the icon file as the stock name for an action.
