1 /**************************************************************************
5 * Check COPYING file for Copyright
7 **************************************************************************/
13 #include <X11/Xatom.h>
14 #include <X11/extensions/Xinerama.h>
17 typedef struct Global_atom
21 Atom _NET_CURRENT_DESKTOP
;
22 Atom _NET_NUMBER_OF_DESKTOPS
;
23 Atom _NET_DESKTOP_NAMES
;
24 Atom _NET_DESKTOP_GEOMETRY
;
25 Atom _NET_DESKTOP_VIEWPORT
;
26 Atom _NET_ACTIVE_WINDOW
;
27 Atom _NET_WM_WINDOW_TYPE
;
28 Atom _NET_WM_STATE_SKIP_PAGER
;
29 Atom _NET_WM_STATE_SKIP_TASKBAR
;
30 Atom _NET_WM_STATE_STICKY
;
31 Atom _NET_WM_STATE_DEMANDS_ATTENTION
;
32 Atom _NET_WM_WINDOW_TYPE_DOCK
;
33 Atom _NET_WM_WINDOW_TYPE_DESKTOP
;
34 Atom _NET_WM_WINDOW_TYPE_TOOLBAR
;
35 Atom _NET_WM_WINDOW_TYPE_MENU
;
36 Atom _NET_WM_WINDOW_TYPE_SPLASH
;
37 Atom _NET_WM_WINDOW_TYPE_DIALOG
;
38 Atom _NET_WM_WINDOW_TYPE_NORMAL
;
42 Atom _NET_WM_STATE_MAXIMIZED_VERT
;
43 Atom _NET_WM_STATE_MAXIMIZED_HORZ
;
44 Atom _NET_WM_STATE_SHADED
;
45 Atom _NET_WM_STATE_HIDDEN
;
46 Atom _NET_WM_STATE_BELOW
;
47 Atom _NET_WM_STATE_ABOVE
;
48 Atom _NET_WM_STATE_MODAL
;
49 Atom _NET_CLIENT_LIST
;
51 Atom _NET_WM_VISIBLE_NAME
;
54 Atom _NET_WM_ICON_GEOMETRY
;
55 Atom _NET_CLOSE_WINDOW
;
57 Atom _NET_SUPPORTING_WM_CHECK
;
59 Atom _NET_WM_STRUT_PARTIAL
;
64 Atom _NET_SYSTEM_TRAY_SCREEN
;
65 Atom _NET_SYSTEM_TRAY_OPCODE
;
67 Atom _NET_SYSTEM_TRAY_MESSAGE_DATA
;
68 Atom _NET_SYSTEM_TRAY_ORIENTATION
;
71 Atom _XSETTINGS_SCREEN
;
72 Atom _XSETTINGS_SETTINGS
;
81 typedef struct Monitor
95 Window composite_manager
;
96 int real_transparency
;
102 // number of monitor (without monitor included into another one)
117 Server_global server
;
121 void cleanup_server();
123 void send_event32 (Window win
, Atom at
, long data1
, long data2
, long data3
);
124 int get_property32 (Window win
, Atom at
, Atom type
);
125 void *server_get_property (Window win
, Atom at
, Atom type
, int *num_results
);
126 Atom
server_get_atom (char *atom_name
);
127 void server_catch_error (Display
*d
, XErrorEvent
*ev
);
128 void server_init_atoms ();
129 void server_init_visual();
131 // detect root background
132 void get_root_pixmap();
134 // detect monitors and desktops