rofi 1.7.7
|
#include "config.h"
#include <cairo-xcb.h>
#include <cairo.h>
#include <glib.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <xcb/randr.h>
#include <xcb/xcb.h>
#include <xcb/xcb_aux.h>
#include <xcb/xcb_cursor.h>
#include <xcb/xcb_ewmh.h>
#include <xcb/xinerama.h>
#include <xcb/xkb.h>
#include <xcb/xproto.h>
#include <xkbcommon/xkbcommon-x11.h>
#include <xkbcommon/xkbcommon.h>
#include "display.h"
#include "helper.h"
#include "rofi-types.h"
#include "settings.h"
#include "timings.h"
#include "xcb-internal.h"
#include "xcb.h"
#include <libsn/sn.h>
#include <stdbool.h>
#include "mode.h"
#include "modes/window.h"
#include <rofi.h>
Go to the source code of this file.
Macros | |
#define | G_LOG_DOMAIN "X11Helper" |
#define | SN_API_NOT_YET_FROZEN |
#define | sn_launcher_context_set_application_id sn_launcher_set_application_id |
#define | RANDR_PREF_MAJOR_VERSION 1 |
#define | RANDR_PREF_MINOR_VERSION 5 |
#define | INTERSECT(x, y, x1, y1, w1, h1) |
Functions | |
static xcb_visualtype_t * | lookup_visual (xcb_screen_t *s, xcb_visualid_t vis) |
static uint32_t * | create_kernel (double radius, double deviation, uint32_t *sum2) |
void | cairo_image_surface_blur (cairo_surface_t *surface, double radius, double deviation) |
cairo_surface_t * | x11_helper_get_screenshot_surface_window (xcb_window_t window, int size) |
cairo_surface_t * | x11_helper_get_screenshot_surface (void) |
static xcb_pixmap_t | get_root_pixmap (xcb_connection_t *c, xcb_screen_t *screen, xcb_atom_t atom) |
cairo_surface_t * | x11_helper_get_bg_surface (void) |
char * | window_get_text_prop (xcb_window_t w, xcb_atom_t atom) |
void | window_set_atom_prop (xcb_window_t w, xcb_atom_t prop, xcb_atom_t *atoms, int count) |
static void | x11_monitor_free (workarea *m) |
static void | x11_monitors_free (void) |
static void | x11_workarea_fix_rotation (workarea *w) |
static workarea * | x11_get_monitor_from_output (xcb_randr_output_t out) |
static int | x11_is_extension_present (const char *extension) |
static void | x11_build_monitor_layout_xinerama (void) |
static void | x11_build_monitor_layout (void) |
void | display_dump_monitor_layout (void) |
void | display_startup_notification (RofiHelperExecuteContext *context, GSpawnChildSetupFunc *child_setup, gpointer *user_data) |
static int | monitor_get_dimension (int monitor_id, workarea *mon) |
static void | monitor_dimensions (int x, int y, workarea *mon) |
static int | pointer_get (xcb_window_t root, int *x, int *y) |
static int | monitor_active_from_winid (xcb_drawable_t id, workarea *mon) |
static int | monitor_active_from_id_focused (int mon_id, workarea *mon) |
static int | monitor_active_from_id (int mon_id, workarea *mon) |
int | monitor_active (workarea *mon) |
static bool | get_atom_name (xcb_connection_t *conn, xcb_atom_t atom, char **out) |
static void | rofi_view_paste (RofiViewState *state, xcb_selection_notify_event_t *xse) |
static gboolean | x11_button_to_nk_bindings_button (guint32 x11_button, NkBindingsMouseButton *button) |
static gboolean | x11_button_to_nk_bindings_scroll (guint32 x11_button, NkBindingsScrollAxis *axis, gint32 *steps) |
static void | rofi_key_press_event_handler (xcb_key_press_event_t *xkpe, RofiViewState *state) |
static void | rofi_key_release_event_handler (xcb_key_release_event_t *xkre, G_GNUC_UNUSED RofiViewState *state) |
static void | main_loop_x11_event_handler_view (xcb_generic_event_t *event) |
static gboolean | main_loop_x11_event_handler (xcb_generic_event_t *ev, G_GNUC_UNUSED gpointer user_data) |
void | rofi_xcb_set_input_focus (xcb_window_t w) |
void | rofi_xcb_revert_input_focus (void) |
static int | take_pointer (xcb_window_t w, int iters) |
static int | take_keyboard (xcb_window_t w, int iters) |
static void | release_keyboard (void) |
static void | release_pointer (void) |
static void | error_trap_push (G_GNUC_UNUSED SnDisplay *display, G_GNUC_UNUSED xcb_connection_t *xdisplay) |
static void | error_trap_pop (G_GNUC_UNUSED SnDisplay *display, xcb_connection_t *xdisplay) |
static void | x11_create_frequently_used_atoms (void) |
char * | x11_helper_get_window_manager (void) |
static void | x11_helper_discover_window_manager (void) |
gboolean | display_setup (GMainLoop *main_loop, NkBindings *bindings) |
static void | x11_create_visual_and_colormap (void) |
static void | x11_lookup_cursors (void) |
static gboolean | lazy_grab_pointer (G_GNUC_UNUSED gpointer data) |
static gboolean | lazy_grab_keyboard (G_GNUC_UNUSED gpointer data) |
gboolean | display_late_setup (void) |
xcb_window_t | xcb_stuff_get_root_window (void) |
void | display_early_cleanup (void) |
void | display_cleanup (void) |
void | x11_disable_decoration (xcb_window_t window) |
void | x11_set_cursor (xcb_window_t window, X11CursorType type) |
void | xcb_stuff_set_clipboard (char *data) |
Variables | ||
WindowManagerQuirk | current_window_manager = WM_EWHM | |
struct _xcb_stuff | xcb_int | |
xcb_stuff * | xcb = &xcb_int | |
xcb_depth_t * | depth = NULL | |
xcb_visualtype_t * | visual = NULL | |
xcb_colormap_t | map = XCB_COLORMAP_NONE | |
static xcb_visualtype_t * | root_visual = NULL | |
xcb_atom_t | netatoms [NUM_NETATOMS] | |
const char * | netatom_names [] = {EWMH_ATOMS(ATOM_CHAR)} | |
xcb_cursor_t | cursors [NUM_CURSORS] | |
struct { | ||
const char * css_name | ||
const char * traditional_name | ||
} | cursor_names [] | |
gboolean | mon_set = FALSE | |
workarea | mon_cache | |
static int | error_trap_depth = 0 | |
unsigned int | lazy_grab_retry_count_kb = 0 | |
unsigned int | lazy_grab_retry_count_pt = 0 | |
#define INTERSECT | ( | x, | |
y, | |||
x1, | |||
y1, | |||
w1, | |||
h1 ) |
Checks if the if x and y is inside rectangle.
Definition at line 82 of file xcb.c.
Referenced by monitor_dimensions().
#define RANDR_PREF_MAJOR_VERSION 1 |
Minimal randr preferred for running rofi (1.5) (Major version number)
Definition at line 77 of file xcb.c.
Referenced by x11_build_monitor_layout().
#define RANDR_PREF_MINOR_VERSION 5 |
Minimal randr preferred for running rofi (1.5) (Minor version number)
Definition at line 79 of file xcb.c.
Referenced by x11_build_monitor_layout().
#define SN_API_NOT_YET_FROZEN |
#define sn_launcher_context_set_application_id sn_launcher_set_application_id |
This function is declared as sn_launcher_context_set_application_id but implemented as sn_launcher_set_application_id. Quick Fix.
Definition at line 60 of file xcb.c.
Referenced by display_startup_notification().
void cairo_image_surface_blur | ( | cairo_surface_t * | surface, |
double | radius, | ||
double | deviation ) |
surface | |
radius | |
deviation |
Blur the content of the surface with radius and deviation.
Definition at line 177 of file xcb.c.
References create_kernel(), TICK, and TICK_N.
Referenced by rofi_view_setup_fake_transparency().
|
static |
Definition at line 149 of file xcb.c.
Referenced by cairo_image_surface_blur().
void display_cleanup | ( | void | ) |
Cleanup any remaining display related stuff
Definition at line 1949 of file xcb.c.
References x11_monitors_free(), and xcb.
Referenced by cleanup().
void display_dump_monitor_layout | ( | void | ) |
Dumps the display layout for -help output
Definition at line 695 of file xcb.c.
References color_bold, color_reset, and xcb.
Referenced by help().
void display_early_cleanup | ( | void | ) |
Do some early cleanup, like unmapping the surface
Definition at line 1943 of file xcb.c.
References release_keyboard(), release_pointer(), and xcb.
Referenced by rofi_view_hide(), and teardown().
gboolean display_late_setup | ( | void | ) |
Do some late setup of the display backend
Create window (without showing)
Definition at line 1908 of file xcb.c.
References find_arg(), lazy_grab_keyboard(), lazy_grab_pointer(), take_keyboard(), take_pointer(), x11_create_visual_and_colormap(), x11_lookup_cursors(), and xcb_stuff_get_root_window().
Referenced by main().
gboolean display_setup | ( | GMainLoop * | main_loop, |
NkBindings * | bindings ) |
main_loop | The GMainLoop |
bindings | The bindings object |
Setup the display backend
Definition at line 1671 of file xcb.c.
References bindings, error_trap_pop(), error_trap_push(), find_arg_str(), main_loop, main_loop_x11_event_handler(), TICK_N, x11_build_monitor_layout(), x11_create_frequently_used_atoms(), x11_helper_discover_window_manager(), xcb, and xcb_stuff_get_root_window().
Referenced by main().
void display_startup_notification | ( | RofiHelperExecuteContext * | context, |
GSpawnChildSetupFunc * | child_setup, | ||
gpointer * | user_data ) |
context | The startup notification context for the application to launch |
child_setup | A pointer to return the child setup function |
user_data | A pointer to return the child setup function user_data |
Provides the needed child setup function
Definition at line 721 of file xcb.c.
References RofiHelperExecuteContext::app_id, RofiHelperExecuteContext::binary, RofiHelperExecuteContext::command, RofiHelperExecuteContext::description, RofiHelperExecuteContext::icon, RofiHelperExecuteContext::name, sn_launcher_context_set_application_id, RofiHelperExecuteContext::wmclass, and xcb.
Referenced by helper_execute().
|
static |
Definition at line 1598 of file xcb.c.
References error_trap_depth.
Referenced by display_setup().
|
static |
Definition at line 1593 of file xcb.c.
References error_trap_depth.
Referenced by display_setup().
|
static |
Definition at line 1075 of file xcb.c.
Referenced by rofi_view_paste().
|
static |
Definition at line 353 of file xcb.c.
Referenced by x11_helper_get_bg_surface().
|
static |
Definition at line 1893 of file xcb.c.
References lazy_grab_retry_count_kb, take_keyboard(), xcb, and xcb_stuff_get_root_window().
Referenced by display_late_setup().
|
static |
Definition at line 1880 of file xcb.c.
References lazy_grab_retry_count_pt, take_pointer(), and xcb_stuff_get_root_window().
Referenced by display_late_setup().
|
static |
Definition at line 131 of file xcb.c.
Referenced by x11_helper_get_screenshot_surface_window().
|
static |
Definition at line 1439 of file xcb.c.
References main_loop_x11_event_handler_view(), rofi_view_get_active(), rofi_view_maybe_update(), and xcb.
Referenced by display_setup().
|
static |
Process X11 events in the main-loop (gui-thread) of the application.
Definition at line 1222 of file xcb.c.
References config, netatoms, rofi_key_press_event_handler(), rofi_key_release_event_handler(), rofi_view_frame_callback(), rofi_view_get_active(), rofi_view_get_window(), rofi_view_handle_mouse_motion(), rofi_view_maybe_update(), rofi_view_paste(), rofi_view_temp_click_to_exit(), rofi_view_temp_configure_notify(), time, x11_button_to_nk_bindings_button(), x11_button_to_nk_bindings_scroll(), xcb, and xcb_stuff_set_clipboard().
Referenced by main_loop_x11_event_handler().
int monitor_active | ( | workarea * | mon | ) |
mon | workarea to be filled in. |
Fills in mon with the information about the monitor rofi should show on.
Definition at line 1004 of file xcb.c.
References config, mon, mon_cache, mon_set, monitor_active_from_id(), monitor_active_from_winid(), monitor_dimensions(), monitor_get_dimension(), and xcb.
Referenced by __create_window(), config_sanity_check(), and rofi_theme_parse_process_conditionals().
|
static |
Definition at line 922 of file xcb.c.
References mon, monitor_active_from_id(), monitor_active_from_id_focused(), monitor_dimensions(), pointer_get(), and xcb.
Referenced by monitor_active(), and monitor_active_from_id().
|
static |
Definition at line 851 of file xcb.c.
References mon, monitor_dimensions(), and xcb.
Referenced by monitor_active_from_id().
|
static |
Definition at line 821 of file xcb.c.
Referenced by monitor_active().
|
static |
Definition at line 778 of file xcb.c.
References INTERSECT, mon, and xcb.
Referenced by monitor_active(), monitor_active_from_id(), and monitor_active_from_id_focused().
|
static |
Definition at line 763 of file xcb.c.
References mon, _workarea::monitor_id, _workarea::next, and xcb.
Referenced by monitor_active().
|
static |
root | The X11 window used to find the pointer position. Usually the root window. |
x | The x position of the mouse [out] |
y | The y position of the mouse [out] |
find mouse pointer location
Definition at line 805 of file xcb.c.
References xcb.
Referenced by monitor_active_from_id().
|
static |
Definition at line 1584 of file xcb.c.
References xcb.
Referenced by display_early_cleanup().
|
static |
Definition at line 1587 of file xcb.c.
References xcb.
Referenced by display_early_cleanup().
|
static |
Definition at line 1191 of file xcb.c.
References config, rofi_view_handle_text(), and xcb.
Referenced by main_loop_x11_event_handler_view().
|
static |
Definition at line 1211 of file xcb.c.
References xcb.
Referenced by main_loop_x11_event_handler_view().
|
static |
state | Internal state of the menu. |
xse | X selection event. |
Handle paste event.
Definition at line 1110 of file xcb.c.
References get_atom_name(), rofi_view_handle_text(), window_get_text_prop(), and xcb.
Referenced by main_loop_x11_event_handler_view().
void rofi_xcb_revert_input_focus | ( | void | ) |
IF set, revert the focus back to the original applications.
Definition at line 1517 of file xcb.c.
References xcb.
Referenced by rofi_view_cleanup(), and rofi_view_hide().
void rofi_xcb_set_input_focus | ( | xcb_window_t | w | ) |
w | rofis window |
Stores old input focus for reverting and set focus to rofi.
Definition at line 1494 of file xcb.c.
Referenced by rofi_view_create().
|
static |
Definition at line 1556 of file xcb.c.
References xcb.
Referenced by display_late_setup(), and lazy_grab_keyboard().
|
static |
Definition at line 1527 of file xcb.c.
References xcb.
Referenced by display_late_setup(), and lazy_grab_pointer().
char * window_get_text_prop | ( | xcb_window_t | w, |
xcb_atom_t | atom ) |
w | The xcb_window_t to read property from. |
atom | The property identifier |
Get text property defined by atom from window. Support utf8.
Definition at line 387 of file xcb.c.
References netatoms, rofi_latin_to_utf8_strdup(), and xcb.
Referenced by rofi_view_paste().
void window_set_atom_prop | ( | xcb_window_t | w, |
xcb_atom_t | prop, | ||
xcb_atom_t * | atoms, | ||
int | count ) |
w | The xcb_window_t to set property on |
prop | Atom of the property to change |
atoms | List of atoms to change the property too |
count | The length of the atoms list. |
Set property on window.
Definition at line 413 of file xcb.c.
Referenced by __create_window().
|
static |
Definition at line 594 of file xcb.c.
References _workarea::next, _workarea::primary, RANDR_PREF_MAJOR_VERSION, RANDR_PREF_MINOR_VERSION, x11_build_monitor_layout_xinerama(), x11_get_monitor_from_output(), x11_is_extension_present(), and xcb.
Referenced by display_setup().
|
static |
Definition at line 563 of file xcb.c.
References _workarea::h, _workarea::next, _workarea::w, _workarea::x, xcb, and _workarea::y.
Referenced by x11_build_monitor_layout().
|
static |
Definition at line 1139 of file xcb.c.
Referenced by main_loop_x11_event_handler_view().
|
static |
Definition at line 1168 of file xcb.c.
Referenced by main_loop_x11_event_handler_view().
|
static |
Fill in the list of frequently used X11 Atoms.
Definition at line 1612 of file xcb.c.
References netatom_names, netatoms, NUM_NETATOMS, and xcb.
Referenced by display_setup().
|
static |
Definition at line 1814 of file xcb.c.
References depth, map, root_visual, visual, and xcb.
Referenced by display_late_setup().
void x11_disable_decoration | ( | xcb_window_t | window | ) |
|
static |
Create monitor based on output id
Definition at line 459 of file xcb.c.
References _workarea::h, _workarea::mh, _workarea::mw, _workarea::name, _workarea::w, _workarea::x, x11_workarea_fix_rotation(), xcb, and _workarea::y.
Referenced by x11_build_monitor_layout().
|
static |
Definition at line 1646 of file xcb.c.
References current_window_manager, WM_DO_NOT_CHANGE_CURRENT_DESKTOP, WM_PANGO_WORKSPACE_NAMES, xcb, and xcb_stuff_get_root_window().
Referenced by display_setup().
cairo_surface_t * x11_helper_get_bg_surface | ( | void | ) |
Gets a surface containing the background image of the desktop.
Definition at line 373 of file xcb.c.
References get_root_pixmap(), netatoms, root_visual, and xcb.
Referenced by rofi_view_setup_fake_transparency().
cairo_surface_t * x11_helper_get_screenshot_surface | ( | void | ) |
Holds for each supported modifier the possible modifier mask. Check x11_mod_masks[MODIFIER]&mask != 0 to see if MODIFIER is activated.
Definition at line 347 of file xcb.c.
References root_visual, xcb, and xcb_stuff_get_root_window().
Referenced by rofi_view_setup_fake_transparency().
cairo_surface_t * x11_helper_get_screenshot_surface_window | ( | xcb_window_t | window, |
int | size ) |
window | the window the screenshot |
size | Size of the thumbnail |
Creates a thumbnail of the window.
Definition at line 286 of file xcb.c.
References lookup_visual(), and xcb.
char * x11_helper_get_window_manager | ( | void | ) |
Get the currently detected window manager.
Definition at line 1626 of file xcb.c.
References xcb, and xcb_stuff_get_root_window().
Referenced by help().
|
static |
Definition at line 549 of file xcb.c.
References xcb.
Referenced by x11_build_monitor_layout().
|
static |
Definition at line 1857 of file xcb.c.
References css_name, cursor_names, cursors, NUM_CURSORS, traditional_name, and xcb.
Referenced by display_late_setup().
|
static |
Free monitor structure.
Definition at line 426 of file xcb.c.
References _workarea::name.
Referenced by x11_monitors_free().
|
static |
Definition at line 431 of file xcb.c.
References _workarea::next, x11_monitor_free(), and xcb.
Referenced by display_cleanup().
void x11_set_cursor | ( | xcb_window_t | window, |
X11CursorType | type ) |
window | |
type |
Change mouse cursor
Definition at line 2005 of file xcb.c.
References cursors, NUM_CURSORS, and xcb.
Referenced by rofi_view_set_cursor().
|
static |
Quick function that tries to fix the size (for dpi calculation) when monitor is rotate. This assumes the density is kinda equal in both X/Y direction.
Definition at line 444 of file xcb.c.
References _workarea::h, _workarea::mh, _workarea::mw, and _workarea::w.
Referenced by x11_get_monitor_from_output().
xcb_window_t xcb_stuff_get_root_window | ( | void | ) |
Get the root window.
Definition at line 1941 of file xcb.c.
References xcb.
Referenced by __create_window(), display_late_setup(), display_setup(), lazy_grab_keyboard(), lazy_grab_pointer(), x11_helper_discover_window_manager(), x11_helper_get_screenshot_surface(), and x11_helper_get_window_manager().
void xcb_stuff_set_clipboard | ( | char * | data | ) |
data | String to copy to clipboard. |
copies string to clipboard.
Definition at line 2017 of file xcb.c.
References xcb.
Referenced by main_loop_x11_event_handler_view(), rofi_view_cleanup(), and rofi_view_trigger_global_action().
const char* css_name |
WindowManagerQuirk current_window_manager = WM_EWHM |
Indicates the current window manager. This is used for work-arounds.
Definition at line 85 of file xcb.c.
Referenced by x11_helper_discover_window_manager().
const struct { ... } cursor_names[] |
Mapping between theme name and system name for mouse cursor.
Referenced by x11_lookup_cursors().
xcb_cursor_t cursors[NUM_CURSORS] |
Cached X11 cursors.
Definition at line 119 of file xcb.c.
Referenced by x11_lookup_cursors(), and x11_set_cursor().
xcb_depth_t* depth = NULL |
Depth of root window.
Definition at line 106 of file xcb.c.
Referenced by __create_window(), rofi_view_temp_configure_notify(), rofi_view_window_update_size(), and x11_create_visual_and_colormap().
|
static |
X server error depth. to handle nested errors.
Definition at line 1592 of file xcb.c.
Referenced by error_trap_pop(), and error_trap_push().
unsigned int lazy_grab_retry_count_kb = 0 |
Retry count of grabbing keyboard.
Definition at line 1877 of file xcb.c.
Referenced by lazy_grab_keyboard().
unsigned int lazy_grab_retry_count_pt = 0 |
Retry count of grabbing pointer.
Definition at line 1879 of file xcb.c.
Referenced by lazy_grab_pointer().
xcb_colormap_t map = XCB_COLORMAP_NONE |
Color map to use for creating window
Definition at line 108 of file xcb.c.
Referenced by __create_window(), rofi_view_cleanup(), and x11_create_visual_and_colormap().
workarea mon_cache |
cached monitor cache, to avoid multiple roundtrips to fetch this.
Definition at line 1001 of file xcb.c.
Referenced by monitor_active().
gboolean mon_set = FALSE |
The cached monitor setup (mon_cache) is populated
Definition at line 999 of file xcb.c.
Referenced by monitor_active().
const char* netatom_names[] = {EWMH_ATOMS(ATOM_CHAR)} |
atoms as string
Definition at line 114 of file xcb.c.
Referenced by x11_create_frequently_used_atoms().
xcb_atom_t netatoms[NUM_NETATOMS] |
atoms
Definition at line 113 of file xcb.c.
Referenced by __create_window(), main_loop_x11_event_handler_view(), rofi_view_trigger_global_action(), window_get_text_prop(), x11_create_frequently_used_atoms(), x11_disable_decoration(), and x11_helper_get_bg_surface().
|
static |
Visual of the root window.
Definition at line 112 of file xcb.c.
Referenced by x11_create_visual_and_colormap(), x11_helper_get_bg_surface(), and x11_helper_get_screenshot_surface().
const char* traditional_name |
xcb_visualtype_t* visual = NULL |
Visual to use for creating window
Definition at line 107 of file xcb.c.
Referenced by __create_window(), rofi_view_temp_configure_notify(), rofi_view_window_update_size(), and x11_create_visual_and_colormap().
Global pointer to xcb_stuff instance.
Definition at line 101 of file xcb.c.
Referenced by __create_window(), display_cleanup(), display_dump_monitor_layout(), display_early_cleanup(), display_setup(), display_startup_notification(), lazy_grab_keyboard(), main_loop_x11_event_handler(), main_loop_x11_event_handler_view(), monitor_active(), monitor_active_from_id(), monitor_active_from_id_focused(), monitor_active_from_winid(), monitor_dimensions(), monitor_get_dimension(), pointer_get(), release_keyboard(), release_pointer(), rofi_key_press_event_handler(), rofi_key_release_event_handler(), rofi_view_cleanup(), rofi_view_create(), rofi_view_error_dialog(), rofi_view_hide(), rofi_view_paste(), rofi_view_ping_mouse(), rofi_view_repaint(), rofi_view_set_selected_line(), rofi_view_set_window_title(), rofi_view_temp_configure_notify(), rofi_view_trigger_global_action(), rofi_view_window_update_size(), rofi_xcb_revert_input_focus(), rofi_xcb_set_input_focus(), take_keyboard(), take_pointer(), window_get_text_prop(), window_set_atom_prop(), x11_build_monitor_layout(), x11_build_monitor_layout_xinerama(), x11_create_frequently_used_atoms(), x11_create_visual_and_colormap(), x11_disable_decoration(), x11_get_monitor_from_output(), x11_helper_discover_window_manager(), x11_helper_get_bg_surface(), x11_helper_get_screenshot_surface(), x11_helper_get_screenshot_surface_window(), x11_helper_get_window_manager(), x11_is_extension_present(), x11_lookup_cursors(), x11_monitors_free(), x11_set_cursor(), xcb_stuff_get_root_window(), and xcb_stuff_set_clipboard().
struct _xcb_stuff xcb_int |