It seems like the current capabilities of gimp plugins are more restricted than the capabilities of existing tools in gimp, since plugins can only add tools through menus rather than adding them to the toolbox, and cannot directly interact with canvas coordinates. To me, this makes the UX options of gimp plugins feel lacking. How does gimp handle plugins on the backend? What changes would be necessary to provide stable access to the toolbox for plugins?
I’m not a developer, I’m an artist hacking GIMP out of necessity and for fun, so take this with a grain of salt.
Plug-ins are limited, the coords issue has been discussed.
The plug-ins are designed to be separate from the GUI, so they cannot modify it directly. That’s due to a design decision. I’ve been adding PDB calls to change the GUI as needed in a fork.
For example an eraser-toggle.
Regarding your last question, that sounds complex to me. Take a look at how the toolbox code works and see if it can be adapted into a new PDB call. There’s a very low chance it would be accepted into GIMP, so this would be for a fork only.
This is really helpful, thank you! I will have to take a look at that discussion, I wasn’t able to find it previously. I’ll take a look at your fork and see if I can adapt it to my application, but I’m not very strong in C yet. Do you know if there was any record of the discussion behind that design decision?
You’re welcome! I don’t know much about the history, but it does make sense to have limits on what plug-ins can and can’t do. Changing those limits in GIMP itself is mostly a political process. Doing it in a fork, on the other hand, is just plain fun.
I get by with a bit of C, but I struggle with the maze of indirection and layers of abstraction in the GIMP codebase. I prefer a more functional style and generally avoid C++ when I can. That said, Claude AI handles C++ abstractions and complex dependency chains surprisingly well, even if it occasionally fumbles basic things.
Using it has transformed the whole process for me. Instead of spending hours tracing through code to learn some convoluted relationship, I just ask it to do what I need. Those complex structures and language fluencies fade if you don’t use them constantly, and I don’t. After working on a few pictures, it’s all a foggy maze again. So thankfully, I can lean on Claude. You still have to put in the hours of design and testing, and for now, it still needs heavy guidance, but it frees you from the bureaucratic parts of the process.
This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.