i3
i3.h
Go to the documentation of this file.
1 /*
2  * vim:ts=4:sw=4:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
6  *
7  * i3.h: global variables that are used all over i3.
8  *
9  */
10 #pragma once
11 
12 #include <sys/time.h>
13 #include <sys/resource.h>
14 
15 #include <xcb/xcb_keysyms.h>
16 
17 #include <X11/XKBlib.h>
18 
19 #define SN_API_NOT_YET_FROZEN 1
20 #include <libsn/sn-launcher.h>
21 
22 #include "queue.h"
23 #include "data.h"
24 #include "xcb.h"
25 
29 extern struct rlimit original_rlimit_core;
31 extern bool debug_build;
33 extern int listen_fds;
34 extern xcb_connection_t *conn;
35 extern int conn_screen;
39 extern xcb_timestamp_t last_timestamp;
40 extern SnDisplay *sndisplay;
41 extern xcb_key_symbols_t *keysyms;
42 extern char **start_argv;
43 extern Display *xlibdpy, *xkbdpy;
44 extern int xkb_current_group;
45 extern TAILQ_HEAD(bindings_head, Binding) *bindings;
46 extern TAILQ_HEAD(autostarts_head, Autostart) autostarts;
47 extern TAILQ_HEAD(autostarts_always_head, Autostart) autostarts_always;
48 extern TAILQ_HEAD(ws_assignments_head, Workspace_Assignment) ws_assignments;
49 extern TAILQ_HEAD(assignments_head, Assignment) assignments;
50 extern SLIST_HEAD(stack_wins_head, Stack_Window) stack_wins;
51 extern xcb_screen_t *root_screen;
52 
53 /* Color depth, visual id and colormap to use when creating windows and
54  * pixmaps. Will use 32 bit depth and an appropriate visual, if available,
55  * otherwise the root window’s default (usually 24 bit TrueColor). */
56 extern uint8_t root_depth;
57 extern xcb_visualid_t visual_id;
58 extern xcb_colormap_t colormap;
59 
60 extern bool xcursor_supported, xkb_supported;
61 extern xcb_window_t root;
62 extern struct ev_loop *main_loop;
63 extern bool only_check_config;
int listen_fds
The number of file descriptors passed via socket activation.
Definition: main.c:33
xcb_connection_t * conn
Definition: main.c:47
SnDisplay * sndisplay
Definition: main.c:52
xcb_visualid_t visual_id
Definition: main.c:66
char ** start_argv
Definition: main.c:45
Stores which workspace (by name or number) goes to which output.
Definition: data.h:172
An Assignment makes specific windows go to a specific workspace/output or run a command for that wind...
Definition: data.h:440
xcb_screen_t * root_screen
Definition: main.c:59
struct ev_loop * main_loop
Definition: main.c:69
xcb_timestamp_t last_timestamp
The last timestamp we got from X11 (timestamps are included in some events and are used for some thin...
Definition: main.c:57
int xkb_current_group
Definition: main.c:41
Display * xkbdpy
Definition: main.c:74
Holds a keybinding, consisting of a keycode combined with modifiers and the command which is executed...
Definition: data.h:231
bool xcursor_supported
Definition: main.c:96
bool debug_build
Whether this version of i3 is a debug build or a release build.
xcb_colormap_t colormap
Definition: main.c:67
uint8_t root_depth
Definition: main.c:65
struct autostarts_head autostarts
Definition: main.c:83
bool only_check_config
Definition: main.c:102
struct assignments_head assignments
Definition: main.c:89
Display * xlibdpy
Definition: main.c:74
struct bindings_head * bindings
Definition: main.c:80
bool xkb_supported
Definition: main.c:97
xcb_window_t root
Definition: main.c:60
#define SLIST_HEAD(name, type)
Definition: queue.h:93
xcb_key_symbols_t * keysyms
Definition: main.c:71
struct rlimit original_rlimit_core
The original value of RLIMIT_CORE when i3 was started.
Definition: main.c:30
struct autostarts_always_head autostarts_always
Definition: main.c:86
Holds a command specified by either an:
Definition: data.h:284
struct ws_assignments_head ws_assignments
Definition: main.c:93
#define TAILQ_HEAD(name, type)
Definition: queue.h:305
int conn_screen
Definition: main.c:49