WINDOW PIXMAP FONT GCONTEXT 0 1 2 3 4 5 visuals_len 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 0 1 2 allowed_depths_len authorization_protocol_name_len authorization_protocol_data_len reason_len length 4 0 1 vendor_len pixmap_formats_len roots_len 0 1 2 3 4 5 6 7 15 0 1 2 3 4 5 6 7 8 9 10 11 12 0 a key was pressed/released 8 9 10 11 12 15 a mouse button was pressed/released 0 1 a key was pressed 0 1 2 3 4 5 6 7 0 1 2 3 the pointer is in a different window NOT YET DOCUMENTED 31 NOT YET DOCUMENTED 0 1 2 a window is destroyed a window is unmapped a window was mapped window wants to be mapped NOT YET DOCUMENTED 0 1 NOT YET DOCUMENTED 0 1 a window property changed 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 0 1 0 the colormap for some window changed 20 10 5 NOT YET DOCUMENTED 0 1 2 keyboard mapping changed generic event (with length) 0 1 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 0 0 1 2 3 4 5 6 7 8 9 10 value_mask BackPixmap BackPixel BorderPixmap BorderPixel BitGravity WinGravity BackingStore BackingPlanes BackingPixel OverrideRedirect SaveUnder EventMask DontPropagate Colormap Cursor Creates a window value_mask BackPixmap BackPixel BorderPixmap BorderPixel BitGravity WinGravity BackingStore BackingPlanes BackingPixel OverrideRedirect SaveUnder EventMask DontPropagate Colormap Cursor change window attributes 0 1 2 Gets window attributes Destroys a window 0 1 Changes a client's save set Reparents a window Makes a window visible Makes a window invisible 0 1 2 3 4 5 6 0 1 2 3 4 value_mask X Y Width Height BorderWidth Sibling StackMode Configures window attributes 0 1 Change window stacking order Get current window geometry x, reply->y); } free(reply); } ]]> children_len query the window tree root); printf("parent = 0x%08x\\n", reply->parent); xcb_window_t *children = xcb_query_tree_children(reply); for (int i = 0; i < xcb_query_tree_children_length(reply); i++) printf("child window = 0x%08x\\n", children[i]); free(reply); } } ]]> name_len Get atom identifier by name atom); free(reply); } } ]]> name_len 0 1 2 data_len format 8 Changes a window property 0 value_len format 8 Gets a window property atoms_len Sets the owner of a selection Gets the owner of a selection 0 1 32 send an event event = window; event->window = window; event->response_type = XCB_CONFIGURE_NOTIFY; event->x = 0; event->y = 0; event->width = 800; event->height = 600; event->border_width = 0; event->above_sibling = XCB_NONE; event->override_redirect = false; xcb_send_event(conn, false, window, XCB_EVENT_MASK_STRUCTURE_NOTIFY, (char*)event); xcb_flush(conn); free(event); } ]]> 0 1 0 1 2 3 4 0 Grab the pointer root, /* grab the root window */ XCB_NONE, /* which events to let through */ XCB_GRAB_MODE_ASYNC, /* pointer events should continue as normal */ XCB_GRAB_MODE_ASYNC, /* keyboard mode */ XCB_NONE, /* confine_to = in which window should the cursor stay */ cursor, /* we change the cursor to whatever the user wanted */ XCB_CURRENT_TIME ); if ((reply = xcb_grab_pointer_reply(conn, cookie, NULL))) { if (reply->status == XCB_GRAB_STATUS_SUCCESS) printf("successfully grabbed the pointer\\n"); free(reply); } } ]]> release the pointer 0 1 2 3 4 5 Grab pointer button(s) Grab the keyboard root, /* grab the root window */ XCB_CURRENT_TIME, XCB_GRAB_MODE_ASYNC, /* process events as normal, do not require sync */ XCB_GRAB_MODE_ASYNC ); if ((reply = xcb_grab_keyboard_reply(conn, cookie, NULL))) { if (reply->status == XCB_GRAB_STATUS_SUCCESS) printf("successfully grabbed the keyboard\\n"); free(reply); } } ]]> 0 Grab keyboard key(s) release a key combination 0 1 2 3 4 5 6 7 release queued events get pointer coordinates events_len move mouse pointer 0 1 2 3 Sets input focus 32 name_len opens a font 0 1 properties_len char_infos_len query font metrics string_len1 get text extents name_len pattern_len names_len get matching font names pattern_len properties_len name_len get matching font names and information font_qty path_len Creates a pixmap Destroys a pixmap 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 0 1 2 3 0 1 2 0 1 2 3 0 1 0 1 0 1 value_mask Function PlaneMask Foreground Background LineWidth LineStyle CapStyle JoinStyle FillStyle FillRule Tile Stipple TileStippleOriginX TileStippleOriginY Font SubwindowMode GraphicsExposures ClipOriginX ClipOriginY ClipMask DashOffset DashList ArcMode Creates a graphics context value_mask Function PlaneMask Foreground Background LineWidth LineStyle CapStyle JoinStyle FillStyle FillRule Tile Stipple TileStippleOriginX TileStippleOriginY Font SubwindowMode GraphicsExposures ClipOriginX ClipOriginY ClipMask DashOffset DashList ArcMode change graphics context components dashes_len 0 1 2 3 Destroys a graphics context copy areas 0 1 draw lines draw lines 0 1 2 Fills rectangles 0 1 2 length 4 string_len Draws text string_len Draws text 0 1 cmaps_len Allocate a color name_len pixels_len masks_len pixels_len 0 1 2 name_len colors_len name_len 0 0 create cursor Deletes a cursor 0 1 2 name_len check if extension is present names_len keycode_count keysyms_per_keycode length 0 1 2 3 4 5 6 7 0 1 0 1 2 value_mask KeyClickPercent BellPercent BellPitch BellDuration Led LedMode Key AutoRepeatMode 32 0 1 2 0 1 2 0 1 0 1 2 5 6 address_len address_len hosts_len 0 1 0 1 2 0 kills a client atoms_len 0 1 0 1 2 map_len map_len 0 1 2 3 4 5 6 7 keycodes_per_modifier 8 keycodes_per_modifier 8