| tapplied Sanders patches - dwm - [fork] customized build of dwm, the dynamic wi… | |
| git clone git://src.adamsgaard.dk/dwm | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 7b5638f61d5c8b5a76bc3f7a5962cb7490da3b6b | |
| parent 937cabfa0aad7eef6d25e9d142a478163de200c5 | |
| Author: [email protected] <unknown> | |
| Date: Tue, 1 Aug 2006 12:32:33 +0200 | |
| applied Sanders patches | |
| Diffstat: | |
| M Makefile | 3 +-- | |
| M README | 17 +++++++++-------- | |
| M client.c | 6 +++--- | |
| M config.mk | 24 +++++++++--------------- | |
| M dwm.1 | 24 +++++++----------------- | |
| M dwm.h | 8 ++++++-- | |
| M event.c | 14 +++----------- | |
| M tag.c | 4 ++++ | |
| 8 files changed, 42 insertions(+), 58 deletions(-) | |
| --- | |
| diff --git a/Makefile b/Makefile | |
| t@@ -13,7 +13,6 @@ all: options dwm | |
| options: | |
| @echo dwm build options: | |
| - @echo "LIBS = ${LIBS}" | |
| @echo "CFLAGS = ${CFLAGS}" | |
| @echo "LDFLAGS = ${LDFLAGS}" | |
| @echo "CC = ${CC}" | |
| t@@ -29,7 +28,7 @@ dwm: ${OBJ} | |
| @${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} | |
| diff --git a/README b/README | |
| t@@ -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 | |
| t@@ -10,8 +10,8 @@ In order to build dwm you need the Xlib header files. | |
| 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): | |
| t@@ -35,16 +35,17 @@ This will start dwm on display :1 of the host foo.bar. | |
| 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). | |
| diff --git a/client.c b/client.c | |
| t@@ -244,11 +244,11 @@ manage(Window w, XWindowAttributes *wa) | |
| 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) | |
| diff --git a/config.mk b/config.mk | |
| t@@ -7,24 +7,18 @@ MANPREFIX = ${PREFIX}/share/man | |
| 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 | |
| diff --git a/dwm.1 b/dwm.1 | |
| t@@ -21,7 +21,7 @@ time. But each window may contain more than one tag, which m… | |
| 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. | |
| t@@ -56,14 +56,12 @@ Focus | |
| 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 | |
| t@@ -79,14 +77,6 @@ Quit | |
| 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 | |
| .B nth | |
| diff --git a/dwm.h b/dwm.h | |
| t@@ -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; | |
| t@@ -43,7 +46,8 @@ enum { WMProtocols, WMDelete, WMLast }; | |
| /* cursor */ | |
| enum { CurNormal, CurResize, CurMove, CurLast }; | |
| -enum Corner { TopLeft, TopRight, BotLeft, BotRight }; | |
| +/* windowcorners */ | |
| +typedef enum { TopLeft, TopRight, BotLeft, BotRight } Corner; | |
| struct Fnt { | |
| int ascent; | |
| diff --git a/event.c b/event.c | |
| t@@ -8,9 +8,6 @@ | |
| #include <X11/keysym.h> | |
| #include <X11/Xatom.h> | |
| -#define ButtonMask (ButtonPressMask | ButtonReleaseMask) | |
| -#define MouseMask (ButtonMask | PointerMotionMask) | |
| - | |
| /* CUSTOMIZE */ | |
| typedef struct { | |
| t@@ -20,17 +17,13 @@ typedef struct { | |
| 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 argument… | |
| t@@ -57,11 +50,9 @@ static Key key[] = { | |
| { MODKEY|ShiftMask, XK_c, killclient, { 0… | |
| { MODKEY|ShiftMask, XK_q, quit, {… | |
| { MODKEY|ShiftMask, XK_Return, spawn, { .… | |
| - /* | |
| { MODKEY|ShiftMask, XK_g, spawn, … | |
| { MODKEY|ShiftMask, XK_l, spawn, … | |
| { MODKEY|ShiftMask, XK_w, spawn, … | |
| - */ | |
| }; | |
| /* END CUSTOMIZE */ | |
| t@@ -172,6 +163,7 @@ buttonpress(XEvent *e) | |
| } | |
| } | |
| else if((c = getclient(ev->window))) { | |
| + focus(c); | |
| switch(ev->button) { | |
| default: | |
| break; | |
| t@@ -247,7 +239,7 @@ enternotify(XEvent *e) | |
| Client *c; | |
| XCrossingEvent *ev = &e->xcrossing; | |
| - if(ev->mode != NotifyNormal || ev->detail == NotifyInferior) | |
| + if(ev->detail == NotifyInferior) | |
| return; | |
| if((c = getclient(ev->window))) | |
| diff --git a/tag.c b/tag.c | |
| t@@ -67,6 +67,8 @@ dofloat(Arg *arg) | |
| higher(sel); | |
| focus(sel); | |
| } | |
| + else | |
| + XSetInputFocus(dpy, root, RevertToPointerRoot, Current… | |
| } | |
| drawall(); | |
| } | |
| t@@ -130,6 +132,8 @@ dotile(Arg *arg) | |
| higher(sel); | |
| focus(sel); | |
| } | |
| + else | |
| + XSetInputFocus(dpy, root, RevertToPointerRoot, Current… | |
| } | |
| drawall(); | |
| } |