applied Sanders patches
arg@10ksloc.org unknown
Tue, 01 Aug 2006 12:32:33 +0200
M
Makefile
→
Makefile
@@ -13,7 +13,6 @@ @echo finished
options: @echo dwm build options: - @echo "LIBS = ${LIBS}" @echo "CFLAGS = ${CFLAGS}" @echo "LDFLAGS = ${LDFLAGS}" @echo "CC = ${CC}"@@ -29,7 +28,7 @@ @echo LD $@
@${CC} -o $@ ${OBJ} ${LDFLAGS} clean: - rm -f dwm *.o core dwm-${VERSION}.tar.gz + rm -f dwm *.o dwm-${VERSION}.tar.gz dist: clean mkdir -p dwm-${VERSION}
M
README
→
README
@@ -1,6 +1,6 @@
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@@ -10,8 +10,8 @@
Installation ------------ -Edit config.mk to match your local setup. dwm is installed into -the /usr/local namespace by default. +Edit config.mk to match your local setup (dwm is installed into +the /usr/local namespace by default). Afterwards enter the following command to build and install dwm (if necessary as root):@@ -35,16 +35,17 @@
Displaying status info ---------------------- -In order to display status info in the bar, you can do following -in .xinitrc: +In order to display status info in the bar, you can do something +like this in your .xinitrc: while true do echo `date` `uptime | sed 's/.*://; s/,//g'` - sleep 2 + sleep 1 done | dwm + Configuration ------------- -The configuration of dwm is done by customizing source code, -grep for CUSTOMIZE keyword. +The configuration of dwm is done by customizing its source code +(grep for the CUSTOMIZE keyword).
M
client.c
→
client.c
@@ -244,11 +244,11 @@ clients->prev = c;
c->next = clients; clients = c; - XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonMask, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonMask, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonMask, GrabModeAsync, GrabModeSync, None, None); if(!c->isfloat)
M
config.mk
→
config.mk
@@ -7,24 +7,18 @@
X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib -VERSION = 0.5 - # 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 -CFLAGS = -O3 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \ - -DVERSION=\"${VERSION}\" +# flags +CFLAGS = -O3 ${INCS} -DVERSION=\"${VERSION}\" LDFLAGS = ${LIBS} -#CFLAGS = -g -Wall -O2 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \ -# -DVERSION=\"${VERSION}\" +#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" #LDFLAGS = -g ${LIBS} - -# Solaris -#CFLAGS = -fast -xtarget=ultra ${INCLUDES} -DVERSION=\"${VERSION}\" -#LIBS += -lnsl -lsocket - -AR = ar cr +# compiler CC = cc -RANLIB = ranlib + +# dwm version +VERSION = 0.6
M
dwm.1
→
dwm.1
@@ -21,7 +21,7 @@ time. But each window may contain more than one tag, which makes it visible in
several views. .P .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 focus state. Unfocused windows contain a small bar in front of the window displaying the tags and the window title.@@ -56,14 +56,12 @@ .B nth
tag .TP .B Mod1-space -(Re-)arrange -.B all -windows tiled -.TP -.B Mod1-Shift-space -(Re-)arrange -.B all -windows floating +Toggle between +.B tiled +and +.B floating +mode (affects +.BR "all windows" ) .TP .B Mod1-Shift-[0..n] Apply@@ -78,14 +76,6 @@ .TP
.B Mod1-Shift-Return Start .B terminal -.TP -.B Mod1-Shift-w -Start -.B web browser -.TP -.B Mod1-Shift-l -Lock -.B screen .TP .B Mod1-Control-[0..n] Append
M
dwm.h
→
dwm.h
@@ -25,9 +25,12 @@ enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
/* END CUSTOMIZE */ +/* mask shorthands, used in event.c and client.c */ +#define ButtonMask (ButtonPressMask | ButtonReleaseMask) +#define MouseMask (ButtonMask | PointerMotionMask) + typedef union Arg Arg; typedef struct Client Client; -typedef enum Corner Corner; typedef struct DC DC; typedef struct Fnt Fnt;@@ -43,7 +46,8 @@
/* cursor */ enum { CurNormal, CurResize, CurMove, CurLast }; -enum Corner { TopLeft, TopRight, BotLeft, BotRight }; +/* windowcorners */ +typedef enum { TopLeft, TopRight, BotLeft, BotRight } Corner; struct Fnt { int ascent;
M
event.c
→
event.c
@@ -8,9 +8,6 @@ #include <stdlib.h>
#include <X11/keysym.h> #include <X11/Xatom.h> -#define ButtonMask (ButtonPressMask | ButtonReleaseMask) -#define MouseMask (ButtonMask | PointerMotionMask) - /* CUSTOMIZE */ typedef struct {@@ -20,17 +17,13 @@ void (*func)(Arg *arg);
Arg arg; } Key; -/* const char *browse[] = { "firefox", 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", "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL }; const char *xlock[] = { "xlock", NULL }; -*/ static Key key[] = { /* modifier key function arguments */@@ -57,11 +50,9 @@ { MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } },
{ MODKEY|ShiftMask, XK_c, killclient, { 0 } }, { MODKEY|ShiftMask, XK_q, quit, { 0 } }, { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } }, - /* { MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } }, { MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } }, { MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } }, - */ }; /* END CUSTOMIZE */@@ -172,6 +163,7 @@ break;
} } else if((c = getclient(ev->window))) { + focus(c); switch(ev->button) { default: break;@@ -247,7 +239,7 @@ {
Client *c; XCrossingEvent *ev = &e->xcrossing; - if(ev->mode != NotifyNormal || ev->detail == NotifyInferior) + if(ev->detail == NotifyInferior) return; if((c = getclient(ev->window)))
M
tag.c
→
tag.c
@@ -67,6 +67,8 @@ if((sel = getnext(clients))) {
higher(sel); focus(sel); } + else + XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); } drawall(); }@@ -130,6 +132,8 @@ if((sel = getnext(clients))) {
higher(sel); focus(sel); } + else + XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); } drawall(); }