Hi,
I am new to the list, so hi again :)
I developed a small patch for dwm with pancake's clientspertag to
show if clientspertag is active. This basically adds additional status
text of the form '{n}' to the current status text where n is the
number of clientspertag currently active.
However, I think a flexible way to show status messages could be
used by additional patches to show some textual data on the dwm status
bar. clientspertag seemed like a good candidate but I don't know about
any others. I was curious to know what you guys think.
And thanks for developing dwm... its truly wonderful :)
_r
diff -r 32c4d4563805 config.h
--- a/config.h Thu Oct 25 19:24:28 2007 -0400
+++ b/config.h Thu Oct 25 20:28:00 2007 -0400
@@ -37,6 +37,9 @@ Layout layouts[] = {
{ "[]=", tile },
{ "><>", floating },
};
+
+/* Status text */
+char* status_text[] = { cpt_stext, stext };
/* key definitions */
#define MODKEY Mod1Mask
diff -r 32c4d4563805 dwm.c
--- a/dwm.c Thu Oct 25 19:24:28 2007 -0400
+++ b/dwm.c Thu Oct 25 22:36:55 2007 -0400
@@ -167,6 +167,7 @@ void setclientstate(Client *c, long stat
void setclientstate(Client *c, long state);
void setlayout(const char *arg);
void setmwfact(const char *arg);
+void setitext(void);
void setup(void);
void spawn(const char *arg);
void tag(const char *arg);
@@ -193,6 +194,7 @@ void zoom(const char *arg);
/* variables */
char stext[256];
+char itext[512];
double mwfact;
int screen, sx, sy, sw, sh, wax, way, waw, wah;
int (*xerrorxlib)(Display *, XErrorEvent *);
@@ -551,13 +553,14 @@ drawbar(void) {
dc.w = blw;
drawtext(layouts[ltidx].symbol, dc.norm);
x = dc.x + dc.w;
- dc.w = textw(stext);
+ setitext();
+ dc.w = textw(itext);
dc.x = sw - dc.w;
if(dc.x < x) {
dc.x = x;
dc.w = sw - x;
}
- drawtext(stext, dc.norm);
+ drawtext(itext, dc.norm);
if((dc.w = dc.x - x) > bh) {
dc.x = x;
if(sel) {
@@ -1418,6 +1421,14 @@ setmwfact(const char *arg) {
}
void
+setitext(void) {
+ int i;
+ itext[0] = '\0';
+ for(i=0; i<sizeof(status_text)/sizeof(char*); i++)
+ strncat(itext, status_text[i], sizeof(itext) - strlen(itext));
+}
+
+void
setup(void) {
int d;
unsigned int i, j, mask;
diff -r 32c4d4563805 nmaster.c
--- a/nmaster.c Thu Oct 25 19:24:28 2007 -0400
+++ b/nmaster.c Thu Oct 25 22:33:05 2007 -0400
@@ -69,11 +69,18 @@ Layout layouts[] = {
#endif
int cpt = -1;
+char cpt_stext[8];
+
void clientspertag(const char *arg) {
if (arg[0]=='^') {
if (cpt==-1) cpt = atoi(arg+1);
else cpt = -1;
} else cpt = atoi(arg);
+ if(cpt == -1)
+ cpt_stext[0] = '\0';
+ else
+ snprintf(cpt_stext, 8, "{%d} ", cpt);
+ drawbar();
arrange();
}
Received on Fri Oct 26 2007 - 05:24:23 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:02:13 UTC