initial import
[dwm.git] / wm.h
1 /*
2 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
3 * See LICENSE file for license details.
4 */
5
6 #include <X11/Xlib.h>
7 #include <X11/Xutil.h>
8
9 /* WM atoms */
10 enum { WMState, WMProtocols, WMDelete, WMLast };
11
12 /* NET atoms */
13 enum { NetSupported, NetWMName, NetLast };
14
15 /* Cursor */
16 enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
17
18 /* Rects */
19 enum { RFloat, RGrid, RLast };
20
21 typedef struct Client Client;
22 typedef struct Tag Tag;
23
24 struct Client {
25 Tag *tag;
26 char name[256];
27 int proto;
28 Window win;
29 Window trans;
30 Window title;
31 GC gc;
32 XSizeHints size;
33 XRectangle r[RLast];
34 Client *next;
35 Client *tnext;
36 Client *tprev;
37 };
38
39 struct Tag {
40 char name[256];
41 Client *clients;
42 Client *sel;
43 XRectangle r;
44 };
45
46 extern Display *dpy;
47 extern Window root;
48 extern XRectangle rect;
49 extern int screen, sel_screen;
50 extern unsigned int kmask, numlock_mask;
51 extern Atom wm_atom[WMLast];
52 extern Atom net_atom[NetLast];
53 extern Cursor cursor[CurLast];
54 extern Pixmap pmap;
55
56 /* wm.c */
57 extern void error(char *errstr, ...);