Repository navigation
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 Straighten tool by @pkkid in #377
- M7.19: ui: the Crop tool by @pkkid in #375
- M7.22: ui: the Retouch tool by @pkkid in #378
- M7.21: ui: the Tuning tab and the Fill Light row by @pkkid in #376
- M7.23: accept M7 by @pkkid in #379
- M7.R: check-in and Release 0.2 by @pkkid in #380
Full Changelog: v0.1.0...v0.2.0