XCHANGEKEYBOARDDEVIC(3)   XCHANGEKEYBOARDDEVIC(3)

XChangeKeyboardDevice - change which device is used as the X keyboard

#include <X11/extensions/XInput.h>
Status XChangeKeyboardDevice( Display *display,
                              XDevice *device);
display
       Specifies the connection to the X server.
device
       Specifies the device to be used as the X keyboard.

The XChangeKeyboardDevice request causes the server to use the
specified device as the X keyboard. The device must have been
previously opened by the requesting client via XOpenDevice or a
BadDevice error will result. The device must support input
class Keys, or a BadMatch error will result. If the server
implementation does not support using the requested device as
the X keyboard, a BadDevice error will result.
If the specified device is grabbed by another client,
AlreadyGrabbed is returned. If the specified device is frozen
by a grab on another device, GrabFrozen is returned. If the
request is successful, Success is returned.
If the request succeeds, a ChangeDeviceNotify event is sent to
all clients that have selected that event. A MappingNotify
event with request = MappingKeyboard is sent to all clients.
The specified device becomes the X keyboard and the old X
keyboard becomes accessible through the input extension
protocol requests.
XChangeKeyboardDevice can generate a BadDevice or a BadMatch
error.

BadDevice
       An invalid device was specified. The specified device
       does not exist, has not been opened by this client via
       XOpenInputDevice, or is already one of the core X device
       (pointer or keyboard). This error may also occur if the
       server implementation does not support using the
       specified device as the X keyboard.
BadMatch
       This error may occur if an XChangeKeyboardDevice request
       was made specifying a device that has no keys.

XChangePointerDevice(3)
05/04/2023