wm.h (view raw)
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 */
10enum { WMState, WMProtocols, WMDelete, WMLast };
11
12/* NET atoms */
13enum { NetSupported, NetWMName, NetLast };
14
15/* Cursor */
16enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
17
18/* Rects */
19enum { RFloat, RGrid, RLast };
20
21typedef struct Client Client;
22typedef struct Tag Tag;
23
24struct 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
39struct Tag {
40 char name[256];
41 Client *clients;
42 Client *sel;
43 XRectangle r;
44};
45
46extern Display *dpy;
47extern Window root;
48extern XRectangle rect;
49extern int screen, sel_screen;
50extern unsigned int kmask, numlock_mask;
51extern Atom wm_atom[WMLast];
52extern Atom net_atom[NetLast];
53extern Cursor cursor[CurLast];
54extern Pixmap pmap;
55
56/* wm.c */
57extern void error(char *errstr, ...);