---
name: "xcb_change_property_checked"
section: "3"
platform: "linux"
package: "libxcb"
version: "1.17.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/xcb_change_property"
---

# xcb\_change\_property\_checked(3)

Changes a window property

Part of [xcb\_change\_property(3)](/xcb_change_property/3.md).

## NAME

xcb\_change\_property - Changes a window property

## SYNOPSIS

**#include \<xcb/xproto.h\>**

### Request function

xcb\_void\_cookie\_t **xcb\_change\_property**(xcb\_connection\_t \**conn*, uint8\_t *mode*, xcb\_window\_t *window*, xcb\_atom\_t *property*, xcb\_atom\_t *type*, uint8\_t *format*, uint32\_t *data\_len*, const void \**data*);\

## REQUEST ARGUMENTS

- *conn*

  The XCB connection to X11.

- *mode*

  One of the following values:

  - *XCB\_PROP\_MODE\_REPLACE*

    Discard the previous property value and store the new data.

  - *XCB\_PROP\_MODE\_PREPEND*

    Insert the new data before the beginning of existing data. The *format* must match existing property value. If the property is undefined, it is treated as defined with the correct type and format with zero-length data.

  - *XCB\_PROP\_MODE\_APPEND*

    Insert the new data after the beginning of existing data. The *format* must match existing property value. If the property is undefined, it is treated as defined with the correct type and format with zero-length data.

- *window*

  The window whose property you want to change.

- *property*

  The property you want to change (an atom).

- *type*

  The type of the property you want to change (an atom).

- *format*

  Specifies whether the data should be viewed as a list of 8-bit, 16-bit or 32-bit quantities. Possible values are 8, 16 and 32. This information allows the X server to correctly perform byte-swap operations as necessary.

- *data\_len*

  Specifies the number of elements (see *format*).

- *data*

  The property data.

## DESCRIPTION

Sets or updates a property on the specified *window*. Properties are for example the window title (*WM\_NAME*) or its minimum size (*WM\_NORMAL\_HINTS*). Protocols such as EWMH also use properties - for example EWMH defines the window title, encoded as UTF-8 string, in the *\_NET\_WM\_NAME* property.

## RETURN VALUE

Returns an *xcb\_void\_cookie\_t*. Errors (if any) have to be handled in the event loop.

If you want to handle errors directly with *xcb\_request\_check* instead, use *xcb\_change\_property\_checked*. See **[xcb-requests(3)](/xcb-requests/3.md)** for details.

## ERRORS

- *xcb\_alloc\_error\_t*

  The X server could not store the property (no memory?).

- *xcb\_atom\_error\_t*

  *property* or *type* do not refer to a valid atom.

- *xcb\_match\_error\_t*

  TODO: reasons?

- *xcb\_value\_error\_t*

  TODO: reasons?

- *xcb\_window\_error\_t*

  The specified *window* does not exist.

## EXAMPLE

```

/*
 * Sets the WM_NAME property of the window to "XCB Example".
 *
 */
void my_example(xcb_connection_t *conn, xcb_window_t window) {
    xcb_change_property(conn,
        XCB_PROP_MODE_REPLACE,
        window,
        XCB_ATOM_WM_NAME,
        XCB_ATOM_STRING,
        8,
        strlen("XCB Example"),
        "XCB Example");
    xcb_flush(conn);
}
```

## SEE ALSO

[**xcb-requests**(3)](/xcb-requests/3.md), [**xcb-examples**(3)](/xcb-examples/3.md), [**xcb\_intern\_atom**(3)](/xcb_intern_atom/3.md), [**xprop**(1)](/xprop/1.md)

## AUTHOR

Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
