The XSetDeviceMode(3) request changes the mode of an
input device that is capable of reporting either absolute
positional information or relative motion information. Not all
input devices are capable of reporting motion data, and not all are
capable of changing modes from Absolute to Relative.
XSetDeviceMode(3) can generate a BadDevice or
BadMode error.
An invalid device was specified. The specified device does not
exist or has not been opened by this client with
XOpenInputDevice(). This error might also occur if some
other client has caused the specified device to become the X
keyboard or X pointer device through the XChangeKeyboardDevice(3) or XChangePointerDevice(3) requests.
BadMatch
This error might occur if an XSetDeviceMode(3)
request is made specifying a device that has no valuators and
reports no axes of motion.
BadMode
An invalid mode was specified. This error will also be returned
if the specified device is not capable of supporting the XSetDeviceMode(3) request.