diff --git a/ChangeLog.md b/ChangeLog.md new file mode 100644 index 0000000..c3aeffd --- /dev/null +++ b/ChangeLog.md @@ -0,0 +1,49 @@ +## Changes from most recent to oldest + +**17 Feb 2021 - wpferguson - API 6.2.3 register_action changes** + +* Added check for API version and supplied a name argument if the +API version was greater than or equal to 6.2.3 + +**10 Feb 2021 - wpferguson - bugfix select_untagged** + +* Fixed callback to return a list of images as expected instead of +doing the selection in the callback + +**10 Feb 2021 - wpferguson - bugfix API 6.2.1 compatibility** + +* The inline check for API version didn't handle argument return +correctly so added a transition library with a register_event function +override to check the API version and process the arguments correctly. + +**9 Feb 2021 - wpferguson - bugfix API 6.2.2 compatibility** + +* The inline check for API version didn't handle argument return +correctly so changed it to a full if/else block + +**4 Reb 2021 - wpferguson - API 6.2.2 compatibililty** + +* Added check for API version and supplied a name argument to register_selection +if the API version was greater than or eqal to 6.2.2 + +**1 Feb 2021 - wpferguson - API 6.2.1 compatibility** + +* Added check for API version and supplied a name argument to register_event +if the API version was greater than or eqal to 6.2.1 + +**21 Jan 2021 - wpferguson - Modified dtutils function find_image_by_id** + +* For users with API 6.2.0 or greater - Enabled use of new API function +darktable.database_get_image() in find_image_by_id(). + +**19 Jan 2021 - schwerdf - Added dtutils library function find_image_by_id()** + +* Added new library function to retrieve an image from the library based on it's ID instead +of it's row number in the database + +**10 Jan 2021 - chrisaga - copy_attach_detach_tags localization** + +**7 Jan 2021 - dtorop - add contrib/fujifilm_dynamic_range** + +* add a new contrib script, fujifilm_dynamic_range to adjust exposure +based on the exposure bias camera setting \ No newline at end of file diff --git a/README.md b/README.md index 8ca96db..19a2c95 100644 --- a/README.md +++ b/README.md @@ -7,23 +7,25 @@ efforts of the darktable developers, maintainers, contributors and community. Th contained in the repository, whether they can be run by themselves (Standalone - Yes) or depend on other scripts (Standalone - No), what operating systems they are known to work on (L - Linux, M - MacOS, W - Windows), and their purpose. +For the latest changes, see the [ChangeLog](ChangeLog.md) + ### Official Scripts These scripts are written primarily by the darktable developers and maintained by the authors and/or repository maintainers. They are located in the official/ directory. Name|Standalone|OS |Purpose ----|:--------:|:---:|------- -check_for_updates|Yes|LMW|Check for updates to darktable -copy_paste_metadata|Yes|LMW|Copy and paste metadata, tags, ratings, and color labels between images -delete_long_tags|Yes|LMW|Delete all tags longer than a specified length -delete_unused_tags|Yes|LMW|Delete tags that have no associated images -enfuse|No|L|Exposure blend several images (HDR) -generate_image_txt|No|L|Generate txt sidecar files to be overlaid on zoomed images -image_path_in_ui|Yes|LMW|Plugin to display selected image path -import_filter_manager|Yes|LMW|Manager for import filters -import_filters|No|LMW|Two import filters for use with import_filter_manager -save_selection|Yes|LMW|Provide save and restore from multiple selection buffers -selection_to_pdf|No|L|Generate a PDF file from the selected images +[check_for_updates](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/check_for_updates)|Yes|LMW|Check for updates to darktable +[copy_paste_metadata](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/copy_paste_metadata)|Yes|LMW|Copy and paste metadata, tags, ratings, and color labels between images +[delete_long_tags](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/delete_long_tags)|Yes|LMW|Delete all tags longer than a specified length +[delete_unused_tags](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/delete_unused_tags)|Yes|LMW|Delete tags that have no associated images +[enfuse](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/enfuse)|No|L|Exposure blend several images (HDR) +[generate_image_txt](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/generate_image_txt)|No|L|Generate txt sidecar files to be overlaid on zoomed images +[image_path_in_ui](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/image_path_in_ui)|Yes|LMW|Plugin to display selected image path +[import_filter_manager](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/import_filter_manager)|Yes|LMW|Manager for import filters +[import_filters](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/import_filters)|No|LMW|Two import filters for use with import_filter_manager +[save_selection](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/save_selection)|Yes|LMW|Provide save and restore from multiple selection buffers +[selection_to_pdf](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/official/selection_to_pdf)|No|L|Generate a PDF file from the selected images ### Contributed Scripts @@ -32,39 +34,40 @@ These scripts are contributed by users. They are meant to have an "owner", i.e. Name|Standalone|OS |Purpose ----|:--------:|:---:|------- -AutoGrouper|Yes|LMW|Group images together by time -autostyle|Yes|LMW|Automatically apply styles on import -clear_GPS|Yes|LMW|Reset GPS information for selected images -CollectHelper|Yes|LMW|Add buttons to selected images module to manipulate the collection -copy_attach_detach_tags|Yes|LMW|Copy and paste tags from/to images -cr2hdr|Yes|L|Process image created with Magic Lantern Dual ISO -enfuseAdvanced|No|LMW|Merge multiple images into Dynamic Range Increase (DRI) or Depth From Focus (DFF) images -exportLUT|Yes|LMW|Create a LUT from a style and export it -ext_editor|No|LW|Export pictures to collection and edit them with up to nine user-defined external editors -face_recognition|No|LM|Identify and tag images using facial recognition -fujifilm_ratings|No|LM|Support importing Fujifilm ratings -geoJSON_export|No|L|Create a geo JSON script with thumbnails for use in ... -geoToolbox|No|LMW|A toolbox of geo functions -gimp|No|LMW|Open an image in GIMP for editing and return the result -gpx_export|No|LMW|Export a GPX track file from selected images GPS data -HDRMerge|No|LMW|Combine the selected images into an HDR DNG and return the result -hugin|No|LMW|Combine selected images into a panorama and return the result -image_stack|No|LMW|Combine a stack of images to remove noise or transient objects -image_time|Yes|LMW|Adjust the EXIF image time -kml_export|No|L|Export photos with a KML file for usage in Google Earth -LabelsToTags|Yes|LMW|Apply tags based on color labels and ratings -OpenInExplorer|No|LMW|Open the selected images in the system file manager -passport_guide|Yes|LMW|Add passport cropping guide to darkroom crop tool -pdf_slideshow|No|LM|Export images to a PDF slideshow -[photils](https://github.com/scheckmedia/photils-dt)|No|LM|Automatic tag suggestions for your images -quicktag|Yes|LMW|Create shortcuts for quickly applying tags -rate_group|Yes|LMW|Apply or remove a star rating from grouped images -rename-tags|Yes|LMW|Change a tag name -RL_out_sharp|No|LW|Output sharpening using GMic (Richardson-Lucy algorithm) -select_untagged|Yes|LMW|Enable selection of untagged images -slideshowMusic|No|L|Play music during a slideshow -transfer_hierarchy|Yes|LMW|Image move/copy preserving directory hierarchy -video_ffmpeg|No|LMW|Export video from darktable +[AutoGrouper](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/AutoGrouper)|Yes|LMW|Group images together by time +[autostyle](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/autostyle)|Yes|LMW|Automatically apply styles on import +[clear_GPS](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/clear_GPS)|Yes|LMW|Reset GPS information for selected images +[CollectHelper](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/CollectHelper)|Yes|LMW|Add buttons to selected images module to manipulate the collection +[copy_attach_detach_tags](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/copy_attach_detach_tags)|Yes|LMW|Copy and paste tags from/to images +[cr2hdr](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/cr2hdr)|Yes|L|Process image created with Magic Lantern Dual ISO +[enfuseAdvanced](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/enfuseAdvanced)|No|LMW|Merge multiple images into Dynamic Range Increase (DRI) or Depth From Focus (DFF) images +[exportLUT](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/exportLUT)|Yes|LMW|Create a LUT from a style and export it +[ext_editor](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/ext_editor)|No|LW|Export pictures to collection and edit them with up to nine user-defined external editors +[face_recognition](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/face_recognition)|No|LM|Identify and tag images using facial recognition +[fujifilm_dynamic_range](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/fujifilm_dynamic_range)|No|LMW|Correct fujifilm exposure based on exposure bias camera setting +[fujifilm_ratings](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/fujifilm_ratings)|No|LM|Support importing Fujifilm ratings +[geoJSON_export](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/geoJSON_export)|No|L|Create a geo JSON script with thumbnails for use in ... +[geoToolbox](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/geoToolbox)|No|LMW|A toolbox of geo functions +[gimp](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/gimp)|No|LMW|Open an image in GIMP for editing and return the result +[gpx_export](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/gpx_export)|No|LMW|Export a GPX track file from selected images GPS data +[HDRMerge](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/HDRMerge)|No|LMW|Combine the selected images into an HDR DNG and return the result +[hugin](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/hugin)|No|LMW|Combine selected images into a panorama and return the result +[image_stack](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/image_stack)|No|LMW|Combine a stack of images to remove noise or transient objects +[image_time](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/image_time)|Yes|LMW|Adjust the EXIF image time +[kml_export](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/kml_export)|No|L|Export photos with a KML file for usage in Google Earth +[LabelsToTags](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/LabelsToTags)|Yes|LMW|Apply tags based on color labels and ratings +[OpenInExplorer](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/OpenInExplorer)|No|LMW|Open the selected images in the system file manager +[passport_guide](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/passport_guide)|Yes|LMW|Add passport cropping guide to darkroom crop tool +[pdf_slideshow](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/pdf_slideshow)|No|LM|Export images to a PDF slideshow +[photils](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/photils)|No|LM|Automatic tag suggestions for your images +[quicktag](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/quicktag)|Yes|LMW|Create shortcuts for quickly applying tags +[rate_group](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/rate_group)|Yes|LMW|Apply or remove a star rating from grouped images +[rename-tags](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/rename-tags)|Yes|LMW|Change a tag name +[RL_out_sharp](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/RL_out_sharp)|No|LW|Output sharpening using GMic (Richardson-Lucy algorithm) +[select_untagged](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/select_untagged)|Yes|LMW|Enable selection of untagged images +[slideshowMusic](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/slideshowMusic)|No|L|Play music during a slideshow +[transfer_hierarchy](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/transfer_hierarchy)|Yes|LMW|Image move/copy preserving directory hierarchy +[video_ffmpeg](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/contrib/video_ffmpeg)|No|LMW|Export video from darktable ### Example Scripts @@ -72,17 +75,17 @@ These scripts provide examples of how to use specific portions of the API. They Name|Standalone|OS |Purpose ----|:--------:|:---:|------- -api_version|Yes|LMW|Print the current API version -darkroom_demo|Yes|LMW|Demonstrate changing images in darkoom -gettextExample|Yes|LM|How to use translation -hello_world|Yes|LMW|Prints hello world when darktable starts -lighttable_demo|Yes|LMW|Demonstrate controlling lighttable mode, zoom, sorting and filtering -moduleExample|Yes|LMW|How to create a lighttable module -multi_os|No|LMW|How to create a cross platform script that calls an external executable -panels_demo|Yes|LMW|Demonstrate hiding and showing darktable panels -preferenceExamples|Yes|LMW|How to use preferences in a script -printExamples|Yes|LMW|How to use various print functions from a script -running_os|Yes|LMW|Print out the running operating system +[api_version](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/api_version)|Yes|LMW|Print the current API version +[darkroom_demo](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/darkroom_demo)|Yes|LMW|Demonstrate changing images in darkoom +[gettextExample](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/gettextExample)|Yes|LM|How to use translation +[hello_world](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/hello_world)|Yes|LMW|Prints hello world when darktable starts +[lighttable_demo](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/lighttable_demo)|Yes|LMW|Demonstrate controlling lighttable mode, zoom, sorting and filtering +[moduleExample](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/moduleExample)|Yes|LMW|How to create a lighttable module +[multi_os](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/multi_os)|No|LMW|How to create a cross platform script that calls an external executable +[panels_demo](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/panels_demo)|Yes|LMW|Demonstrate hiding and showing darktable panels +[preferenceExamples](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/preferenceExamples)|Yes|LMW|How to use preferences in a script +[printExamples](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/printExamples)|Yes|LMW|How to use various print functions from a script +[running_os](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/examples/running_os)|Yes|LMW|Print out the running operating system ### Tools @@ -90,11 +93,11 @@ Tool scripts perform functions relating to the repository, such as generating do Name|Standalone|OS |Purpose ----|:--------:|:---:|------- -executable_manager|Yes|LMW|Manage the external executables used by the lua scripts -gen_i18n_mo|No|LMW|Generate compiled translation files (.mo) from source files (.po) -get_lib_manpages|No|LM|Retrieve the library documentation and output it in man page and PDF format -get_libdoc|No|LMW|Retrieve the library documentation and output it as text -script_manager|No|LMW|Manage (install, update, enable, disable) the lua scripts +[executable_manager](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/tools/executable_manager)|Yes|LMW|Manage the external executables used by the lua scripts +[gen_i18n_mo](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/tools/gen_i18n_mo)|No|LMW|Generate compiled translation files (.mo) from source files (.po) +[get_lib_manpages](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/tools/get_lib_manpages)|No|LM|Retrieve the library documentation and output it in man page and PDF format +[get_libdoc](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/tools/get_libdoc)|No|LMW|Retrieve the library documentation and output it as text +[script_manager](https://darktable-org.github.io/luadocs/lua.scripts.manual/scripts/tools/script_manager)|No|LMW|Manage (install, update, enable, disable) the lua scripts ### Related third-party projects @@ -219,15 +222,19 @@ To update the script repository, open a terminal or command prompt and do the fo ## Documentation -Each script includes its own documentation and usage in its header, please refer to them. +The [Lua Scripts Manual](https://darktable-org.github.io/luadocs/lua.scripts.manual/) provides documentation +for the scripts transcribed from the header comments. Each script also contains comments and usage instructions +in the header comments. -Lua-script libraries documentation may be generated using the tools in the tools/ directory. +The [Lua Scripts Library API Manual](https://darktable-org.github.io/luadocs/lua.scripts.api.manual/) provides +documentation of the libraries and functions. Lua-script libraries documentation may also be generated using +the tools in the tools/ directory. More information about the scripting with Lua can be found in the darktable user manual: -https://www.darktable.org/usermanual/en/lua_chapter.html +[Scripting with Lua](https://darktable-org.github.io/dtdocs/lua/) -The darktable Lua API documentation is here: -https://www.darktable.org/lua-api/ +The [Lua API Manual](https://darktable-org.github.io/luadocs/lua.api.manual/) provides docuemntation of the +darktable Lua API. ## Troubleshooting