GIMP Plugins from third parties


I’m the publisher of the GIMP snap.

I would like to provide the ability for plugins, such as g’mic and darktable, to be integrated with GIMP without shipping them inside the GIMP snap itself. These plugins can be variously python scripts, binary libraries, and so on. Some of them require compilation. As such I cannot anticipate every dependency that they may require to ship those within the GIMP snap. I would like to allow third-parties to create and maintain their own plugins independently of the GIMP snap.

So the question is, how can I expose the GIMP plugin capability to third parties?

@evan asked me to tag @niemeyer.


I thought that is a valid reason to make GIMP a classic confined snap…?


@zyga I think you might have put some thoughts how to do plugins via the content interface at some point, could you comment on this when you have some time


as far as I understand it, the content interface is unsuited to this, because all the plugins would have to be under the same publisher as the gimp snap (i.e. published by me).


I thought that restriction was just for auto-connection and a user could still manually connect the content interface for two snaps from different publishers.


That’s the default policy, either manual connection or different policy overrides for specific snaps could be implemented. The starting point is whether content could help and how its use would look like.


I’m receiving conflicting messages here. @evan is of the opinion that manual connection is not possible unless the snaps are both from the same publisher (unless I misunderstood our discussion on this)


This is the base-declaration policy for content:

        - app
        - gadget
        content: $SLOT(content)
        content: $SLOT(content)

publisher plays a role only on auto-connection. Anyway even if that wasn’t the case, I don’t think we should focus too much on policy for now, that is malleable if we have reasons to. The question is whether content itself is usable/not too brittle for the task at hand.

How to handle large optional components in a snap

With appropriate application design we can do plugins. This is not documented yet apart from a design forum post elsewhere. The key is to use the new content interface syntax involving the “source” section. This allows the new aggregation logic to kick-in.

I need to document this better.


I’m just a new user of the snap of gimp 2.10.8. I need to use my own plugins, and though I put them in /home/frohro/snap/gimp/110/.config/GIMP/2.10/plug-ins, they don’t show up.
Am I to understand that it is not possible to use my own plugins with a snap install of gimp? This is sad if true, because gimp and mypaint cannot coexist when installed from the package manager on Ubuntu 18.10. My workaround was to try the snap for gimp.


are you sure you are running revision 110 currently ?
it is better to use the current symlink there … i.e.:


to make sure you install into the currently running instance …

that said, if your plugins use any external bits that are not shipped inside the snap (some external interpreter etc), you will get problems with their execution … snaps (or their plugins) can not execute things outside of their snap environment.