Основні принципи
Сценарії можуть реєструвати зворотні виклики для виконання дій при настанні різних подій. Цей механізм зворотного виклику є основним методом активації дій Lua.
Центральним оркестратором для Lua-сценаріїв є менеджер сценаріїв, який запускає сервісний модуль Сценарії у режимі Світлого стола та завантажує сценарії, що входять до комплекту Darktable.
Сценарії Lua можна вимкнути в Налаштування > Опції Lua.
🔗Як Darktable завантажує сценарії (і менеджер сценаріїв)
Darktable по-різному обробляє два типи розташування: файли, які виконуються як код Lua, та каталоги, які скануються на наявність сценаріїв:
-
Виконується під час запуску:
-
$DARKTABLE/share/darktable/luarc: запускається самим Darktable. Це точка входу, яка запускає менеджер сценаріїв. Вона служить лише для внутрішніх цілей і не повинна редагуватися. $DARKTABLE тут — це каталог встановлення програми. -
[каталог-конфігурації]/luarc: запускається менеджером сценаріїв, якщо присутній. Це один із способів запуску власних сценаріїв (див. нижче).
-
-
Скануються на наявність сценаріїв
.lua(які потім відображаються в модулі сценаріїв):-
$DARKTABLE/share/darktable/lua-scripts/: сценарії, що входять до комплекту Darktable. -
[каталог-конфігурації]/lua/[папка]: ваші власні сценарії (див. нижче).
-
Каталог конфігурації залежить від вашої ОС.
Таким чином, ви можете додати власні сценарії в наступний спосіб:
- Доручіть модулю сценаріїв їх завантажувати (рекомендовано):
- Розмістіть ваш сценарій, наприклад, у
[каталог-конфігурації]/lua/user/myscript.lua - Активуйте його в модулі сценаріїв, вибравши відповідну папку (у цьому прикладі “user”) та натиснувши кнопку ввімкнення/вимкнення поруч із відповідним сценарієм.
- Примітка: Щоб модуль сценаріїв завантажував сценарії, вони повинні бути в підпапці
[каталог-конфігурації]/lua.
- Розмістіть ваш сценарій, наприклад, у
- Використовуйте
luarc(автоматично запускається під час запуску)- Або напишіть код безпосередньо в
[каталог-конфігурації]/luarc. Це працює, але непрактично для чогось, що перевищує кілька рядків. - Або збережіть код в окремому файлі та використовуйте
requireчерезluarc: Наприклад, сценарій, що міститься в[каталог-конфігурації]/lua/userscript.lua, можна завантажити, додавшиrequire "userscript"(зверніть увагу, що .lua тут пропущено).
- Або напишіть код безпосередньо в
🔗Примітка щодо встановлення Lua-сценаріїв з попередніх версій Darktable
До версії 5.6 сценарії потрібно було встановлювати вручну (див. Сценарії Darktable).
Щоб залишатися сумісним з такою інсталяцією, require шукає менеджер сценаріїв у вашому каталозі конфігурації перед завантаженням комплектного: якщо [каталог-конфігурації]/lua/tools/script_manager.lua присутній (наприклад, з ручного встановлення до версії 5.6), цей менеджер сценаріїв запускається замість комплектного. У цьому випадку файл luarc у каталозі конфігурації не завантажується.