A lot of what I’m going to say is personal preference, but maybe you’ll find it helpful.
One thing I change: in Digikam settings, under “Views”, “Preview” tab, “Raw images: Embedded preview.” This way you only see the same preview your camera shows when you look at a raw in Digikam. I don’t like the render that Digikam makes of raw files.
Make sure darktable is set to “look for updated xmp files on startup” if you use a darktable library file (more on that later)*. If you DO check this box, an issue to be aware of is when darktable starts and sees updated xmp files, it will open a second window to have you select and confirm what you want to have happen with them. The main window will not respond to any clicks at all until you do this. If this second window opens behind the main one when it starts, it’s not obvious why the program seems frozen. (At the end here, I’ll talk about how I avoid this whole issue now.)
I do all my managing, culling, tagging, labeling, everything in Digikam. When I want to edit a single photo in darktable, I can right-click the photo directly and select “open with” and pick the editor from the list. If I want to open multiple files, I just have to have them all selected, and make the same action.
(edit to add: if darktable is already running, it will add the new files to the already-open instance, at least on my system)
If they are not already imported into darktable, they will be imported with this action. I never import images within darktable’s interface.
Workflow wise, if I have a large folder with several images, and I want to sort them in a way I can see in darktable, I use color labels. Often what I use this for is, after culling, I’ll pick all the photos I want to develop in one session, and give them a yellow label in Digikam, which darktable can read. In darktable, I sort by color, edit the yellow labeled photos. Once done, I’ll change them to green within Digikam. I think darkable writes to a different part of the xmp file than Digikam does, so they don’t communicate freely back and forth. I just make all the label changes within Digikam. Getting them to do more would require much more coordination between different development teams as there isn’t really a strict standard with how to use xmp, and I don’t think that’s realistic right now. I think we’re lucky that darktable can read what Digikam does in the first place.
When I export from darktable, personal preference is to export into a subfolder of where the image was. You could, if you wanted to, export right back into the same folder, and in Digikam select all the images, right click, “Group” → “Group Selected by…” filename, time, etc., and Digikam will stack images together so you only see the top image of the group (it’s easy to show all grouped images without ungrouping them).
*later:
A little more advanced topic. You can run darktable without a library file at all. I only just recently found this out. If you add the command line argument --library :memory:, darkable won’t write or read from a database. It will rely totally on the xmp files alone. That avoids the “do you want darktable to read from changed xmp files” dialog window annoyance I mentioned above.
It’s like starting with a clean catalog every time you open it. You can do as complex a search and filter as you want in Digikam, select the entire group of photos and open them all in darktable.
Darktable will still read and write xmp files like normal. I love using it this way.
If you need help to add a command line switch, let us know what kind of operating system or desktop environment you’re using and one of us should be able to help you get squared away. That way, it will work directly from the menu instead of having to open darktable from an actual command line.