implemented dwm reading status text from stdin
This commit is contained in:
		
							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
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								dev.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								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 **********/
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								dwm.1
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								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 **********/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								dwm.html
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								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>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										34
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								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();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user