XkbOpenDisplay(3) XKB FUNCTIONS XkbOpenDisplay(3)

# [NAME](#NAME)

XkbOpenDisplay - Checks for a compatible version of the Xkb extension in both the library and the server, and initializes the extension for use.

# [SYNOPSIS](#SYNOPSIS)

**Display \*XkbOpenDisplay** **(\_Xconst char \*display\_name,** **int \*event\_rtrn,** **int \*error\_rtrn,** **int \*major\_in\_out,** **int \*minor\_in\_out,** **int \*reason\_rtrn);**

# [ARGUMENTS](#ARGUMENTS)

[*display\_name*](#display_name)

hardware display name, which determines the display and communications domain to be used

[*event\_rtrn*](#event_rtrn)

backfilled with the extension base event code

[*error\_rtrn*](#error_rtrn)

backfilled with the extension base error code

[*major\_in\_out*](#major_in_out)

compile time lib major version in, server major version out

[*minor\_in\_out*](#minor_in_out)

compile time lib min version in, server minor version out

[*reason\_rtrn*](#reason_rtrn)

backfilled with a status code

# [DESCRIPTION](#DESCRIPTION)

As a convenience, you can use the function *XkbOpenDisplay* to perform these three tasks at once: open a connection to an X server, check for a compatible version of the Xkb extension in both the library and the server, and initialize the extension for use.

*XkbOpenDisplay* is a convenience function that opens an X display connection and initializes the X keyboard extension. In all cases, upon return *reason\_rtrn* contains a status value indicating success or the type of failure. If *major\_in\_out* and *minor\_in\_out* are not NULL, *XkbOpenDisplay* first calls *XkbLibraryVersion* to determine whether the client library is compatible, passing it the values pointed to by *major\_in\_out and* *minor\_in\_out. If the library is* incompatible, *XkbOpenDisplay backfills* *major\_in\_out* and *minor\_in\_out* with the major and minor extension versions of the library being used and returns NULL. If the library is compatible, *XkbOpenDisplay* next calls *XOpenDisplay* with the *display\_name.* If this fails, the function returns NULL. If successful, *XkbOpenDisplay* calls *XkbQueryExtension* and backfills the major and minor Xkb server extension version numbers in *major\_in\_out and* *minor\_in\_out. If the server* extension version is not compatible with the library extension version or if the server extension is not present, *XkbOpenDisplay* closes the display and returns NULL. When successful, the function returns the display connection.

The possible values for reason\_rtrn are:

- XkbOD\_BadLibraryVersion indicates XkbLibraryVersion returned False.
- XkbOD\_ConnectionRefused indicates the display could not be opened.
- XkbOD\_BadServerVersion indicates the library and the server have incompatible extension versions.
- XkbOD\_NonXkbServer indicates the extension is not present in the X server.
- XkbOD\_Success indicates that the function succeeded.

# [RETURN VALUES](#RETURN_VALUES)

[NULL](#NULL)

The *XkbOpenDisplay* function returns NULL if the library is incompatible.

The *XkbOpenDisplay* function returns NULL if the call to *XOpenDisplay* with the *display\_name* fails.

The *XkbOpenDisplay* function returns NULL and closes the display if the server extension version is not compatible with the library extension version or if the server extension is not present.

# [DIAGNOSTICS](#DIAGNOSTICS)

BadAccess

The Xkb extension has not been properly initialized

# [SEE ALSO](#SEE_ALSO)

[**XkbLibraryVersion**(3)](/man/os/libx11/XkbLibraryVersion.3), [**XkbQueryExtension**(3)](/man/os/libx11/XkbQueryExtension.3), [**XOpenDisplay**(3)](/man/os/libx11/XOpenDisplay.3)

libX11 1.8.14 X Version 11

---

Document: XkbOpenDisplay(3) from libx11 1.8.14-r1 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libx11.git
