Mercurial > dwm-meillo
comparison wm.c @ 34:cd30cce52b78
added logo+description
author | Anselm R. Garbe <garbeam@wmii.de> |
---|---|
date | Thu, 13 Jul 2006 09:32:22 +0200 |
parents | e90449e03167 |
children |
comparison
equal
deleted
inserted
replaced
33:e90449e03167 | 34:cd30cce52b78 |
---|---|
35 | 35 |
36 char stext[1024]; | 36 char stext[1024]; |
37 int tsel = Tdev; /* default tag */ | 37 int tsel = Tdev; /* default tag */ |
38 int screen, sx, sy, sw, sh, th; | 38 int screen, sx, sy, sw, sh, th; |
39 | 39 |
40 Brush brush = {0}; | 40 DC dc = {0}; |
41 Client *clients = NULL; | 41 Client *clients = NULL; |
42 Client *stack = NULL; | 42 Client *stack = NULL; |
43 | 43 |
44 static Bool other_wm_running; | 44 static Bool other_wm_running; |
45 static const char version[] = | 45 static const char version[] = |
46 "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n"; | 46 "dwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n"; |
47 static int (*x_error_handler) (Display *, XErrorEvent *); | 47 static int (*x_error_handler) (Display *, XErrorEvent *); |
48 | 48 |
49 static void | 49 static void |
50 usage() { error("usage: gridwm [-v]\n"); } | 50 usage() { error("usage: dwm [-v]\n"); } |
51 | 51 |
52 static void | 52 static void |
53 scan_wins() | 53 scan_wins() |
54 { | 54 { |
55 unsigned int i, num; | 55 unsigned int i, num; |
147 || (error->request_code == X_ConfigureWindow | 147 || (error->request_code == X_ConfigureWindow |
148 && error->error_code == BadMatch) | 148 && error->error_code == BadMatch) |
149 || (error->request_code == X_GrabKey | 149 || (error->request_code == X_GrabKey |
150 && error->error_code == BadAccess)) | 150 && error->error_code == BadAccess)) |
151 return 0; | 151 return 0; |
152 fprintf(stderr, "gridwm: fatal error: request code=%d, error code=%d\n", | 152 fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n", |
153 error->request_code, error->error_code); | 153 error->request_code, error->error_code); |
154 return x_error_handler(dpy, error); /* may call exit() */ | 154 return x_error_handler(dpy, error); /* may call exit() */ |
155 } | 155 } |
156 | 156 |
157 /* | 157 /* |
201 } | 201 } |
202 } | 202 } |
203 | 203 |
204 dpy = XOpenDisplay(0); | 204 dpy = XOpenDisplay(0); |
205 if(!dpy) | 205 if(!dpy) |
206 error("gridwm: cannot connect X server\n"); | 206 error("dwm: cannot connect X server\n"); |
207 | 207 |
208 screen = DefaultScreen(dpy); | 208 screen = DefaultScreen(dpy); |
209 root = RootWindow(dpy, screen); | 209 root = RootWindow(dpy, screen); |
210 | 210 |
211 /* check if another WM is already running */ | 211 /* check if another WM is already running */ |
214 /* this causes an error if some other WM is running */ | 214 /* this causes an error if some other WM is running */ |
215 XSelectInput(dpy, root, SubstructureRedirectMask); | 215 XSelectInput(dpy, root, SubstructureRedirectMask); |
216 XFlush(dpy); | 216 XFlush(dpy); |
217 | 217 |
218 if(other_wm_running) | 218 if(other_wm_running) |
219 error("gridwm: another window manager is already running\n"); | 219 error("dwm: another window manager is already running\n"); |
220 | 220 |
221 sx = sy = 0; | 221 sx = sy = 0; |
222 sw = DisplayWidth(dpy, screen); | 222 sw = DisplayWidth(dpy, screen); |
223 sh = DisplayHeight(dpy, screen); | 223 sh = DisplayHeight(dpy, screen); |
224 issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); | 224 issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); |
242 cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur); | 242 cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur); |
243 | 243 |
244 update_keys(); | 244 update_keys(); |
245 | 245 |
246 /* style */ | 246 /* style */ |
247 loadcolors(screen, &brush, BGCOLOR, FGCOLOR, BORDERCOLOR); | 247 initcolors(BGCOLOR, FGCOLOR, BORDERCOLOR); |
248 loadfont(&brush.font, FONT); | 248 initfont(&dc.font, FONT); |
249 | 249 |
250 th = texth(&brush.font); | 250 th = texth(&dc.font); |
251 | 251 |
252 brush.drawable = XCreatePixmap(dpy, root, sw, th, DefaultDepth(dpy, screen)); | 252 dc.drawable = XCreatePixmap(dpy, root, sw, th, DefaultDepth(dpy, screen)); |
253 brush.gc = XCreateGC(dpy, root, 0, 0); | 253 dc.gc = XCreateGC(dpy, root, 0, 0); |
254 | 254 |
255 wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ | 255 wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ |
256 | LeaveWindowMask; | 256 | LeaveWindowMask; |
257 wa.cursor = cursor[CurNormal]; | 257 wa.cursor = cursor[CurNormal]; |
258 XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); | 258 XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); |
259 | 259 |
260 arrange = grid; | |
261 scan_wins(); | 260 scan_wins(); |
262 | 261 |
263 while(running) { | 262 while(running) { |
264 XNextEvent(dpy, &ev); | 263 XNextEvent(dpy, &ev); |
265 if(handler[ev.type]) | 264 if(handler[ev.type]) |