DARKTABLE(1)

πŸŽ€ darktable β€” bestie edition πŸŽ€

so like, this is the manual page for darktable(1) β€” the legendary digital photography workflow app. it's giving "I do everything and I do it beautifully." let's go πŸ’…


✨ NAME ✨

darktable β€” a digital photography workflow application. yeah that's it, that's the whole name section, iconic of it honestly 🫢


✨ SYNOPSIS ✨

darktable [options] [IMG_1234.{RAW,...}|image_folder/]

and the options menu, in all its glory:

--cachedir <user cache directory>
--conf <key>=<value>
--configdir <user config directory>
-d {all,cache,camctl,camsupport,control,dev,fswatch,imageio,input,
    ioporder,lighttable,lua,masks,memory,nan,opencl,params,perf,
    pwstorage,print,signal,sql,undo}
--datadir <data directory>
--disable-opencl
-h, --help
--library <library file>
--localedir <locale directory>
--luacmd <lua command>
--moduledir <module directory>
--noiseprofiles <noiseprofiles json file>
-t <num openmp threads>
--tmpdir <tmp directory>
--version

✨ DESCRIPTION ✨

darktable is a digital photography workflow application for Linux, Mac OS X and several other Unices. periodt.

it's literally designed to make editing and consistently processing large photo sessions easy, and it hands you an easy-to-use digital lighttable plus a whole set of sophisticated post-processing tools. the way it just… does that 🌸

most of the processing happens in 32-bit floating point per channel mode in the device independent CIE L*a*b* color space. and she's fully color managed, which means you get full control over the look of your photos. no cap. πŸ‘‘

the app relies on a modern plugin architecture, which makes it super easy for 3rd party developers to extend what's already there. all lighttable and darkroom features are implemented as plugins, so you can build your own plugins by reusing existing code β€” slay. and most workflow-specific things can also be scripted in Lua. πŸ’œ


✨ OPTIONS ✨

  • IMG_1234.RAW or image_folder/ β€” you may optionally hand over the filename of an image, or the name of a folder full of image files. if you give a filename, darktable starts up in darkroom view with that file opened. if you give a folder, darktable starts in lighttable view with that folder's contents as the current collection. and if there's already an instance of darktable running (using the same library), the image or folder gets opened there instead β€” the two processes talk over D-Bus. cute little gossip network fr fr πŸ¦‹
  • --cachedir <cache directory> β€” darktable keeps a cache of image thumbnails (for fast image preview) and of precompiled OpenCL binaries (for fast startup). by default the cache lives in "$HOME/.cache/darktable/". fun fact: there may be multiple thumbnail caches in parallel β€” one for each library file. πŸŽ€
  • --conf <key>=<value> β€” darktable supports a rich set of configuration parameters that you define in "darktablerc", darktable's config file in the user config directory. this option lets you temporarily overwrite individual settings on the command line β€” but heads up bestie, those settings will not be stored in "darktablerc". 🫢
  • --configdir <config directory> β€” this defines the directory where darktable stores your user-specific configuration. the default spot is "$HOME/.config/darktable/".
  • -d <debug option> β€” turns on debug output to the terminal. darktable has several subsystems and you can activate debugging for each one separately. you can use this option multiple times if you want debug output from more than one subsystem. πŸ”₯

a few of those debug options are:

  • control β€” enables job queue debugging. if you redirect darktable's output to control.log and call ./tools/create_control_svg.sh control.log, you'll get a lovely control.svg visualizing the threads' work. ✨
  • cache β€” gives you a lot of debugging info about the thumbnail cache for lighttable mode. if compiled in debug mode, this also tells you where in the code a certain buffer was last locked.
  • perf β€” use this for performance tweaking your darkroom modules. it rdtsc-measures the runtimes of all plugins and prints them to stdout.
  • all β€” enable all debugging output. in general this is not very useful. πŸ’€
  • --datadir <data directory> β€” defines the directory where darktable finds its runtime data. the default place depends on your installation; typical spots are "/opt/darktable/share/darktable/" and "/usr/share/darktable/".
  • --disable-opencl β€” stops darktable from initializing the OpenCL subsystem. use this if darktable crashes at startup because of a defective OpenCL implementation. (iykyk 😭)
  • -h, --help β€” show the available command line options and exit.
  • --library <library file> β€” darktable keeps image info in an sqlite database for fast access. the default location of that database file is "$HOME/.config/darktable/library.db". you can give an alternative location, e.g. if you want to do some experiments without compromising your original library.db. if the database file doesn't exist, darktable creates it for you. you may also give ":memory:" as a library file β€” in which case the database is kept in system memory and all changes are discarded when darktable terminates. πŸ™ˆ
  • --localedir <locale directory> β€” the place where darktable finds its language-specific text strings. default depends on your installation; typical spots are "/opt/darktable/share/locale/" and "/usr/share/locale/".
  • --luacmd <lua command> β€” a string containing lua commands to execute after lua initialization. these commands run after your "luarc" file. note: if lua isn't compiled in, this option will be accepted but won't do anything. πŸ’€
  • --moduledir <module directory> β€” darktable has a modular structure and organizes its modules as shared libraries loaded at runtime. this option tells darktable where to look for those shared libraries. default depends on your installation; typical spots are "/opt/darktable/lib/darktable/" and "/usr/lib/darktable/".
  • --noiseprofiles <noiseprofiles json file> β€” darktable's profiled denoise module uses camera-specific profile data loaded from an external JSON file. this option changes which file gets loaded, so you can test alternative profiles. the default profile file is "noiseprofiles.json" and it's typically found in "/opt/darktable/share/darktable/" or "/usr/share/darktable/".
  • -t <num openmp threads> β€” darktable uses OpenMP to parallelize many computation steps and make use of all the available CPU cores. this option lets you specify the number of threads to use. valid values are between 1 and 100. πŸ”₯
  • --tmpdir <tmp directory> β€” the place where darktable stores its temporary files. if you don't supply this option, darktable uses the system default.
  • --version β€” show the darktable version along with some important build options, and exit.

✨ DEFAULT KEYBINDINGS ✨

🌈 All modes

  • l β€” switch to lighttable view
  • d β€” switch to darkroom view
  • t β€” switch to tethered capture view
  • m β€” switch to map view
  • s β€” switch to slideshow view
  • p β€” switch to print view
  • . β€” switch between lighttable and darkroom views
  • Ctrl-q β€” quit
  • F11 β€” switch between fullscreen and normal modes of the application's window
  • Esc β€” leave fullscreen mode
  • Ctrl-h β€” show/hide header
  • Tab β€” show/hide sidebars

🌸 Lighttable mode

  • g, Shift-g β€” navigate to top, bottom row
  • PageUp, PageDown β€” navigate one page up, down
  • ' β€” scroll center
  • Down, Left, Right, Up β€” scroll down, left, right, up
  • z β€” preview image
  • Ctrl-z β€” preview image with focus detection
  • F1, F2, F3, F4, F5 β€” color labels: toggle red, yellow, green, blue and purple
  • 1, 2, 3, 4, 5 β€” star rating
  • 0 β€” strip all stars
  • r β€” mark as rejected
  • l β€” realign images to the grid
  • Alt-1 β€” zoom in on first visible image
  • Alt-2, 3 β€” adjust zoom
  • Alt-4 β€” zoom out completely
  • Ctrl-a β€” select all images
  • Ctrl-Shift-a β€” select no images
  • Ctrl-i β€” invert selection
  • Ctrl-d β€” duplicate image
  • Ctrl-g, Ctrl-Shift-g β€” group/ungroup selected images
  • Delete β€” remove image from collection
  • Ctrl-c, Ctrl-Shift-c β€” copy all, selected history
  • Ctrl-v, Ctrl-Shift-v β€” paste all, selected history
  • Space β€” toggle selection of an image
  • Return β€” select an image
  • Ctrl-e β€” export currently selected images
  • Ctrl-k β€” jump back to the previous collection
  • Ctrl-t β€” open a popup to quickly tag an image
  • Ctrl-Shift-i β€” import a folder
  • Ctrl-j β€” jump to the filmroll of an image

πŸ¦‹ Darkroom mode

  • Alt-1, 2, 3 β€” zoom to 1:1, fill, and fit, respectively
  • Ctrl-f β€” show/hide filmstrip
  • Space, Backspace β€” step to next, previous image
  • Ctrl-e β€” export current image
  • Ctrl-c, Ctrl-Shift-c β€” copy all, selected history
  • Ctrl-v, Ctrl-Shift-v β€” paste all, selected history
  • o β€” toggle show of over- and under-exposure
  • Ctrl-g β€” toggle gamut check
  • Ctrl-s β€” toggle softproofing
  • Enter β€” in Crop & Rotate module, commit the crop
  • [, ] β€” in Flip module, rotate 90 degrees ccw, cw
  • <, > β€” when drawing masks, decrease, increase brush opacity, respectively
  • {, } β€” when drawing masks, decrease, increase brush hardness, respectively
  • [, ] β€” when drawing masks, decrease, increase brush size, respectively

πŸ’œ Tethered mode

  • Ctrl-f β€” show/hide filmstrip
  • v β€” toggle live view

πŸ‘‘ Map mode

  • Ctrl-f β€” show/hide filmstrip
  • Ctrl-z β€” undo
  • Ctrl-r β€” redo

πŸ“ Filmstrip (when the cursor is on top of the filmstrip)

  • F1, F2, F3, F4, F5 β€” color labels: toggle red, yellow, green, blue and purple
  • 1, 2, 3, 4, 5 β€” star rating
  • 0 β€” strip all stars
  • r β€” mark as rejected
  • Ctrl-d β€” duplicate image
  • Ctrl-a β€” select all images
  • Ctrl-Shift-a β€” select no images
  • Ctrl-i β€” invert selection
  • Ctrl-c, Ctrl-Shift-c β€” copy all, selected history
  • Ctrl-v, Ctrl-Shift-v β€” paste all, selected history

⭐ Slideshow mode

  • Space β€” start/stop playback

✨ SEE ALSO ✨


okay that's the whole vibe so far bestie, and there's more coming β€” this page has a part 2, so don't go anywhere πŸ«ΆπŸ’–

🌈 OTHER INFO 🌈

okay so bestie, if you wanna keep up with the ~lore~ β€” news, the blog, the bug tracker β€” everything lives at:

<https://www.darktable.org/>

and if you want the complete darktable usermanual, it's right here, no gatekeeping:

<https://www.darktable.org/usermanual/>

there's also darktablerc.html, which is the glow-up guide to all the default config settings ✨ the exact spot it lives in depends on how you installed darktable, but the typical hangouts are:

  • "/opt/darktable/share/doc/darktable/"
  • "/usr/share/doc/darktable/"

πŸ› REPORTING BUGS πŸ›

found a bug? got a feature request? some "and so on" situation? please drop it in the bug tracker, that's literally what it's for:

<https://github.com/darktable-org/darktable/issues>

not me just ignoring bugs btw β€” go report them, the devs wanna know 🫢

πŸ‘‘ AUTHORS πŸ‘‘

the principal developer of darktable is Johannes Hanika β€” main character, periodt.

and here's the (hopefully) complete list of everyone who contributed to the project πŸ’–:

  • Developers: Pascal Obry, Hanno Schwalm, Victor Forsiuk, Mario Zimmermann, Ralf Brown, Andrii Ryzhkov, Dan Torop, Jeronimo Pellegrini, Daniele Pighin, Robert Mongold, Philipp Lutz, Bill Ferguson, Kofa, Martin Straeten, MiloΕ‘ KomarčeviΔ‡, EdgarLux, Diederik ter Rahe, StΓ©phane Gourichon, Ryo Shinozaki, deekayhd, Benjamin Grimm-Lebsanft, MatjaΕΎ Jeran, esq4, David Smith, Hpbirkeland, Marko Vertainen, Yannic Meyer
  • Translators: Victor Forsiuk, Pascal Obry, Jeronimo Pellegrini, Martin Straeten, EdgarLux, StΓ©phane Gourichon, Ryo Shinozaki, MatjaΕΎ Jeran, esq4, Hpbirkeland, Marko Vertainen, BΓ‘thory PΓ©ter, RIM, Andrii Ryzhkov, Besmir Godolja, Johan Schiff, Kang-Wei Hsu, Tianhao Chai, 94tiger, BoneNI, Florian Tham, GameMaster0x, Jan Ε mucr, Yannic Meyer, zxs-un
  • Sub-module rawspeed contributors (at least 1 commit): MiloΕ‘ KomarčeviΔ‡, Roman Lebedev, Sidhartha, Steven Le Rouzic
  • Sub-module integration contributors (at least 1 commit): Pascal Obry, yuri
  • Sub-module lua-scripts contributors (at least 1 commit): Bill Ferguson, Tino Mettler, deekayhd, Andrii Ryzhkov, Ilya Palopezhentsev, Martin Straeten, BjΓΆrn LindstrΓΆm, Dan Zwell, fblampe, Aaron Patterson, dterrahe, masterpiga

And all those of you that made previous releases possible πŸ’œ y'all ate.

this man page was written by Alexandre Prokoudine <alexandre.prokoudine@gmail.com> and Richard Levitte <richard@levittr.org>. Additions were made by Tobias Ellinghaus <me@houz.org>. iconic behaviour, honestly πŸŽ€


πŸ“œ HISTORY πŸ“œ

the project was started by Johannes Hanika in early 2009 to fill the gap (or, rather, a black hole πŸ•³οΈ) of a digital photography workflow tool on Linux. and look at it now, literally thriving 🌸


Copyright (C) 2009-2017 by Authors.

darktable is free software; you can redistribute it and/or modify it under the terms of the GPL v3 or (at your option) any later version.

that's the whole vibe: free, open, yours to remix πŸ’…

and that's a wrap on the whole page, bestie β€” this was darktable 2.3, dated 2017-01-20, a.k.a. DARKTABLE(1) in the section 1 lineup πŸ’– go forth and edit them RAWs βœ¨πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from