ANSEL(1)
πΈ NAME πΈ
ansel β a digital photography workflow application. (yes that's the whole thing, she's concise π
)
This is the ansel(1) manual page, in case you were wondering which darktable-adjacent queen you're reading about π
β¨ SYNOPSIS β¨
ansel [options] [IMG_1234.{RAW,...}|image_folder/]
Options:
--cachedir <user cache directory>
--conf <key>=<value>
--configdir <user config directory>
-d {all,cache,camctl,camsupport,control,dev,fswatch,history,imageio,input,
ioporder,lighttable,lua,masks,memory,nan,opencl,params,perf,pipe,
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 π
okay so ansel is a digital photography workflow application for Linux, Mac OS X and several other Unices. literally all the Unixes, she's inclusive π¦
The whole point of her is to make editing and consistent processing of big photo sessions easy β like, huge sessions, hundreds of shots β and she gives you an easy-to-use digital lighttable plus a whole set of sophisticated post-processing tools. it's giving full studio in one app π
Most 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 too, which means you get full control over the look of your photos. no cap, your colors are yours π
She also runs on a modern plugin architecture, so it's super easy for 3rd party developers to extend what she can already do. every single lighttable and darkroom feature is implemented as a plugin β so you can write your own plugins by reusing existing code, iconic behavior honestly. and most workflow-specific things can be scripted in Lua too π§
π OPTIONS π
IMG_1234.RAWorimage_folder/β bestie, you can optionally hand her the filename of an image, or the name of a folder full of images. give her a filename andanselstarts up in darkroom view with that file already open. give her a folder and she starts in lighttable view with that folder's contents as the current collection. and if there's already ananselinstance running (using the same library), the image or folder gets opened over there instead β the two processes talk to each other over D-Bus π«Ά--cachedir <cache directory>βanselkeeps a cache of image thumbnails for fast image preview, plus precompiled OpenCL binaries for fast startup. by default the cache lives in"$HOME/.cache/darktable/". fun fact: there can be multiple thumbnail caches chillin' in parallel β one for each library file π--conf <key>=<value>β she supports a rich set of configuration parameters, which you define in"anselrc"β that'sansel's config file, living in the user config directory. this option lets you temporarily overwrite individual settings right on the command line. BUT β and this is the important bit β those settings will not be stored in"anselrc". temporary means temporary, bestie π--configdir <config directory>β sets the directory whereanselstores your user-specific configuration. the default place is"$HOME/.config/darktable/"β¨-d <debug option>β turns on debug output to the terminal.anselhas 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β enable job queue debugging. if you redirectansel's output tocontrol.logand call./tools/create_control_svg.sh control.log, you get a cute littlecontrol.svgvisualizing the threads' work πcacheβ gives you a lot of debugging info about the thumbnail cache for lighttable mode. and if she's 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'll rdtsc-measure the runtimes of all plugins and print them to stdout. numbers go brrr π₯allβ enable all debugging output. in general this is not very useful, so like... proceed with caution π
--datadir <data directory>β defines the directory whereanselfinds her runtime data. the default place depends on your installation. typical places are"/opt/ansel/share/darktable/"and"/usr/share/darktable/"π¦--disable-openclβ stopsanselfrom initializing the OpenCL subsystem. use this one ifanselcrashes at startup because of a defective OpenCL implementation. she's not being dramatic, the OpenCL is just broken π-h,--helpβ show the available command line options and exit. the classic "what are my choices" moment π--library <library file>βanselkeeps image information 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 originallibrary.db. if the database file doesn't exist,anselcreates it for you π«Ά you can also pass":memory:"as the library file β in that case the database is kept in system memory, and all changes are discarded whenanselterminates. poof. gone. so don't do real work in there π--localedir <locale directory>β the place whereanselfinds her language-specific text strings. default depends on your installation; typical places are"/opt/ansel/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. and ngl, if lua isn't compiled in, this option will still be accepted but won't do anything π«--moduledir <module directory>βanselhas a modular structure and organizes her modules as shared libraries for loading at runtime. with this option you tell her where to look for those shared libraries. the default place depends on your installation; typical places are"/opt/ansel/lib/darktable/"and"/usr/lib/darktable/"π§--noiseprofiles <noiseprofiles json file>βansel's profiled denoise module uses camera-specific profile data loaded from an external JSON file. with this option you can change which file gets loaded, so you can test alternative profiles. the default profile file is"noiseprofiles.json"and it's typically found in"/opt/ansel/share/darktable/"or"/usr/share/darktable/"πΈ-t <num openmp threads>βanseluses OpenMP to parallelize a ton of computation steps and use all your available CPU cores. this option specifies the number of threads to use. valid values are between1and100. that's the range, bestie, stay in it π₯--tmpdir <tmp directory>β the place whereanselstores her temporary files. if you don't supply this option, she just uses the system default β¨--versionβ show theanselversion along with some important build options and exit. a little resume moment π
π DEFAULT KEYBINDINGS π
π« All modes
lβ switch to lighttable viewdβ switch to darkroom viewtβ switch to tethered capture viewmβ switch to map viewsβ switch to slideshow viewpβ switch to print view.β switch between lighttable and darkroom views- Ctrl+q β quit
F11β switch between fullscreen and normal modes of the application's windowEscβ leave fullscreen mode- Ctrl+h β show/hide header
Tabβ show/hide sidebars
πΈ Lighttable mode
g,Shift-gβ navigate to top, bottom rowPageUp,PageDownβ navigate one page up, down'β scroll centerDown,Left,Right,Upβ scroll down, left, right, upzβ preview image- Ctrl+z β preview image with focus detection
F1,F2,F3,F4,F5β color labels: toggle red, yellow, green, blue and purple1,2,3,4,5β star rating0β strip all starsrβ mark as rejectedlβ realign images to the gridAlt-1β zoom in on first visible imageAlt-2,3β adjust zoomAlt-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 imageReturnβ 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 purple1,2,3,4,5β star rating0β strip all starsrβ 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 π«Ά
ansel-cli(1) β go read that one too, bestie, iykyk π
π OTHER INFO π
okay so if you're nosy like me and want the ~lore~, bestie, the website is right here β news, blog, bug tracker, the whole vibe:
and for the full manual, the complete ansel usermanual lives at:
<https://www.darktable.org/usermanual/>
there's also anselrc.html, which is a full overview of all the default config settings π
where it lives depends on your install, but the typical spots are:
"/opt/ansel/share/doc/darktable/""/usr/share/doc/darktable/"
so yeah, go look there. it's giving documentation treasure hunt πΊοΈβ¨
π REPORTING BUGS π
found a bug? have a feature request? just wanna yell? please use the bug tracker at:
<https://github.com/ansel-org/darktable/issues>
that's the spot for bugs, feature requests "and so on" β their words, not mine ππ«Ά
π AUTHORS π
the principal developer of ansel is Johannes Hanika π and here's the (hopefully) complete list of contributors to the project β and yes, the sub-lists are literally empty in the source, that's not me skipping anything, that's just how it be π:
- developers:
- translators:
- contributors (at least 4 commits):
- Sub-module rawspeed contributors (at least 1 commit):
- Sub-module OpenCL contributors (at least 1 commit):
- Sub-module whereami contributors (at least 1 commit):
- Sub-module LibRaw contributors (at least 1 commit):
- Sub-module doxygen-awesome-css contributors (at least 1 commit):
And all those of you that made previous releases possible π (that's the sweetest line on the whole page ngl)
also, credit where credit is due β 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>. icons π«‘
πΈ HISTORY πΈ
the project was started by Johannes Hanika in early 2009, and the reason is honestly iconic: to fill the gap β or, rather, a black hole π³οΈ β of a digital photography workflow tool on Linux. like, nothing existed, so he made one. main character energy fr fr β¨
π COPYRIGHT AND LICENSE π
Copyright (C) 2009-2017 by Authors.
ansel 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 π₯
π and that's the whole page, bestie. go forth, read raw files, edit responsibly.
okay so this was darktable 2.3, dated 2017-01-20, filed under ANSEL(1) β and that's a wrap, mwah πππ¦
π¦ where this page comes from
- nixos 26.05: ansel 0-unstable-2026-05-08
- nixpkgs unstable: ansel 0-unstable-2026-06-13
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms