---
name: "XSetDeviceMode"
section: "3x"
platform: "linux"
package: "libxi-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XSetDeviceMode/3x"
---

# XSetDeviceMode(3x)

change the mode of a device

## NAME

XSetDeviceMode - change the mode of a device

## SYNTAX

XSetDeviceMode(*display*, *device*, *mode*)\
\
       Display \**display*;\
\
       XDevice \**device*; \
\
       int *\_mode*;

## ARGUMENTS

- *display*

  Specifies the connection to the X server.

- *device*

  Specifies the device whose mode is to be changed.

- *mode*

  Specifies the mode. You can pass  *Absolute* , or *Relative*.

## DESCRIPTION

The *XSetDeviceMode* 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* can generate a *BadDevice* or *BadMode*  error.

## DIAGNOSTICS

- *BadDevice*

  An invalid device was specified.  The specified device does not exist or has  not been opened by this client via *XOpenInputDevice*.  This error may also occur if some other client has caused the specified device to become the X keyboard or X pointer device via the *XChangeKeyboardDevice* or *XChangePointerDevice* requests.

- *BadMatch*

  This error may occur if an *XSetDeviceMode* 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* request.

## SEE ALSO

*Programming with Xlib*
