gimpenv

gimpenv — Functions to access the GIMP environment.

Functions

void gimp_env_init ()
const gchar * gimp_directory ()
const gchar * gimp_installation_directory ()
const gchar * gimp_data_directory ()
const gchar * gimp_locale_directory ()
const gchar * gimp_plug_in_directory ()
const gchar * gimp_sysconf_directory ()
const gchar * gimp_cache_directory ()
const gchar * gimp_temp_directory ()
GFile * gimp_directory_file ()
GFile * gimp_installation_directory_file ()
GFile * gimp_data_directory_file ()
GFile * gimp_locale_directory_file ()
GFile * gimp_sysconf_directory_file ()
GFile * gimp_plug_in_directory_file ()
const gchar * gimp_user_directory ()
gchar * gimp_personal_rc_file ()
const gchar * gimp_gtkrc ()
GList * gimp_path_parse ()
gchar * gimp_path_to_str ()
void gimp_path_free ()
gchar * gimp_path_get_user_writable_dir ()

Description

A set of functions to find the locations of GIMP's data directories and configuration files.

Functions

gimp_env_init ()

void
gimp_env_init (gboolean plug_in);

You don't need to care about this function. It is being called for you automatically (by means of the MAIN() macro that every plug-in runs). Calling it again will cause a fatal error.

Parameters

plug_in

must be TRUE if this function is called from a plug-in

 

Since: 2.4


gimp_directory ()

const gchar *
gimp_directory (void);

Returns the user-specific GIMP settings directory. If the environment variable GIMP2_DIRECTORY exists, it is used. If it is an absolute path, it is used as is. If it is a relative path, it is taken to be a subdirectory of the home directory. If it is a relative path, and no home directory can be determined, it is taken to be a subdirectory of gimp_data_directory().

The usual case is that no GIMP2_DIRECTORY environment variable exists, and then we use the GIMPDIR subdirectory of the local configuration directory:

  • UNIX: $XDG_CONFIG_HOME (defaults to $HOME/.config/)

  • Windows: CSIDL_APPDATA

  • OSX (UNIX exception): the Application Support Directory.

If neither the configuration nor home directory exist, g_get_user_config_dir() will return {tmp}/{user_name}/.config/ where the temporary directory {tmp} and the {user_name} are determined according to platform rules.

In any case, we always return some non-empty string, whether it corresponds to an existing directory or not.

In config files such as gimprc, the string ${gimp_dir} expands to this directory.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8 (on Windows it is always UTF-8.)

Returns

The user-specific GIMP settings directory.


gimp_installation_directory ()

const gchar *
gimp_installation_directory (void);

Returns the top installation directory of GIMP. On Unix the compile-time defined installation prefix is used. On Windows, the installation directory as deduced from the executable's full filename is used. On OSX we ask [NSBundle mainBundle] for the resource path to check if GIMP is part of a relocatable bundle.

In config files such as gimprc, the string ${gimp_installation_dir} expands to this directory.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8. (On Windows it always is UTF-8.)

Returns

The toplevel installation directory of GIMP.

Since: 2.8


gimp_data_directory ()

const gchar *
gimp_data_directory (void);

Returns the default top directory for GIMP data. If the environment variable GIMP2_DATADIR exists, that is used. It should be an absolute pathname. Otherwise, on Unix the compile-time defined directory is used. On Windows, the installation directory as deduced from the executable's full filename is used.

Note that the actual directories used for GIMP data files can be overridden by the user in the preferences dialog.

In config files such as gimprc, the string ${gimp_data_dir} expands to this directory.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8. (On Windows it always is UTF-8.)

Returns

The top directory for GIMP data.


gimp_locale_directory ()

const gchar *
gimp_locale_directory (void);

Returns the top directory for GIMP locale files. If the environment variable GIMP2_LOCALEDIR exists, that is used. It should be an absolute pathname. Otherwise, on Unix the compile-time defined directory is used. On Windows, the installation directory as deduced from the executable's full filename is used.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by the C library, which isn't necessarily UTF-8. (On Windows, unlike the other similar functions here, the return value from this function is in the system codepage, never in UTF-8. It can thus be passed directly to the bindtextdomain() function from libintl which does not handle UTF-8.)

Returns

The top directory for GIMP locale files.


gimp_plug_in_directory ()

const gchar *
gimp_plug_in_directory (void);

Returns the default top directory for GIMP plug-ins and modules. If the environment variable GIMP2_PLUGINDIR exists, that is used. It should be an absolute pathname. Otherwise, on Unix the compile-time defined directory is used. On Windows, the installation directory as deduced from the executable's full filename is used.

Note that the actual directories used for GIMP plug-ins and modules can be overridden by the user in the preferences dialog.

In config files such as gimprc, the string ${gimp_plug_in_dir} expands to this directory.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8. (On Windows it always is UTF-8.)

Returns

The top directory for GIMP plug_ins and modules.


gimp_sysconf_directory ()

const gchar *
gimp_sysconf_directory (void);

Returns the top directory for GIMP config files. If the environment variable GIMP2_SYSCONFDIR exists, that is used. It should be an absolute pathname. Otherwise, on Unix the compile-time defined directory is used. On Windows, the installation directory as deduced from the executable's full filename is used.

In config files such as gimprc, the string ${gimp_sysconf_dir} expands to this directory.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8. (On Windows it always is UTF-8.).

Returns

The top directory for GIMP config files.


gimp_cache_directory ()

const gchar *
gimp_cache_directory (void);

Returns the default top directory for GIMP cached files. If the environment variable GIMP2_CACHEDIR exists, that is used. It should be an absolute pathname. Otherwise, a subdirectory of the directory returned by g_get_user_cache_dir() is used.

Note that the actual directories used for GIMP caches files can be overridden by the user in the preferences dialog.

In config files such as gimprc, the string ${gimp_cache_dir} expands to this directory.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8. (On Windows it always is UTF-8.).

Returns

The default top directory for GIMP cached files.

Since: 2.10.10


gimp_temp_directory ()

const gchar *
gimp_temp_directory (void);

Returns the default top directory for GIMP temporary files. If the environment variable GIMP2_TEMPDIR exists, that is used. It should be an absolute pathname. Otherwise, a subdirectory of the directory returned by g_get_tmp_dir() is used.

In config files such as gimprc, the string ${gimp_temp_dir} expands to this directory.

Note that the actual directories used for GIMP temporary files can be overridden by the user in the preferences dialog.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8. (On Windows it always is UTF-8.).

Returns

The default top directory for GIMP temporary files.

Since: 2.10.10


gimp_directory_file ()

GFile *
gimp_directory_file (const gchar *first_element,
                     ...);

Returns a GFile in the user's GIMP directory, or the data directory itself if first_element is NULL.

See also: gimp_directory().

Parameters

first_element

the first element of a path to a file in the user's GIMP directory, or NULL.

 

...

a NULL terminated list of the remaining elements of the path to the file.

 

Returns

a new GFile for the path, Free with g_object_unref().

Since: 2.10


gimp_installation_directory_file ()

GFile *
gimp_installation_directory_file (const gchar *first_element,
                                  ...);

Returns a GFile in the installation directory, or the installation directory itself if first_element is NULL.

See also: gimp_installation_directory().

Parameters

first_element

the first element of a path to a file in the top installation directory, or NULL.

 

...

a NULL terminated list of the remaining elements of the path to the file.

 

Returns

a new GFile for the path, Free with g_object_unref().

Since: 2.10.10


gimp_data_directory_file ()

GFile *
gimp_data_directory_file (const gchar *first_element,
                          ...);

Returns a GFile in the data directory, or the data directory itself if first_element is NULL.

See also: gimp_data_directory().

Parameters

first_element

the first element of a path to a file in the data directory, or NULL.

 

...

a NULL terminated list of the remaining elements of the path to the file.

 

Returns

a new GFile for the path, Free with g_object_unref().

Since: 2.10


gimp_locale_directory_file ()

GFile *
gimp_locale_directory_file (const gchar *first_element,
                            ...);

Returns a GFile in the locale directory, or the locale directory itself if first_element is NULL.

See also: gimp_locale_directory().

Parameters

first_element

the first element of a path to a file in the locale directory, or NULL.

 

...

a NULL terminated list of the remaining elements of the path to the file.

 

Returns

a new GFile for the path, Free with g_object_unref().

Since: 2.10


gimp_sysconf_directory_file ()

GFile *
gimp_sysconf_directory_file (const gchar *first_element,
                             ...);

Returns a GFile in the sysconf directory, or the sysconf directory itself if first_element is NULL.

See also: gimp_sysconf_directory().

Parameters

first_element

the first element of a path to a file in the sysconf directory, or NULL.

 

...

a NULL terminated list of the remaining elements of the path to the file.

 

Returns

a new GFile for the path, Free with g_object_unref().

Since: 2.10


gimp_plug_in_directory_file ()

GFile *
gimp_plug_in_directory_file (const gchar *first_element,
                             ...);

Returns a GFile in the plug-in directory, or the plug-in directory itself if first_element is NULL.

See also: gimp_plug_in_directory().

Parameters

first_element

the first element of a path to a file in the plug-in directory, or NULL.

 

...

a NULL terminated list of the remaining elements of the path to the file.

 

Returns

a new GFile for the path, Free with g_object_unref().

Since: 2.10


gimp_user_directory ()

const gchar *
gimp_user_directory (GimpUserDirectory type);

gimp_user_directory is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use g_get_user_special_dir() instead.

Parameters

type

the type of user directory to retrieve

 

Returns

The path to the specified user directory, or NULL if the logical ID was not found.

Since: 2.4


gimp_personal_rc_file ()

gchar *
gimp_personal_rc_file (const gchar *basename);

Returns the name of a file in the user-specific GIMP settings directory.

The returned string is newly allocated and should be freed with g_free() after use. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8. (On Windows it always is UTF-8.)

Parameters

basename

The basename of a rc_file.

 

Returns

The name of a file in the user-specific GIMP settings directory.


gimp_gtkrc ()

const gchar *
gimp_gtkrc (void);

Returns the name of GIMP's application-specific gtkrc file.

The returned string is owned by GIMP and must not be modified or freed. The returned string is in the encoding used for filenames by GLib, which isn't necessarily UTF-8. (On Windows it always is UTF-8.)

Returns

The name of GIMP's application-specific gtkrc file.


gimp_path_parse ()

GList *
gimp_path_parse (const gchar *path,
                 gint max_paths,
                 gboolean check,
                 GList **check_failed);

Parameters

path

A list of directories separated by G_SEARCHPATH_SEPARATOR.

 

max_paths

The maximum number of directories to return.

 

check

TRUE if you want the directories to be checked.

 

check_failed

Returns a GList of path elements for which the check failed.

 

Returns

A GList of all directories in path .


gimp_path_to_str ()

gchar *
gimp_path_to_str (GList *path);

Parameters

path

A list of directories as returned by gimp_path_parse().

 

Returns

A searchpath string separated by G_SEARCHPATH_SEPARATOR.


gimp_path_free ()

void
gimp_path_free (GList *path);

This function frees the memory allocated for the list and the strings it contains.

Parameters

path

A list of directories as returned by gimp_path_parse().

 

gimp_path_get_user_writable_dir ()

gchar *
gimp_path_get_user_writable_dir (GList *path);

Note that you have to g_free() the returned string.

Parameters

path

A list of directories as returned by gimp_path_parse().

 

Returns

The first directory in path where the user has write permission.