XCHANGEPOINTERDEVICE(3)
β¨ XChangePointerDevice(3) β the "new pointer bestie just dropped" page π
okay so real talk, this is XChangePointerDevice(3) from the XInput crew, and it's literally the glow-up button for your X pointer. you wanna swap out which device is the pointer? this is the function. slay. π
πΈ NAME πΈ
XChangePointerDevice β change which device is the X pointer
(yeah that's it, that's the whole vibe. she does one thing and she does it well. periodt.)
π¦ SYNOPSIS π¦
#include <X11/extensions/XInput.h>
Status XChangePointerDevice( Display *display,
XDevice *device,
int xaxis,
int yaxis);
so here's who's who in this little friend group π
displayβ Specifies the connection to the X server. (your link to the server, your group chat connection, if you will)deviceβ Specifies the device to be used as the X pointer. (the new main character π)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. that's the whole point, bestie, no cap.
but listen, there are rules. The device must have been opened by the client via XOpenDevice or a BadDevice error will result. π₯ and The device must support input class Valuators or a BadMatch error will result. and if the implementation does not support use of the specified device as the X pointer, a BadDevice error will result. so like, check the vibe first.
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. (someone else has it and they are NOT sharing π) If the request is successful, Success is returned. π
and 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. iconic behavior, honestly. the old pointer isn't gone, she's just β¨demotedβ¨.
heads up bestie:XChangePointerDevicecan generate aBadDeviceor aBadMatcherror. so like, be ready.
π DIAGNOSTICS π
BadDeviceβ An invalid device was specified. the specified device does not exist, has not been opened by this client viaXOpenInputDevice, 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. basically: wrong device, unopened device, or a core device trying to be something she's not. π«ΆBadMatchβ this error may occur if anXChangePointerDevicerequest was made specifying a device that has less than two valuators, or specifying a valuator index beyond the range supported by the device. like girl you need at least two axes to do 2D, c'mon π
π SEE ALSO π
XChangeKeyboardDevice(3)β the keyboard-side sister page, go give her a read too β¨
and that's the whole page, no crumbs left π
mwah. this one's from the XChangePointerDevice(3) fam, dated 05/18/2026 β bookmark it, screenshot it, send it to the group chat, iykyk. π¦πΈπ
π¦ where this page comes from
- fedora 44: libXi-devel 1.8.3-1.fc44 Β· MIT-open-group AND SMLNJ AND MIT
- fedora 44: libXi-devel 1.8.3-1.fc44 Β· MIT-open-group AND SMLNJ AND MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms