Am 13.04.2016 um 10:20 schrieb Christian Kanzian:
Hi,

Be aware I'm not a developer so my comments can be wrong.

Am 09.04.2016 um 15:22 schrieb Christian Kanzian:

[...]

like the usermanual. What's written there is possible. If it is not
there you
simple can't do it.

That's one of the problems: Of course I try to learn from the
documentation (especially the Lua API documentation), but it is not
really very detailed and for me it is hard to understand where the
limits are. E.g., some problems may be possible to circumvent or may be
default Lua and therefore not documented in the API docs.

Yes I'm in the same situation. Here is the default Lua:
https://www.lua.org/manual/5.2/
Because I'm already middleaged, sitting all day long in front of a
screen I usually print this manuals for later reading ;-).
Takes a lot of time for me to get simple things working. E.g. until now
I still don't know howto reload a lua script without restarting darktable.

I experimented a bit because to restart dt all the time was annoying for me as well. Therefore, I found a partial solution. In my luarc file I register a new shortcut like this to reload my module:

  dt.register_event(
    "shortcut",
    function()
      package.loaded[ 'mymodule' ] = nil
      require "mymodule"
      print("module reloaded")
    end,
  "reload module"
  )

With this I am able to reload my module, but it does not overwrite the old one but adds a new instance. Therefore, I am able to reuse the session about 10 times before I have to restart dt. I did not find a way to really unregister a module (an inverse to dt's register_lib function), if someone has an idea here ...

Should be easy from a developers point of view. What's even more
confusing is, that sometimes you need to know how darktable is supposed
to work. e.g. darktable.gui.action_images.


Does your answer mean that everything I try to achieve is impossible at
the moment?
No, that was more related to the UI elements and all the formating.
Maybe everthing is possible.
What extensions are planned, is it likely that these things
become possible?
I ask because I have a bunch of ideas of new
features/modules for workflow speed-up that would perfectly suit the
idea of Lua integration, all of them being little helpers of low
complexity.

[description of speedtagging module idea]

Such a modul will be really helpful for me too, therefore I responded to
your mail.

Thanks for the moral support :-D


[Description of Christian K's scripts]

Coming to your speed-tagging ideas:
1.) shortcuts
ATM I can't imagine how shortcuts can be assigned via moduls. I'm not
aware of any place in darktable expect the references dialog where
shortcuts can be defined. Of course with lua you can add shortcuts to
the preferences dialog. So maybe there is by design no lua UI element
for shortcuts? There is a config file "keyboardrc" and with the in- and
output facilities of lua someone could mess around. But I think this
will bring you in hell's kitchen.

If there is no infrastructure now, maybe it can be established. Since the shortcuts can already be registered, maybe it is not that hard to directly assign them as well. But this generates a mess of storing old shortcuts, temporarily adding the new ones and then restore the old ones. Therefore, another, preferred, possibility would be to temporarily directly hook into the key input processing. While speed tagging is active, no other shortcuts should work, so it would be better to trap those events earlier. Maybe the rating and color shortcuts should be passed through. Unfortunately, I have no idea if this is possible.

2.) “use tags from last picture”
I usually tag several images at once. So what is the last picture if I
use "darktable.gui.action_images".

In the context of the speedtagging module it is clear, it is not the last picture but the last set of tags applied. The idea is that the pictures are sequentially shown full screen (the Alt-1 view). All the tag operations are done to the picture and then these tags are committed and the next picture is shown. If you have 20 pictures showing the same 7 people but the 4th picture has 2 of them missing, it would mean you have to press 8 key strokes for the first, 2 key strokes for the rest of them (use tags from last image and commit tags) and 2 additional ones for picture number 4 and 5 (the keys assigned for the 2 people missing). This would be much faster than marking all the pictures and adding the 7 tags in the conventional way and then removing 2 tags from picture 4, especially if you are using a deep hierarchy such as people|friends|John Doe and you know a lot of Johns. It becomes even more handy if there is more fluctuation of people on your images. This is a typical use case for me. 100 pictures with a subset of the same 10 people on each picture. This is really hard with the conventional tagging, especially since you are switching between mouse and keyboard really often to mark useful picture combinations and save time.

3.) shortcuts temporarily overwrite the general ones
A good question how shortcuts are handled now, because if you assign a
shortcut which is already in use this one will be removed from the old
position.

Generally I would not start with UI elements, because you can add them
later on. Instead I would add shortcuts first, make the number of them
flexible, (use io of lua to save "presets" in a file) and if possible
push them to github* [2].

I thought it would be nice to start from there since it is easier to explain the idea by the UI. If someone sees the panel with shortcuts on the left and tags on the right and a big activate button, I guess the functionality is immediately explained. And I therefore just first wanted to sort the gui and then proceed with the rest. But you are right in the sense that I have to learn all the other things as well. Any hints welcome :-)

Thanks and best regards

Chris


___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to