Management tools

This section contains tools that don't produce graphic effects but help you manage your script ennvironment.

addon-manager

This is an improved version of the Sean Bogie/MareroQ add-on manager. The enhancements are:
  • One single Python file to handle all managers.
  • No need to edit the Python file, all user changes are handled with a configuration file.
  • The standard defaults are usable as is, you may not even need a configuration file.
  • On platforms that support it, the activation is performed with symlinks instead of file copies, which is much faster.
  • Add-ons can be kept in their own subfolders, allowing filtering on the collection name in the Gimp lists.

Usage

This plugin lets you quickly activate or deactivate collections of add-ons. This reduces clutter in the add-ons lists and improves Gimp performance by reducing the number of add-ons it needs to cache. To do so:

  • For each add-on type, there is a "storage" folder (ie, one for brushes, one for palettes...).
  • This storage folder will in turn contain:
    • Child directories with one or more add-ons (each such folder is an individually selectable set).
    • ZIP files with one or more addons (each such ZIP is an individually selectable set).

To activate a collection, the manager makes the add-ons appear in one of the folders that Gimp uses for active add-ons (see Edit/Preferences->Folders):

  • On Linux and OSX systems, and with collection in directories, the collection folder is merely linked in the active add-ons folder.
  • With ZIP files or on Windows system, the add-ons from the collection are copied to a subfolder of the active add-ons folder.

By default, the folders Gimp uses for add-ons are in the user's Gimp profile (see sidebar), for instance, for brushes:

  • On Linux: /home/{user's_id}/.gimp-2.8/brushes
  • On Windows XP: c:\Documents and Settings\{user's_id}\.gimp-2.8\brushes
  • On Windows Vista/Seven/8: c:\Users\{user's_id}\.gimp-2.8\brushes

Also by default, the manager uses folders that are siblings of the default active add-on folders, named by suffixing their names "_storage":

  • On Linux: /home/{user's_id}/.gimp-2.8/brushes_storage
  • On Windows XP: c:\Documents and Settings\{user's_id}\.gimp-2.8\brushes_storage
  • On Vista/Seven: c:\Users\{user's_id}\.gimp-2.8\brushes_storage

Configuration file

If used, the configuration file should be named addonCollectionManager.ini and should be in the standard user's plugin folder, which is the "plugin-ins" child folder of the Gimp user profile (see sidebar).

There is a section for each of the managed add-on types (brushes, patterns...). A section starts with its name between brackets: [section]

There is also an [all] section for general settings and for settings that have a common value across several sections (unless overriden by a specific setting in other sections).

The configurable items so far are:

  • In [all]:
    • enable: the list of enabled addon managers
  • In add-on types sections (or [all]):
    • addons_active: the folder for active add-ons (where Gimp looks for them, typically in your Gimp profile)
    • addons_stored: the folder for managed add-ons (where the manager looks for them)
    • use_subdirectory: [yes|no]: copy/link the addons in a subdirectory of the active addon directory (this allows filtering in the list)
    • use_link: [yes|no]: use symbolic links instead of copy when the operating system allows it.
    • menu_location: the location in the Gimp menus for the menu entry to start the add-on manager.
    • menu_entry: the label on the menu entry for the add-on manager.
    • menu_description: the description that pops up when you hower the mouse above the menu entry.
    • dialog_title: the title of the add-on manager dialog.
    • extensions: the extensions considered for the add-ons (files with other extensions are ignored). Extensions are case-sensitive, JPG and jpg are different.

For all these items, some speficic names enclosed in braces are dynamically replaced when reading the configuration:

  • {UserHome}: the user's home folder (the parent of the Gimp profile)
  • {GimpUser}: the user's Gimp profile folder
  • {GimpData}: the global Gimp data folder (in the Gimp installation tree, in Linux: /usr/share/gimp/2.0/)
  • {GimpPlugin}: the plugins folder in the Gimp profile
  • {type}: the lower case name of the add-on types: "brushes"
  • {Type}: the capitalized name of the add-on types: "Brushes"

These last two items can be used for menu locations and directories.

The default settings correspond to the following configuration:

#-------------------------------------------------------------------------
[all]
enable:brushes dynamics fonts gradients palettes patterns scripts
addons_active:{GimpUser}/{type}
addons_stored:{GimpUser}/{type}_storage
menu_location:{}
menu_entry:{Type} sets...
menu_description:Manage {type} sets...
dialog_title:{Type} sets manager
use_subdirectory:yes
use_link: {depends on OS capablities: yes for Unixish ones, no for Windows}

[brushes]
extensions:.gbr .vbr .gih .abr .GBR .VBR .GIH
[dynamics]
extensions:.gdyn .GDYN
[fonts]
extensions:.ttf .otf .TTF .OTF
[gradients]
extensions:.ggr .GGR
[palettes]
extensions:.pal .PAL
[patterns]
extensions:.png .pat .PNG .PAT
[scripts]
menu_location:/Help
extensions:.scm .SCM
use_subdirectory:no
#-------------------------------------------------------------------------

In the end, the directory structure should look like this:

c:\users\your_id\.gimp-2.8
  |
  +--plugins
  |     |
  |     +--addonCollectionManager.py
  |     +--addonCollectionManager.ini (optional)
  |
  +--brushes (existing)
  |     |
  |     +--permanent-brush1.gbr
  |     +--permanent-brush2.gbr
  |
  +--brushes_storage (to be created)
  |     |
  |     +--brush_collection1 (to be created, with a more descriptive name)
  |     |     |
  |     |     +-- collection1-brush1.gbr
  |     |     +-- collection1-brush2.gbr
  |     |
  |     +--brush_collection2 (to be created, with a more descriptive name)
  |           |
  |           +-- collection2-brush1.gbr
  |           +-- collection2-brush2.gbr
  |
  +--fonts
  |
  +--fonts_storage (etc...)

Notes

Registration

Gimp updates the registration data for the plugins only when it notices a new plugin executable, or when an already registered executable changes (according to the file change date). Changing the menu-related configuration items above requires Gimp to update its registration data, but since the plugin file hasn't changed it won't notice it.

You can force Gimp to re-acquire the registration data using one the three methods below:

  • Editing the 'pluginrc' file in the Gimp profile, locating the line starting with '(plug-in-def' that bears the plugin file name, and delete the file contents from that line up to and not including the next '(plug-in-def'.
  • Deleting the pluginrc file, but this makes Gimp re-run all the plugins for registration the next time it starts.
  • Renaming the plugin file. Gimp will delete the registration data obtained under its previous name, and make that new plugin register itself.

settings-cleaner

This utility keeps the memorized settings of various tools under control. It is not really a plugin, even if it masquerades as such for its operation.

Principles of operation

Gimp keeps the settings of most tools (Brightness/Contrast, Curves...) in a file in the tool-options subdirectory of the user's profile. This file is named gimp-{tool}-tool.settings. It contains both explicitly saved settings (to which a name is given) and anonymous settings, that just receive a timestamp. Gimp never removes anything from these files so the settings lists in the tools dialogs can become unwieldy

This utility keeps at most a specified count of the most recent anonymous settings, that are furthermore not older than some specified age. The "named" settings are not purged. The utility runs as part of the Gimp startup, and cannot be explicitly started from a Gimp menu.

Installation and configuration

The Python file should be installed like any other python plugin (see sidebar)

Configuration file

The utility will not clean any file unless explicitly told to do so via the configuration file. The configuration should therefore contain one section for each settings file, named after the file, within brackets, like "[gimp-curves-tool.settings]". The section can define two values:

  • max_count: the maximum number of anonymous settings to keep. A max_count of 0 will of course remove all anonymous settings.
  • max_age: the maximum age in days of anonymous settings to keep. This number can be fractional (for instance, "0.5" will clean everything older than 12 hours)

A "[DEFAULT]" section can be used for values common to several sections

For example the following configuration file:

  • Specifies the seven files to be cleaned
  • Sets a maximum age of 7 days for all
  • Sets a maximum count of 10 for most files, but this value is overriden with 5 for the gimp-threshold-tool.settings file.

[DEFAULT]
max_age:7
max_count:10
[gimp-brightness-contrast-tool.settings]
[gimp-curves-tool.settings]
[gimp-levels-tool.settings]
[gimp-threshold-tool.settings]
max_count:5
[gimp-colorize-tool.settings]
[gimp-hue-saturation-tool.settings]
[gimp-color-balance-tool.settings]


The configuration file shoud be named after the Python file ("settings-cleaner.ini" if you do not rename the python file) and kept in the tool-options subdirectory of your profile.

Log file

Each run of the utility produces a log file ("settings-cleaner.log" if you do not rename the python file) in the tool-options subdirectory of your profile. If the plugin misbehaves, check that file, it could contain the explanation.

The log file is overwritten on each run, so it should remain small.

Usage notes

Some versions of Gimp (2.8.4 for Windows at least) do not keep complete timestamps (with hours, minutes, and seconds), so the fractional age may not work.