3 * See LICENSE file for license details. |
3 * See LICENSE file for license details. |
4 */ |
4 */ |
5 |
5 |
6 #include "wm.h" |
6 #include "wm.h" |
7 |
7 |
8 static const char *status[] = { |
|
9 "sh", "-c", "echo -n `date` `uptime | sed 's/.*://; s/,//g'`" |
|
10 " `acpi | awk '{print $4}' | sed 's/,//'`", 0 \ |
|
11 }; |
|
12 |
|
13 void |
8 void |
14 draw_bar() |
9 draw_bar() |
15 { |
10 { |
16 static char buf[1024]; |
|
17 |
|
18 buf[0] = 0; |
|
19 pipe_spawn(buf, sizeof(buf), dpy, (char **)status); |
|
20 |
|
21 brush.rect = barrect; |
11 brush.rect = barrect; |
22 brush.rect.x = brush.rect.y = 0; |
12 brush.rect.x = brush.rect.y = 0; |
23 draw(dpy, &brush, False, buf); |
13 draw(dpy, &brush, False, NULL); |
|
14 |
|
15 if(stack) { |
|
16 brush.rect.width = textwidth(&brush.font, stack->name) + labelheight(&brush.font); |
|
17 swap((void **)&brush.fg, (void **)&brush.bg); |
|
18 draw(dpy, &brush, False, stack->name); |
|
19 swap((void **)&brush.fg, (void **)&brush.bg); |
|
20 brush.rect.x += brush.rect.width; |
|
21 } |
|
22 |
|
23 brush.rect.width = textwidth(&brush.font, statustext) + labelheight(&brush.font); |
|
24 brush.rect.x = barrect.x + barrect.width - brush.rect.width; |
|
25 draw(dpy, &brush, False, statustext); |
24 |
26 |
25 XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width, |
27 XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width, |
26 barrect.height, 0, 0); |
28 barrect.height, 0, 0); |
27 XFlush(dpy); |
29 XFlush(dpy); |
28 } |
30 } |