applied Sanders patches

master
arg@10ksloc.org 2006-08-01 12:32:33 +02:00
parent 937cabfa0a
commit 7b5638f61d
8 changed files with 42 additions and 58 deletions

View File

@ -13,7 +13,6 @@ all: options dwm
options:
@echo dwm build options:
@echo "LIBS = ${LIBS}"
@echo "CFLAGS = ${CFLAGS}"
@echo "LDFLAGS = ${LDFLAGS}"
@echo "CC = ${CC}"
@ -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}

17
README
View File

@ -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 @@ 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):
@ -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).

View File

@ -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)

View File

@ -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

24
dwm.1
View File

@ -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 @@ 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
@ -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

8
dwm.h
View File

@ -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 @@ 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;

14
event.c
View File

@ -8,9 +8,6 @@
#include <X11/keysym.h>
#include <X11/Xatom.h>
#define ButtonMask (ButtonPressMask | ButtonReleaseMask)
#define MouseMask (ButtonMask | PointerMotionMask)
/* CUSTOMIZE */
typedef struct {
@ -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 arguments */
@ -57,11 +50,9 @@ static Key key[] = {
{ 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 @@ buttonpress(XEvent *e)
}
}
else if((c = getclient(ev->window))) {
focus(c);
switch(ev->button) {
default:
break;
@ -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)))

4
tag.c
View File

@ -67,6 +67,8 @@ dofloat(Arg *arg)
higher(sel);
focus(sel);
}
else
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
}
drawall();
}
@ -130,6 +132,8 @@ dotile(Arg *arg)
higher(sel);
focus(sel);
}
else
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
}
drawall();
}