I tried Darktable today, and I like it. Finally a decent photo manager for Linux. Instinctively, I tried to use CTRL+Z to undo an action I didn't like in the edit mode (Darkroom). Having keyboard shortcuts for undoing or redoing tasks would be very useful.

History

The problem here is defining what an action is, as in darktable each change in a slider could be considered as such. The thing is that we don't have dialogs and an 'Apply' button We could reset enabled plugin by pressing ctrl-z, but that could be a problem for people wanting to undo only part of what they changed in the plugin.

While I agree that it's not desirable to have a too fine-grained undo/redo history, not having undo and redo at all feels very limiting; it is definitely a turn-off for me, especially given darktable's somewhat surprising user interface conventions that lend themselves to all kinds of mistakes for a newcomer. And surely you can find a way to coalesce repeated similar actions into a single one if that turns out to be necessary.

I got stung by this recently, when trying to render a previous version of an image in the history stack. What I did:

select a previous version in the history

head to the light table

export the file

What I expected: the history should stay the same

What actually happend: the remaining history was trashed.

That was freaking painful. I can also recount horror stories of playing with the stack directly in my first attempts ("what does compress do?" - "aw crap, it destroys history, wasn't this supposed to be a non-destructive editor?")... Maybe full undo isn't required and we need something like #9019 or #8769. See particularly: #8620.

The history stack is useful, but as others have pointed out it is not a replacement for a good undo system, especially given how easy it is to trash the history stack. And the current history stack is not fine-grained enough to be viable as a workaround for missing undo even if it were more resilient, since I can't undo just a single slider change (for example) if I've changed multiple settings in a module without switching modules.

Aftershot Pro has both, and its history stack is also somewhat more fine-grained than DT's (multiple consecutive entries can be from changes to a single tool).

As a beginner to darktable, the undo feature come very handy: try a setting: wrong ? undo last state. When I try to edit some mask usually an undo action can be the sequence press mouse button, move, release it. When moving a slider, the some or when scroll is used, until I leave field or stop for a fixed amount of time.

I know this could become very cumbersome to implement, but form me this is an essential feature.