Two computers, two libraries, questions

You’ll correct me if I’m wrong, but what I gather so far is:

  • you want a separate installation on a laptop, where you can download new photos to the laptop and work on them;
  • on the laptop, you want the same configuration as on the main system, including a list of all available/predefined tags, styles, and presets;
  • the downloaded photos must then be transferred to another system, with any changes (including metadata) transferred as well;
  • you want to be able to use the main system’s library from the laptop when at home, in addition to the library local to the laptop.

The last point is the tricky one. As far as I know, dt can only access one library from a given instance, and can’t merge two libraries. So I’m going to ignore that point

For the first three:
you know where the database files are located (as you examined them), so you can transfer the data.db manually (not sure if that works, see below for an alternative).
Same for the darktablerc file, copying this should work, apart from some history directories and such (those not existing isn’t an error).
If you have user-defined short-cuts, you may want to copy the shortcutsrc file as well.

Once that is done, you should have access to all the tags, styles and presets you defined for the main system. You will have to manually ensure that the laptop version stays sync’ed with the main system

Then you would need two shortcuts to start dt:

  • one for “on-the-road” use, which uses a local library (I’d go with “–library :memory:”);
  • one for “home” use, where you use the shared library (“-library <path>”).
    You could use the default location for the image library on the laptop, but as the images on the laptop change often, that would need regular cleanup. Downside of “–library :memory:” is that you have to re-import at every dt session.

Under linux, it might be possible to use a shell script to decide which of those two to use, depending on whether the main library is visible. Not sure if this is possible under windows.

To transfer metadata and edits, I’d make sure sidecars are always written, and I’d transfer the images manually from the laptop to the main system, followed by an import (“add to library”) to get the images in the main library.
Make sure to transfer the sidecars as well… (easy for me: I use the “when shot” date to organise the raw files in directories, so I could just transfer the full directories from the laptop to the main system).

If you don’t want to copy the data.db file, you could try to create a “dummy” image with all tags attached and import that image on the laptop installation. This would use the sidecar to store the tag tree. User-defined presets and styles can be exported from one machine, and then be imported on another installation.


If all of the above does not correspond to what you want, please state as precisely as possible what you want to achieve. We seem to have some problems in understanding your use case.

Dt has “copy locally” functionality (that I don’t use and know little about) that might do this kind of thing?

Here’s what I’m going to try for a while:

  • Copy data.db, darktablerc, and library.db f rom config directory in $(USER)/AppData/Local/darktable to samba share, z:\photos\dt-config
  • when at home on either desktop or laptop, start darktable with a shortcut and args:
    darktable.exe --configdir z:\photos\dt-config --library z:\photos\dt_config\library
    Although it looks like the --library option is not necessary - not sure yet. Note that --datadir is not the correct option.
  • I’ll also copy the data.db to my laptop config directory before disconnecting from lan. This will give me any updated tags.
  • When using laptop disconnected I’ll start it with a shortcut like this:
    darktable.exe --library :memory:
    Using the default user config directory
  • Then, when back at home, start laptop using the shared dt-config shortcut, and import any new photos, with dt configured to read xmp files on import. I’m hoping this will also update the shared data.db with any new tags.

Thanks for all the suggestions. I’ll report back if there are issues with this workflow.

1 Like