Help needed with shortcut fallbacks

My 2 cents, @Jetze.

When it comes to module navigation, I would say that there are basically two approaches to defining shortcuts in DT. Of course, you can mix and match them, but the two main ways are:

  • Associate one key to each module (e.g., e for exposure), and then use all the variations that you have available (double and triple presses, long and short presses, adding multiple mouse clicks from all available mouse buttons, modifiers, adding movements etc.) to specifically target each widget of the module. For modules with a lot of sliders (e.g., AgX, or ColorBalanceRGB) you may use more than one key (e.g., one key for each tab or CbRGB).

  • Associate one key to a module and then use the <focused> actions to access the different controls (sliders, combos) of that module. <focused> works on whatever module you have focused, so you can set a shortcut to access the 1st slider, another for 2nd slider, another one for the 1st combobox… and so on. These shortcuts will work in every module, regardless of the shortcut (or UI interaction) that you used to focus the module.

The first approach has the great advantage of making targeted controls available with one single shortcut. One can set up direct shortcuts for the 5-10 controls that one uses every single time, and it’s a great way of operating those. But my memory is just not good enough to use it for more than a handful of selected controls.

The second is a bit more algorithmic, hence a bit more general, but I find the sequential approach very limiting, because I have to remember (or count) what is the offset of a certain widget.

One aspect to consider is that DT’s options to focus a specific instance of a multi-instance module are somewhat limited, which in my case (as I generally have multiple instances of all the main modules) ends up reducing the appeal of either approach above.

That is why I tried to come up with a third way, and implemented a generalized system to navigate the UI that is not tied to a specific module or control. This is not alternative but complementary to the existing system, so you can still do all the things that you can do now, plus something more.

It is discussed in these two threads:

and

With these in place, after focusing on the search bar (using whatever shortcut you like) you will be able to (1) search for the module/widget that you want to manipulate (2) use a handful of shortcuts (always the same) to navigate the modules/widgets in the search result, (3) use a shortcut (always the same) to operate any selected widget.

If all is well, I will try to merge them into DT after 5.4 is released.

2 Likes

Thanks @Masterpiga , I will read a bit more careful after cooking dinner :slight_smile:

And will have a lengthy look (again) at the other information which I wanted to to several weeks back as well but I never did so… my bad.

So I will return to this a bit later this evening. Thanks for tuning in!

Kind regards, Jetze

1 Like

As promised, back to the subject.

I like very much the approach you’ve taken. Though not a programmer - so liable to misinterpret technical discussions - I feel your ‘third’ way might be a lot closer to how I would like to work. I too use multiple instances of modules quite often. And I am looking for a swift way to navigate modules / sliders etc (thus widgets) without crushing my mind remembering a shortcut.

I’ve read how to build my own darktable version. But as a non technician I stumbled. So maybe it will be better for me to wait till your work is merged into a version of 5.4. I would be very happy to install an AppImage and test as much as you like.

Kind regards, jetze

2 Likes