Mercurial > dwm-meillo
comparison wm.c @ 16:359b6e563b95
several changes, new stuff
author | Anselm R. Garbe <garbeam@wmii.de> |
---|---|
date | Tue, 11 Jul 2006 18:53:41 +0200 |
parents | 5c078b66347b |
children | 3ef108a5ca0a |
comparison
equal
deleted
inserted
replaced
15:00d4d52b231f | 16:359b6e563b95 |
---|---|
25 Cursor cursor[CurLast]; | 25 Cursor cursor[CurLast]; |
26 XRectangle rect, barrect; | 26 XRectangle rect, barrect; |
27 Bool running = True; | 27 Bool running = True; |
28 Bool sel_screen; | 28 Bool sel_screen; |
29 | 29 |
30 char *bartext, tag[256]; | 30 char statustext[1024], tag[256]; |
31 int screen; | 31 int screen; |
32 | 32 |
33 Brush brush = {0}; | 33 Brush brush = {0}; |
34 Client *clients = NULL; | 34 Client *clients = NULL; |
35 Client *stack = NULL; | 35 Client *stack = NULL; |
36 | 36 |
37 static Bool other_wm_running; | 37 static Bool other_wm_running; |
38 static char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n"; | 38 static const char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n"; |
39 static int (*x_error_handler) (Display *, XErrorEvent *); | 39 static int (*x_error_handler) (Display *, XErrorEvent *); |
40 | |
41 static const char *status[] = { | |
42 "sh", "-c", "echo -n `date '+%Y/%m/%d %H:%M'`" | |
43 " `uptime | sed 's/.*://; s/,//g'`" | |
44 " `acpi | awk '{print $4}' | sed 's/,//'`", 0 | |
45 }; | |
40 | 46 |
41 static void | 47 static void |
42 usage() | 48 usage() |
43 { | 49 { |
44 fputs("usage: gridwm [-v]\n", stderr); | 50 fputs("usage: gridwm [-v]\n", stderr); |
256 barrect.y = rect.height - barrect.height; | 262 barrect.y = rect.height - barrect.height; |
257 barwin = XCreateWindow(dpy, root, barrect.x, barrect.y, | 263 barwin = XCreateWindow(dpy, root, barrect.x, barrect.y, |
258 barrect.width, barrect.height, 0, DefaultDepth(dpy, screen), | 264 barrect.width, barrect.height, 0, DefaultDepth(dpy, screen), |
259 CopyFromParent, DefaultVisual(dpy, screen), | 265 CopyFromParent, DefaultVisual(dpy, screen), |
260 CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); | 266 CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); |
261 bartext = NULL; | |
262 XDefineCursor(dpy, barwin, cursor[CurNormal]); | 267 XDefineCursor(dpy, barwin, cursor[CurNormal]); |
263 XMapRaised(dpy, barwin); | 268 XMapRaised(dpy, barwin); |
269 pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status); | |
264 draw_bar(); | 270 draw_bar(); |
265 | 271 |
266 wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ | 272 wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ |
267 | LeaveWindowMask; | 273 | LeaveWindowMask; |
268 wa.cursor = cursor[CurNormal]; | 274 wa.cursor = cursor[CurNormal]; |
280 FD_ZERO(&fds); | 286 FD_ZERO(&fds); |
281 FD_SET(ConnectionNumber(dpy), &fds); | 287 FD_SET(ConnectionNumber(dpy), &fds); |
282 t = timeout; | 288 t = timeout; |
283 if(select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &t) > 0) | 289 if(select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &t) > 0) |
284 continue; | 290 continue; |
285 else if(errno != EINTR) | 291 else if(errno != EINTR) { |
292 pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status); | |
286 draw_bar(); | 293 draw_bar(); |
294 } | |
287 } | 295 } |
288 | 296 |
289 cleanup(); | 297 cleanup(); |
290 XCloseDisplay(dpy); | 298 XCloseDisplay(dpy); |
291 | 299 |