]> git.sur5r.net Git - i3/i3/blobdiff - include/i3.h
Use #pragma once
[i3/i3] / include / i3.h
index 06f423a057b6eb6ce5499188d13b552acd833558..4ed0d8d54f1c62796503fa5f79f168a7fb2e3738 100644 (file)
@@ -1,40 +1,63 @@
 /*
- * vim:ts=8:expandtab
+ * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
+ * © 2009-2012 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 <xcb/xcb.h>
-#include <xcb/xcb_property.h>
-#include <xcb/xcb_event.h>
+#pragma once
+
+#include <sys/time.h>
+#include <sys/resource.h>
+
+#include <xcb/xcb_keysyms.h>
 
 #include <X11/XKBlib.h>
 
+#define SN_API_NOT_YET_FROZEN 1
+#include <libsn/sn-launcher.h>
+
 #include "queue.h"
 #include "data.h"
+#include "xcb.h"
 
-#ifndef _I3_H
-#define _I3_H
-
-#define NUM_ATOMS 13
-
+/** 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 xcb_connection_t *conn;
+extern int conn_screen;
+/** 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 *xkbdpy;
-extern TAILQ_HEAD(bindings_head, Binding) bindings;
+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 xcb_event_handlers_t evenths;
-extern int num_screens;
-extern xcb_atom_t atoms[NUM_ATOMS];
+extern xcb_screen_t *root_screen;
 
-void manage_window(xcb_property_handlers_t *prophs, xcb_connection_t *conn, xcb_window_t window, window_attributes_t wa);
-void reparent_window(xcb_connection_t *conn, xcb_window_t child,
-                     xcb_visualid_t visual, xcb_window_t root, uint8_t depth,
-                     int16_t x, int16_t y, uint16_t width, uint16_t height);
+/* 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;
+extern xcb_window_t root;
+extern struct ev_loop *main_loop;
+extern bool only_check_config;