Home / Lua Scripts Manual / scripts / overview
< scripts
contrib >

# 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

< scripts
contrib >