← Back to team overview

kicad-developers team mailing list archive

Re: Scripting hooks


While more extensibility is great. I can only say expecting the user to use
python exclusively for adding the new behavior like for issue #2339 is very
crude. Not everyone is a programmer or wants to be to draw a schematic. A
lot of functionality that's not overly specific should be considered
integrated in KiCad itself rather than turning KiCad into a strange python

On Tue, Jun 30, 2020 at 1:17 PM Eeli Kaikkonen <eeli.kaikkonen@xxxxxxxxx>

> This post is partly inspired by "Auto-generated backup files: are they
> useful?" but I have been thinking about this for a longer time.
> KiCad could benefit from a scripting hook system. There could be
> pre-hooks and post-hooks for certain actions. Let's take this backup
> file discussion as an example. One system of backups or file history
> may not make everyone happy. What if KiCad had hooks for Save etc.? It
> would call, let's say pcbnew_save_pre() and pcbnew_save_post() python
> functions which could do anything they want to do with the project. In
> this case it could create backup files. The script writer would decide
> how it would be done.
> It could even use a third-party git or svn python library or external
> program and make a commit every time the user Saves the document.
> Let's take another example which was problematic in the past. I don't
> remember the details, but I think an attempt to enhance the window
> titles was abandoned because it was somehow problematic. What if there
> was pcbnew_mainwindow_printwindowtitle_pre(arg1, arg2...) hook which
> would return a string from the python function? It would take possible
> parts of the window title as arguments.  The python function could
> form the title as it likes.
> Third example: pcbnew_plot_gerber_post() could rename and zip the
> plotted gerber files. See
> https://gitlab.com/kicad/code/kicad/-/issues/2076.
> Fourth example: https://gitlab.com/kicad/code/kicad/-/issues/2339.
> This is obviously something which is impossible to make to satisfy all
> use cases, but create_new_project_post() hook could create any folders
> the user wants.
> It's easy to see that only imagination is the limit, and this would
> take some needless responsibilities and decisions from the developers
> and would give freedom to the users. There could and often should be
> some reasonable default behavior, but the user could decide if it's
> enough. If the proper infrastructure (asset installer and repository)
> will be made, the users could share what they have.
> Eeli Kaikkonen
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp


Follow ups