X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=wm.c;h=82b2deea6c9dc9f325f13fa5a76d8f7d6b6f165a;hp=f247372d4398394fd2557511dc1d9c7ccdaf0d76;hb=83d23908d3438d7f1f62533a7c8d96fc1019df55;hpb=586f66331d1105be03c42e6faeae1672b974a98a diff --git a/wm.c b/wm.c index f247372..82b2dee 100644 --- a/wm.c +++ b/wm.c @@ -27,7 +27,7 @@ XRectangle rect, barrect; Bool running = True; Bool sel_screen; -char *bartext, tag[256]; +char statustext[1024], tag[256]; int screen; Brush brush = {0}; @@ -35,9 +35,15 @@ Client *clients = NULL; Client *stack = NULL; static Bool other_wm_running; -static char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n"; +static const char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n"; static int (*x_error_handler) (Display *, XErrorEvent *); +static const char *status[] = { + "sh", "-c", "echo -n `date '+%Y/%m/%d %H:%M'`" + " `uptime | sed 's/.*://; s/,//g'`" + " `acpi | awk '{print $4}' | sed 's/,//'`", 0 +}; + static void usage() { @@ -239,10 +245,6 @@ main(int argc, char *argv[]) update_keys(); - brush.drawable = XCreatePixmap(dpy, root, rect.width, rect.height, - DefaultDepth(dpy, screen)); - brush.gc = XCreateGC(dpy, root, 0, 0); - /* style */ loadcolors(dpy, screen, &brush, BGCOLOR, FGCOLOR, BORDERCOLOR); loadfont(dpy, &brush.font, FONT); @@ -258,9 +260,14 @@ main(int argc, char *argv[]) barrect.width, barrect.height, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); - bartext = NULL; XDefineCursor(dpy, barwin, cursor[CurNormal]); XMapRaised(dpy, barwin); + + brush.drawable = XCreatePixmap(dpy, root, rect.width, barrect.height, + DefaultDepth(dpy, screen)); + brush.gc = XCreateGC(dpy, root, 0, 0); + + pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status); draw_bar(); wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ @@ -282,8 +289,10 @@ main(int argc, char *argv[]) t = timeout; if(select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &t) > 0) continue; - else if(errno != EINTR) + else if(errno != EINTR) { + pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status); draw_bar(); + } } cleanup();