Repository navigation
Releases: pkkid/dalica
Release list
Dalica v0.2.0
Dalica can now edit your photos. Open a photo in the edit view to crop, straighten, retouch and
fix its light and colour, then step back through every change with Undo. Your edits are kept
beside the photo, and every thumbnail shows them. The original file is never changed: there is no
Save yet, so other applications still see the photo as it was. Save and Export come in the next
release.
Editing
- Open a photo in the edit view with Enter, a double-click, View ▸ Edit View (Ctrl+3) or Picture ▸
View and Edit. Esc, Ctrl+1 or Back to Library takes you back, with your place and selection kept. - ← and → (also Page Up, Page Down, Home and End) move through the photos of the folder. The
filmstrip at the top shows the photos around this one; click one to open it. - Zoom with the slider at the bottom right, the mouse wheel, a touchpad pinch, or Ctrl+= and Ctrl+−.
Zooming keeps the point under the pointer in place and stops at 100 % on its way. Click and hold
on the photo to see that spot at 100 %; a click fits the photo again; Fit and 1:1 sit beside the
slider. Drag to move around a zoomed photo; a small map of the photo shows where you are. - The edit panel on the right (hide it with View ▸ Show Edit Controls, Ctrl+9) has Basic Fixes:
- Crop: choose a shape (free, the photo's own, print sizes such as 4 × 6, or your own ratios
through Add Custom Ratio…), draw or drag the rectangle, or click one of three suggested crops.
Rotate swaps the shape between landscape and portrait; Preview shows the result. - Straighten: drag the slider on the photo, up to 10° either way, or press ← and → for 0.1°
steps. A grid helps you line up the horizon, and the photo is enlarged just enough that no
corner is ever empty. - Retouch: click a spot, then a clean area to copy from; the patch blends in. Change the brush
size with its slider or + and −. Undo Patch and Redo Patch step through your patches. - Auto Fix (Ctrl+Shift+E), Auto Contrast and Auto Color: one click each.
- Fill Light: brightens the dark parts without washing out the bright ones.
- Crop: choose a shape (free, the photo's own, print sizes such as 4 × 6, or your own ratios
- The Tuning tab has Fill Light, Highlights, Shadows, Color Temperature and a neutral colour
picker: click something that should be grey or white to remove a colour cast. The two magic
wands set the light and the colour for you, and Reset puts every slider back. - Every edit is one step of the photo's own Undo and Redo, at the top of the edit panel (Ctrl+Z
and Ctrl+Y in the edit view; Cmd+Shift+Z on macOS). The buttons name the step ("Undo Crop").
A whole slider drag is one step. The history stays after you quit Dalica. - The Histogram & Camera Info box at the bottom of the panel shows the photo's colours and the
camera, lens and exposure. - The other tabs (effects) are empty in this release. Play, the A│B comparison and the trash
button in the edit view are greyed out until later releases. - The Tuning sliders show 0 again after you rotate or retouch a photo that you tuned earlier
(the tuning is still there); this is fixed in the next release.
Library
- Edited photos show their edits everywhere: in the light table, the Photo Tray and the
filmstrip, with a small pencil badge at the corner. While a new thumbnail is being made, the old
one stays on screen.
Your photos and their files
- Edits are kept in the folder's
.dalica.json, like rotations, as a list of steps. Dalica keeps
any step it does not understand (from a newer version, say) where it is, and leaves it alone. - Writing captions, tags and dates into a photo keeps its modification date even if Dalica or the
computer stops in the middle of the write. - Undoing Tools ▸ Adjust Date and Time… now puts the original date back into the file too, also
after the new date was already written. - TIFF files: a place or date that cannot be written there is refused before anything is written,
with a message naming the field. Photos whose IPTC captions and keywords were written by
ImageMagick (PNG and TIFF) are now read and updated. - A caption or tag that cannot be written (for example into a read-only file) shows an amber
message with the whole text, the file name kept whole.
Agents
- New commands:
view.edit,view.library,edit.panelToggle,edit.zoom.fit,
edit.zoom.actual,edit.zoom.in,edit.zoom.out,edit.zoom.set,edit.tool.open,
edit.tool.action,edit.tool.apply,edit.tool.cancel,edit.tool.reset,edit.autoFix,
edit.history.undo,edit.history.redo,photo.history.apply,photo.history.undo,
photo.history.redo,photo.history.state,photo.history.tuning,photo.crop.apply,
photo.crop.suggest,photo.straighten.apply,photo.tuning.auto,photo.tuning.pick,
crop.ratios.add,crop.ratios.listandcrop.ratios.remove.
Not in this release yet
- No Save: edits live beside the photo and the file itself is not changed. Save, Save a Copy,
Save As and Export come in 0.3. No collages or slideshows yet either. - No albums, people, places on a map or search. Moving, renaming and deleting files from inside
Dalica come later; so does the Options dialog. - Videos are not listed.
- HEIC and HEIF photos (from iPhones) are listed but not shown in these builds (the HEIC decoder
is left out); AVIF files are listed and never shown. - Open With: on Windows it starts Dalica on its library window, without the photo you chose. On
macOS, Dalica starts from Open With and ignores the file; on Linux it is not offered. - On Windows,
dalica.exe --versiontyped in a console prints nothing;dalica-cli --versionor
Help ▸ About Dalica tell you the version. - This release is not signed with a developer certificate, so Windows and macOS warn you before
its first start (see "Installing" under 0.1.0).
Also in this release
- On Windows the window now draws through DirectX 12 instead of Vulkan, which fixes the window flickering whenever the mouse moved on some graphics drivers. Set
WGPU_BACKEND=vulkanto go back to Vulkan. - A taller, roomier title bar (32 pt) with a larger app icon, the title centred on the window and thinner window buttons.
Measured for this release
- Feature parity with the reference organizer, by row: 22 done, 59 partial, 63 not started, 16 out of scope (0.1: 15 / 55 / 74 / 16). Editing went from 0 to 6 rows done.
- New speed budgets met (release build, a 24-megapixel JPEG, measured 2026-10-13 on the Linux build machine; GitHub's 2-CPU runner in brackets): opening a photo in the edit view 77 ms (70 ms; budget 150 ms), a slider drag's preview 8.4 ms at p95 (budget 16 ms), its final render 14.1 ms (budget 100 ms); the next or previous photo is already prefetched.
- 2,242 automated tests on Linux, Windows and macOS.
Downloads
Every file is listed with its SHA-256 in SHA256SUMS.txt. Nothing is signed with a developer certificate yet, so Windows and macOS warn you before the first start (see "Installing" in the 0.1.0 notes).
What's Changed
- M7.6: ui-kit: the edit view's icons by @pkkid in #347
- M7.2: edit: the renderer, one module per operation, per-operation versions by @pkkid in #354
- M7.24: Lead: task blocks for M9 by @pkkid in #351
- M7.25: fs + store: a metadata write keeps the file's time even across a crash by @pkkid in #349
- M7.3: engine: the photo's own history, M7's command modules and settings by @pkkid in #348
- M7.5: ui-kit: tabs, tool buttons, the histogram, the Tuning slider and canvas input by @pkkid in #350
- M7.26: meta: refusals named up front, and ImageMagick's IPTC profiles by @pkkid in #352
- M7.27: ui + ui-kit: caution toasts that show the whole message by @pkkid in #353
- M7.28: tests: the Windows "Access is denied" flake in accept M5 by @pkkid in #356
- M7.8: edit: the Tuning operation by @pkkid in #359
- M7.4: ui: the edit view's state, frame and stub panels by @pkkid in #355
- M7.7: edit: Crop and Straighten by @pkkid in #360
- M7.9: engine + thumbs: edits shown on every thumbnail by @pkkid in #363
- M7.31: meta + docs: refusals as their own error, and the API notes found mid-M7 by @pkkid in #361
- M7.30: engine: undoing Adjust Date after its write has landed by @pkkid in #362
- M7.12: edit: suggested crops by @pkkid in #366
- M7.29: Docs and housekeeping found at M6.R by @pkkid in #365
- M7.14: edit: Retouch by @pkkid in #367
- M7.17: engine: crop and straighten commands, ratios and suggestions by @pkkid in #370
- M7.13: edit: Auto Contrast, Auto Color, Auto Fix and the Tuning wands by @pkkid in #364
- M7.10: ui: entering, leaving and moving between photos by @pkkid in #369
- M7.25: fs: the same-size keep-times test asserts a new identity only where one holds by @pkkid in #372
- M7.11: engine: the edit view's preview renders and their benchmark by @pkkid in #368
- M7.18: engine: Tuning sessions, the wands and the colour picker by @pkkid in #371
- M7.16: ui: the edit panel, Basic Fixes, Undo / Redo and the histogram box by @pkkid in #373
- M7.15: ui: the photo canvas, zoom and pan by @pkkid in #374
- M7.20: ui: the S...
Dalica v0.1.0
The first preview of Dalica, an organizer for the photos in your own folders. You can browse,
star, caption, tag, rotate, hide and re-date your photos. Dalica keeps all of it in a small file in
each folder, and writes captions, tags and dates into the photos' own metadata. It never changes
your pictures' pixels. Editing, exporting and slideshows come in later releases: see "Not in this
release yet" at the end.
Installing
- Linux, on x86_64 and ARM64: an AppImage, a .deb, an .rpm, a Flatpak bundle and a .tar.gz.
AppImageUpdate fetches only the changed parts of a newer AppImage. On its first start, the
AppImage adds itself to your applications menu (setDALICA_NO_DESKTOP_INTEGRATION=1to stop
that). - The Flatpak sees only your Pictures folder and has no network access. To add a folder
elsewhere, grant it first:flatpak override --user --filesystem=<folder> org.dalica.Dalica. - If your system lacks a library Dalica needs (Wayland or X11, xkbcommon, the Vulkan loader),
Dalica says which package to install and exits instead of crashing. - Windows x64: an MSI installer and a portable zip. The installer adds a Start Menu shortcut and
lists Dalica under "Open with" for the picture formats it reads, without ever making it your
default viewer. - The portable zip keeps its library, thumbnails and log in a
datafolder besidedalica.exe
(because of the file namedportablenext to it). The.dalica.jsonfiles Dalica keeps in
your photo folders stay there. - macOS 11 or later, on Apple silicon and Intel: a disk image with Dalica.app, and the
command-line tooldalica-clias a zip. - This release is not signed with a developer certificate, so Windows and macOS warn you before
its first start. On macOS, allow it in System Settings ▸ Privacy & Security. - Every download is listed with its SHA-256 in
SHA256SUMS.txt. Check yours with
sha256sum -c SHA256SUMS.txt --ignore-missing(Linux) or
shasum -a 256 -c SHA256SUMS.txt --ignore-missing(macOS). - Help ▸ About Dalica (Dalica ▸ About Dalica on macOS) shows the version, the commit it was built
from and the build date. Its Contributors and Models tabs credit the people and the AI models
who built Dalica. Help ▸ Release Notes shows this page.
Folders
- On its first start, Dalica offers to show your Pictures, Documents and Desktop folders, or lets
you choose your own. - Tools ▸ Folder Manager… (also File ▸ Add Folder…) sets each folder to Scan Always (watched for
changes), Scan Once (read once, then left alone; for slow or removable drives) or Remove from
Dalica. A setting applies to the folders inside it unless they have their own. - Folder ▸ Remove from Dalica… takes a folder out of Dalica. Nothing on disk changes, and Edit ▸
Undo brings it back. - Scanning runs in the background. Folders appear as they are found, and the activity indicator in
the toolbar shows each scan's progress, with Cancel. - Scan Always folders are watched. New, changed, renamed and deleted photos show up by
themselves, and a full check every few hours catches anything the system did not report. - Folders on a drive that is unplugged stay in the list, dimmed and marked offline, with their
thumbnails. What you change meanwhile is written when the drive comes back, and never into the
empty folder an unplugged drive leaves behind. - The folder list shows every folder by year, or as a tree (View ▸ Folder View). The toolbar's
view options sort it by date, name, size or recent changes. Clicking a folder jumps to it. - Folder descriptions: click "Add a description" under a folder's title, type, and press Enter.
- Folder Properties (double-click a folder in the list or its title, or Folder ▸ Edit
Description…) sets the folder's date, place and description. Type the date as YYYY-MM-DD, or
tick "Use the date of the oldest photo". Renaming a folder and its music for slideshows are
greyed out until later releases. - Folder ▸ Hide moves a folder to Hidden Folders, shown only with View ▸ Hidden Pictures. The
folder stays hidden when you move it, because the setting is kept in the folder itself.
Library
- All your folders in one long, scrolling light table, a header for each folder. The header of
the folder you are in stays at the top, and thumbnails never go blank while you scroll. - Thumbnail size: the slider at the bottom, Ctrl+wheel, or View ▸ Small Thumbnails (Ctrl+1) and
Normal Thumbnails (Ctrl+2). - Select with a click, Ctrl, Shift or by dragging a box. The Photo Tray at the bottom shows the
selection, and Hold keeps photos there while you select others. - Star photos with Picture ▸ Star / Unstar (Ctrl+8) or the star button under the tray.
- Rotate with Picture ▸ Rotate Clockwise (Ctrl+R) and Rotate Counterclockwise (Ctrl+Shift+R) or
the buttons under the tray; flip with Picture ▸ Flip Horizontal (Ctrl+Shift+H) and Flip Vertical
(Ctrl+Shift+V). The thumbnail turns at once. A rotation is kept as an edit beside the photo:
the file itself is not turned, so other applications still show it as it was. - Captions: Picture ▸ Edit Caption opens a field under the photo. Enter (or a click elsewhere)
keeps the text, Esc leaves the caption as it was. - View ▸ Thumbnail Caption shows the file name, caption, tags, size in pixels or date under every
thumbnail. - Picture ▸ Hide hides photos; View ▸ Hidden Pictures shows them again, faded.
- Tools ▸ Adjust Date and Time… gives the selected photos a new date and time, or shifts them all
by the same amount (for a camera whose clock was wrong). Photos re-sort by their new dates. - The Properties pane (View ▸ Properties or Picture ▸ Properties, Alt+Enter; Cmd+I on macOS)
shows a photo's file, size, dates, camera, lens, exposure, GPS position, caption and tags. Show
All Metadata lists every field the file holds. With several photos selected, it sums them up. - Every change is one step of Edit ▸ Undo (Ctrl+Z) and Redo (Ctrl+Y; Cmd+Shift+Z on macOS),
however many photos it touched. - Formats shown: JPEG, PNG, TIFF, WebP, GIF (its first frame), BMP, JPEG XL, PSD and PSB (the
merged picture), and the camera's preview inside RAW files (CR2, CR3, CRW, NEF, ARW, DNG, PEF,
ORF, RW2, SRW, RAF, MRW, X3F). Colour profiles are applied (View ▸ Use Color Management). - A file Dalica cannot show is still listed, with a "!" whose tooltip says why ("Damaged file",
"Too large to display").
Tags
- The Tags pane (View ▸ Tags, Ctrl+T): type into "Add a tag:" and press Enter to tag every
selected photo. Separate several tags with commas; suggestions come from the tags you already
use. - The pane lists the tags of the selected photos with how many hold each ("beach (3 of 8)"). The
× on a tag removes it from the selection. - Right-click a tag: Add to All Selected, Remove from Selected, Rename Tag…. Renaming onto a tag
you already use merges the two. - Quick tags: ten buttons in the Tags pane toggle a tag on the selection, as do Ctrl+Alt+1 …
Ctrl+Alt+0. The top two follow your most recently added tags. The gear button opens Configure
Quick Tags, which can fill the empty buttons with your most used tags. - The status line lists the tags of the selected photos, most used first.
Your photos and their files
- Dalica never changes a photo's pixels in this release. There is no Save yet, so there is no
.dalica-originalsfolder either; it arrives with Save. - Everything you do is kept in a
.dalica.jsonfile in each folder: stars, captions, tags,
hidden photos, rotations and flips, dates you set, and the folder's description, date, place
and hidden setting. It is plain text, it moves with the folder, and other programs' entries in
it are kept. Dalica's own index is only a cache of these files. - Captions, tags and dates are also written into the photo files, as standard metadata that other
photo applications read: in JPEG (XMP, IPTC and EXIF), PNG (XMP and EXIF), WebP (EXIF and XMP)
and TIFF (XMP and IPTC). Only those fields change. The pixels and everything else in the file,
other applications' metadata included, stay byte for byte as they were. Each new version is read
back and checked before it replaces the file. - When: about a second after your last change, in the background ("Writing metadata" in the
activity indicator, with Cancel). Undo writes the old value back. Quitting Dalica writes what is
still waiting. A cancelled write stays in.dalica.json, and the next change of that field
writes it. - How: the file is replaced in one step, only if no other program changed it since Dalica read
it (otherwise Dalica reads it again first). The file's modification date is put back as it was. - Not written into files: rotations, flips, hidden photos and folder information (all in
.dalica.jsononly); stars, unless you turn that on (below); a photo's place, which Dalica
cannot edit yet. GIF, BMP, HEIC, JPEG XL, PSD and AVIF files are never written. - RAW files are never written. With the option below turned on, their captions, tags and dates go
into an.xmpfile beside them, which keeps what raw developers wrote there. A damaged.xmp
file is kept aside as<name>.xmp.corrupt-<time>. - A read-only file is left alone. A message names the file and what could not be written; the
value stays in.dalica.json. - Reading: the first time Dalica sees a photo, it takes the caption, tags and date from the file,
and a rating of 5 as a star (from a RAW's.xmpfile too). What.dalica.jsonalready says
wins. - A value changed later in another application comes in as one undo step, "Import from Files".
When both Dalica and the other application changed it, Dalica keeps (and writes) its own value,
and the Properties pane notes "Changed in another application; Dalica's value kept". - The write options and their defaults:
- Write captions, tags and places into photo files: on.
- Write date changes into photo files: on.
- Write stars as...