+/** 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;