---
name: "XChangePointerControl"
section: "3"
platform: "linux"
package: "libx11"
version: "1.8.14-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XChangePointerControl"
---

# XChangePointerControl(3)

control pointer

## NAME

XChangePointerControl, XGetPointerControl - control pointer

## SYNTAX

int XChangePointerControl(Display \**display*, Bool *do\_accel*, Bool *do\_threshold*, int *accel\_numerator*, int *accel\_denominator*, int *threshold*);

int XGetPointerControl(Display \**display*, int \**accel\_numerator\_return*, int \**accel\_denominator\_return*, int \**threshold\_return*);

## ARGUMENTS

- *accel\_denominator*

  Specifies the denominator for the acceleration multiplier.

- *accel\_denominator\_return*

  Returns the denominator for the acceleration multiplier.

- *accel\_numerator*

  Specifies the numerator for the acceleration multiplier.

- *accel\_numerator\_return*

  Returns the numerator for the acceleration multiplier.

- *display*

  Specifies the connection to the X server.

- *do\_accel*

  Specifies a Boolean value that controls whether the values for the accel\_numerator or accel\_denominator are used.

- *do\_threshold*

  Specifies a Boolean value that controls whether the value for the threshold is used.

- *threshold*

  Specifies the acceleration threshold.

- *threshold\_return*

  Returns the acceleration threshold.

## DESCRIPTION

The **XChangePointerControl** function defines how the pointing device moves. The acceleration, expressed as a fraction, is a multiplier for movement. For example, specifying 3/1 means the pointer moves three times as fast as normal. The fraction may be rounded arbitrarily by the X server. Acceleration only takes effect if the pointer moves more than threshold pixels at once and only applies to the amount beyond the value in the threshold argument. Setting a value to -1 restores the default. The values of the do\_accel and do\_threshold arguments must be **True** for the pointer values to be set, or the parameters are unchanged. Negative values (other than -1) generate a **BadValue** error, as does a zero value for the accel\_denominator argument.

**XChangePointerControl** can generate a **BadValue** error.

The **XGetPointerControl** function returns the pointer's current acceleration multiplier and acceleration threshold.

## DIAGNOSTICS

- **BadValue**

  Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error.

## SEE ALSO

*Xlib - C Language X Interface*
