darktable article lede image
darktable 4.2.0 released
Chris Elston

darktable 4.2.0 released

We’re proud to announce the new feature release of darktable, 4.2.0!

The github release is here: https://github.com/darktable-org/darktable/releases/tag/release-4.2.0.

As always, please don’t use the autogenerated tarball provided by github, but only our tar.xz file. The checksums are:

$ sha256sum darktable-4.2.0.tar.xz
18b0917fdfe9b09f66c279a681cc3bd52894a566852bbf04b2e179ecfdb11af9  darktable-4.2.0.tar.xz
$ sha256sum darktable-4.2.0_x86_64.dmg
89308cb7222ec0d0b539771dd90284e98b35bae4b53c8f3aa1b2feb861536b82  darktable-4.2.0_x86_64.dmg
$ sha256sum darktable-4.2.0_arm64.dmg
7cbc03cc0e9a4a1769e4321815ed99384de8c063990eb5d746ffbd7599e32193  darktable-4.2.0_arm64.dmg
$ sha256sum darktable-4.2.0-win64.exe
748e617d36f810890fcc7829fdf0e9999da2906b20293a2ac919808f80709e27  darktable-4.2.0-win64.exe

When updating from the stable 4.0.x series, please bear in mind that your edits will be preserved during this process, but the new library and configuration will no longer be usable with 4.0.x.

You are strongly advised to take a backup first.

Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please read this post on how/what raw samples you can contribute to ensure that we have the full raw sample set for your camera under CC0 license!

Since darktable 4.0:

  • Almost 1411 commits to darktable+rawspeed
  • 409 pull requests handled
  • 60 issues closed

The Big Ones

The following is a summary of the main features added to darktable 4.2. Most of these features are described more fully in the user manual.

  • New Sigmoid display transform module, which can be used in place of the filmic and base curve modules.

  • Two new algorithms are provided in the highlight reconstruction module: “inpaint opposed” and “segmentation based”. The “inpaint opposed” algorithm has proved to be very stable and provides good results in many images, so it replaces “clip highlights” as the new default algorithm.

  • The pixelpipe used for image display in the darkroom view has been reworked so that it can be used elsewhere (darkroom view, second display window, duplicate manager, style preview, snapshot routine). This has allowed for code de-duplication as well as enhancement of many of these features (see below).

  • The second darkroom image window has now been enhanced to support both the focus peaking and ISO-12646 color assessment modes.

  • The snapshot module has been entirely reworked so that, instead of using a fixed screen capture it now uses a dynamically generated view using the new pixelpipe functionality. This means that it can now be zoomed and panned with keyboard/mouse.

  • The duplicate manager previously used a different pipe routine to calculate its previews (i.e. when long-pressing on a duplicate image thumbnail) which often meant that the displayed duplicates differed from the main darkroom view in subtle ways. Use of the new pipe routine now means that these previews will be identical to those produced during darkroom editing.

  • It is now possible to preview the effect of a user-generated style on an image before applying it. Simply hover over the style name in either the lighttable styles module or the darkroom quick-access menu and a new tooltip will appear, showing the image with the style applied along with details of the modules that are included.

  • Some cameras record lens correction information within the image EXIF metadata. The lens correction module has been enhanced so that it can extract this data and use it to correct lens distortions.

  • darktable is now able to read and write JPEG XL images

  • Processing and utility modules have been altered so that if a module is not entirely visible when expanded, it will be automatically scrolled until the entire UI is visible on screen.

    For users who currently use the “scroll to the top when expanded” preference setting to achieve this effect, this change may provide a better alternative.

    As part of this change, a new animation effect has been added when expanding/collapsing modules. The speed of the expand/collapse animation can be controlled via a preference setting (preferences > miscellaneous > duration of ui transitions). Set this to zero to disable the animation.

  • The pixelpipe caching functionality has been completely overhauled. More cachelines are used with an improved hit-rate while controlling the total amount of memory used, leading to a significantly faster interface.

  • The slideshow has been rewritten for a better user experience. A small preview is displayed while the full image is computed to provide feedback to the user that something is being done in the background.

  • A new drop-down menu has been added to the top filter bar to allow filters to be easily added and removed. Some range widgets have been removed from this list as they are not easily readable on the top bar.

  • The UI of the range rating filter widget has been reworked for better readability. This revised widget is designed to be easier to use and more efficient.

Other Changes

  • Added support for manipulating shapes without using the mouse scroll-wheel (for tablet users). The mask manager has been enhanced with a new collapsible section containing controls for changing shapes properties.

    It is also possible to change a property that is shared by a group of shapes.

    The circle and ellipse shapes have also been enhanced with new on-canvas controls to change the mask size and feathering.

  • WebP read support has been added.

  • Embedded ICC profiles are now supported in exported WebP files.

  • Double-clicking on a notebook tab now resets all widgets within that tab.

  • Regional date/time format is now supported in thumbnail tooltips.

  • Lua commands are displayed in a widget’s “action” tooltip.

  • The SSE code path has been removed from the white balance and output color profile modules as compiler defaults now provide a similar speed.

  • Added support for JFIF (JPEG File Interchange Format) file extension (which is an extension of the JPEG standard).

  • The preference to auto-apply a sharpening has been removed. For users who still require this functionality, it can be easily achieved with a user-generated auto-applied preset.

  • Added support for updating existing pictures in Piwigo export.

  • All white balance presets have been migrated to an external JSON file. This should not affect the module’s operation.

  • The preferences to set the layout of the “color balance module” and the colors of the “white balance” module have been removed from the global preferences dialog, as these controls are already available directly within the respective modules.

  • Improved profile support for AVIF & EXR format. Also relax AVIF reader support by not requiring full compliance.

  • The current collection image count is now shown in the top bar beside the image filters meaning that it is available even when the top hinter area is hidden.

  • Attempt to obtain the color-space for PNG files from the cICP chunk. This was added in a recent revision of the PNG spec, so we take advantage of it, if present.

  • Reading of 16-bit half float for the TIFF format is now undertaken using the Imath library.

  • The format and storage parameters in the export module can now be mapped to shortcuts.

  • Introduced balanced “OpenCL vs CPU” tiling. This makes it possible to use CPU tiling if there is not enough memory on the OpenCL card (which would require a lot of tiles to be handled on the card). In the end, the large number of tiles plus the overlapping area would make the use of the OpenCL code path slower (or much slower) than handling the image without tiling on the CPU.

  • In preview mode (when pressing Ctrl+w) the image information overlay display block is no longer shown by default. Moving the cursor within the top half of the preview image will cause the overlay to appear, and it will then disappear again after a brief period.

  • Light patterns are set for Behringer b-control midi rotors (BCR2000/BCF2000)

  • Fixed reading of EXIF metadata when importing EXR files (if desired, existing files must be re-imported, as it is not possible to refresh metadata).

  • Added support for scrolling through a module’s presets using shortcuts.

  • Panels now use “natural sizes” by default, meaning that their initial size adjusts according to screen resolution.

  • The geo-tagging module now better supports narrow side-panels by wrapping rather than ellipsizing text.

  • More actions have been added to the main help screen (displayed by pressing the h key).

  • The lensfun library is now a mandatory dependency. This ensures that all darktable builds correctly include the lens correction module. This also means that an edit made using this module won’t be inadvertently lost due to missing build dependencies.

  • It is now possible to assign shortcuts to the “currently focused” processing module. This allows a common set of shortcuts to be created and reused in multiple modules simply by focusing that module. For example a single key shortcut applied to the “first slider” will affect the “exposure” slider when the exposure module is focused, and the “rotation” slider when the “rotate and perspective” module is focused. Similar functionality can be used to affect the “nth” slider, combobox, button or tab as well as the focused module itself.

  • Right-clicking on a module header in the quick access panel now allows more widgets from the same module to be quickly added. The tooltip and icon show whether those widgets are currently hidden in the full module.

Bug Fixes

  • Properly use the display color profile in the slideshow view. This was missing, meaning that images were ignoring the color profile and were displayed (very) differently than in the lighttable or darkroom views.

  • Properly honor a module’s on/off status in a style. This means that styles can now be used in the export module to disable a module otherwise enabled in the history stack.

  • Fix bauhaus popup size and position.

  • Fix the name of the “iop order” on reset.

  • Do not display deprecated module actions in the shortcuts section of the global preferences dialog.

  • Fix the positioning of some bauhaus widgets on Wayland.

  • Fix performance issue when importing large folders where XMPs contain a lot of metadata.

  • Fix some missing GUI updates in the liquify module. In some cases, changing the strength of a node in a curve or line was not properly updating the displacement values.

  • Fix bad interaction between the color assessment mode and the side panels.

  • Fix infinity focus display in the image information module.

  • Fix translation of retouch module toast messages.

  • When importing images, retain the currently selected folder/filmroll mode in the collections module if one of these modes is currently active. If another collection mode was active the import switches back to filmroll mode (as before).

  • Fix Lab conversion in TIFF import.

  • Fix highlights visualization in all recovery modes.

  • Fix X-Trans highlight reconstruction visual indicator.

  • Fix undo/redo after a style is applied via a shortcut.

  • Do not rebuild the whole tree when deleting or editing a preset in preferences. This provides better UI stability.

  • Fix broken refresh of the mask manager when changing images.

  • Fix mask selection after continuous mask creation.

  • Fix name and tooltip in demosaic preferences so it is correct for all types of sensor.

  • Remove the automatic check for OpenCL headroom - it was causing more problems than it solved.

  • Fix non-blinking cursor in the darkroom module search bar. This was making the search bar look as if it was inactive.

  • Properly record the libraw black level.

  • Fix the state of some UI buttons in the retouch module when switching images.

  • Fix selection of unaltered images.

  • Fix keyboard shortcuts so that they can be applied to widgets in a collapsed section of a module.

  • Fix typo preventing proper variable expansion $(FOLDER.PICTURES).

  • Fix PNM loader (could display broken images and always used wrong colors).

  • Fix drawing color picker area at the edge of images so that the editing action is no longer lost when the mouse goes outside the edge.

  • An old bug in the cache handling has been fixed. This could have caused a missing display refresh after parameter changes and even some crashes while in the darkroom view.

  • Fix some toggle buttons whose UI state was not properly updated.

  • Fix check of temperature coefficients for displaying the selected presets.

  • Fix fast-pipe support in some modules for the second display window.

  • In the quick access panel, parameters are now hidden if they are also hidden in the full module (for those parameters that conditionally display based on the state of other parameters). This even works if those parameters are changed from another widget in the quick access panel.

  • Slightly improve the blue color label for better visibility in the dark theme.

  • Fix navigation window zoom indicator label display. It was sometimes cut on the right or bottom or displaced within the window.


  • API version changed to 9.0.0

  • darktable.gui.libs.filter.sort|sort order|rating|rating comparator functions removed

  • filename removed from dt_lua_snapshot_t data type

  • darktable.gui.libs.snapshot now updates the screen after changing direction or rotation

  • lua snapshot datatype correctly retrieves snapshot name


  • With the support of JXL, AVIF and EXR for export, selecting specific metadata (eg. geo tag, creator) is not currently possible. For formats JXL, AVIF and EXR, darktable will not include the metadata fields unless the user selects all of the checkboxes in the export preference options.

  • In order to support the correct display of numbers in darktable, the minimum supported Gtk version has had to be increased to 3.24.15. For people who need to build darktable with an older version, this can be supported by reverting the following change: remove line 241 of darktable.css file on your system. See: https://github.com/darktable-org/darktable/issues/13166

Changed Dependencies


  • Bump Gtk minimum required version from 3.22 to 3.24.15.

  • lensfun is now a mandatory dependency, not optional. Supported versions are stable releases (e.g. 0.3.3), not alpha 0.3.95 pre-release or master branch.


  • Bump libavif minimum required version from 0.8.2 to 0.9.1.

  • New optional dependency: libjxl, minimum required version 0.7.0.

RawSpeed changes

Camera support, compared to 4.0

Base Support

  • Canon EOS M2
  • Fujifilm FinePix HS50EXR
  • Fujifilm FinePix S6000fd
  • Fujifilm X-H2 (compressed)
  • Fujifilm X-H2S (compressed)
  • Fujifilm X-T30 II (compressed)
  • Fujifilm X-T5 (compressed)
  • Leica D-LUX 6 (4:3, 3:2, 16:9, 1:1)
  • Leica M Monochrom (Typ 246) (dng)
  • Nikon 1 J4 (12bit-compressed)
  • Nikon 1 S1 (12bit-compressed)
  • Nikon Coolpix P7700 (12bit-compressed)
  • Nikon D1H (12bit-uncompressed)
  • Nikon D2H (12bit-compressed, 12bit-uncompressed)
  • Nikon D3S (14bit-compressed, 14bit-uncompressed, 12bit-compressed, 12bit-uncompressed)
  • Nikon Z 9 (14bit-compressed)
  • Olympus E-10
  • Olympus E-M10 Mark IIIs
  • Olympus E-P7
  • Olympus SP570UZ
  • Panasonic DMC-G2 (4:3, 3:2, 16:9, 1:1)
  • Pentax K2000
  • Pentax K200D
  • Ricoh GR II
  • Samsung NX mini
  • Samsung NX10
  • Samsung NX11
  • Samsung NX20
  • Samsung NX2000
  • Samsung NX5
  • Sony DSLR-A380
  • Sony DSLR-A560
  • Sony ILCE-7RM5

White Balance Presets

  • Fujifilm X-T5

Noise Profiles

  • Fujifilm X-E4
  • Fujifilm X-T5
  • Leica M (Typ 240)
  • Nikon Z 9
  • Olympus E-500
  • Panasonic DMC-FZ330

Missing Compression Mode Support

  • Fujifilm “non-lossless”/lossy
  • Nikon HE
  • Sony lossless

Suspended Support

No samples on raw.pixls.us

  • Creo/Leaf Aptus 22(LF3779)/Hasselblad H1
  • Fujifilm FinePix S9600fd
  • Fujifilm IS-1
  • GoPro FUSION
  • Kodak EasyShare Z980
  • Leaf Aptus-II 5(LI300059)/Mamiya 645 AFD
  • Leaf Credo 60
  • Leaf Credo 80
  • Minolta DiMAGE 5
  • Olympus SP320
  • Panasonic DMC-FX150
  • Pentax Q10
  • Phase One IQ250
  • Samsung GX10
  • Samsung GX20
  • Samsung EK-GN120
  • Samsung SM-G920F
  • Samsung SM-G935F
  • Sinar Hy6/ Sinarback eXact
  • ST Micro STV680


  • German
  • European Spanish
  • Finnish
  • French
  • Hungarian
  • Italian
  • Japanese
  • Dutch
  • Polish
  • Brazilian Portuguese
  • Russian
  • Slovenian
  • Albanian
  • Turkish (New)
  • Ukrainian
  • Chinese - Taiwan
Filed under: Announcement Darktable Release
These are comments from the old website, archived as static HTML