diff options
| author | Anselm R. Garbe <garbeam@wmii.de> | 2006-07-14 11:57:33 +0200 | 
|---|---|---|
| committer | Anselm R. Garbe <garbeam@wmii.de> | 2006-07-14 11:57:33 +0200 | 
| commit | 0e5c8198bc5a69e87b0114b81d6569188828edfa (patch) | |
| tree | ac564b321cca1acb88bfe3ba720e77fa8fb12fe5 | |
| parent | 6458d72572a30d2cc4af3385755033b2cca93057 (diff) | |
| download | dwm-0e5c8198bc5a69e87b0114b81d6569188828edfa.tar.gz | |
implemented dwm reading status text from stdin 
| -rw-r--r-- | config.mk | 10 | ||||
| -rw-r--r-- | dev.c | 15 | ||||
| -rw-r--r-- | dwm.1 | 16 | ||||
| -rw-r--r-- | dwm.h | 4 | ||||
| -rw-r--r-- | dwm.html | 4 | ||||
| -rw-r--r-- | main.c | 34 | 
6 files changed, 58 insertions, 25 deletions
| @@ -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 @@ -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 **********/ @@ -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 @@ -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 **********/ @@ -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> @@ -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(); | 
