Well, not GMail per-se, at least not yet, but there is now a mechanism in Lancelot that allows you to make plug-ins for the Messages and Contacts lists.

It is based on Plasma’s data engines, so you’ll not need to learn anything new in order to extend Lancelot.

Obviously, not all data engines can be used from L since not all data engines provide the list data structure. At the moment, in order to use a data engine in Lancelot, it needs to have the following structure:

  • .metadata -> lancelot
    • version = 1.0
    • modelTitle = Title (optional)
    • modelIcon = someIcon (optional)
  • data -> title
  • data -> description
  • data -> icon

As you can see above, the main data source is named “data” and it contains three string lists (QStringList) named “title”, “description” and “icon” which contain, respectively, titles, descriptions and icons of the items that should be shown in Lancelot.

The Plasma::DataEngine - Lancelot::ActionListModel bridge is not finished yet, it’ll need to use Plasma::Service in order to notify the DataEngine that the user has clicked the item. When I finish the infrastructure, I’ll make an example GMail data engine and upload it to SVN. I don’t think I’ll bother making anything else, that is your job ;)


You can support my work on , or you can get my book Functional Programming in C++ at if you're into that sort of thing.