gphoto2 + F-Spot = win

Whilst I’m waiting for my MacBook to work its way from Shanghai to my house, depending of course on when Iceland stops its geological sneeze or the European aviation authorities decide that the danger has passed, I decided to see if I could find the best solution for tethered shooting under Linux.

The advantage to tethering, if you’re not aware of it already, is that because the images are displayed on the screen of your laptop it’s much easier to check that they’re up to your standards. It’s far easier to check focus, notice an over-busy background or to make sure that your lighting levels are correct on a full-sized screen than it is staring at a three-inch LCD on the back of your camera.

It turns out that every solution I could find on Google utilised two things: gphoto2 (a command-line utility for interacting with cameras that offer PTP interfaces) and some image viewer or other, usually Eye of Gnome or gThumb.

Now for me, neither EoG nor gThumb were what I needed. The problem is that I shoot almost entirely in RAW. gThumb takes ages to render RAW images and EoG only ever seems to present a 160x130px thumbnail of them. Obviously this isn’t conducive to a smooth workflow.

I tried several things, including extending my gphoto2 hook script (I took the scripts referenced in this post and modified them to suit my needs) to only display JPEGs in the viewer and then shooting in RAW+Basic, but I couldn’t get anything to work satisfactorily.

Then, finally, after a bit of digging around in the gphoto2 man pages and playing with different image viewers, I hit upon the following solution:

gphoto2 --capture-tethered --hook-script=/path/to/view/script

Where the hook script calls:

f-spot --view $FILENAME &

For reasons I haven’t yet been able to discern, F-Spot is orders of magnitude faster than gThumb at rendering Nikon .NEFs. So although it’s not Lightroom 3, this will serve my tethering needs, at least for the time being.

I’ve put my version of the tethering scripts up on Launchpad if anyone wants them. To grab them, just run:

bzr branch lp:~gmb/+junk/tethering

And Bob’s your uncle.