JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
applied Sanders patches (numlock2)
authorarg@10ksloc.org <unknown>
Wed, 2 Aug 2006 09:13:32 +0000 (11:13 +0200)
committerarg@10ksloc.org <unknown>
Wed, 2 Aug 2006 09:13:32 +0000 (11:13 +0200)
config.arg.h
config.h
config.mk
dwm.1
event.c

index f87489b..80d4918 100644 (file)
@@ -3,9 +3,7 @@
  * See LICENSE file for license details.
  */
 
-enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 #define DEFMODE                        dotile /* dofloat */
-#define DEFTAG                 Tdev
 #define FONT                   "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
 #define BGCOLOR                        "#0a2c2d"
 #define FGCOLOR                        "#ddeeee"
@@ -14,6 +12,7 @@ enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 #define NUMLOCKMASK            Mod2Mask
 #define MASTERW                        52 /* percent */
 
+enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 #define TAGS \
 char *tags[TLast] = { \
        [Tfnord] = "fnord", \
@@ -22,6 +21,7 @@ char *tags[TLast] = { \
        [Twork] = "work", \
        [Tmisc] = "misc", \
 };
+#define DEFTAG                 Tdev
 
 #define KEYS \
        const char *browse[] = { "firefox", NULL }; \
index ac7bdac..d9070e3 100644 (file)
--- a/config.h
+++ b/config.h
@@ -3,9 +3,7 @@
  * See LICENSE file for license details.
  */
 
-enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 #define DEFMODE                        dotile /* dofloat */
-#define DEFTAG                 Tdev
 #define FONT                   "fixed"
 #define BGCOLOR                        "#666699"
 #define FGCOLOR                        "#eeeeee"
@@ -14,6 +12,7 @@ enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 #define NUMLOCKMASK            Mod2Mask
 #define MASTERW                        52 /* percent */
 
+enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 #define TAGS \
 char *tags[TLast] = { \
        [Tfnord] = "fnord", \
@@ -22,6 +21,7 @@ char *tags[TLast] = { \
        [Twork] = "work", \
        [Tmisc] = "misc", \
 };
+#define DEFTAG                 Tdev
 
 #define KEYS \
        const char *term[] = { "xterm", NULL }; \
index b3c8cf7..4772ff0 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -1,4 +1,10 @@
-# Customize to fit your system
+# dwm version
+VERSION = 0.6
+
+# Customize below to fit your system
+
+# configheader
+CONFIG = config.h
 
 # paths
 PREFIX = /usr/local
@@ -11,12 +17,6 @@ X11LIB = /usr/X11R6/lib
 INCS = -I/usr/lib -I${X11INC}
 LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
 
-# dwm version
-VERSION = 0.6
-
-# default config.h
-CONFIG = config.h
-
 # flags
 CFLAGS = -O3 ${INCS} -DVERSION=\"${VERSION}\" -DCONFIG=\"${CONFIG}\"
 LDFLAGS = ${LIBS}
diff --git a/dwm.1 b/dwm.1
index 14e3209..670a53b 100644 (file)
--- a/dwm.1
+++ b/dwm.1
@@ -38,22 +38,29 @@ to the
 .B master
 column
 .TP
-.B Mod1-k
+.B Mod1-h
 Focus previous
-.B window
+.B tag
 .TP
 .B Mod1-j
 Focus next
 .B window
 .TP
+.B Mod1-k
+Focus previous
+.B window
+.TP
+.B Mod1-l
+Focus next
+.B tag
+.TP
 .B Mod1-m
 Maximize current
 .B window
 .TP
 .B Mod1-[0..n]
 Focus
-.B nth
-tag
+.B nth tag
 .TP
 .B Mod1-space
 Toggle between
@@ -65,8 +72,8 @@ mode (affects
 .TP
 .B Mod1-Shift-[0..n]
 Apply
-.B nth
-tag to current
+.B nth tag
+to current
 .B window
 .TP
 .B Mod1-Shift-q
@@ -79,8 +86,8 @@ Start
 .TP
 .B Mod1-Control-[0..n]
 Append
-.B nth
-tag to current
+.B nth tag
+to current
 .B window
 .TP
 .B Mod1-Button1
@@ -98,5 +105,5 @@ Resizes current
 while dragging
 .SH CUSTOMIZATION
 .B dwm
-is customized through editing config.h of the source code.  This keeps it fast,
-secure and simple.
+is customized by editing the file config.h of the source code.
+This keeps it fast, secure and simple.
diff --git a/event.c b/event.c
index 1aed904..0359971 100644 (file)
--- a/event.c
+++ b/event.c
@@ -19,7 +19,7 @@ typedef struct {
 
 KEYS
 
-static unsigned int valid_mask =  255 &  ~(NUMLOCKMASK | LockMask);
+#define CLEANMASK(mask) (mask & ~(NUMLOCKMASK | LockMask))
 
 static void
 movemouse(Client *c)
@@ -229,11 +229,11 @@ keypress(XEvent *e)
        unsigned int i;
        KeySym keysym;
        XKeyEvent *ev = &e->xkey;
-       ev->state &= valid_mask;
 
        keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
        for(i = 0; i < len; i++)
-               if((keysym == key[i].keysym) && ((key[i].mod & valid_mask) == ev->state)) {
+               if(keysym == key[i].keysym &&
+                               CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) {
                        if(key[i].func)
                                key[i].func(&key[i].arg);
                        return;
@@ -335,13 +335,20 @@ grabkeys()
 
        for(i = 0; i < len; i++) {
                code = XKeysymToKeycode(dpy, key[i].keysym);
+               /* normal */
                XUngrabKey(dpy, code, key[i].mod, root);
-               XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root);
-               XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root);
                XGrabKey(dpy, code, key[i].mod, root, True,
                                GrabModeAsync, GrabModeAsync);
+               /* capslock */
+               XUngrabKey(dpy, code, key[i].mod | LockMask, root);
+               XGrabKey(dpy, code, key[i].mod | LockMask, root, True,
+                               GrabModeAsync, GrabModeAsync);
+               /* numlock */
+               XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root);
                XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True,
                                GrabModeAsync, GrabModeAsync);
+               /* capslock & numlock */
+               XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root);
                XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True,
                                GrabModeAsync, GrabModeAsync);
        }