about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAnselm R. Garbe <garbeam@wmii.de>2006-07-14 11:57:33 +0200
committerAnselm R. Garbe <garbeam@wmii.de>2006-07-14 11:57:33 +0200
commit0e5c8198bc5a69e87b0114b81d6569188828edfa (patch)
treeac564b321cca1acb88bfe3ba720e77fa8fb12fe5
parent6458d72572a30d2cc4af3385755033b2cca93057 (diff)
downloaddwm-0e5c8198bc5a69e87b0114b81d6569188828edfa.tar.gz
implemented dwm reading status text from stdin
-rw-r--r--config.mk10
-rw-r--r--dev.c15
-rw-r--r--dwm.116
-rw-r--r--dwm.h4
-rw-r--r--dwm.html4
-rw-r--r--main.c34
6 files changed, 58 insertions, 25 deletions
diff --git a/config.mk b/config.mk
index ed58c1f..f32f80e 100644
--- a/config.mk
+++ b/config.mk
@@ -14,12 +14,12 @@ VERSION = 0.0
 LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
 
 # Linux/BSD
-CFLAGS = -Os -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
-	-DVERSION=\"${VERSION}\"
-LDFLAGS = ${LIBS}
-#CFLAGS = -g -Wall -O2 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
+#CFLAGS = -Os -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
 #	-DVERSION=\"${VERSION}\"
-#LDFLAGS = -g ${LIBS}
+#LDFLAGS = ${LIBS}
+CFLAGS = -g -Wall -O2 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
+	-DVERSION=\"${VERSION}\"
+LDFLAGS = -g ${LIBS}
 
 
 # Solaris
diff --git a/dev.c b/dev.c
index 4c6e45f..7f500d9 100644
--- a/dev.c
+++ b/dev.c
@@ -27,16 +27,14 @@ static Key key[] = {
 	{ Mod1Mask,				XK_m,		max,		{ 0 } }, 
 	{ Mod1Mask,				XK_0,		view,		{ .i = Tscratch } }, 
 	{ Mod1Mask,				XK_1,		view,		{ .i = Tdev } }, 
-	{ Mod1Mask,				XK_2,		view,		{ .i = Tirc } }, 
-	{ Mod1Mask,				XK_3,		view,		{ .i = Twww } }, 
-	{ Mod1Mask,				XK_4,		view,		{ .i = Twork } }, 
+	{ Mod1Mask,				XK_2,		view,		{ .i = Twww } }, 
+	{ Mod1Mask,				XK_3,		view,		{ .i = Twork } }, 
 	{ Mod1Mask,				XK_space,	tiling,		{ 0 } }, 
 	{ Mod1Mask|ShiftMask,	XK_space,	floating,	{ 0 } }, 
 	{ Mod1Mask|ShiftMask,	XK_0,		ttrunc,		{ .i = Tscratch } }, 
 	{ Mod1Mask|ShiftMask,	XK_1,		ttrunc,		{ .i = Tdev } }, 
-	{ Mod1Mask|ShiftMask,	XK_2,		ttrunc,		{ .i = Tirc } }, 
-	{ Mod1Mask|ShiftMask,	XK_3,		ttrunc,		{ .i = Twww } }, 
-	{ Mod1Mask|ShiftMask,	XK_4,		ttrunc,		{ .i = Twork } }, 
+	{ Mod1Mask|ShiftMask,	XK_2,		ttrunc,		{ .i = Twww } }, 
+	{ Mod1Mask|ShiftMask,	XK_3,		ttrunc,		{ .i = Twork } }, 
 	{ Mod1Mask|ShiftMask,	XK_c,		ckill,		{ 0 } }, 
 	{ Mod1Mask|ShiftMask,	XK_q,		quit,		{ 0 } },
 	{ Mod1Mask|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },
@@ -44,9 +42,8 @@ static Key key[] = {
 	{ Mod1Mask|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
 	{ ControlMask,			XK_0,		tappend,	{ .i = Tscratch } }, 
 	{ ControlMask,			XK_1,		tappend,	{ .i = Tdev } }, 
-	{ ControlMask,			XK_2,		tappend,	{ .i = Tirc } }, 
-	{ ControlMask,			XK_3,		tappend,	{ .i = Twww } }, 
-	{ ControlMask,			XK_4,		tappend,	{ .i = Twork } }, 
+	{ ControlMask,			XK_2,		tappend,	{ .i = Twww } }, 
+	{ ControlMask,			XK_3,		tappend,	{ .i = Twork } }, 
 };
 
 /********** CUSTOMIZE **********/
diff --git a/dwm.1 b/dwm.1
index 95a5d3a..9c63b29 100644
--- a/dwm.1
+++ b/dwm.1
@@ -81,4 +81,18 @@ Append
 .B nth
 tag to cureent
 .B window
-
+.SS Default Mouse Bindings
+.TP
+.B Mod1-Button1
+Moves current
+.B window
+while dragging
+.TP
+.B Mod1-Button2
+Lowers current
+.B window
+.TP
+.B Mod1-Button3
+Resizes current
+.B window
+while dragging
diff --git a/dwm.h b/dwm.h
index 5d7ff1a..29aa6a2 100644
--- a/dwm.h
+++ b/dwm.h
@@ -9,13 +9,13 @@
 
 #define FONT				"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
 #define BGCOLOR				"#666699"
-#define FGCOLOR				"#ffffff"
+#define FGCOLOR				"#eeeeee"
 #define BORDERCOLOR			"#9999CC"
 #define MASTERW				52 /* percent */
 #define WM_PROTOCOL_DELWIN	1
 
 /* tags */
-enum { Tscratch, Tdev, Tirc, Twww, Twork, TLast };
+enum { Tscratch, Tdev, Twww, Twork, TLast };
 
 /********** CUSTOMIZE **********/
 
diff --git a/dwm.html b/dwm.html
index 2efdebd..7e39f15 100644
--- a/dwm.html
+++ b/dwm.html
@@ -69,7 +69,7 @@
 			clients.
 			</li>
 			<li>
-			dwm reads from <b>stdin</b> to print arbirary status text (like the
+			dwm reads from <b>stdin</b> to print arbitrary status text (like the
 			date, load, battery charge). That's much simpler than larsremote,
 			wmiir and what not...
 			</li>
@@ -83,7 +83,7 @@
 		</ul>
 		<h3>Screenshot</h3>
 		<p>
-		<a href="http://wmii.de/shots/dwm-20060713.png">Click here for a screenshot</a> (20060713)
+		<a href="http://wmii.de/shots/dwm-20060714.png">Click here for a screenshot</a> (20060714)
 		</p>
 		<h3>Development</h3>
 		<p>
diff --git a/main.c b/main.c
index 3d3e896..bfc63b1 100644
--- a/main.c
+++ b/main.c
@@ -3,10 +3,12 @@
  * See LICENSE file for license details.
  */
 
+#include <errno.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 
 #include <X11/cursorfont.h>
 #include <X11/Xatom.h>
@@ -19,7 +21,6 @@
 char *tags[TLast] = {
 	[Tscratch] = "scratch",
 	[Tdev] = "dev",
-	[Tirc] = "irc",
 	[Twww] = "www",
 	[Twork] = "work",
 };
@@ -185,13 +186,13 @@ quit(Arg *arg)
 int
 main(int argc, char *argv[])
 {
-	int i;
+	int i, n;
+	fd_set rd;
 	XSetWindowAttributes wa;
 	unsigned int mask;
 	Window w;
 	XEvent ev;
 
-	/* command line args */
 	for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
 		switch (argv[i][1]) {
 		case 'v':
@@ -278,10 +279,31 @@ main(int argc, char *argv[])
 	scan_wins();
 	draw_bar();
 
+	/* main event loop, reads status text from stdin as well */
 	while(running) {
-		XNextEvent(dpy, &ev);
-		if(handler[ev.type])
-			(handler[ev.type])(&ev); /* call handler */
+		FD_ZERO(&rd);
+		FD_SET(0, &rd);
+		FD_SET(ConnectionNumber(dpy), &rd);
+
+		i = select(ConnectionNumber(dpy) + 1, &rd, 0, 0, 0);
+		if(i == -1 && errno == EINTR)
+			continue;
+		if(i < 0)
+			error("select failed\n");
+		else if(i > 0) {
+			if(FD_ISSET(ConnectionNumber(dpy), &rd) && XPending(dpy) > 0) {
+				XNextEvent(dpy, &ev);
+				if(handler[ev.type])
+					(handler[ev.type])(&ev); /* call handler */
+			}
+			if(FD_ISSET(0, &rd)) {
+				i = n = 0;
+				while((i = getchar()) != '\n' && n < sizeof(stext) - 1)
+					stext[n++] = i;
+				stext[n] = 0;
+				draw_bar();
+			}
+		}
 	}
 
 	cleanup();