overview
darktable can be customized and extended using the Lua programming language. The lua-scripts repository contains the collected efforts of the darktable developers, maintainers, contributors and community. The following sections list the scripts 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.
🔗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 | Op/Sys | 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 |
🔗Contributed Scripts
These scripts are contributed by users. They are meant to have an “owner”, i.e. the author, who maintains them. Over time the community has helped maintain these scripts, as well as the authors. They are located in the contrib/ directory.
Name | Standalone | Op/Sys | 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 | No | LM | Automatic tag suggestions for your images |
quicktag.md | 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 |
🔗Example Scripts
These scripts provide examples of how to use specific portions of the API. They run, but are meant for demonstration purposes only. They are located in the examples/ directory.
Name | Standalone | Op/Sys | 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 |
🔗Tools
Tool scripts perform functions relating to the repository, such as generating documentation. They are located in the tools/ directory.
Name | Standalone | Op/Sys | 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 |