implemented dwm reading status text from stdin
							parent
							
								
									6458d72572
								
							
						
					
					
						commit
						0e5c8198bc
					
				
							
								
								
									
										10
									
								
								config.mk
								
								
								
								
							
							
						
						
									
										10
									
								
								config.mk
								
								
								
								
							| 
						 | 
					@ -14,12 +14,12 @@ VERSION = 0.0
 | 
				
			||||||
LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
 | 
					LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Linux/BSD
 | 
					# Linux/BSD
 | 
				
			||||||
CFLAGS = -Os -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
 | 
					#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} \
 | 
					 | 
				
			||||||
#	-DVERSION=\"${VERSION}\"
 | 
					#	-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
 | 
					# Solaris
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										15
									
								
								dev.c
								
								
								
								
							
							
						
						
									
										15
									
								
								dev.c
								
								
								
								
							| 
						 | 
					@ -27,16 +27,14 @@ static Key key[] = {
 | 
				
			||||||
	{ Mod1Mask,				XK_m,		max,		{ 0 } }, 
 | 
						{ Mod1Mask,				XK_m,		max,		{ 0 } }, 
 | 
				
			||||||
	{ Mod1Mask,				XK_0,		view,		{ .i = Tscratch } }, 
 | 
						{ Mod1Mask,				XK_0,		view,		{ .i = Tscratch } }, 
 | 
				
			||||||
	{ Mod1Mask,				XK_1,		view,		{ .i = Tdev } }, 
 | 
						{ Mod1Mask,				XK_1,		view,		{ .i = Tdev } }, 
 | 
				
			||||||
	{ Mod1Mask,				XK_2,		view,		{ .i = Tirc } }, 
 | 
						{ Mod1Mask,				XK_2,		view,		{ .i = Twww } }, 
 | 
				
			||||||
	{ Mod1Mask,				XK_3,		view,		{ .i = Twww } }, 
 | 
						{ Mod1Mask,				XK_3,		view,		{ .i = Twork } }, 
 | 
				
			||||||
	{ Mod1Mask,				XK_4,		view,		{ .i = Twork } }, 
 | 
					 | 
				
			||||||
	{ Mod1Mask,				XK_space,	tiling,		{ 0 } }, 
 | 
						{ Mod1Mask,				XK_space,	tiling,		{ 0 } }, 
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_space,	floating,	{ 0 } }, 
 | 
						{ Mod1Mask|ShiftMask,	XK_space,	floating,	{ 0 } }, 
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_0,		ttrunc,		{ .i = Tscratch } }, 
 | 
						{ Mod1Mask|ShiftMask,	XK_0,		ttrunc,		{ .i = Tscratch } }, 
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_1,		ttrunc,		{ .i = Tdev } }, 
 | 
						{ Mod1Mask|ShiftMask,	XK_1,		ttrunc,		{ .i = Tdev } }, 
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_2,		ttrunc,		{ .i = Tirc } }, 
 | 
						{ Mod1Mask|ShiftMask,	XK_2,		ttrunc,		{ .i = Twww } }, 
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_3,		ttrunc,		{ .i = Twww } }, 
 | 
						{ Mod1Mask|ShiftMask,	XK_3,		ttrunc,		{ .i = Twork } }, 
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_4,		ttrunc,		{ .i = Twork } }, 
 | 
					 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_c,		ckill,		{ 0 } }, 
 | 
						{ Mod1Mask|ShiftMask,	XK_c,		ckill,		{ 0 } }, 
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_q,		quit,		{ 0 } },
 | 
						{ Mod1Mask|ShiftMask,	XK_q,		quit,		{ 0 } },
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },
 | 
						{ Mod1Mask|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },
 | 
				
			||||||
| 
						 | 
					@ -44,9 +42,8 @@ static Key key[] = {
 | 
				
			||||||
	{ Mod1Mask|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
 | 
						{ Mod1Mask|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
 | 
				
			||||||
	{ ControlMask,			XK_0,		tappend,	{ .i = Tscratch } }, 
 | 
						{ ControlMask,			XK_0,		tappend,	{ .i = Tscratch } }, 
 | 
				
			||||||
	{ ControlMask,			XK_1,		tappend,	{ .i = Tdev } }, 
 | 
						{ ControlMask,			XK_1,		tappend,	{ .i = Tdev } }, 
 | 
				
			||||||
	{ ControlMask,			XK_2,		tappend,	{ .i = Tirc } }, 
 | 
						{ ControlMask,			XK_2,		tappend,	{ .i = Twww } }, 
 | 
				
			||||||
	{ ControlMask,			XK_3,		tappend,	{ .i = Twww } }, 
 | 
						{ ControlMask,			XK_3,		tappend,	{ .i = Twork } }, 
 | 
				
			||||||
	{ ControlMask,			XK_4,		tappend,	{ .i = Twork } }, 
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********** CUSTOMIZE **********/
 | 
					/********** CUSTOMIZE **********/
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										16
									
								
								dwm.1
								
								
								
								
							
							
						
						
									
										16
									
								
								dwm.1
								
								
								
								
							| 
						 | 
					@ -81,4 +81,18 @@ Append
 | 
				
			||||||
.B nth
 | 
					.B nth
 | 
				
			||||||
tag to cureent
 | 
					tag to cureent
 | 
				
			||||||
.B window
 | 
					.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
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								dwm.h
								
								
								
								
							
							
						
						
									
										4
									
								
								dwm.h
								
								
								
								
							| 
						 | 
					@ -9,13 +9,13 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define FONT				"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
 | 
					#define FONT				"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
 | 
				
			||||||
#define BGCOLOR				"#666699"
 | 
					#define BGCOLOR				"#666699"
 | 
				
			||||||
#define FGCOLOR				"#ffffff"
 | 
					#define FGCOLOR				"#eeeeee"
 | 
				
			||||||
#define BORDERCOLOR			"#9999CC"
 | 
					#define BORDERCOLOR			"#9999CC"
 | 
				
			||||||
#define MASTERW				52 /* percent */
 | 
					#define MASTERW				52 /* percent */
 | 
				
			||||||
#define WM_PROTOCOL_DELWIN	1
 | 
					#define WM_PROTOCOL_DELWIN	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* tags */
 | 
					/* tags */
 | 
				
			||||||
enum { Tscratch, Tdev, Tirc, Twww, Twork, TLast };
 | 
					enum { Tscratch, Tdev, Twww, Twork, TLast };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/********** CUSTOMIZE **********/
 | 
					/********** CUSTOMIZE **********/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								dwm.html
								
								
								
								
							
							
						
						
									
										4
									
								
								dwm.html
								
								
								
								
							| 
						 | 
					@ -69,7 +69,7 @@
 | 
				
			||||||
			clients.
 | 
								clients.
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
			<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,
 | 
								date, load, battery charge). That's much simpler than larsremote,
 | 
				
			||||||
			wmiir and what not...
 | 
								wmiir and what not...
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
| 
						 | 
					@ -83,7 +83,7 @@
 | 
				
			||||||
		</ul>
 | 
							</ul>
 | 
				
			||||||
		<h3>Screenshot</h3>
 | 
							<h3>Screenshot</h3>
 | 
				
			||||||
		<p>
 | 
							<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>
 | 
							</p>
 | 
				
			||||||
		<h3>Development</h3>
 | 
							<h3>Development</h3>
 | 
				
			||||||
		<p>
 | 
							<p>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										28
									
								
								main.c
								
								
								
								
							
							
						
						
									
										28
									
								
								main.c
								
								
								
								
							| 
						 | 
					@ -3,10 +3,12 @@
 | 
				
			||||||
 * See LICENSE file for license details.
 | 
					 * See LICENSE file for license details.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdarg.h>
 | 
					#include <stdarg.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <X11/cursorfont.h>
 | 
					#include <X11/cursorfont.h>
 | 
				
			||||||
#include <X11/Xatom.h>
 | 
					#include <X11/Xatom.h>
 | 
				
			||||||
| 
						 | 
					@ -19,7 +21,6 @@
 | 
				
			||||||
char *tags[TLast] = {
 | 
					char *tags[TLast] = {
 | 
				
			||||||
	[Tscratch] = "scratch",
 | 
						[Tscratch] = "scratch",
 | 
				
			||||||
	[Tdev] = "dev",
 | 
						[Tdev] = "dev",
 | 
				
			||||||
	[Tirc] = "irc",
 | 
					 | 
				
			||||||
	[Twww] = "www",
 | 
						[Twww] = "www",
 | 
				
			||||||
	[Twork] = "work",
 | 
						[Twork] = "work",
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -185,13 +186,13 @@ quit(Arg *arg)
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
main(int argc, char *argv[])
 | 
					main(int argc, char *argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i, n;
 | 
				
			||||||
 | 
						fd_set rd;
 | 
				
			||||||
	XSetWindowAttributes wa;
 | 
						XSetWindowAttributes wa;
 | 
				
			||||||
	unsigned int mask;
 | 
						unsigned int mask;
 | 
				
			||||||
	Window w;
 | 
						Window w;
 | 
				
			||||||
	XEvent ev;
 | 
						XEvent ev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* command line args */
 | 
					 | 
				
			||||||
	for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
 | 
						for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
 | 
				
			||||||
		switch (argv[i][1]) {
 | 
							switch (argv[i][1]) {
 | 
				
			||||||
		case 'v':
 | 
							case 'v':
 | 
				
			||||||
| 
						 | 
					@ -278,11 +279,32 @@ main(int argc, char *argv[])
 | 
				
			||||||
	scan_wins();
 | 
						scan_wins();
 | 
				
			||||||
	draw_bar();
 | 
						draw_bar();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* main event loop, reads status text from stdin as well */
 | 
				
			||||||
	while(running) {
 | 
						while(running) {
 | 
				
			||||||
 | 
							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);
 | 
									XNextEvent(dpy, &ev);
 | 
				
			||||||
				if(handler[ev.type])
 | 
									if(handler[ev.type])
 | 
				
			||||||
					(handler[ev.type])(&ev); /* call handler */
 | 
										(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();
 | 
						cleanup();
 | 
				
			||||||
	XCloseDisplay(dpy);
 | 
						XCloseDisplay(dpy);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue