X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fi3.h;h=e7afe7e54b9ac48b4c08e0b854ccaa7575d7574f;hb=88912d6f0033bace799a3b18a5a73aefb18c2f87;hp=53ebb69cbe4a84cfed39e2c1e372ea1de59a54ce;hpb=4ba6ddb41cec60809caf8ad25b0f48f19e7fea28;p=i3%2Fi3 diff --git a/include/i3.h b/include/i3.h index 53ebb69c..e7afe7e5 100644 --- a/include/i3.h +++ b/include/i3.h @@ -1,28 +1,78 @@ /* - * vim:ts=8:expandtab + * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) * - * (c) 2009 Michael Stapelberg and contributors - * - * See file LICENSE for license information. + * i3.h: global variables that are used all over i3. * */ -#include -#include +#pragma once + +#include + +#include +#include + +#include +#include +#include #include +#define SN_API_NOT_YET_FROZEN 1 +#include + #include "queue.h" +#include "data.h" +#include "xcb.h" + +/** Git commit identifier, from version.c */ +extern const char *i3_version; -#ifndef _I3_H -#define _I3_H +/** 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. */ +extern struct rlimit original_rlimit_core; +/** Whether this version of i3 is a debug build or a release build. */ +extern bool debug_build; +/** The number of file descriptors passed via socket activation. */ +extern int listen_fds; +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). */ +extern xcb_timestamp_t last_timestamp; +extern SnDisplay *sndisplay; +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(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 Display *xkbdpy; -extern TAILQ_HEAD(bindings_head, Binding) bindings; -extern xcb_event_handlers_t evenths; -extern char *pattern; -extern int num_screens; -extern xcb_atom_t atoms[9]; +/* 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; -#endif +extern bool xcursor_supported, xkb_supported, shape_supported; +extern xcb_window_t root; +extern struct ev_loop *main_loop; +extern bool only_check_config; +extern bool force_xinerama;