Create new XklConfigItem
new instance
characters); can be NULL.
Change the @description field of a XklConfigItem. This is mostly useful for
language bindings, in C you can manipulate the member directly.
Description (max. 192
Change the @name field of a XklConfigItem. This is mostly useful for
language bindings, in C you can manipulate the member directly.
Name (max. 32 characters); can be NULL.
characters); can be NULL.
Change the @short_description field of a XklConfigItem. This is mostly useful for
language bindings, in C you can manipulate the member directly.
Short Description (max. 10
Callback type used for enumerating keyboard models, layouts, variants, options
the config registry
the item from registry
anything which can be stored into the pointer
Create new XklConfigRec
new instance
Writes some XKB configuration into XKM/XKB/... file
TRUE on success
the engine
name of the file to create
valid XKB configuration description. Can be NULL
flag indicating whether the output file should be binary
Activates some XKB configuration
description. Can be NULL
TRUE on success
the engine
Compares two records
TRUE if records are same
another record
Loads the current XKB configuration (from backup)
TRUE on success
the engine
Gets the XKB configuration from any root window property
TRUE on success
atom name of the root window property to read
pointer to hold the file name
the engine
Loads the current XKB configuration (from X server)
TRUE on success
the engine
Resets the record (equal to Destroy and Init)
Sets a new layout list.
Frees the previous layout list. This is primarily useful for bindings, in C
you can manipulate the @layouts record member directly.
zero terminated list of new layout names.
Sets a new option list.
Frees the previous option list. This is primarily useful for bindings, in C
you can manipulate the @options record member directly.
zero terminated list of new option names.
Saves the XKB configuration into any root window property
TRUE on success
atom name of the root window property to write
rules file name
the engine
Sets a new variant list.
Frees the previous variant list. This is primarily useful for bindings, in C
you can manipulate the @variants record member directly.
zero terminated list of new variant names.
Create new XklConfig
new instance
the engine to use for accessing X in all the operations (like accessing root window properties etc)
Loads a keyboard layout information from the XML configuration registry.
TRUE if appropriate element was found and loaded
pointer to a XklConfigItem containing the name of the keyboard layout. On successfull return, the descriptions are filled.
Loads a keyboard model information from the XML configuration registry.
TRUE if appropriate element was found and loaded
pointer to a XklConfigItem containing the name of the keyboard model. On successfull return, the descriptions are filled.
Loads a keyboard option information from the XML configuration
registry.
TRUE if appropriate element was found and loaded
name of the option group
pointer to a XklConfigItem containing the name of the keyboard option. On successfull return, the descriptions are filled.
Loads a keyboard option group information from the XML configuration
registry.
TRUE if appropriate element was found and loaded
pointer to a XklConfigItem containing the name of the keyboard option group. On successfull return, the descriptions are filled.
Loads a keyboard layout variant information from the XML configuration
registry.
TRUE if appropriate element was found and loaded
name of the parent layout
pointer to a XklConfigItem containing the name of the keyboard layout variant. On successfull return, the descriptions are filled.
Enumerates countries for which layouts are available,
from the XML configuration registry
callback to call for every ISO 3166 country code
anything which can be stored into the pointer
Enumerates keyboard layout variants for the country,
from the XML configuration registry
country ISO code for which variants will be listed
callback to call for every country variant
anything which can be stored into the pointer
Enumerates languages for which layouts are available,
from the XML configuration registry
callback to call for every ISO 639-2 country code
anything which can be stored into the pointer
Enumerates keyboard layout variants for the language,
from the XML configuration registry
language ISO code for which variants will be listed
callback to call for every country variant
anything which can be stored into the pointer
Enumerates keyboard layouts from the XML configuration registry
callback to call for every layout
anything which can be stored into the pointer
Enumerates keyboard layout variants from the XML configuration registry
layout name for which variants will be listed
callback to call for every layout variant
anything which can be stored into the pointer
Enumerates keyboard models from the XML configuration registry
callback to call for every model
anything which can be stored into the pointer
Enumerates keyboard options from the XML configuration registry
option group name for which variants will be listed
callback to call for every option
anything which can be stored into the pointer
Enumerates keyboard option groups from the XML configuration registry
callback to call for every option group
anything which can be stored into the pointer
Loads XML configuration registry. The name is taken from X server
(for XKB/libxkbfile, from the root window property)
TRUE on success
whether exotic materials (layouts, options) should be loaded as well
Enumerates keyboard layout/variants that match the pattern.
The layout/variant is considered as matching if one of the following
is true:
1. Country description (from the country list or name) contains pattern as substring
2. Language description (from the language list or name) contains pattern as substring
pattern to search for (NULL means "all")
callback to call for every matching layout/variant
anything which can be stored into the pointer
Get the instance of the XklEngine. Within a process, there is always once instance.
the singleton instance
the X display used by the application
Allows to switch (once) to the secondary group
Backups current XKB configuration into some property -
if this property is not defined yet.
TRUE on success
Drops the state of a given window (of its "App window").
target window
What kind of backend is used
some string id of the backend
current state of the keyboard. Returned value is a statically allocated buffer, should not be freed.
currently focused window
saved group id of the current window.
Returns the default group set on window creation
If -1, no default group is used
the default group
Provides information regarding available backend features
(combination of XKLF_* constants)
ORed XKLF_* constants
the array of group names for the current XKB configuration (keyboard). This array is static, should not be freed
the value of the parameter: perform indicator handling
the array of indicator names for the current XKB configuration (keyboard). This array is static, should not be freed
Provides the information on maximum number of simultaneously supported
groups (layouts)
maximum number of the groups in configuration, 0 if no restrictions.
Calculates next group id. Does not change the state of anything.
next group id
the total number of groups in the current configuration (keyboard)
Calculates prev group id. Does not change the state of anything.
prev group id
the secondary group mask
Finds the state for a given window (for its "App window").
TRUE on success, otherwise FALSE (the error message can be obtained using xkl_GetLastError).
window to query
structure to store the state
the window title of some window or NULL. If not NULL, it should be freed with XFree
X window
Grabs some key
TRUE on success
keycode
bitmask of modifiers
the value of the parameter: group per application
Checks whether 2 windows have the same topmost window
TRUE is windows are in the same application
first window
second window
TRUE if the window is "transparent"
window to get the transparent flag from.
Locks the group. Can be used after xkl_GetXXXGroup functions
group number for locking
Temporary pauses listening for XKB-related events
0
Resumes listening for XKB-related events
0
Stores ths state for a given window
target window
new state of the window
Configures the default group set on window creation.
If -1, no default group is used
default group
Sets the configuration parameter: group per application
new parameter value
Sets the configuration parameter: perform indicators handling
new parameter value
Sets the secondary groups (one bit per group).
Secondary groups require explicit "allowance" for switching
new group mask
Sets the "transparent" flag. It means focus switching onto
this window will never change the state.
window do set the flag for.
if true, the windows is transparent.
Starts listening for XKB-related events
0
any combination of XKLL_* constants
Stops listening for XKB-related events
0
any combination of XKLL_* constants
Ungrabs some key
TRUE on success
keycode
bitmask of modifiers
Custom log output method for _xkl_debug. This appender is NOT called if the
level of the message is greater than currently set debug level.
name of the source file. Preprocessor symbol__FILE__ should be used here
name of the function Preprocessor symbol__func__ should be used here
level of the message
format (like in printf)
list of parameters
Callback type used for enumerating layouts/variants for countries/languages
the config registry
the item from registry
the item from registry
anything which can be stored into the pointer
Get localized country name, from ISO code
localized country name (USA, Russia, France, ... translated)
ISO 3166 Alpha 2 code: 2 chars, uppercase (US, RU, FR, ...)
Get localized language name, from ISO code
localized country name (English, Russiam, French, ... translated)
ISO 639 2B or 2T code: 3 chars, lowercase (eng, rus, fra, ...)
the text message (statically allocated) of the last error
Restores XKB from the property saved by xkl_backup_names_prop
TRUE on success
the engine
Sets maximum debug level.
Message of the level more than the one set here - will be ignored
new debug level