Darktable Lua Script Manager

I’ve created script_manager.lua to install, update, enable and disable the darktable lua scripts. It’s available at GitHub - wpferguson/script-manager: Darktable script management solution.

Download it and copy it to ~/.config/darktable/luarc (linux and MacOS) or C:\Users<username>\AppData\Local\darktable\luarc (windows). Start darktable and script manager will be in the lower left pane in the lighttable.

script_manager uses git to install and update the lua scripts directory. On windows the git program location needs to be set in the configure tab. On MacOS it might need to be set, if script_manager can’t find it.

After the scripts are installed from the repository, you can enable or disable them with the click of a button. The scripts are divided into “categories” based on the subdirectory they live in under the lua directory.

For developers: You can create extra directories under the lua directory such as development, testing, etc. You can also create symbolic links to other places in your file system. When you are compiling you can click the enable button for the script you are writing. If it doesn’t load because of a coding error, you can just correct it and click the enable button again. You can repeat this until you fix all the syntax errors and the script loads. Changes after the script loads still require a darktable restart.




This is pretty amazing and will certainly lower the barrier to entry for a lot users!

Thanks, Bill …

I haven’t installed git on my current daily-use distro, so I “cheated” and just copied the text and named it script-manager.lua in my luarc folder, and required it in my luarc file.

The module comes up in lighttable fine, but I realise that my cheating was useless, because the script-manager itself uses git.

Is there any prospect of this changing in the future? Even if not, thank you for sharing your work. :bouquet::trophy:

Thanks for the work and the sharing. Sincerely.

There was an issue saving the enabled script preferences that has since been corrected, so if you downloaded it, please do so again.



1 Like

you only need git if you’re installing or updating. If you already have a copy of the scripts directory, script_manager should let you enable/disable scripts. I just tested it here and it worked fine.

The original version had more download options, but in order to make it cross platform and keep my sanity, I settled on git.

Thank you, Bill !

You’re welcome

big thanks

Thanks again, Bill. I tried your script a little bit and it works really well. I referenced him on darktable.fr/forum (in french) and on his chat. One of our members told me that under Mac the activated Lua are not kept at the end of the session.
I checked under Linux where it’s the same. I wonder why disable the Lua which is redundant because closing darktable will disable them?
Personally, I find that having to activate the Lua at each session is not a disadvantage and does not overload the export interface.

Tried it in Windows 10. Nice tool, but as Jean-Paul said it looses its settings at the end of the session so I have to manually activate every script in every session. That is a bit annoying.

It’s fixed in the current version. Just download it again and reinstall it.


I just downloaded the new script. It works, the activated Lua are not disabled when darktable is closed. Thank you.

Unfortunately it isn’t fixed for Windows. Same behaviour as before.

This is a marvellous idea, but I don’t understand your installation instructions. ~/.config/darktable/luarc is the text file where the different scripts are enabled. How should one copy script_manager.lua into that file? Do you mean open it in a text editor and copy the content into luarc after what is already there? Why not do it the normal way, which I tried and does not work for me? And copying the text into luarc does not work either, btw.
So please, teaspoon instructions for us who don’t use these things every day?

Believe it or not, this is what the instructions tell you to do:

  • Copy script_manager.lua to ~/.config/darktable/
  • Rename script_manager.lua to luarc

Yip, “script_manager.lua” replaces the original “luarc” :flushed:

*Or at least this is how I’ve got it working on my system!

This is correct. script_manager.lua is meant to replace the luarc file, not be copied into it. I’ll work on choosing my words better. :slight_smile:

You’re right. I “fixed” something that wasn’t broke and now it is :blush:. I’ll go unfix it so it works again.



So I placed script_manager.lua in ~/.config/darktable/, renamed the old luarc file to luarc.old and renamed script_manager.lua to luarc. All that happens when I start darktable is that all traces of any lua scripts are gone. What is it that I don’t understand?
Btw, I use Linux Mint 18.

In the bottom left pane of lighttable there should be a new module, script_manager. If you have the lua scripts already installed in ~/.config/darktable/lua, then script_manager will read them and create widgets to start and stop themscripts. If they are not installed, then script manager will display a screen to install the scriptsscripts . It sounds like you already have them installed, so it should just be a matter of enabling the scripts you use.