## Upcoming

* For custom actions with file or folder arguments, the confirmation in file dialogs will no longer be displayed. This could cause confusion if the file was intended for reading only (#164).
* The file dialog for loading settings is now a native file dialog for consistency with other file dialogs in the plug-in. The `Load size-related settings` option was moved to `Settings → Preferences...`.
* On error (crash), the plug-in now exits gracefully again, instead of yielding the ominous "The dying plug-in may have messed up GIMP's internal state" message.
* Fixed incorrect dialog title for the `Save Preset to File...` option in actions (#166).


## 1.2.10

### July 26, 2026

This release allows loading and saving GIMP presets/configs for layer effects/plug-ins, introduces more built-in color-related actions for convenience and improves usability of numeric arguments.

New features:
* You can now load presets for plug-ins and layer effects (custom actions) saved in GIMP. Conversely, you can save presets within Batcher and reuse them in GIMP.
* Added two new built-in actions for color correction: `Color Balance` and `Hue-Saturation` (#111). These are equivalent to their corresponding GIMP tools and allow loading and saving presets. These actions are only available for GIMP 3.2 or later. Please note that using a non-default blend mode and opacity values below 100 may not produce the same results as the corresponding tools in GIMP.
* Added the following new built-in actions for automatic color correction: `Equalize`, `Stretch Contrast`, `Stretch Contrast HSV` and `Color Enhance`. These are equivalent to their corresponding GIMP tools (#141).
* Added a new unit labeled `%*` representing a percentage taken from the specified object (image or layer) and property (width, height, ...). This was originally the behavior of the `%` unit. To reduce visual clutter, the object and property are now displayed in a popover when choosing `%*`. The `%` unit is now only displayed for particular arguments in built-in actions where applicable. For example, the percentage for the `Width` argument in the `Scale` action is taken from the width of the object to be scaled (selected by the `Apply to (image or layer):` argument).
* Scale: Added options to scale only images/layers smaller/larger than the specified width and height, or custom width and height (#163).
* Added a setting to control whether the dialog for quick variants of Export Images and Export Layers is displayed. Previously, once you unchecked `Show this dialog`, there was no way to restore the dialog unless you reset settings. This setting can be found under `Settings → Preferences...` (see below).
* Added a setting to adjust the number of decimal places for numeric arguments. This allows you to increase numeric precision if needed. This setting can be found under `Settings → Preferences...` (see below).

Changes to actions and conditions:
* Renamed `Color` menu to `Colors` for consistency with GIMP.
* Moved `White Balance` under `Colors → Auto`.
* For consistency with GIMP, opacity arguments are now displayed in the range 0.0-100.0 and saved in the range 0.0-1.0.

Changes to the user interface:
* Moved `Close when Done`, `Continue on Error` and `Keep Input Images` under `Settings → Preferences...`. Changes to any of these settings are saved immediately.

Bug fixes:
* Fixed action/condition edit dialogs not being closed when removing them by pressing Delete or when resetting settings.


## 1.2.9

### May 24, 2026

This release improves usability of layer effects and management of actions and conditions.

New features:
* Actions and conditions can now be duplicated by selecting the `Duplicate` item from the action options menu (see changes below) or by pressing Ctrl + D.

User interface changes:
* Numeric arguments for layer effects (filters) installed with GIMP now have much more realistic minimum and maximum values, the same ones when using these effects in GIMP. You can still drag the mouse beyond the left or right edge or enter a higher/lower value, if applicable. The step sizes (when pressing the Up, Down, Page Up or Page Down key) and the number of decimal digits were also updated accordingly (#152).
* Adjusting values on decimal numeric sliders by keys now increases/decreases the values by a smaller amount for small ranges (e.g. 0.01 by pressing the Up key if the value range is 0.0-1.0).
* Options related to managing actions and conditions (rename, remove, ...) are now placed under a menu which can be brought up by pressing the arrow button next to the edit button.
* Actions and conditions can now be renamed and removed via keyboard shortcuts, specifically F2 and Delete, respectively.
* Actions and conditions can now be moved up/down via `Move Up/Down` menu items.

Bug fixes:
* Fixed a crash when adding the `Without Color Tags` condition.


## 1.2.8

### May 16, 2026

This release focuses on usability improvements of built-in actions.

General changes:
* Updated Dutch translation (thanks to @DiGro).
* Replaced the `Merge visible layers and rasterize` export option with a dropdown. You now have a choice to remove the alpha channel (i.e. flatten) the image before export if no alpha channel is desired.

New features:
* Added `Flatten (Remove Alpha)` built-in action for convenience.

User interface changes:
* Entries representing patterns (e.g. in `Rename` or `Export`) now expand while typing, allowing to type longer patterns more easily. The default width of pattern entries was also increased for this purpose (#136).
* File arguments in actions now contain a text field and a button displaying a native file dialog, much like the output directory in e.g. Batch Convert.
* Scale: Renamed `New width` to `Width`, `New heigh` to `Height`. Renamed `Aspect ratio` to `How to scale` and its options for hopefully greater clarity, particularly in hopes of making the `Fit...` options more discoverable. `How to scale` is now placed before `Width` and `Height`.
* Scale, Rotate: The action name is now updated automatically based on the options chosen.
* Export, Scale, Rotate, Resize Canvas: Several options are now hidden when they are not usable. Some options which were previously insensitive (disabled) will now be shown/hidden instead. This change should reduce cognitive load on the user.
* Moved less common options (`Filter`, `Blend mode`) for Brightness-Contrast, Levels and Curves under More options.

Changes to actions and conditions:
* Brightness-Contrast, Levels, Curves: `Apply non-destructively` is now enabled by default for consistency with GIMP. Existing actions remain intact.
* Rotate: When using the custom angle and when rotating the entire image, the image will now be fit to its new bounds. This change makes the behavior of the action consistent with rotating by 90, 180 or 270 degrees. This behavior is disabled for existing Rotate actions when updating Batcher to this version, but can be enabled by checking `Resize image to fit`.

Bug fixes:
* Fixed processing and export of images with a precision (bit depth and gamma) different from the default (8-bit nonlinear) (#157).
* Fixed the GUI of initial actions on the very first start of Batcher not being set up properly. This resulted in many actions, notably `Resize to Layer Size`, displaying all options at once.
* The fix for crash on startup introduced in Batcher 1.2.6 will no longer require manually deleting the `parasiterc` file if you started 1.2.6 and then installed and started a later version.


## 1.2.7

### May 08, 2026

* Fixed a critical bug that caused Batcher to crash on startup when upgrading to 1.2.6.
* Fixed a crash when using a color picker for color arguments in actions (#154).


## 1.2.6

### May 08, 2026

This release improves watermark insertion and provides more layer operations, namely duplicating layers and applying actions to layers at a particular position.

General changes:
* `Layer Above (Foreground)` and `Layer Below (Background)` will now always consider the layer immediately above or below the current layer, respectively. Previously, if `Insert Foreground/Background` inserted layers with color tags, `Layer Above/Below` would only consider these tagged layers, regardless of other layers that could be inserted by custom actions immediately above/below the current layer. This behavior could cause confusion.

New features:
* Replaced `Insert Background` and `Insert Foreground` with `Insert Overlay (Watermark)`, which now also allows inserting text. Basic options such as position, size, opacity can be adjusted directly within this action (without having to add other actions and using `Layer Above` or `Layer Below`). This action will not be added as the first action - text or image watermarks are by default placed to the bottom right of the current image extents, which would cause confusion when `Resize to Layer Size` is placed after this action in Export Layers or Edit Layers (#124).
* In `Insert Overlay (Watermark)`, you can now specify patterns instead of a single file. This way, you are able to insert different background/foreground for each input image. Patterns can also be used for the text to be inserted.
* Added a new `Duplicate Layer` action, which inserts a copy of the specified layer in the same image.
* You can now apply actions to layers at arbitrary positions via the new `Layer at Position` placeholder. This can be useful if you insert multiple layers in an image or your images readily contain multiple layers, and you need to modify a specific layer that is not directly above or below the current layer. This only applies to layers at the top level, i.e. not inside group layers.
* For the `[image name]` field, added `%o` option that uses the original image name (before being renamed e.g. by the `Rename` action).
* If patterns are used in `Insert Overlay (Watermark)`, you can specify the image file path via the `[image file]` field.

User interface changes:
* If `Match input folders` is displayed on start, the default dialog focus will be set to the button for choosing a folder.

Changes to actions and conditions:
* `Merge Background` and `Merge Foreground` are no longer added automatically when `Insert Overlay (Watermark)` is added.
* Replaced `Merge Background` and `Merge Foreground` with a single action named `Merge Layer` that can be added by the user.
* Renamed the automatically added `Not Background/Not Foreground` conditions to `Without Color Tag: <color tag>` given the related changes for clarity.

Bug fixes:
* Fixed some options in `Crop` and `Resize Canvas` not working for text layers.
* Fixed names of actions and conditions displayed after reset not being updated properly. In particular, when resetting settings for Export Layers, the `Resize Canvas` action that is automatically added was not renamed to `Resize to Layer Size`.


## 1.2.5

### April 07, 2026

* Fixed a crash when adding and editing `With Color Tags` or `Without Color Tags` conditions (#147).


## 1.2.4

### March 31, 2026

* Fixed a crash for Export Layers (Quick) if `Show this dialog` was checked (#145).
* Fixed a crash when selecting certain layer effects in the custom action browser for some GIMP installations (specifically those that depend on a version of PyGObject lower than 3.50.0) (#143).


## 1.2.3

### March 25, 2026

* Fixed a bug causing `Edit and Save Images` to crash on start (#142).


## 1.2.2

### March 15, 2026

General changes:
* Updated Dutch translation (thanks to @DiGro).
* **For GIMP 3.2 or later, you must install Batcher 1.2.2 or later.** There was an issue preventing Batcher from working.

New features:
* You can now type or paste an output folder (beside choosing a folder from a file dialog or the dropdown). This makes it possible to specify a folder that does not exist (which is automatically created during processing).

Changes to actions and conditions:
* Levels, Curves: For GIMP 3.2 and later, presets saved with a mode other than linear (non-linear, perceptual) are now allowed.
* Brightness-Contrast, Levels, Curves: For GIMP 3.2 and later, these actions can now optionally be applied non-destructively. Blend mode and opacity can now also be adjusted.
* `script-fu-unsharp-mask` is no longer available as a custom action as it opens a new image in GIMP (even when running the procedure non-interactively) and is thus not usable within Batcher. The `gegl:unsharp-mask` filter can be used as a substitute (#138).

User interface changes:
* Batch Convert, Export Images, Export Layers: The default focus when opening the main dialog is now on the output folder entry.
* Moved labels for export settings to separate rows. This makes more room for the folder and filename entries (and particularly when translated labels are longer than their English counterparts). The labels have also been made clearer thanks to the additional space available.
* Slightly increased width for the file format entry to account for file extensions with more characters.
* If an action fails during the preview, an inline message is displayed instead of a modal dialog. This can vastly reduce frustration when a user adds and edits an action until the action no longer results in a failure (e.g. replacing default values such as unspecified files or adding coordinates for `gimp-pencil`). Additionally, this prevents message spam when an action fails when starting Batcher, which could result in Batcher getting unresponsive on some platforms (#133).

Bug fixes:
* Fixed several icons not changing when selecting a different icon theme in GIMP.
* Fixed a critical bug preventing Batcher from running on certain platforms for GIMP 3.2 or later.


## 1.2.1

### February 08, 2026

* Updated translations: Dutch, German. Thanks to @DiGro and @ChrisLauinger77!
* In the rare event that a folder with the same name exists during export, the overwrite dialog will no longer display the `Replace this file` option as it was causing an error. While the file to be exported could in theory replace the folder by removing the folder and its contents, this would likely not be anticipated by the user, rendering this choice unsafe. If `Apply this choice to all remaining files` is checked or processing is performed non-interactively, the `Rename new file` is used instead (but only if a folder exists rather than a file).
* Fixed a crash when opening the custom action browser when certain custom layer effects are installed (#127).


## 1.2

### January 25, 2026

This release includes quality-of-life improvements, particularly to the user interface, and resolves most issues reported since the previous version.

General changes:
* Added Brazilian Portuguese translation (thanks to @romrocha333).
* Added Korean translation (thanks to @Maguk-Bong).
* Added Polish translation (thanks to @jghosting764).
* Updated Dutch translation (thanks to @DiGro).
* Updated German translation (thanks to @ChrisLauinger77).
* Updated Japanese translation (thanks to @re-unknown).
* Removed filters (layer effects, GEGL operations) that were either redundant or had no effect. **If you used these filters, they will be automatically removed** (a warning message will appear, including a suggestion for an alternative filter if available).
* Batch Convert: Loaded images will now have their orientation automatically corrected based on the Exif metadata if present.
* Layers will now (again) be automatically merged before export to avoid exported images unexpectedly growing beyond their original boundaries. This can happen if layers contain filters (layer effects). You can switch this off by unchecking the new `Merge visible layers and rasterize` export option (#115).
* Changed the order of buttons in the dialog handling conflicting files for safety, with the most dangerous choice (replacing an existing file) now being the rightmost one.
* Adjusted installation instructions for macOS where the GIMP Preferences are located under a different menu.
* If you use the latest revision of Batcher (i.e. download the source code rather than the release package), you will no longer receive errors when updating the plug-in to the latest revision.

New features:
* Batch Convert: You can now adjust file format options when loading input files via the new `Import Options...` entry. Import options for file formats not recognized by Batcher (e.g. third-party file format plug-ins) cannot be adjusted and defaults will be used instead.
* Added support for new features introduced between GIMP 3.1.2 and 3.2-RC2, including new file import/export formats, vector layers and link layers.
* Batch Convert: You can now choose to export images to the same top-level folder as the input image using the new `Match input folders` option. You will be warned when choosing this option as you may permanently override the original images (#75).
* Batch Convert, Export Images, Export Layers: The most recently used output folders for processing are now saved (max. 5). Each Batcher menu keeps a separate list of recent folders (#77).
* Export Layers, Edit Layers: Replaced `Apply opacity from group layers` with a more generic `Apply Group Layer Appearance`, which now also applies layer effects, mode, masks and several other attributes (except color tags and locks) (#87).
* Added an export option named `Rotate or flip image based on Exif metadata`. This allows correcting the orientation of images with Exif metadata before export if you choose to not save Exif metadata, e.g. for the JPEG format (#91).
* Added filters (layer effects, GEGL operations) starting with `gimp:` as custom actions. For GIMP 3.1.4 and later, all of these filters are added. For GIMP 3.1.2 and below, only the following filters are added (others are unsupported or cause GIMP to crash): `gimp:border`, `gimp:colorize`, `gimp:compose-crop`, `gimp:desaturate`, `gimp:flood`, `gimp:grow`, `gimp:posterize`, `gimp:scalar-multiply`, `gimp:semi-flatten`, `gimp:set-alpha`, `gimp:shrink`, `gimp:threshold`, `gimp:threshold-alpha` (#85).
* If [G'MIC](https://gmic.eu/) is installed as a GIMP plug-in, a built-in action `G'MIC Filter` will now be available that simplifies applying a filter from G'MIC non-interactively (#98).
* If an action causes an error during processing or if a file does not exist, you may choose to skip the current image/layer and continue processing subsequent images/layers. This can be enabled permanently via `Settings → Continue on Error`. If you use Batcher non-interactively and you have a previous version of Batcher installed, you must remove Batcher, restart GIMP, install Batcher and restart GIMP again in order for the `continue-on-error` argument to be usable (#21).
* Batch Convert: You can now move around individual files or folders by dragging and dropping them anywhere within the input list, or by pressing Alt + Up/Down. This is useful if, for example, you intend to rename the images with a numbered sequence.
* Batch Convert: Files and folders can now be sorted by several criteria: original name, new name, creation date, modification date and file size. By default, sorting is performed in the ascending order, folders are always placed first and name-based sorting is case-sensitive. All these options can be switched off/on as needed.
* You can now view message logs recorded during processing via `Settings → View Logs` and save them to a file.

User interface changes:
* Export settings are now arranged vertically in the upper left part of the dialog. Clarified labels describing the settings.
* Batch Convert: Buttons for adding and removing files and folders are moved to the top and changed them to icons.
* The `Show Original Names` button shown in Batch Convert is now available for all plug-in procedures among the options at the top of the input list.
* Replaced labels for action and condition parameters and export options with shorter text, just like in filter/plug-in dialogs in GIMP. A label for a parameter now contains the parameter name instead of the (often lengthy) description. The description is now included in the parameter tooltip, if available.
* Adjusted the default size of the main dialog and its individual parts for each plug-in procedure.
* Adjusted widths of action/condition argument names to avoid extra empty vertical space (most notably in the Export Options dialog).
* Reduced the width of the quick dialogs given the vertical rearrangement of the export settings.
* The message area at the bottom now only spans the left part of the dialog to make more room for the preview. Also, the message area no longer takes empty space if no message is displayed.
* Error message dialogs issued by GIMP are now always redirected to the GIMP's error console (https://docs.gimp.org/en/gimp-errors-dialog.html). This avoids spamming the same dialog when attempting to close the dialog and focusing back on the Batcher main dialog (#107).
* Batch Convert: When loading a file fails (e.g. due to an unrecognized file format), the text below the preview now shows the message. You may still obtain warnings issued by GIMP (in the error console).
* Batch Convert: Each row now displays the full path of an input image/folder as a tooltip.
* Improved visual cues when reordering actions, conditions or array argument elements via drag-and-drop.
* A simple summary message indicating the number of successfully processed images/layers is now displayed after the processing.
* Marked names of common layer effect arguments as translatable.
* The Export Options dialog is now closed before the start of processing.
* Replaced the widget for choosing output folder with a custom widget. The folders previously available (such as the home user folder, disk drives, ...) are no longer available.
* Adjusted wording and icon in the dialog handling conflicting files for clarity.
* An info icon is now displayed for skipped actions for clarity (e.g. actions trying to use foreground layers when there are none).
* Changes to the custom action browser:
  * Adjusted the default width of the dialog and its individual parts.
  * Merged the `Menu Name` column into the `Name` column. The browser now only displays the menu name if available, or the internal name otherwise. If the menu name is available, the internal name is displayed for the currently selected action with a smaller font.
  * You can now search by multiple words. At least one matching word will yield a match. Whitespace characters are no longer considered when finding search results.
  * When searching and the first match is under a collapsed category, that category is expanded automatically.
  * Categories with no matching search results are now hidden.
  * Several minor UI tweaks (such as different expander arrow icons to be consistent with the GIMP plug-in browser, or the Add button being insensitive when no action is selected).
  * Optimized search and expanding/collapsing categories.
  * The expanded/collapsed state of each category is now preserved when saving/loading settings.
  * For GIMP 3.1.2 and below, moved the following filters under the Other category as there are alternative filters/plug-ins available in GIMP: `gegl:gray`, `gegl:posterize`, `gegl:threshold`, `gegl:wavelet-blur`.
  * For GIMP 3.1.4 and above, moved the following filters under the Other category as there are alternative filters available in GIMP: `gegl:brightness-contrast`, `gegl:levels`. These are not removed in case they are being used.

Changes to actions and conditions:
* For filters that can only be applied destructively, `Merge filter` will always be checked and cannot be changed (#43).
* Actions and conditions are now organized in submenus and have a fixed position in the submenus for easier navigation.
* Actions and conditions will now display their description (if available) as a tooltip.
* Changed names of built-in actions and conditions to title case for consistency with GIMP tools, plug-ins and filters.
* Color Correction:
  * Split into separate actions and organized under the `Color` menu.
  * Reduced the range of allowed brightness and contrast values. The value range is now scaled to -127 to 127 for consistency with GIMP.
  * For GIMP 3.1.4 and later, you can choose a different filter responsible for adjusting brightness and contrast values. The default filter for GIMP 3.1.4 and later is equivalent to the Brightness-Contrast tool in GIMP. For earlier versions, `gegl:brightness-contrast` is the default (and the only option).
  * GIMP presets for levels or curves in modes other than the linear mode are no longer supported and yield a warning message. This avoids unexpected results as Batcher currently always applies the presets as if they were saved in the linear mode.
  * Added `White Balance` action equivalent to `Colors → Auto → White Balance` in GIMP (#85).
* Rotate and Flip:
  * Split into separate actions - `Flip Horizontally`, `Flip Vertically` and `Rotate`.
  * The default angle for `Rotate` is now 90 degrees. Removed the `None` option.
  * Arguments not applicable are now hidden rather than made insensitive to reduce clutter.
  * Renamed arguments for brevity.
* Save: Replaced `Save existing XCF image to its original location` with a folder chooser. This allows saving existing XCF images and new + non-XCF images to different folders if need be.
* Plug-in procedures added by Batcher (e.g. `plug-in-batch-export-layers`) are not enabled in previews by default to avoid undesired file export or edits of existing images/layers.

Bug fixes:
* Fixed `Layer Below (Background)` and `Layer Above (Foreground)` not working for Batch Convert, Export Images and Edit and Save Images.
* In the custom action browser, fixed freezing frequently followed by a crash while typing a search query, which rendered the search almost unusable.
* Fixed a crash when running Batch Convert non-interactively for AppImage installations (#101).
* Fixed a crash when a widget used for choosing files or folders is not valid (#116).
* Export Layers: Fixed incorrect image filenames when the `[image name]` field was used for non-XCF images (#108).
* Fixed the popup containing action/condition details not appearing upon clicking the corresponding icon button in the custom action browser or the action/condition edit dialog.


## 1.1.1

### June 15, 2025

* Fixed the former `Resize to layer size` action being incorrectly updated when upgrading Batcher to 1.1.


## 1.1

### June 14, 2025

General changes:
* Added Japanese translation (thanks to @re-unknown).
* Added Spanish translation (thanks to @ikizgz).
* Updated Dutch translation (thanks to @DiGro).
* "Procedures" are now referred to as "actions". "Action" is more intuitive.
* "Constraints" are now referred to as "conditions". "Condition" is more intuitive.
* In Edit Layers, actions are no longer applied to copies of group layers (inserted as regular layers), but rather to their original counterparts. This was previously done to avoid plug-ins failing on group layers. However, many plug-ins in GIMP 3 were removed in place of layer effects (filters) achieving the same result, the latter of which can be applied on group layers. Thus, there is little need to work on group layer copies now. This change also fixes a bug where creating a layer copy would create extra entries in the undo history.

New features:
* **New major feature: Batch-editing and saving images opened in GIMP as XCF**, available in `File -> Edit and Save Images` and `File -> Edit and Save Images (Quick)`. Existing GIMP images are saved to their respective locations, while new images are saved to the specified output folder.
* Added a new action named `Color correction`. You can adjust brightness, contrast, or apply levels or curves from a saved preset file. Both GIMP and Photoshop formats (.alv, .acv) for preset files are supported.
* Added a new action named `Crop`. You may crop the entire image or a layer in a variety of ways - cropping from edges, from a fixed position (top left, center, ...), to the specified aspect ratio, to the specified area (bounding box), or to remove empty borders.
* Replaced `Resize to layer size` with a more generic action named `Resize canvas` that allows several more resize modes (add borders, resize from position/area, resize to aspect ratio, resize to image size) and filling the newly added space with a color.
* Added a new action named `Rotate and flip`. You may rotate the entire image or a layer, along with several options such as the angle, or whether to rotate from the center or from a fixed point.
* Added a new condition named `XCF (native GIMP) file` that applies only to opened images associated with a native XCF file.
* Added a new condition named `Not XCF (native GIMP) file` acting as the inverse of `XCF (native GIMP) file`.

Changes to the user interface:
* Batch Convert: Changed `Add Files...` and `Add Folders...` to menu entries displayed when clicking the new `Add...` button. Likewise, `Remove Selected` and `Remove All` were moved under the new `Remove...` button.
* If the output directory no longer exists and Batcher is started, the output directory is set to the Pictures folder (or another folder that is guaranteed to exist). Previously, "(None)" was displayed, which was confusing.
* Increased the default size of the main dialog.
* Increased the default size of the preview. For historical reasons, the preview was kept small to be consistent with the GIMP's Export menu. However, given that Batcher allows applying arbitrary filters, inspecting changes in a small preview can be difficult and the user is forced to manually resize the preview (this also assumes that the user is aware the preview size can be changed).

Changes to actions and conditions:
* You can now apply actions to layers inserted by actions other than `Insert background` or `Insert foreground`, e.g. `gimp-text-font` (which renders a text layer), by selecting `Layer Below (Background)` or `Layer Above (Foreground)` (depending on whether the layer is inserted before or after the current layer).
* Renamed `Background Layer` to `Layer Below (Background)` and `Foreground Layer` to `Layer Above (Foreground)` to make this feature more discoverable as per the change above.
* Scale:
  * Merged `Object to scale`, `Image` and `Layer` to a single widget.
  * Units for width and height are moved next to the width and height widgets, respectively.
  * More units beside pixels and percentages can be chosen from (the same ones available in GIMP). These units are recalculated automatically.
  * Switching between pixels, percentages and other units will now restore the last value for that unit.
  * Merged `Scale to fit`, `Keep aspect ratio` and `Dimension to keep` to a single widget.
  * Added a new option `Fit with padding` under `Aspect ratio` that fits the image/layer to the specified dimensions and fills the empty space with the specified color (transparent by default).
  * Added a new option to change the image resolution.
* Align and offset:
  * Merged `Another layer to align layers with` into `Object to align layers with`.
  * Units for x- and y-offsets are moved next to the x- and y-offset widgets, respectively.
  * More units beside pixels and percentages can be chosen from (the same ones available in GIMP). These units are recalculated automatically.
* Rename: Removed the `Rename images` option in Export Images due to being redundant there.
* `Matching text...`: Added `Does not start with text`, `Does not contain text` and `Does not end with text` options.
* Edit Layers: The `Selected in GIMP` condition is now added on the first run/after reset.
* File arguments can now be cleared (set to an empty value). This is useful if an action allows omitting a file.

Bug fixes:
* Fixed preview and export of images with linear precision.
* Fixed the `Scale` action always considering the layer size when keeping aspect ratio or scaling to fit dimensions.
* Fixed the output folder button not filling the empty space when increasing the dialog width.
* Fixed warnings when exporting layers or images opened in GIMP that are not native GIMP images (XCF).
* Fixed a crash when adding a layer effect (GEGL operation) whose name contains `/` or `.` (#74).
* Fixed URL to the Batcher user guide via the Help button (#73).
* Fixed a crash when running Batch Convert non-interactively if the path to the text files containing inputs is not specified.


## 1.0.2

### April 01, 2025

* Added Dutch translation (thanks to @DiGro).
* Updated German translation (thanks to @ChrisLauinger77).
* Fixed a crash when saving `Export`/`Also export as...` procedures (#37).
* Fixed a crash on startup if the `Pictures` user folder as the default folder is not available (#41).
* Fixed several typos in translatable strings.
* Updated installation instructions for Flatpak users.


## 1.0.1

### March 29, 2025

* Updated German translation (thanks to @ChrisLauinger77).
* Fixed a bug that caused the same custom procedure added multiple times to be saved only once. 


## 1.0

### March 19, 2025

User interface changes:
* Batch Convert: If a file is not found, an appropriate label will be displayed below the preview rather than a popup.
* Native file dialogs are displayed, if possible, when opening/saving settings files or adding files/folders for Batch Convert.

Bug fixes:
* Fixed update of settings from 1.0-RC1 to later versions.


## 1.0-RC4

### March 08, 2025

**New major feature: Export of images opened in GIMP**. You can perform image export via `File → Export Images...` or `File → Export Images (Quick)`. As with other plug-in procedures, you may make use of procedures and constraints (such as "only images with unsaved changes"). Note that this feature exports images to another file format, i.e. it does not mass-save XCF images in their original locations.

General changes:
* When exporting each image/layer individually, layers are no longer automatically merged into one. This allows preserving layers when exporting to a multi-layer format such as PSD.
* Batch Convert is now guaranteed to be accessible in GIMP even if no image is opened.

Changes to procedures:
* The `Rename` procedure is now automatically renamed based on the specified pattern (e.g. `Rename to "image[001]"`).

Bug fixes:
* Fixed a crash on startup for macOS installation packages.
* Fixed a crash in non-interactive mode if the settings file is not specified.
* Fixed a warning message displayed when exporting or editing layers of an imported (i.e. non-XCF) image.
* Fixed console warnings when opening the custom procedure browser.


## 1.0-RC3

### February 13, 2025

* Fixed Batcher not working when installed in a folder with elevated privileges (e.g. the system `plug-ins` folder containing built-in GIMP plug-ins instead of the user-specific `plug-ins` folder).


## 1.0-RC2

### February 10, 2025

General changes:
* Updated Batcher to work with GIMP 3.0.0-RC3. **Due to backwards-incompatible changes, Batcher now requires GIMP 3.0.0-RC3 or later**. Saved settings from previous versions will still work properly.
* You can now choose `None` for image and layer arguments in custom procedures if a procedure allows omitting them.
* More appropriate GUI is displayed for settings and procedure arguments representing files or folders. You can also choose to omit these arguments if a procedure allows omitting them.
* For `Gimp.Unit` procedure arguments, the pixel and/or percentage units are not shown if a procedure is set to hide them.

Bug fixes:
* Fixed settings from version 0.8 not being updated to 1.0-RC1 and later.
* Fixed a potential bug where arrays of images, layers and other GIMP objects as procedure or constraint arguments could not be edited.


## 1.0-RC1

### January 22, 2025

**New major feature: Batch conversion of files.** You can now batch-process image files and convert them to a different file format, optionally applying procedures (scale, insert background, ...) and filtering the list of images to be processed via constraints (filenames having a particular file extension, beginning/ending with a prefix/suffix, ...).

Changes to procedures and constraints:
* Added a new procedure named `Align and offset` that allows aligning layer(s) with the image or another layer. You may also apply offsets with pixels or a percentage of image/layer width/height.
* For the `Scale` procedure, you may now choose whether to scale a layer (the default for Export Layers and Edit Layers) or the entire image (a new option, the default for Batch Convert).
* Renamed `Use layer size` to `Resize to layer size` and allowed customizing the layer. You may now resize the background layer, foreground layer or all layers (the latter effectively resizing the image to fit all layers).
* Added `Merge filters` as a built-in procedure that merges all visible filters (layer effects) in the specified layer. This is equivalent to adding the `gimp-drawable-merge-filters` procedure, only more convenient.
* Added a new constraint named `Matching text...` that allows filtering items that start with, contain or end with the specified text. You may also specify a Python regular expression or perform case-insensitive matching. The name of the constraint automatically changes as you adjust its options.
* The `Use file extension in layer name` option for the `Export` procedure now uses the original layer name. This way, you no longer need to specify the `[full layer name]` field just to preserve the file extension. This also allows using different name patterns that do not include the layer name (such as `image[001]`).
* Procedures and constraints causing errors are now automatically deactivated. This avoids spamming the user with warning dialogs.

User interface changes:
* Replaced the placeholder icon in the image preview when there is no selection.
* Labels describing procedure/constraint parameters are now insensitive (grayed out) if their corresponding GUI elements are insensitive.
* Export settings are now insensitive while exporting.

Other changes:
* When running Batcher non-interactively, the `settings-file` parameter is now a string rather than a `GFile` object for convenience.

Bug fixes:
* Fixed warnings issued by GIMP when adding or applying layer effects as custom procedures.
* Fixed the `Rename` procedure not working for Edit Layers.


## 0.8.2

### December 29, 2024

* Fixed GIMP plug-ins being displayed in the wrong category in the custom procedure browser.


## 0.8.1

### December 29, 2024

User interface changes:
* Dialogs for editing procedures, constraints and export settings are now scrollable if exceeding a certain height. Some custom procedures (e.g. `gegl:styles`) and file formats (e.g. DDS) have a large number of parameters, which previously made the dialogs too high to fit the screen.
* Increased the minimum width of labels in dialogs. This makes particularly the procedure browser dialog more readable.

Bug fixes:
* Fixed visually unappealing borders in the custom procedure browser appearing when switching to a procedure requiring scrolling.
* For Export Layers, fixed the wrong name for the `Cancel`/`Close` button on plug-in startup if `Close When Done` is unchecked.


## 0.8

### December 28, 2024

General changes:
* Updated Batcher to work with GIMP 3.0.0-RC2. **Due to backwards-incompatible changes, Batcher now requires GIMP 3.0.0-RC2 or later**. Saved settings from previous versions will still work properly.

New features:
* Non-destructive layer effects (filters, GEGL operations) can now be added as custom procedures. They can be found under the `Filters, Effects` category in the custom procedure browser. Beside parameters specific to each effect, you can adjust their blend mode, opacity, or they can optionally be merged into the layer (i.e. applied destructively).
* You may now attempt to apply a procedure to multiple layers at once using the new `All Layers` option, if available for a particular procedure (usually those having the `The input drawables` argument). Note that a procedure may still fail even if this option is available as it may not support working with multiple layers at once.
* Rename procedure: Added a new field named `[output folder]` that allows inserting the output folder selected in the plug-in dialog. You can adjust the path components to be inserted as well as the separator and wrapper around each component (in the same vein as `[layer path]`).
* Rename procedure: Added `%n` option to the `[layer name]` and `[layer path]` fields acting as the inverse of `%i`.

Changes to procedures and constraints:
* Removed the `Selected in preview` constraint. For Export Layers and Edit Layers, the `Selected in GIMP` and `With color tags` constraints already provide a good equivalent.
* Rename procedure: For the `[attributes]` field, changed the layer attributes from `%w`, `%h`, `%x` and `%y` to `%lw`, `%lh`, `%lx` and `%ly`, respectively.

User interface changes:
* Increased the width of the procedure browser so that there is more space to display labels for layer effects without the labels spanning too many lines.
* Added a small delay to the image preview when the selected item changes. This prevents excessive changes when the selection changes rapidly.
* Optimized the update of input items (when items are added/removed/renamed/updated upon changing procedures or constraints) if many items (hundreds and more) are present.
* For Export Layers and Edit Layers, moved the "Preview" label directly above the image thumbnail and added a label named "Input Layers" above the list of layers.
* Simplified how the preview is created internally, removing steps such as downscaling or merging layers.

Bug fixes:
* Fixed Export/Edit Selected Layers not working for group layers.
* Fixed export for procedures manipulating image dimensions, selection and other image-wide attributes (such as `script-fu-addborder`, `script-fu-circuit` or conversion to the indexed type).
* Fixed occasional artifacts in the preview.
* Fixed the preview not working correctly for group layers.
* Fixed constraints incorrectly excluding items in the preview. The bug caused items e.g. matching the `Matching File Extension` constraint to be excluded from the preview as its name may have changed during processing.
* Fixed occasional incorrect names in the preview under the image thumbnail.
* Fixed the `Rename` procedure renaming folders after items if `Rename folders` is enabled.
* Fixed the `Rename` procedure assigning incorrect descending numbers if `Rename folders` is enabled.
* Fixed a crash on plug-in startup if a file format is no longer available.
* Fixed loading settings related to layers (e.g. layers selected in the preview) whose names contain `/`.


## 0.7

### December 07, 2024

* Added `Scale to fit` and `Keep aspect ratio` options to the Scale procedure.


## 0.6

### November 18, 2024

* Updated Batcher to work with GIMP 3.0.0-RC1. **Batcher now requires GIMP 3.0.0-RC1 or later.** Earlier development versions of GIMP (2.99.x) will not work. Any future GIMP 3.x version will work unless stated otherwise.
* Greatly optimized the preview when changing selection. The performance drop was noticeable for hundreds of items.
* Fixed several bugs related to the preview when the selected item is changed.
* Fixed `Insert background` and `Insert foreground` procedures inserting group layers twice.
* Fixed occasional GIMP error messages when batch processing is finished.


## 0.5

### October 12, 2024

Changes to the export settings:
* Added a button named `Options...` in the main dialog to adjust options previously only available when adding the `Export` procedure.
* Rearranged export settings horizontally, both in Export Layers and Export Layers (Quick).
* Renamed `Save in Folder` to `Folder` and `Save As` to `Name` for brevity.
* The native file format dialog is no longer displayed by default. File format options are now adjusted in the export options (displayed by pressing the `Options...` button). This behavior can be toggled back if desired, particularly when you need to choose the image metadata to preserve (this can currently be adjusted only via native file format dialogs).
* By default, when a file about to be exported already exists with the same name, the new file will be renamed. This was inconsistent previously (e.g. when running non-interactively, the default was to skip the new files).
* The default export folder is now the `Pictures` user folder instead of `Documents`.
* The file extension is now validated automatically. An invalid file extension is automatically reverted to the last valid value instead of displaying warnings.
* The overwrite prompt is now displayed in Edit/Export Layers (Quick) if `Show This Dialog` is checked.

Changes to the `Export` procedure:
* For Export Layers, the `Export` procedure now performs additional export instead of overriding the default export. The procedure name for Export Layers is now `Also export as...` to reflect this change. The name changes automatically as you modify the file extension (e.g. `Also export as PNG` if the file extension is `png`).
* For Export Layers, when the `Export` procedure is added, values of the options are copied from the default export (e.g. the output folder will be identical to the one currently selected in the main dialog).
* Add a new option `If a file exists:` that allows skipping the dialog asking the user to handle existing files and setting a fixed mode for all files.
* Removed the `Preserve layer name after export` option. The layer name is now always preserved.

Other changes:
* The `Rename` procedure for Export Layers now performs renaming on top of the default renaming (the text entry next to `Name`) instead of overriding it.
* File load and file save procedures can no longer be added as custom procedures due to being redundant (loading a file would have no effect and file save procedures are already covered by the `Export` procedure).
* The plug-in no longer crashes if the automatic update of plug-in settings to the latest version fails. Instead, the settings are reset.

Bug fixes:
* Fixed unchangeable file extension in Export Layers (Quick).
* Fixed overwrite prompt not being displayed for `Export` procedures for Edit Layers.
* Fixed a crash when starting the plug-in if text layer(s) were selected in the preview and plug-in settings were saved.
* Fixed a crash when in-dialog warning messages were displayed on plug-in startup (e.g. if the plug-in was saved with an ill-formatted file extension).
* Removed the "Flatten" option from `Merge Back-/Foreground` as it was unsupported and caused merging to fail.


## 0.4

### July 13, 2024

New features:
* Created separate dialogs and menu entries for batch-editing layers, named `Edit Layers...` and `Edit Layers (Quick)`. Separate settings are provided for editing and exporting.
* Added `Export Selected Layers` and `Edit Selected Layers` menu entries when right-clicking on selected layers in GIMP. These behave as Export Layers (Quick) and Edit Layers (Quick), respectively, except that only `Layers` and `Selected in GIMP` constraints apply.
* Added a new layer name pattern called `Full layer name` which preserves the entire layer name, including characters beyond the last '.'. This is equivalent to `[layer name, %e]`, only more convenient.

Changes to procedures and constraints:
* Simplified the insertion of background and foreground. The `Merge background`/`Merge foreground` procedure is added automatically and is no longer available to be added manually. A constraint named `Not background`/`Not foreground` is also added automatically that ignores the background/foreground during processing. Updating the color tag in the `Insert background`/`Insert foreground` procedure also updates the color tag in the constraint.
* Added back the `Visible` constraint displayed on the first run/after reset. This was removed in the previous version; this time, however, `Also apply to parent folders` is not checked by default.

User interface changes:
* When `Export Layers (Quick)` is run for the first time, a small dialog with only export settings is now displayed. This reduces confusion as to where (output folder) and how (file extension, name pattern) the layers are exported. That dialog can be skipped by simply unchecking `Show this dialog`.
* Dropdown menus are now consistently displayed below a GUI element and are left-aligned (e.g. menus displayed by pressing the `Add Procedure...` button or the `Settings` button).
* Renamed `Import Settings...` to `Load Settings from File...` and `Export Settings...` to `Save Settings to File...` for clarity, respectively.
* Moved `Reset Settings` menu entry under the `Settings` button to the bottom.
* Closing the main dialog automatically can be turned on/off via the new `Close when Done` menu under the `Settings` button.

Bug fixes:
* Fixed the `Rename` procedure not renaming layer groups when editing layers.
* Fixed the `Remove folder structure` procedure not working when editing layers. A separate procedure with the same name was added for editing that also allows setting the visibility of child layers based on whether all its parents are visible.
* Fixed the `Scale` procedure throwing errors if the resulting width or height would be 0 pixels. The new width and height will now always be at least 1 pixel.
* Fixed the `Selected in GIMP` constraint applying only on a single layer when editing layers.
* Fixed incorrect progress bar text if the user chose the new file to be renamed (to avoid overwriting a file with the same name).


## 0.3

### June 17, 2024

Redesigned user interface:
* Replaced the folder chooser widget with a folder chooser button.
* Procedures and constraints are now aligned vertically.
* Adjusting settings for procedures and constraints now immediately updates the preview for improved feedback and interactivity.
* Multiple edit dialogs (one for each procedure/constraint) can now be displayed simultaneously.
* Edit dialogs for procedures and constraints are no longer separate windows and are hidden/shown simultaneously with the main dialog.
* Completely reworked the custom procedure browser. You may now preview and tinker with a procedure/plug-in/script directly from the browser dialog before adding it to the list of procedures permanently.
* In edit dialogs, replaced PDB parameter names with human-readable descriptions where available. The names are displayed as tooltips in case a user wants to track down issues with a procedure.
* Moved detailed information about a procedure/constraint from a tooltip to a button showing a popup.
* Given the changes above, adjusted dialog dimensions, positions of separators and spacing/margins/border width.

Bug fixes:
* Added executable bit to the main `batcher.py` file. This could otherwise prevent the plug-in from being registered (i.e. from appearing in GIMP) on Unix-like platforms.
* Fixed a crash for PDB procedures containing GIMP resources (brushes, palettes, gradients, patterns) as settings.
* Prevented errors for PDB procedures with array arguments requiring a non-zero number of elements (e.g. pencil).
* Fixed an issue where color parameters for some PDB procedures could not be adjusted.
* Fixed redundant preview updates when the main, edit or procedure browser dialogs (re)gained focus.

Other changes:
* Renamed the `Export Layers Now` menu entry to `Export Layers (Quick)` for hopefully greater clarity.


## 0.2

### February 21, 2024

* Updated Batcher to work with GIMP 2.99.18. Due to backwards incompatible changes, Batcher will no longer work with GIMP 2.99.16 and below.
* Moved menu entries to the section containing `Export...` and `Export As...`. 
* Fixed translations not working.
* Fixed incorrect URLs to the help page when pressing the Help button.


## 0.1

### January 31, 2024

* Initial release.
