Transfering Images to Computer Issue


we are actually trying and planning the switch from Windows and Lightroom to Linux and darktable.

One issue we discovered yesterday, that I could not solve yet using Linux and darktable, and it is about transferring the images to a PC/Laptop while shooting in the studio: (We have a Nikon D610 and D810 here)

  1. Via Wifi
    Having used Win/LR we could use an EyeFIMobi Pro Wifi SDCard that worked together with lightroom. I read and tried a little about the debian-package “eyefiserver”, but I am not sure if this actually still does work?

  2. Via USB-Cable:
    Using the EyeFi Card would be a nice-to-have, but working with usb-cable would also be ok for us. Using Lightroom we just connected the Camera to the PC and in Lightroom every new taken image opened in Preview. This is the workflow we wanted to imitate with FOSS.

Now the problem with Linux and darktable is: Tethered shooting in darktable works, but this is not want we want, as in this case we can only control the camera via darktable (pressing the shutter, etc). So what we would need is a kind of script, that would import every new taken photo from the camera (kind of gphoto2 does…), put it to a folder and preview the newest photo. I read and looked about lua scripts, but did not find anything that would work for us in this way.

So my question is: how could we realize it, that whenever a photo with a dslr is taken, it is transferred to a linux computer and displayed/preview in darktable? (or, if not possible with darktable, any other software)

Already: Thanks for your help

Kind regards


(Tobias) #2

Have a look at this post, @wpferguson and @calgarykev are workin at this problem:



Hi Tobias,
I am going to check this lua script this evening, if this could work for us, thank you.


(Bill Ferguson) #4

The last version relies on code that is merged in git master, but not released yet. So if you want to use the last version I sent @calgarykev, then you need to compile and install darktable from source.

I need to hook my camera up and do some testing and see what methods I can think of to get the image from the camera to the directory.



(Morgan Hardwood) #5

Moved to #software:darktable

1 Like


hi @wpferguson
I am not 100% good at englisch, but did I understand it right, that you were able to build a functioning lua script for this “auto import issue” ? At which url could I find it , is it that one ?

And did I understand it right, that your lua script wont work with actual darktable 2.6.1 but only with next coming 2.7?

Already, thank you all for your help to this point.

This is really an amazing community.


(Bill Ferguson) #7

The FlashAirSync script is what @calgarykev is using to copy the files from his camera to a directory.

My script reads the directory and imports new files into darktable. Once I get all the bugs worked out of this, then I’ll look at trying to get the files from the camera.

The script uses a feature that is only in the 2.7 build of darktable. It might get released in 2.6.3. I’m not sure. The feature changes the displayed image in darkroom view. I use it to display the latest imported image in darkroom view.

I have a version of the script that works with 2.6.1. The only difference is displaying the image in darkroom view. In order to do that I have to switch back to lighttable view, select the image, then change back to darkroom view. It’s annoying, but it works.

I need to fix some bugs in the current version, then I’ll put out another version. Right now there’s not a URL, but I can send it to you.




Hi Bill,

I think it would be super awesome if there would be such a working luascript in the future that we could use, especially that one that would import it from the camera. But as we are more that kind of “stable users” we could / would not handle to work with working releases like 2.7 or so.
So, if, in the future, your script would be ready-to-use, we would be more more more than super happy with it.

Thank you and kind regards


(Bill Ferguson) #9

Hi @pragomer,

I’ve started looking at getting the data from a camera. I created a directory, ~/testtether. I imported that directory into darktable. I pointed the filetether script at it, gave it a 4 second interval, then started it. I opened a terminal and changed directory to ~/testtether. I connected my OLD EOS 10D to the computer. I unmounted the camera from the file system so that I could control it with gphoto2. In the terminal I used the command gphoto2 --capture-tethered which runs until you control-c it. I then snapped away. After each shot gphoto2 copied the raw file to the ~/testtether directory, then my script saw it and imported it into darktable and displayed it. My camera was connected via USB. I’m guessing that the camera only has USB 1 or 1.1, since it took almost a minute to transfer a 10MB file.

So, there is a solution to your problem. It is dependent on features in the current development version of darktable. Those features may be in the 2.6.2 release.

In the meantime I’m looking at other scripts to feed the files to filetether.lua, such as executing the gphoto2 --capture-tethered command under control of a script. I’m also looking at other methods such as reading the camera file system.



(Colin Pittendrigh) #10

This is hard coded for me in at least two ways.
It could be edited for your situation.
With USB and my Sony card reader the camera ALWAYS
gets mounted as /media/myloginname/cameraname/whatever/files

So I keep the following ‘cmnt’ scrip in my ~/bin/ directory, which copies from the card to the current directory.


#mkdir jpegs – mkdir jpegs is optional custom stuff

cp /media/sandy/"NIKON D7000"/DCIM/*/* .

Another useful script is ~/bin/mmkdir


if [ -n “$1” ]

 mkdir -p `datesuff`/raw1/tifs 
 mkdir -p `datesuff`/raw1/jpegs 
 echo $here/`datesuff`/raw1 
 cd $here/`datesuff`/raw1 

…which relies on ~/bin/datesuff

tmp=`date | awk '{print $2, "_", $3, "_", $6}' | sed 's/ //g'`

echo “_$tmp”

=========== the following makes a directory like
and then changes directory into raw1, and then imports the files:
The dot and space before mmkdir is required for change directory part to work.

. mmkdir

…all of the above requires a bin directory in your home
directory, and on having bin in your path, and upon all three scripts inside your bin direcotry:

using bash isn’t for beginners perhaps.

cd <enter> (go to your home directory)
mkdir bin

…now put all three scripts in the bin directory
chmod -R +x bin

now edit .bashrc to it has the line
export path=${PATH}:${HOME}/bin

now source your .bashrc and it’s ready to go
. .bashrc <enter>