applied Sanders patches
This commit is contained in:
		
							parent
							
								
									937cabfa0a
								
							
						
					
					
						commit
						7b5638f61d
					
				
							
								
								
									
										3
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										3
									
								
								Makefile
								
								
								
								
							| 
						 | 
					@ -13,7 +13,6 @@ all: options dwm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
options:
 | 
					options:
 | 
				
			||||||
	@echo dwm build options:
 | 
						@echo dwm build options:
 | 
				
			||||||
	@echo "LIBS     = ${LIBS}"
 | 
					 | 
				
			||||||
	@echo "CFLAGS   = ${CFLAGS}"
 | 
						@echo "CFLAGS   = ${CFLAGS}"
 | 
				
			||||||
	@echo "LDFLAGS  = ${LDFLAGS}"
 | 
						@echo "LDFLAGS  = ${LDFLAGS}"
 | 
				
			||||||
	@echo "CC       = ${CC}"
 | 
						@echo "CC       = ${CC}"
 | 
				
			||||||
| 
						 | 
					@ -29,7 +28,7 @@ dwm: ${OBJ}
 | 
				
			||||||
	@${CC} -o $@ ${OBJ} ${LDFLAGS}
 | 
						@${CC} -o $@ ${OBJ} ${LDFLAGS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	rm -f dwm *.o core dwm-${VERSION}.tar.gz
 | 
						rm -f dwm *.o dwm-${VERSION}.tar.gz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dist: clean
 | 
					dist: clean
 | 
				
			||||||
	mkdir -p dwm-${VERSION}
 | 
						mkdir -p dwm-${VERSION}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										17
									
								
								README
								
								
								
								
							
							
						
						
									
										17
									
								
								README
								
								
								
								
							| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
dwm - dynamic window manager
 | 
					dwm - dynamic window manager
 | 
				
			||||||
----------------------------
 | 
					----------------------------
 | 
				
			||||||
dwm is an extremly fast, small, and dynamic X11 window manager.
 | 
					dwm is an extremely fast, small, and dynamic X11 window manager.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Requirements
 | 
					Requirements
 | 
				
			||||||
| 
						 | 
					@ -10,8 +10,8 @@ In order to build dwm you need the Xlib header files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Installation
 | 
					Installation
 | 
				
			||||||
------------
 | 
					------------
 | 
				
			||||||
Edit config.mk to match your local setup. dwm is installed into
 | 
					Edit config.mk to match your local setup (dwm is installed into
 | 
				
			||||||
the /usr/local namespace by default.
 | 
					the /usr/local namespace by default).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Afterwards enter the following command to build and install dwm (if
 | 
					Afterwards enter the following command to build and install dwm (if
 | 
				
			||||||
necessary as root):
 | 
					necessary as root):
 | 
				
			||||||
| 
						 | 
					@ -35,16 +35,17 @@ This will start dwm on display :1 of the host foo.bar.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Displaying status info
 | 
					Displaying status info
 | 
				
			||||||
----------------------
 | 
					----------------------
 | 
				
			||||||
In order to display status info in the bar, you can do following
 | 
					In order to display status info in the bar, you can do something
 | 
				
			||||||
in .xinitrc:
 | 
					like this in your .xinitrc:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    while true
 | 
					    while true
 | 
				
			||||||
    do
 | 
					    do
 | 
				
			||||||
        echo `date` `uptime | sed 's/.*://; s/,//g'`
 | 
					        echo `date` `uptime | sed 's/.*://; s/,//g'`
 | 
				
			||||||
        sleep 2
 | 
					        sleep 1
 | 
				
			||||||
    done | dwm
 | 
					    done | dwm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Configuration
 | 
					Configuration
 | 
				
			||||||
-------------
 | 
					-------------
 | 
				
			||||||
The configuration of dwm is done by customizing source code,
 | 
					The configuration of dwm is done by customizing its source code
 | 
				
			||||||
grep for CUSTOMIZE keyword.
 | 
					(grep for the CUSTOMIZE keyword).
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								client.c
								
								
								
								
							
							
						
						
									
										6
									
								
								client.c
								
								
								
								
							| 
						 | 
					@ -244,11 +244,11 @@ manage(Window w, XWindowAttributes *wa)
 | 
				
			||||||
	c->next = clients;
 | 
						c->next = clients;
 | 
				
			||||||
	clients = c;
 | 
						clients = c;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonPressMask,
 | 
						XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonMask,
 | 
				
			||||||
			GrabModeAsync, GrabModeSync, None, None);
 | 
								GrabModeAsync, GrabModeSync, None, None);
 | 
				
			||||||
	XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonPressMask,
 | 
						XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonMask,
 | 
				
			||||||
			GrabModeAsync, GrabModeSync, None, None);
 | 
								GrabModeAsync, GrabModeSync, None, None);
 | 
				
			||||||
	XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonPressMask,
 | 
						XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonMask,
 | 
				
			||||||
			GrabModeAsync, GrabModeSync, None, None);
 | 
								GrabModeAsync, GrabModeSync, None, None);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(!c->isfloat)
 | 
						if(!c->isfloat)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								config.mk
								
								
								
								
							
							
						
						
									
										24
									
								
								config.mk
								
								
								
								
							| 
						 | 
					@ -7,24 +7,18 @@ MANPREFIX = ${PREFIX}/share/man
 | 
				
			||||||
X11INC = /usr/X11R6/include
 | 
					X11INC = /usr/X11R6/include
 | 
				
			||||||
X11LIB = /usr/X11R6/lib
 | 
					X11LIB = /usr/X11R6/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VERSION = 0.5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# includes and libs
 | 
					# includes and libs
 | 
				
			||||||
LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
 | 
					INCS = -I/usr/lib -I${X11INC}
 | 
				
			||||||
 | 
					LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Linux/BSD
 | 
					# flags
 | 
				
			||||||
CFLAGS = -O3 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
 | 
					CFLAGS = -O3 ${INCS} -DVERSION=\"${VERSION}\"
 | 
				
			||||||
	-DVERSION=\"${VERSION}\"
 | 
					 | 
				
			||||||
LDFLAGS = ${LIBS}
 | 
					LDFLAGS = ${LIBS}
 | 
				
			||||||
#CFLAGS = -g -Wall -O2 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
 | 
					#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
 | 
				
			||||||
#	-DVERSION=\"${VERSION}\"
 | 
					 | 
				
			||||||
#LDFLAGS = -g ${LIBS}
 | 
					#LDFLAGS = -g ${LIBS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# compiler
 | 
				
			||||||
# Solaris
 | 
					 | 
				
			||||||
#CFLAGS = -fast -xtarget=ultra ${INCLUDES} -DVERSION=\"${VERSION}\"
 | 
					 | 
				
			||||||
#LIBS += -lnsl -lsocket
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AR = ar cr
 | 
					 | 
				
			||||||
CC = cc
 | 
					CC = cc
 | 
				
			||||||
RANLIB = ranlib
 | 
					
 | 
				
			||||||
 | 
					# dwm version
 | 
				
			||||||
 | 
					VERSION = 0.6
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										24
									
								
								dwm.1
								
								
								
								
							
							
						
						
									
										24
									
								
								dwm.1
								
								
								
								
							| 
						 | 
					@ -21,7 +21,7 @@ time. But each window may contain more than one tag, which makes it visible in
 | 
				
			||||||
several views.
 | 
					several views.
 | 
				
			||||||
.P
 | 
					.P
 | 
				
			||||||
.B dwm
 | 
					.B dwm
 | 
				
			||||||
consists of a small status bar which reads the text displayed from standard
 | 
					has a small status bar which reads the text displayed from standard
 | 
				
			||||||
input, if written. It draws 1-pixel borders around windows to indicate the
 | 
					input, if written. It draws 1-pixel borders around windows to indicate the
 | 
				
			||||||
focus state. Unfocused windows contain a small bar in front of the window
 | 
					focus state. Unfocused windows contain a small bar in front of the window
 | 
				
			||||||
displaying the tags and the window title.
 | 
					displaying the tags and the window title.
 | 
				
			||||||
| 
						 | 
					@ -56,14 +56,12 @@ Focus
 | 
				
			||||||
tag
 | 
					tag
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Mod1-space
 | 
					.B Mod1-space
 | 
				
			||||||
(Re-)arrange
 | 
					Toggle between
 | 
				
			||||||
.B all
 | 
					.B tiled
 | 
				
			||||||
windows tiled
 | 
					and
 | 
				
			||||||
.TP
 | 
					.B floating
 | 
				
			||||||
.B Mod1-Shift-space
 | 
					mode (affects
 | 
				
			||||||
(Re-)arrange
 | 
					.BR "all windows" )
 | 
				
			||||||
.B all
 | 
					 | 
				
			||||||
windows floating
 | 
					 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Mod1-Shift-[0..n]
 | 
					.B Mod1-Shift-[0..n]
 | 
				
			||||||
Apply
 | 
					Apply
 | 
				
			||||||
| 
						 | 
					@ -79,14 +77,6 @@ Quit
 | 
				
			||||||
Start
 | 
					Start
 | 
				
			||||||
.B terminal
 | 
					.B terminal
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Mod1-Shift-w
 | 
					 | 
				
			||||||
Start
 | 
					 | 
				
			||||||
.B web browser
 | 
					 | 
				
			||||||
.TP
 | 
					 | 
				
			||||||
.B Mod1-Shift-l
 | 
					 | 
				
			||||||
Lock
 | 
					 | 
				
			||||||
.B screen
 | 
					 | 
				
			||||||
.TP
 | 
					 | 
				
			||||||
.B Mod1-Control-[0..n]
 | 
					.B Mod1-Control-[0..n]
 | 
				
			||||||
Append
 | 
					Append
 | 
				
			||||||
.B nth
 | 
					.B nth
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								dwm.h
								
								
								
								
							
							
						
						
									
										8
									
								
								dwm.h
								
								
								
								
							| 
						 | 
					@ -25,9 +25,12 @@ enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* END CUSTOMIZE */
 | 
					/* END CUSTOMIZE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* mask shorthands, used in event.c and client.c */
 | 
				
			||||||
 | 
					#define ButtonMask	(ButtonPressMask | ButtonReleaseMask)
 | 
				
			||||||
 | 
					#define MouseMask	(ButtonMask | PointerMotionMask)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef union Arg Arg;
 | 
					typedef union Arg Arg;
 | 
				
			||||||
typedef struct Client Client;
 | 
					typedef struct Client Client;
 | 
				
			||||||
typedef enum Corner Corner;
 | 
					 | 
				
			||||||
typedef struct DC DC;
 | 
					typedef struct DC DC;
 | 
				
			||||||
typedef struct Fnt Fnt;
 | 
					typedef struct Fnt Fnt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,7 +46,8 @@ enum { WMProtocols, WMDelete, WMLast };
 | 
				
			||||||
/* cursor */
 | 
					/* cursor */
 | 
				
			||||||
enum { CurNormal, CurResize, CurMove, CurLast };
 | 
					enum { CurNormal, CurResize, CurMove, CurLast };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum Corner { TopLeft, TopRight, BotLeft, BotRight };
 | 
					/* windowcorners */
 | 
				
			||||||
 | 
					typedef enum { TopLeft, TopRight, BotLeft, BotRight } Corner;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct Fnt {
 | 
					struct Fnt {
 | 
				
			||||||
	int ascent;
 | 
						int ascent;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										14
									
								
								event.c
								
								
								
								
							
							
						
						
									
										14
									
								
								event.c
								
								
								
								
							| 
						 | 
					@ -8,9 +8,6 @@
 | 
				
			||||||
#include <X11/keysym.h>
 | 
					#include <X11/keysym.h>
 | 
				
			||||||
#include <X11/Xatom.h>
 | 
					#include <X11/Xatom.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ButtonMask      (ButtonPressMask | ButtonReleaseMask)
 | 
					 | 
				
			||||||
#define MouseMask       (ButtonMask | PointerMotionMask)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* CUSTOMIZE */
 | 
					/* CUSTOMIZE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
| 
						 | 
					@ -20,17 +17,13 @@ typedef struct {
 | 
				
			||||||
	Arg arg;
 | 
						Arg arg;
 | 
				
			||||||
} Key;
 | 
					} Key;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
const char *browse[] = { "firefox", NULL };
 | 
					const char *browse[] = { "firefox", NULL };
 | 
				
			||||||
const char *gimp[] = { "gimp", NULL };
 | 
					const char *gimp[] = { "gimp", NULL };
 | 
				
			||||||
*/
 | 
					const char *term[] = { /*"xterm", NULL };*/
 | 
				
			||||||
const char *term[] = { "xterm", NULL };
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
	"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
 | 
						"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
 | 
				
			||||||
	"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
 | 
						"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
const char *xlock[] = { "xlock", NULL };
 | 
					const char *xlock[] = { "xlock", NULL };
 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Key key[] = {
 | 
					static Key key[] = {
 | 
				
			||||||
	/* modifier		key		function	arguments */
 | 
						/* modifier		key		function	arguments */
 | 
				
			||||||
| 
						 | 
					@ -57,11 +50,9 @@ static Key key[] = {
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } }, 
 | 
						{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } }, 
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_q,		quit,		{ 0 } },
 | 
						{ MODKEY|ShiftMask,	XK_q,		quit,		{ 0 } },
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },
 | 
						{ MODKEY|ShiftMask,	XK_Return,	spawn,		{ .argv = term } },
 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } },
 | 
						{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } },
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
 | 
						{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } },
 | 
				
			||||||
	{ MODKEY|ShiftMask,	XK_w,		spawn,		{ .argv = browse } },
 | 
						{ MODKEY|ShiftMask,	XK_w,		spawn,		{ .argv = browse } },
 | 
				
			||||||
	*/
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* END CUSTOMIZE */
 | 
					/* END CUSTOMIZE */
 | 
				
			||||||
| 
						 | 
					@ -172,6 +163,7 @@ buttonpress(XEvent *e)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else if((c = getclient(ev->window))) {
 | 
						else if((c = getclient(ev->window))) {
 | 
				
			||||||
 | 
							focus(c);
 | 
				
			||||||
		switch(ev->button) {
 | 
							switch(ev->button) {
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
| 
						 | 
					@ -247,7 +239,7 @@ enternotify(XEvent *e)
 | 
				
			||||||
	Client *c;
 | 
						Client *c;
 | 
				
			||||||
	XCrossingEvent *ev = &e->xcrossing;
 | 
						XCrossingEvent *ev = &e->xcrossing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
 | 
						if(ev->detail == NotifyInferior)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if((c = getclient(ev->window)))
 | 
						if((c = getclient(ev->window)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								tag.c
								
								
								
								
							
							
						
						
									
										4
									
								
								tag.c
								
								
								
								
							| 
						 | 
					@ -67,6 +67,8 @@ dofloat(Arg *arg)
 | 
				
			||||||
			higher(sel);
 | 
								higher(sel);
 | 
				
			||||||
			focus(sel);
 | 
								focus(sel);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	drawall();
 | 
						drawall();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -130,6 +132,8 @@ dotile(Arg *arg)
 | 
				
			||||||
			higher(sel);
 | 
								higher(sel);
 | 
				
			||||||
			focus(sel);
 | 
								focus(sel);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	drawall();
 | 
						drawall();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue