Plugin support
We get a number of feature requests that are genuinely useful, but would only benefit a small number of people. In these cases, it would be good to have a plugin system so that these features can be selectively enabled by those who need them. Plugins would also be useful for implementing non-core features that are more widely useful, to keep the core code clean.
This ticket is a tracking ticket for those use cases, implementing basic support for plugins, and implementing specific plugin support needed for those use cases.
Use cases from past bugs reported in b.g.o include:
-
Displaying/previewing additional content types for messages (TNEF, calendar, diffs, preferring plain instead of HTML) -
Account add-ons (server-side filter management, custom proxies, alternative SMTP servers, archiving email locally, client-side spam filtering) -
Folder add-ons (IMAP ACL, IMAP Quota) -
Composer add-ons (sending additional headers, inserting audio, inserting HTML, external editors) -
Sending/receiving hooks (Zeitgeist, would also allow making Unity Indicator support a plugin, system tray icon) -
Credential storage implementations (clear text) -
Email encryption systems
If you have had a feature request marked as a duplicate of this issue, the way forward is as follows:
-
Implement a base plugin system using Libpeas, in a way that works similarly to how EOG's plugin system works(done) - Implement plugin support for the matching use case above
- Write the plugin that implements the specific feature
The most appropriate way to do implement any of these is to open a merge request for one of the three points above, and mention this ticket when doing so.