]> git.lizzy.rs Git - bspwm.git/blob - bspwm.h
Implement sticky windows
[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 unsigned int rule_uid;
18 xcb_screen_t *screen;
19 xcb_window_t root;
20 uint8_t root_depth;
21 FILE *status_fifo;
22 char *status_prefix;
23 char config_path[MAXLEN];
24
25 monitor_t *mon;
26 monitor_t *mon_head;
27 monitor_t *mon_tail;
28 monitor_t *pri_mon;
29 history_t *history_head;
30 history_t *history_tail;
31 stack_t *stack_head;
32 stack_t *stack_tail;
33 rule_t *rule_head;
34 rule_t *rule_tail;
35
36 pointer_state_t *frozen_pointer;
37 xcb_window_t motion_recorder;
38 xcb_atom_t WM_TAKE_FOCUS;
39 xcb_atom_t WM_DELETE_WINDOW;
40 xcb_atom_t _BSPWM_FLOATING_WINDOW;
41 int exit_status;
42
43 bool visible;
44 bool auto_raise;
45 bool sticky_still;
46 bool running;
47 bool randr;
48
49 void init(void);
50 void setup(void);
51 void register_events(void);
52 void put_status(void);
53 void cleanup(void);
54 void quit(void);
55
56 #endif