Introduction
Introduction Statistics Contact Development Disclaimer Help
tseveral changes, new stuff - dwm - [fork] customized build of dwm, the dynamic…
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit d6e0e6e9879c144f5d374fca0c015fd6208fc27e
parent b1669b5c48f71c9a7a919dbf09a1af527c62f69a
Author: Anselm R. Garbe <[email protected]>
Date: Tue, 11 Jul 2006 18:53:41 +0200
several changes, new stuff
Diffstat:
M bar.c | 24 +++++++++++++-----------
M client.c | 5 +++++
M config.h | 2 +-
M event.c | 1 -
M util.c | 2 +-
M wm.c | 16 ++++++++++++----
M wm.h | 3 ++-
7 files changed, 34 insertions(+), 19 deletions(-)
---
diff --git a/bar.c b/bar.c
t@@ -5,22 +5,24 @@
#include "wm.h"
-static const char *status[] = {
- "sh", "-c", "echo -n `date` `uptime | sed 's/.*://; s/,//g'`"
- " `acpi | awk '{print $4}' | sed 's/,//'`", 0 \
-};
-
void
draw_bar()
{
- static char buf[1024];
-
- buf[0] = 0;
- pipe_spawn(buf, sizeof(buf), dpy, (char **)status);
-
brush.rect = barrect;
brush.rect.x = brush.rect.y = 0;
- draw(dpy, &brush, False, buf);
+ draw(dpy, &brush, False, NULL);
+
+ if(stack) {
+ brush.rect.width = textwidth(&brush.font, stack->name) + label…
+ swap((void **)&brush.fg, (void **)&brush.bg);
+ draw(dpy, &brush, False, stack->name);
+ swap((void **)&brush.fg, (void **)&brush.bg);
+ brush.rect.x += brush.rect.width;
+ }
+
+ brush.rect.width = textwidth(&brush.font, statustext) + labelheight(&b…
+ brush.rect.x = barrect.x + barrect.width - brush.rect.width;
+ draw(dpy, &brush, False, statustext);
XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width,
barrect.height, 0, 0);
diff --git a/client.c b/client.c
t@@ -35,6 +35,10 @@ update_name(Client *c)
}
}
XFree(name.value);
+ if(c == stack)
+ draw_bar();
+ else
+ draw_client(c);
}
void
t@@ -66,6 +70,7 @@ manage(Window w, XWindowAttributes *wa)
c->r[RFloat].height = wa->height;
c->border = wa->border_width;
XSetWindowBorderWidth(dpy, c->win, 0);
+ XSelectInput(dpy, c->win, StructureNotifyMask | PropertyChangeMask | E…
XGetTransientForHint(dpy, c->win, &c->trans);
if(!XGetWMNormalHints(dpy, c->win, &c->size, &msize) || !c->size.flags)
c->size.flags = PSize;
diff --git a/config.h b/config.h
t@@ -7,4 +7,4 @@
#define BGCOLOR "#000000"
#define FGCOLOR "#ffaa00"
#define BORDERCOLOR "#000000"
-#define STATUSDELAY 1 /* milliseconds */
+#define STATUSDELAY 10 /* milliseconds */
diff --git a/event.c b/event.c
t@@ -187,7 +187,6 @@ propertynotify(XEvent *e)
}
if(ev->atom == XA_WM_NAME || ev->atom == net_atom[NetWMName]) {
update_name(c);
- /*draw_frame(c->sel);*/
}
}
}
diff --git a/util.c b/util.c
t@@ -134,7 +134,7 @@ pipe_spawn(char *buf, unsigned int len, Display *dpy, char…
n += l;
}
close(pfd[0]);
- buf[n - 1] = 0;
+ buf[n < len ? n : len - 1] = 0;
}
wait(0);
}
diff --git a/wm.c b/wm.c
t@@ -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};
t@@ -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. Garb…
+static const char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R…
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()
{
t@@ -258,9 +264,9 @@ main(int argc, char *argv[])
barrect.width, barrect.height, 0, DefaultDepth(dpy, sc…
CopyFromParent, DefaultVisual(dpy, screen),
CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
- bartext = NULL;
XDefineCursor(dpy, barwin, cursor[CurNormal]);
XMapRaised(dpy, barwin);
+ pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status);
draw_bar();
wa.event_mask = SubstructureRedirectMask | EnterWindowMask \
t@@ -282,8 +288,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 …
draw_bar();
+ }
}
cleanup();
diff --git a/wm.h b/wm.h
t@@ -55,7 +55,7 @@ extern Bool running, sel_screen, grid;
extern void (*handler[LASTEvent]) (XEvent *);
extern int screen;
-extern char *bartext, tag[256];
+extern char statustext[1024], tag[256];
extern Brush brush;
extern Client *clients, *stack;
t@@ -74,6 +74,7 @@ extern void unmanage(Client *c);
extern Client *getclient(Window w);
extern void focus(Client *c);
extern void update_name(Client *c);
+extern void draw_client(Client *c);
/* event.c */
extern unsigned int flush_events(long even_mask);
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.