pub fn change_property<'c, 'input, Conn, A, B>(
    conn: &'c Conn,
    mode: PropMode,
    window: Window,
    property: A,
    type_: B,
    format: u8,
    data_len: u32,
    data: &'input [u8]
) -> Result<VoidCookie<'c, Conn>, ConnectionError>
where Conn: RequestConnection + ?Sized, A: Into<Atom>, B: Into<Atom>,
Expand description

Changes a window property.

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.

Fields

  • window - The window whose property you want to change.
  • mode -
  • 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.

Errors

  • Match - TODO: reasons?
  • Value - TODO: reasons?
  • Window - The specified window does not exist.
  • Atom - property or type do not refer to a valid atom.
  • Alloc - The X server could not store the property (no memory?).

See

  • InternAtom: request
  • xprop: program

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);
}