libxkbcommon  0.8.4
Macros | Enumerations | Functions
Keymap Creation

Macros

#define XKB_KEYMAP_USE_ORIGINAL_FORMAT   ((enum xkb_keymap_format) -1)
 

Enumerations

enum  xkb_keymap_compile_flags { XKB_KEYMAP_COMPILE_NO_FLAGS = 0 }
 
enum  xkb_keymap_format { XKB_KEYMAP_FORMAT_TEXT_V1 = 1 }
 

Functions

struct xkb_keymapxkb_keymap::xkb_keymap_new_from_names (struct xkb_context *context, const struct xkb_rule_names *names, enum xkb_keymap_compile_flags flags)
 
struct xkb_keymapxkb_keymap::xkb_keymap_new_from_file (struct xkb_context *context, FILE *file, enum xkb_keymap_format format, enum xkb_keymap_compile_flags flags)
 
struct xkb_keymapxkb_keymap::xkb_keymap_new_from_string (struct xkb_context *context, const char *string, enum xkb_keymap_format format, enum xkb_keymap_compile_flags flags)
 
struct xkb_keymapxkb_keymap::xkb_keymap_new_from_buffer (struct xkb_context *context, const char *buffer, size_t length, enum xkb_keymap_format format, enum xkb_keymap_compile_flags flags)
 
struct xkb_keymapxkb_keymap::xkb_keymap_ref (struct xkb_keymap *keymap)
 
void xkb_keymap::xkb_keymap_unref (struct xkb_keymap *keymap)
 
char * xkb_keymap::xkb_keymap_get_as_string (struct xkb_keymap *keymap, enum xkb_keymap_format format)
 

Detailed Description

Creating and destroying keymaps.

Macro Definition Documentation

◆ XKB_KEYMAP_USE_ORIGINAL_FORMAT

#define XKB_KEYMAP_USE_ORIGINAL_FORMAT   ((enum xkb_keymap_format) -1)

Get the keymap as a string in the format from which it was created.

See also
xkb_keymap_get_as_string()

Enumeration Type Documentation

◆ xkb_keymap_compile_flags

Flags for keymap compilation.

Enumerator
XKB_KEYMAP_COMPILE_NO_FLAGS 

Do not apply any flags.

◆ xkb_keymap_format

The possible keymap formats.

Enumerator
XKB_KEYMAP_FORMAT_TEXT_V1 

The current/classic XKB text format, as generated by xkbcomp -xkb.

Function Documentation

◆ xkb_keymap_new_from_names()

struct xkb_keymap * xkb_keymap_new_from_names ( struct xkb_context context,
const struct xkb_rule_names names,
enum xkb_keymap_compile_flags  flags 
)

Create a keymap from RMLVO names.

The primary keymap entry point: creates a new XKB keymap from a set of RMLVO (Rules + Model + Layouts + Variants + Options) names.

Parameters
contextThe context in which to create the keymap.
namesThe RMLVO names to use. See xkb_rule_names.
flagsOptional flags for the keymap, or 0.
Returns
A keymap compiled according to the RMLVO names, or NULL if the compilation failed.
See also
xkb_rule_names

◆ xkb_keymap_new_from_file()

struct xkb_keymap * xkb_keymap_new_from_file ( struct xkb_context context,
FILE *  file,
enum xkb_keymap_format  format,
enum xkb_keymap_compile_flags  flags 
)

Create a keymap from a keymap file.

Parameters
contextThe context in which to create the keymap.
fileThe keymap file to compile.
formatThe text format of the keymap file to compile.
flagsOptional flags for the keymap, or 0.
Returns
A keymap compiled from the given XKB keymap file, or NULL if the compilation failed.

The file must contain a complete keymap. For example, in the XKB_KEYMAP_FORMAT_TEXT_V1 format, this means the file must contain one top level 'xkb_keymap' section, which in turn contains other required sections.

◆ xkb_keymap_new_from_string()

struct xkb_keymap * xkb_keymap_new_from_string ( struct xkb_context context,
const char *  string,
enum xkb_keymap_format  format,
enum xkb_keymap_compile_flags  flags 
)

Create a keymap from a keymap string.

This is just like xkb_keymap_new_from_file(), but instead of a file, gets the keymap as one enormous string.

See also
xkb_keymap_new_from_file()

◆ xkb_keymap_new_from_buffer()

struct xkb_keymap * xkb_keymap_new_from_buffer ( struct xkb_context context,
const char *  buffer,
size_t  length,
enum xkb_keymap_format  format,
enum xkb_keymap_compile_flags  flags 
)

Create a keymap from a memory buffer.

This is just like xkb_keymap_new_from_string(), but takes a length argument so the input string does not have to be zero-terminated.

See also
xkb_keymap_new_from_string()
Since
0.3.0

◆ xkb_keymap_ref()

struct xkb_keymap * xkb_keymap_ref ( struct xkb_keymap keymap)

Take a new reference on a keymap.

Returns
The passed in keymap.

◆ xkb_keymap_unref()

void xkb_keymap_unref ( struct xkb_keymap keymap)

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

Parameters
keymapThe keymap. If it is NULL, this function does nothing.

◆ xkb_keymap_get_as_string()

char * xkb_keymap_get_as_string ( struct xkb_keymap keymap,
enum xkb_keymap_format  format 
)

Get the compiled keymap as a string.

Parameters
keymapThe keymap to get as a string.
formatThe keymap format to use for the string. You can pass in the special value XKB_KEYMAP_USE_ORIGINAL_FORMAT to use the format from which the keymap was originally created.
Returns
The keymap as a NUL-terminated string, or NULL if unsuccessful.

The returned string may be fed back into xkb_keymap_new_from_string() to get the exact same keymap (possibly in another process, etc.).

The returned string is dynamically allocated and should be freed by the caller.