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

# XDefineCursor(3)

define cursors

## NAME

XDefineCursor, XUndefineCursor - define cursors

## SYNTAX

int XDefineCursor(Display \**display*, Window *w*, Cursor *cursor*);

int XUndefineCursor(Display \**display*, Window *w*);

## ARGUMENTS

- *cursor*

  Specifies the cursor that is to be displayed or **None**.

- *display*

  Specifies the connection to the X server.

- *w*

  Specifies the window.

## DESCRIPTION

If a cursor is set, it will be used when the pointer is in the window. If the cursor is **None**, it is equivalent to **XUndefineCursor**.

**XDefineCursor** can generate **BadCursor** and **BadWindow** errors.

The **XUndefineCursor** function undoes the effect of a previous **XDefineCursor** for this window. When the pointer is in the window, the parent's cursor will now be used. On the root window, the default cursor is restored.

**XUndefineCursor** can generate a **BadWindow** error.

## DIAGNOSTICS

- **BadAlloc**

  The server failed to allocate the requested resource or server memory.

- **BadCursor**

  A value for a Cursor argument does not name a defined Cursor.

- **BadWindow**

  A value for a Window argument does not name a defined Window.

## SEE ALSO

[**XCreateFontCursor**(3)](/XCreateFontCursor/3.md), [**XRecolorCursor**(3)](/XRecolorCursor/3.md)\
 *Xlib - C Language X Interface*
