applied Sanders patches (numlock2)
authorarg@10ksloc.org
Wed, 02 Aug 2006 11:13:32 +0200
changeset 160 c8db0a825775
parent 159 a5eab6aaf859
child 161 f381e34158d9
applied Sanders patches (numlock2)
config.arg.h
config.h
config.mk
dwm.1
event.c
--- a/config.arg.h	Wed Aug 02 10:48:58 2006 +0200
+++ b/config.arg.h	Wed Aug 02 11:13:32 2006 +0200
@@ -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 @@
 #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 @@
 	[Twork] = "work", \
 	[Tmisc] = "misc", \
 };
+#define DEFTAG			Tdev
 
 #define KEYS \
 	const char *browse[] = { "firefox", NULL }; \
--- a/config.h	Wed Aug 02 10:48:58 2006 +0200
+++ b/config.h	Wed Aug 02 11:13:32 2006 +0200
@@ -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 @@
 #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 @@
 	[Twork] = "work", \
 	[Tmisc] = "misc", \
 };
+#define DEFTAG			Tdev
 
 #define KEYS \
 	const char *term[] = { "xterm", NULL }; \
--- a/config.mk	Wed Aug 02 10:48:58 2006 +0200
+++ b/config.mk	Wed Aug 02 11:13:32 2006 +0200
@@ -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 @@
 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}
--- a/dwm.1	Wed Aug 02 10:48:58 2006 +0200
+++ b/dwm.1	Wed Aug 02 11:13:32 2006 +0200
@@ -38,13 +38,21 @@
 .B master
 column
 .TP
+.B Mod1-h
+Focus previous
+.B tag
+.TP
+.B Mod1-j
+Focus next
+.B window
+.TP
 .B Mod1-k
 Focus previous
 .B window
 .TP
-.B Mod1-j
+.B Mod1-l
 Focus next
-.B window
+.B tag
 .TP
 .B Mod1-m
 Maximize current
@@ -52,8 +60,7 @@
 .TP
 .B Mod1-[0..n]
 Focus
-.B nth
-tag
+.B nth tag
 .TP
 .B Mod1-space
 Toggle between
@@ -65,8 +72,8 @@
 .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 @@
 .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 @@
 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.
--- a/event.c	Wed Aug 02 10:48:58 2006 +0200
+++ b/event.c	Wed Aug 02 11:13:32 2006 +0200
@@ -19,7 +19,7 @@
 
 KEYS
 
-static unsigned int valid_mask =  255 &  ~(NUMLOCKMASK | LockMask);
+#define CLEANMASK(mask) (mask & ~(NUMLOCKMASK | LockMask))
 
 static void
 movemouse(Client *c)
@@ -229,11 +229,11 @@
 	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 @@
 
 	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);
 	}