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.