Remote Control Darktable for Quick Editing

For a while now, I have been trying various ways of implementing Film Simulations in darktable. In my latest iteration, I made custom presets for color lookup table and tone curve, matched against a color checker. This seems to work well.

However, choosing from such a plethora of presets in multiple modules is a bit cumbersome. I considered using devices such as a LoupeDeck, StreamDeck, or a MIDI controller, but these are expensive, Linux support seems sketchy, and they are really more than I need.

So, how about using a smartphone instead? I found an app called Deckboard (Win/Lin/Mac), which can trigger keyboard shortcuts on the computer from an app on the phone:

This actually works really well! I simply set up keyboard shortcuts within darktable to trigger the film simulation styles, and put these shortcuts into Deckboard.

Download the darktable styles and icons here:
film sims.zip (1.2 MB) Creative Commons License

And it was a lot of fun (re-)creating these film icons! The Fuji ones are re-drawn from the X-Pro3’s sub monitor, the Ricoh ones are made up. I don’t love the “ISO AUTO” at the bottom of them, but I haven’t found anything useful to put there yet.

It would be even better to not rely on the (payed) deckboard app, but code up a little web server in darktable’s Lua scripting that triggers the styles directly. This could additionally toggle styles instead of just activating them, which would be useful for the dynamic range modes and shadow tones. But we’ll see if I actually find the time to do that.

At any rate, I found this useful and fun, so maybe you will, too.

8 Likes

Maybe something could be done with KDE Connect / GS Connect?

1 Like

Or DBus? No need for a phone that way, just a little app on the same computer as dt

After a bit of experimentation, I found a relatively simple way of integrating the film simulation panel into darktable’s UI:

Screenshot_20230314_164229
This panel is available in the lighttable and darkroom

With this, I can get a good chunk of editing done right from the lighttable. I will probably add a few more quick edit shortcuts, such as a few exposure compensation buttons and maybe a few white balance presets.

10 Likes

Nice!

Is there a chance you can share exactly how this can be done?

Do you have an automated method to recreate the styles or are you doing everything by hand? Unfortunately the Fuji application for applying the simulations does not work on Linux and I would love to easily apply some recipes on the computer.

Sure thing!

I’ve uploaded all necessary code to Github, and added some documentation in the Readme on how to do something similar on your own: GitHub - bastibe/Darktable-Film-Simulation-Panel

1 Like

The Lua panel is really a very cool idea. Styles are hidden a bit too much in the GUI of darktable unfortunately. They deserve a more prominent place.

I tried it, but unfortunately Darktable crashes after 2-5 times of clicking in the darkroom. On the light table it works without any problems.

It is due to
darktable.styles.apply(style, image)
If I comment out the line, then there are no more crashes, but then the style is also not applied.

Is it because of my darktable version? (Linux - dt 4.2.0)

Ok, sometimes it’s a good idea to read the README. I found

Yes, unfortunately, I have not yet found the reason for this crash, nor a workaround for it. Which is really a shame, as the panel is a joy to use when it works.

Actually… your response prompted a new idea: if darktable.style.apply does not work, but clicking the preset works, then why not use darktable.gui.action instead, and have Lua click the preset?

This workaround seems to work well! Check the repo for the latest version, which now works in the lighttable with the old code, and in the darkroom with darktable.gui.action.

2 Likes

Thank you very much!
This works very well.