libxkbcommon: Library Context

libxkbcommon 1.13.2 Library implementing the XKB specification for parsing keyboard descriptions and handling keyboard state

Loading...
Searching...
No Matches
Enumerations | Functions
Library Context

## Enumerations
enum | xkb_context_flags { XKB_CONTEXT_NO_FLAGS = 0 , XKB_CONTEXT_NO_DEFAULT_INCLUDES = (1 << 0) , XKB_CONTEXT_NO_ENVIRONMENT_NAMES = (1 << 1) , XKB_CONTEXT_NO_SECURE_GETENV = (1 << 2) }

## Functions
XKB_EXPORT struct xkb_context * | xkb_context::xkb_context_new (enum xkb_context_flags flags)
XKB_EXPORT struct xkb_context * | xkb_context::xkb_context_ref (struct xkb_context *context)
XKB_EXPORT void | xkb_context::xkb_context_unref (struct xkb_context *context)
XKB_EXPORT void | xkb_context::xkb_context_set_user_data (struct xkb_context *context, void *user_data)
XKB_EXPORT void * | xkb_context::xkb_context_get_user_data (struct xkb_context *context)

## Detailed Description

Creating, destroying and using library contexts.

Every keymap compilation request must have a context associated with it. The context keeps around state such as the include path.

### Environment Variables

- XKB_CONFIG_ROOT, XKB_CONFIG_UNVERSIONED_EXTENSIONS_PATH, XKB_CONFIG_VERSIONED_EXTENSIONS_PATH, XKB_CONFIG_EXTRA_PATH, XDG_CONFIG_DIR, HOME - see Include Paths.
- XKB_LOG_LEVEL - see xkb_context::xkb_context_set_log_level().
- XKB_LOG_VERBOSITY - see xkb_context::xkb_context_set_log_verbosity().
- XKB_DEFAULT_RULES, XKB_DEFAULT_MODEL, XKB_DEFAULT_LAYOUT, XKB_DEFAULT_VARIANT, XKB_DEFAULT_OPTIONS - see xkb_rule_names.

## Enumeration Type Documentation

## ◆ xkb_context_flags

enum xkb_context_flags

Flags for context creation.

Enumerator
XKB_CONTEXT_NO_FLAGS | Do not apply any context flags.
XKB_CONTEXT_NO_DEFAULT_INCLUDES | Create this context with an empty include path. This may be useful e.g.: to have full control over the included paths; for clients that do not need to access the XKB directories, e.g. if only retrieving keymap from the Wayland or X server. It avoids potential issues with directory access permissions.
XKB_CONTEXT_NO_ENVIRONMENT_NAMES | Don’t take RMLVO names from the environment. Since 0.3.0
XKB_CONTEXT_NO_SECURE_GETENV | Disable the use of secure_getenv for this context, so that privileged processes can use environment variables. Client uses at their own risk. Since 1.5.0

## Function Documentation

## ◆ xkb_context_new()

XKB_EXPORT struct xkb_context * xkb_context_new | ( | enum xkb_context_flags | flags | ) |

Create a new context.

Parameters

  flags | Optional flags for the context, or 0.

Returns
  A new context, or NULL on failure.

## ◆ xkb_context_ref()

XKB_EXPORT struct xkb_context * xkb_context_ref | ( | struct xkb_context * | context | ) |

Take a new reference on a context.

Returns
  The passed in context.

## ◆ xkb_context_unref()

XKB_EXPORT void xkb_context_unref | ( | struct xkb_context * | context | ) |

Release a reference on a context, and possibly free it.

Parameters

  context | The context. If it is NULL, this function does nothing.

## ◆ xkb_context_set_user_data()

XKB_EXPORT void xkb_context_set_user_data | ( | struct xkb_context * | context,
|  | void * | user_data )

Store custom user data in the context.

This may be useful in conjunction with xkb_context::xkb_context_set_log_fn() or other callbacks.

## ◆ xkb_context_get_user_data()

XKB_EXPORT void * xkb_context_get_user_data | ( | struct xkb_context * | context | ) |

Retrieves stored user data from the context.

Returns
  The stored user data. If the user data wasn’t set, or the passed in context is NULL, returns NULL.

This may be useful to access private user data from callbacks like a custom logging function.