Grundsätzliche Prinzipien
Scripts can register callbacks to perform actions on various darktable events. This callback mechanism is the primary method of triggering lua actions.
Der zentrale Steuerungsmechanismus für Lua-Skripte ist der Skript-Manager, der das Hilfsmodul scripts in Lighttable startet und die mit Darktable mitgelieferten Skripte lädt.
Lua scripts can be disabled in preferences/lua options.
🔗Wie Darktable Skripte (und den Skript-Manager) lädt
darktable unterscheidet zwischen zwei Arten von Speicherorten: Dateien, die als Lua-Code ausgeführt werden, und Verzeichnisse, die nach Skripten durchsucht werden:
-
luarc-files executed at startup:-
$DARKTABLE/share/darktable/luarc: Wird von darktable selbst ausgeführt. Dies ist der Einstiegspunkt, über den der (mitgelieferte) Skript-Manager gestartet wird. Er dient ausschließlich internen Zwecken und sollte nicht bearbeitet werden. $DARKTABLE ist das Installationsverzeichnis des Programms. -
[Konfigurationsverzeichnis]/luarc: Falls vorhanden – dies ist eine Möglichkeit, eigene Skripte aufzurufen (siehe unten).
-
-
Nach
.lua-Skripten durchsucht (die dann im Skript-Modul erscheinen):-
$DARKTABLE/share/darktable/lua-scripts/: Die mit darktable mitgelieferten Skripte. -
[Konfigurationsverzeichnis]/lua/[Ordner]: Deine eigenen Skripte (siehe unten).
-
The configuration directory is specific to your OS.
So kannst du deine eigenen Skripte wie folgt hinzufügen:
- Lass sie vom Skript-Modul erkennen (empfohlen)
- Speichere dein Skript z. B. unter
[Konfigurationsverzeichnis]/lua/user/myscript.lua - Aktiviere sie im Skript-Modul, indem du den entsprechenden Ordner (in diesem Beispiel „user“) auswählst und auf die Ein-/Aus-Schaltfläche neben dem entsprechenden Skript klickst.
- Hinweis: Damit das Skript-Modul Skripte erkennen kann, müssen diese sich in einem Unterordner von
[Konfigurationsverzeichnis]/luabefinden.
- Speichere dein Skript z. B. unter
- Verwende
luarc(wird beim Start automatisch ausgeführt)- Oder schreibe den Code direkt in
[Konfigurationsverzeichnis]/luarc. Das funktioniert zwar, ist aber für mehr als ein paar Zeilen nicht praktikabel. - Oder speicher den Code in einer eigenen Datei und füge ihn über
luarcmitrequireein: Ein Skript, das sich beispielsweise in[Konfigurationsverzeichnis]/lua/userscript.luabefindet, könnte durch Hinzufügen vonrequire „userscript“geladen werden (beachte, dass die Endung .lua hier weggelassen wird).
- Oder schreibe den Code direkt in
🔗Ein Hinweis zur Installation von Lua-Skripten aus früheren Darktable-Versionen
Vor Version 5.6 mussten die Skripte von darktable manuell installiert werden (siehe Skripte von darktable).
Um die Kompatibilität mit einer solchen Installation zu gewährleisten, sucht require vor dem Laden des mitgelieferten Skript-Managers in deinem Konfigurationsverzeichnis nach einem Skript-Manager: Wenn [Konfigurationsverzeichnis]/lua/tools/script_manager.lua vorhanden ist (beispielsweise aus einer manuellen Installation vor Version 5.6), wird dieser Skript-Manager anstelle des mitgelieferten ausgeführt.