x11rb::protocol::xproto

Function intern_atom

Source
pub fn intern_atom<'c, 'input, Conn>(
    conn: &'c Conn,
    only_if_exists: bool,
    name: &'input [u8],
) -> Result<Cookie<'c, Conn, InternAtomReply>, ConnectionError>
where Conn: RequestConnection + ?Sized,
Expand description

Get atom identifier by name.

Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified name. Atoms are used in protocols like EWMH, for example to store window titles (_NET_WM_NAME atom) as property of a window.

If only_if_exists is 0, the atom will be created if it does not already exist. If only_if_exists is 1, XCB_ATOM_NONE will be returned if the atom does not yet exist.

§Fields

  • name_len - The length of the following name.
  • name - The name of the atom.
  • only_if_exists - Return a valid atom id only if the atom already exists.

§Errors

  • Alloc - TODO: reasons?
  • Value - A value other than 0 or 1 was specified for only_if_exists.

§See

  • xlsatoms: program
  • GetAtomName: request

§Example

/*
 * Resolves the _NET_WM_NAME atom.
 *
 */
void my_example(xcb_connection_t *c) {
    xcb_intern_atom_cookie_t cookie;
    xcb_intern_atom_reply_t *reply;

    cookie = xcb_intern_atom(c, 0, strlen("_NET_WM_NAME"), "_NET_WM_NAME");
    /* ... do other work here if possible ... */
    if ((reply = xcb_intern_atom_reply(c, cookie, NULL))) {
        printf("The _NET_WM_NAME atom has ID %u\n", reply->atom);
        free(reply);
    }
}