X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=include%2Fi3.h;h=93a7e0a34cf6ca5983fe41cf7298b369bd32d9fe;hp=dbe477bee26817b248ba675d5cb5a26bc2fc44e9;hb=HEAD;hpb=ed2bcc15e384be99225a247435f6cff678e64f0c diff --git a/include/i3.h b/include/i3.h index dbe477be..93a7e0a3 100644 --- a/include/i3.h +++ b/include/i3.h @@ -2,18 +2,20 @@ * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager - * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE) + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) * * i3.h: global variables that are used all over i3. * */ -#ifndef _I3_H -#define _I3_H +#pragma once + +#include #include #include #include +#include #include @@ -24,6 +26,9 @@ #include "data.h" #include "xcb.h" +/** Git commit identifier, from version.c */ +extern const char *i3_version; + /** The original value of RLIMIT_CORE when i3 was started. We need to restore * this before starting any other process, since we set RLIMIT_CORE to * RLIM_INFINITY for i3 debugging versions. */ @@ -32,8 +37,16 @@ extern struct rlimit original_rlimit_core; extern bool debug_build; /** The number of file descriptors passed via socket activation. */ extern int listen_fds; -extern xcb_connection_t *conn; extern int conn_screen; +/** + * The EWMH support window that is used to indicate that an EWMH-compliant + * window manager is present. This window is created when i3 starts and + * kept alive until i3 exits. + * We also use this window as the focused window if no other window is + * available to be focused on the active workspace in order to prevent + * keyboard focus issues (see #1378). + */ +extern xcb_window_t ewmh_window; /** The last timestamp we got from X11 (timestamps are included in some events * and are used for some things, like determining a unique ID in startup * notification). */ @@ -43,17 +56,22 @@ extern xcb_key_symbols_t *keysyms; extern char **start_argv; extern Display *xlibdpy, *xkbdpy; extern int xkb_current_group; -extern TAILQ_HEAD(bindings_head, Binding) *bindings; +extern TAILQ_HEAD(bindings_head, Binding) * bindings; extern TAILQ_HEAD(autostarts_head, Autostart) autostarts; extern TAILQ_HEAD(autostarts_always_head, Autostart) autostarts_always; extern TAILQ_HEAD(ws_assignments_head, Workspace_Assignment) ws_assignments; extern TAILQ_HEAD(assignments_head, Assignment) assignments; extern SLIST_HEAD(stack_wins_head, Stack_Window) stack_wins; -extern xcb_screen_t *root_screen; + +/* Color depth, visual id and colormap to use when creating windows and + * pixmaps. Will use 32 bit depth and an appropriate visual, if available, + * otherwise the root window’s default (usually 24 bit TrueColor). */ extern uint8_t root_depth; +extern xcb_visualid_t visual_id; +extern xcb_colormap_t colormap; + extern bool xcursor_supported, xkb_supported; extern xcb_window_t root; extern struct ev_loop *main_loop; extern bool only_check_config; - -#endif +extern bool force_xinerama;