Linux photography series

  • Rant about my first impressions and problems letting old habits go.
  • Round 1 is about my first raw edits using Darktable.
  • Round 2 discusses managing the developed pictures with Digikam.
  • Round 3 focuses on exporting images from Digikam and publishing them in a gallery.

I now made up my mind and decided to switch from “Lightroom thinking” to “Multiple originals thinking”. In Lightroom your raw file is the base of all actions and the settings getting applied during the different exports. Now with multiple tools in mind, you will see the raw file as digital negative and the developed full resolution jpg as original to work with. Having done this mindshift makes it much easier to go on and look for the right tool.

Now let’s have a look what my basic requirements for managing my images look like:

  • organize / import folders
    • do not change structure during import
    • import images inplace
    • read metadata from images
  • Nondestructive
    • write settings to database
    • write settings to sidecar
    • do not change original file (in general)
  • Tagmanagement
    • Add / remove tags
    • Build a Tag tree to group similar tags
    • Easy way to apply tags to images
    • Export assigend tags and update image files (not just sidecars)
  • Diferent Filter
    • By rating
    • Date / Timeline
    • By Tags
  • Export plugins
    • Piwigo - Today this is the gallery web application I use the most
    • Filesystem
    • …. TBD
  • Face recognition (nice but optional)
    • Detect faces
    • Show possible matches
  • Virtual albums (nice but optional)
    • One physical image
    • assign it to multiple virtual albums withou file duplication

available FOSS applications

There are many applications available for many different kind of users with different requirements. I found e nice list on PIXLS.US . I have no time to look at all of these tools. I had a really short look at Geeqie, Shotwell and Digikam. So far this blog post is not a full review but just my first impressions on trying these applications to manage my library. Also this is my opinion today and this may change over time.


geeqie screenshot

So the quote from the official Geeqie Homepage .

Geeqie is a lightweight image viewer for Linux, BSDs and compatibles. It can be used as a simple, fast, database-free image viewer, but equally it can be used to manage large collections of images.

So I tried it and for browsing images and viewing them, the application is quite ok. I didn’t have a really close look at it, as it felt a bit unintuitive to me. If you just have a few images, this tool will probably be good enough for you. For my needs with thousands of images, this does not feel right.


shotwell screenshot

The official page is located here .

Shotwell imports the images into an own database. There it provides quick access to the assigend tags, a timeline (events), the last import and the whole library. It looks clean and nicely organized. This is also the default image viewer used by gnome / ubuntu. The really nice thing is that changes are made nondestructive in general. So if I crop an image, it will not touch the original file and store the edit in the database. This getting closer but my feeling is still not that this will be my way to go.


digikam screenshot

The official page is located here .

When you open digikam for the very first time, a small wizzard help you to set up the local library and path for the sqlite database where all the information get stored. After this wizzard, you see an application with many toolwindows and functions. It is quite overwhelming and for sure not the easiest tool to start. But there are some features I really like and t his is worth the initial learning curve.

So the tags of darktable are recognized like in shotwell. The internal database generates a timeline like shotwell as well. But then it starts. Digikam provides facedetection and this is one of the importand features for me. I do not name and trace every person I have on my images. But I like to mark my family and good friends on the pictures I take. So this feature comes in handy. And it works quite well. Another thing is that I may have multiple independen collection stored in different locations.

Another nice feautre is that I am able to use my mysql server to host the digikam databases. Yet this feature is still considered experimental but works quite well so far. Digikam even provides a migration tool to switch between sqlite and local files and mysql. So using mysql has the advantage that the database backup is done automatically by my backup scripts on the server. The second advantage is that in theorie the database may be shared by more than one host. I did not try this so far and it does not look that I will.

The only thing I do not like so far is the possibility to assign an image to more than one album without duplicating the file. Digikam gives me the support to create a new albumb and move the images to there but I only have two options. Copy the file or move the file. It would be nice if I have a virtual album on top of the physical folder album. I often use the same image multiple times and I do not like to duplicate the file for that purpose. I’ll try if something like this can be done with tags. I have not tested this so far.

After adding some images I have now a total of 15'500 images imported. So far the mysql implementation works fine, even if I think the data access could be optimized to reduce the number of queries issued to the database.

Workflow - round 2

There is a completely different mindset in the Linux world than in the windows world. In Windows you try to have one tool to rule them all and in Linux you have one tool for one task. Ok ok, I admit that this is not always that strict anymore. Anyway, I have to rethink my Lightroom workflow and how to structure it. My workflow is still not complete yet. I just started testing the first parts of it. In this part I will show my new steps I identified so far.

  • Raw development to export - see round 1
  • Import full res pngs in Digikam
  • Optionally let face detection process the images
  • Assign tags
    • Verify event (shooting working name) tag
    • Add location tags (if available / known)
    • Add person tags found by face detection
    • Add additional descriptive tags to make the picture easy findable
  • Optionally enrich metadata like title / description
  • Let digikam update the metadata within the sidecars and png files (the only modification done to the files)
  • …. TBD

wrap-up and outlook

So to this point I have the images developed, enriched the metadata and ready for use. I will now have to test the export features like piwigo export or the creation of a static html gallery or a video slideshow. So far I am really close to the point where I left Lightroom.

One thing I really like with this approach is that I do not have to write custom scripts to realize this workflow. Everything works out of the box with the given tools and this is quite important as every line of code I do not have to write is a good line :-D

So in my next step I will look closer at the export features and how to handle my different scenarios and tasks on exporting and distributing my pictures. At this point I hope to find solutions to automate some steps I did not have automated using Lightroom.

I also will start Lightroom for one last time to make sure all images are exported and then I will close my account and call myself Adobe free again :-D


I changed the export from jpg to png to have a lossless format for storing the developed images. This makes it easy to use digikam to keep the metadata within the png up to date.