]> git.lizzy.rs Git - bspwm.git/blob - bspwm.h
Enhance and clarify rule interface
[bspwm.git] / bspwm.h
1 #ifndef _BSPWM_H
2 #define _BSPWM_H
3
4 #include "types.h"
5
6 #define ROOT_EVENT_MASK        (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY)
7 #define CLIENT_EVENT_MASK      (XCB_EVENT_MASK_PROPERTY_CHANGE | XCB_EVENT_MASK_FOCUS_CHANGE)
8 #define CLIENT_EVENT_MASK_FFP  (CLIENT_EVENT_MASK | XCB_EVENT_MASK_ENTER_WINDOW)
9
10 xcb_connection_t *dpy;
11 int default_screen, screen_width, screen_height;
12 uint32_t num_clients;
13 uint32_t num_desktops;
14 unsigned int num_monitors;
15 unsigned int monitor_uid;
16 unsigned int desktop_uid;
17 xcb_screen_t *screen;
18 xcb_window_t root;
19 uint8_t root_depth;
20 FILE *status_fifo;
21 char *status_prefix;
22 char config_path[MAXLEN];
23
24 monitor_t *mon;
25 monitor_t *mon_head;
26 monitor_t *mon_tail;
27 monitor_t *pri_mon;
28 history_t *history_head;
29 history_t *history_tail;
30 stack_t *stack_head;
31 stack_t *stack_tail;
32 rule_t *rule_head;
33 rule_t *rule_tail;
34
35 pointer_state_t *frozen_pointer;
36 xcb_window_t motion_recorder;
37 xcb_atom_t WM_TAKE_FOCUS;
38 xcb_atom_t WM_DELETE_WINDOW;
39 xcb_atom_t _BSPWM_FLOATING_WINDOW;
40 int exit_status;
41
42 bool visible;
43 bool auto_raise;
44 bool sticky_still;
45 bool running;
46 bool randr;
47
48 void init(void);
49 void setup(void);
50 void register_events(void);
51 void quit(void);
52 void cleanup(void);
53 void put_status(void);
54
55 #endif