---
name: "XChangePointerDevice"
section: "3"
platform: "linux"
package: "libxi-dev"
version: "2:1.8.2-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/XChangePointerDevice"
---

# XChangePointerDevice(3)

change which device is the X pointer

## NAME

XChangePointerDevice - change which device is the X pointer

## SYNOPSIS

```
#include <X11/extensions/XInput.h>
```

```
Status XChangePointerDevice( Display *display,
                             XDevice *device,
                             int xaxis,
                             int yaxis);
```

```
display
       Specifies the connection to the X server.
```

```
device
       Specifies the device to be used as the X pointer.
```

```
xaxis
       Specifies the axis of the device to be used as the X
       pointer x-axis.
```

```
yaxis
       Specifies the axis of the device to be used as the X
       pointer y-axis.
```

## DESCRIPTION

```
The XChangePointerDevice request causes the server to use the
specified device as the X pointer. The device must have been
opened by the client via XOpenDevice or a BadDevice error will
result. The device must support input class Valuators or a
BadMatch error will result. If the implementation does not
support use of the specified device as the X pointer, 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 = MappingPointer is sent to all clients. The
specified device becomes the X pointer, and the old X pointer
becomes accessible through the input extension protocol
requests.
```

```
XChangePointerDevice can generate a BadDevice or a BadMatch
error.
```

## DIAGNOSTICS

```
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 input
       devices (pointer or keyboard). This error may also occur
       if the server implementation does not support using the
       specified device as the X pointer.
```

```
BadMatch
       This error may occur if an XChangePointerDevice request
       was made specifying a device that has less than two
       valuators, or specifying a valuator index beyond the
       range supported by the device.
```

## SEE ALSO

```
XChangeKeyboardDevice(3)
```
