Search code examples
gimpgimpfu

How to create my own prefix for my plugins?


Gimp says this when it fails to install my python plug-in:

Querying plug-in: '/home/jorge/.gimp-2.8/plug-ins/enumerategrid.py'
GIMP-Error: Plug-In "enumerategrid.py"
(/home/jorge/.gimp-2.8/plug-ins/enumerategrid.py)
attempted to install procedure "python-fu-enumerategrid-plugin" in the invalid menu location "<Desarrollo de juegos>/rejillas/Enumerar".
Use either "<Image>", "<Layers>", "<Channels>", "<Vectors>", "<Colormap>", "<Brushes>", "<Dynamics>", "<Gradients>", "<Palettes>", "<Patterns>", "<ToolPresets>", "<Fonts>" or "<Buffers>".

Cool. But, how do you create a new prefix for your own plug-ins? It is even possible?

EDIT

seems that using the <Image> prefix makes the menu Desarrollo de juegos appears on Gimp's menu, which is the thing I want. That's the intended behavior of <Image> prefix?


Solution

  • As for the original question:

    No, it is not possible to come up with other prefixes like these - they are hardcoded into GIMP Python -- But you can create a plug-in that takes no such prefix. If youd'use just: "Desarrollo de juegos/rejillas/Enumerar" (without the <...>) a new "Desarrollo de juegos/" menu would appear on your window.

    Using the prefixes, however, not only can make the plug-in show-up in a specialized sub menu (if you use <Gradients> for example, it will show up in the context menu in the Gradient list dokcable dialog) - but makes GIMP try to automatically insert the starting parameter(s) for your plug-in.

    So, a plug-in with the <Image> prefix which takes an image as first parameter and a drawable as second parameter, will automatically receive the current active image and active drawable (usually a layer) as the first two parameters. The plug-in dialog won't generate an entry for those 2 parameters. Similarly, a plug-in in <Gradients> that features a pf_gradient first parameter, will have be called with the gradient on which the user right-clicked to get the gradient context-menu.