Getting started

Import images

Basics

Ansel backbone is a library of images, saved as an SQLite database into ~/.config/ansel/library.db. Since Ansel is a non-destructive photo editor, editings are saved as histories of settings, along with image metadata, as text1 into the library database. The application of editing histories over raw images, as to produce output raster images, is the export step.

The library is also used to keep track of image collections (by tags, folders, EXIF, editing time, etc.). Because of this, we need to make the library aware of new images : it is the import step. This will initialize a new database entry with metadata and a virgin history for each imported picture.

Editing images

Understanding non-destructive editing

Before diving deeper into how to use the software, we should stop here to explain its general paradigm : non-destructive editing.

Once you imported images to Ansel, what you really did is only to create an entry for them into the library database. The modifications you make on these images are never written to the original images, which are actually never changed. This is a strong design requirement aiming at protecting your input RAW images from any kind of corruption.1 Ansel will not even let users change the EXIF date and time in the original files.

Library and collections

Ansel keeps a database of all images it knows, that is all images that were imported, until you actively remove them from the library (global menu : FileRemove from library). The library stores the filesystem path of the images, their metadata and their editing history.

Ansel will then perform database extractions based on arbitrary user criteria : those are called collections. They are built in lighttable from the library toolbox and from the include toolbar. Ansel has no concept of gallery or virtual folder that you create first, then to which you add arbitrary images. Instead, in Ansel, you attach tags to images, then collect all images having a certain tag (or any kind of metadata, base folder, etc.), possibly mixing filters and search criteria to narrow-down the search : this is what makes a collection.

Image selection

Ansel allows batch-applying editing histories (through copy-pasting, or through styles) or metadata. The target images for those batch-operations are selected images. But even single-image operations (like opening in darkroom to edit, or editing metadata, copy/pasting, etc.) use selections.

Selections are particular objects in Ansel, because :

  1. they are remembered between reboots and kept constant during view changes,
  2. they are necessarily a subset of the current filtered collection (as displayed in the lighttable),
  3. they can be set only from the lighttable view (no selection can be performed or used from the filmstrip),
  4. they can be turned into a collection themselves, by using the Restrict to selection button in the include/filter toolbar of the lighttable.

Selected images will appear highlighted in the lighttable and filmstrip. Because selections are used to perform (possibly harmful) write operations, Ansel forces “hard” interactions (pressing on an hardware button) to define them. These allowed interactions are :

Shortcuts and keyboard interaction

Ansel interface is designed to support two mutually-exclusive modes of interaction and navigation: through pointing devices (mouse or graphic tablet) and through the keyboard. Compared to Darktable, many interactions that required combinations of both have been removed, which makes the workflows more efficient.

Shortcuts and available actions

Ansel exposes app-wise actions and GUI controls to keyboard bindings through pathes like Darkroom/Modules/Exposure/Black point, where the left-most member of the path is the view and the right-most member is the actual control being bound. A such path defines an human-readable unique identifier that also says where the control is located in the application GUI.

Search

You can also ask Chantal, the AI search engine.