Elementary Profile
Elementary

Profiles are pre-set options that affect the whole look-and-feel of Elementary-based applications. More...

## Functions

const char * | elm_config_profile_get (void)
| Get Elementary's profile in use.
const char * | elm_config_profile_dir_get (const char *profile, Eina_Bool is_user)
| Get an Elementary's profile directory path in the filesystem.
void | elm_config_profile_dir_free (const char *p_dir)
| Free an Elementary's profile directory path, as returned by elm_config_profile_dir_get().
Eina_List * | elm_config_profile_list_get (void)
| Get Elementary's list of available profiles.
Eina_List * | elm_config_profile_list_full_get (void)
| Get Elementary's list of available profiles including hidden ones.
void | elm_config_profile_list_free (Eina_List *l)
| Free Elementary's list of available profiles.
Eina_Bool | elm_config_profile_exists (const char *profile)
| Return if a profile of the given name exists.
void | elm_config_profile_set (const char *profile)
| Set Elementary's profile.
void | elm_config_profile_save (const char *profile)
| Take the current config and write it out to the named profile.
void | elm_config_profile_derived_add (const char *profile, const char *derive_options)
| Add a new profile of the given name to be derived from the current profile.
void | elm_config_profile_derived_del (const char *profile)
| Deletes a profile that is derived from the current one.
EINA_DEPRECATED void | elm_profile_all_set (const char *profile)
| Set Elementary's profile.

## Detailed Description

Profiles are pre-set options that affect the whole look-and-feel of Elementary-based applications.

There are, for example, profiles aimed at desktop computer applications and others aimed at mobile, touchscreen-based ones. You most probably don't want to use the functions in this group unless you're writing an elementary configuration manager.

## Function Documentation

## elm_config_profile_get()

const char * elm_config_profile_get | ( | void |  | ) |

Get Elementary's profile in use.

This gets the global profile that is applied to all Elementary applications.

Returns
  The profile's name

## elm_config_profile_dir_get()

const char * elm_config_profile_dir_get | ( | const char * | profile,
|  | Eina_Bool | is_user )

Get an Elementary's profile directory path in the filesystem.

One may want to fetch a system profile's dir or a user one (fetched inside $HOME).

Parameters

  profile | The profile's name
  is_user | Whether to lookup for a user profile (`EINA_TRUE`) or a system one (`EINA_FALSE`)

Returns
  The profile's directory path.

Note
  You must free it with elm_config_profile_dir_free().

## elm_config_profile_dir_free()

void elm_config_profile_dir_free | ( | const char * | p_dir | ) |

Free an Elementary's profile directory path, as returned by elm_config_profile_dir_get().

Parameters

  p_dir | The profile's path

## elm_config_profile_list_get()

Eina_List * elm_config_profile_list_get | ( | void |  | ) |

Get Elementary's list of available profiles.

Returns
  The profiles list. List node data are the profile name strings.

Note
  One must free this list, after usage, with the function elm_config_profile_list_free().

References EINA_TRUE.

## elm_config_profile_list_full_get()

Eina_List * elm_config_profile_list_full_get | ( | void |  | ) |

Get Elementary's list of available profiles including hidden ones.

This gets a full list of profiles even with hidden names that should not be user-visible.

Returns
  The profiles list. List node data are the profile name strings.

Note
  One must free this list, after usage, with the function elm_config_profile_list_free().

Since
  1.17

References EINA_FALSE.

## elm_config_profile_list_free()

void elm_config_profile_list_free | ( | Eina_List * | l | ) |

Free Elementary's list of available profiles.

Parameters

  l | The profiles list, as returned by elm_config_profile_list_get().

References EINA_LIST_FREE, and eina_stringshare_del().

## elm_config_profile_exists()

Eina_Bool elm_config_profile_exists | ( | const char * | profile | ) |

Return if a profile of the given name exists.

Returns
  EINA_TRUE if the profile exists, or EINA_FALSE if not

Parameters

  profile | The profile's name

Since
  1.17

References ecore_file_exists(), EINA_FALSE, eina_str_join_len(), and EINA_TRUE.

## elm_config_profile_set()

void elm_config_profile_set | ( | const char * | profile | ) |

Set Elementary's profile.

This sets the global profile that is applied to Elementary applications. Just the process the call comes from will be affected.

Parameters

  profile | The profile's name

References EINA_SAFETY_ON_NULL_RETURN.

## elm_config_profile_save()

void elm_config_profile_save | ( | const char * | profile | ) |

Take the current config and write it out to the named profile.

This will take the current in-memory config and write it out to the named profile specified by `profile`. This will not change profile for the application or make other processes switch profile.

Parameters

  profile | The profile's name

Since
  1.17

References EINA_SAFETY_ON_NULL_RETURN.

## elm_config_profile_derived_add()

void elm_config_profile_derived_add | ( | const char * | profile,
|  | const char * | derive_options )

Add a new profile of the given name to be derived from the current profile.

This creates a new profile of name `profile` that will be derived from the currently used profile using the modification commands encoded in the `derive_options` string.

At this point it is not expected that anyone would generally use this API except if you are a desktop environment and so the user base of this API will be enlightenment itself.

Parameters

  profile | The new profile's name
  derive_options | A string of derive options detailing how to modify

See also
  elm_config_profile_derived_del

Since
  1.17

References eina_list_append(), and eina_stringshare_add().

## elm_config_profile_derived_del()

void elm_config_profile_derived_del | ( | const char * | profile | ) |

Deletes a profile that is derived from the current one.

This deletes a derived profile added by elm_config_profile_derived_add(). This will delete the profile of the given name `profile` that is derived from the current profile.

At this point it is not expected that anyone would generally use this API except if you are a desktop environment and so the user base of this API will be enlightenment itself.

Parameters

  profile | The profile's name that is to be deleted

See also
  elm_config_profile_derived_add

Since
  1.17

References ecore_file_recursive_rm(), EINA_LIST_FOREACH, eina_list_remove_list(), and eina_stringshare_del().

## elm_profile_all_set()

EINA_DEPRECATED void elm_profile_all_set | ( | const char * | profile | ) |

Set Elementary's profile.

This sets the global profile that is applied to all Elementary applications. All running Elementary windows will be affected.

Parameters

  profile | The profile's name

Deprecated
  Use elm_profile_set() and elm_config_all_flush()

References EINA_DEPRECATED.