Each image of the current collection is represented by a thumbnail in the lighttable view. darktable keeps a cache of thumbnails on disk, a so-called mipmap cache, the size of which can be adjusted in the core preferences dialog (see Section 7.2, “Core options”).
Thumbnails get created whenever darktable imports an image for the first time, after an image has been modified in the darkroom, or when revisiting an “old” image whose thumbnail has already been dropped from the cache.
When darktable imports an image for the first time, there are two possible sources from where to take a thumbnail. darktable can either try to extract an embedded thumbnail out of the input image – most RAW files contain these kind of thumbnails generated by the camera – or process the image by itself using default settings. You can define how darktable gets its thumbnails in the gui preferences dialog (see Section 7.1, “GUI options”).
Extracting an embedded thumbnail from the input image has the advantage of being very fast. However, as those thumbnails were generated without knowing your display profile, the colors may be rendered incorrectly. You may notice differences when you open the image in the darkroom view, where colors are corrected for your monitor.
As the thumbnail cache has a pre-defined maximum size it will eventually get filled up. Then if new thumbnails are added, old ones need to be dropped. This typically passes unnoticed to the user unless a too small cache size is selected. In that case you might observe adverse effects like continuous regeneration of thumbnails each time you move in your collection, flickering of thumbnail images, or even darktable becoming unresponsive while continuously generating new thumbnails and dropping them again. A good choice of the cache size is 512MB or higher. Please mind that the inherent limits of 32-bit systems will force you to go for a much lower cache size (see Section 9.1, “darktable and memory” for more details on these limitations).
If for some reason darktable is not able to generate a thumbnail, it displays a skull. Don't panic!
There are three main reasons for this to happen.
One possible cause is that the input image has been renamed or physically deleted from
disk. darktable remembers all images ever imported, as long as they have not been removed
from your database. In case darktable wants to create a thumbnail but is not able to open
the input file, a skull is displayed instead. Users are advised to remove images from the
database (see Section 2.3.6, “Selected image(s)”) before physically
removing them from disk. Alternatively you may occasionally run the script
purge_non_existing_images.sh from darktable's toolset to clean-up
Another possible cause is sometimes darktable encounters an input image having an extension that seems valid for darktable but which has a file format that darktable does not support yet. darktable tries to process the image but is not able to get the job done.
The third possible cause for getting skulls is memory shortage: If darktable runs out of memory while generating a thumbnail, it will warn you and display a skull – this can happen if darktable is run with suboptimal settings on a 32-bit system. Please consult Section 9.1, “darktable and memory” for more information.