applied Sanders patches (numlock2)
3af64340
5 file(s) · +40 −26
| 3 | 3 | * See LICENSE file for license details. |
|
| 4 | 4 | */ |
|
| 5 | 5 | ||
| 6 | - | enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; |
|
| 7 | 6 | #define DEFMODE dotile /* dofloat */ |
|
| 8 | - | #define DEFTAG Tdev |
|
| 9 | 7 | #define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" |
|
| 10 | 8 | #define BGCOLOR "#0a2c2d" |
|
| 11 | 9 | #define FGCOLOR "#ddeeee" |
|
| 14 | 12 | #define NUMLOCKMASK Mod2Mask |
|
| 15 | 13 | #define MASTERW 52 /* percent */ |
|
| 16 | 14 | ||
| 15 | + | enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; |
|
| 17 | 16 | #define TAGS \ |
|
| 18 | 17 | char *tags[TLast] = { \ |
|
| 19 | 18 | [Tfnord] = "fnord", \ |
|
| 22 | 21 | [Twork] = "work", \ |
|
| 23 | 22 | [Tmisc] = "misc", \ |
|
| 24 | 23 | }; |
|
| 24 | + | #define DEFTAG Tdev |
|
| 25 | 25 | ||
| 26 | 26 | #define KEYS \ |
|
| 27 | 27 | const char *browse[] = { "firefox", NULL }; \ |
|
| 3 | 3 | * See LICENSE file for license details. |
|
| 4 | 4 | */ |
|
| 5 | 5 | ||
| 6 | - | enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; |
|
| 7 | 6 | #define DEFMODE dotile /* dofloat */ |
|
| 8 | - | #define DEFTAG Tdev |
|
| 9 | 7 | #define FONT "fixed" |
|
| 10 | 8 | #define BGCOLOR "#666699" |
|
| 11 | 9 | #define FGCOLOR "#eeeeee" |
|
| 14 | 12 | #define NUMLOCKMASK Mod2Mask |
|
| 15 | 13 | #define MASTERW 52 /* percent */ |
|
| 16 | 14 | ||
| 15 | + | enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast }; |
|
| 17 | 16 | #define TAGS \ |
|
| 18 | 17 | char *tags[TLast] = { \ |
|
| 19 | 18 | [Tfnord] = "fnord", \ |
|
| 22 | 21 | [Twork] = "work", \ |
|
| 23 | 22 | [Tmisc] = "misc", \ |
|
| 24 | 23 | }; |
|
| 24 | + | #define DEFTAG Tdev |
|
| 25 | 25 | ||
| 26 | 26 | #define KEYS \ |
|
| 27 | 27 | const char *term[] = { "xterm", NULL }; \ |
|
| 1 | - | # Customize to fit your system |
|
| 1 | + | # dwm version |
|
| 2 | + | VERSION = 0.6 |
|
| 3 | + | ||
| 4 | + | # Customize below to fit your system |
|
| 5 | + | ||
| 6 | + | # configheader |
|
| 7 | + | CONFIG = config.h |
|
| 2 | 8 | ||
| 3 | 9 | # paths |
|
| 4 | 10 | PREFIX = /usr/local |
|
| 10 | 16 | # includes and libs |
|
| 11 | 17 | INCS = -I/usr/lib -I${X11INC} |
|
| 12 | 18 | LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 |
|
| 13 | - | ||
| 14 | - | # dwm version |
|
| 15 | - | VERSION = 0.6 |
|
| 16 | - | ||
| 17 | - | # default config.h |
|
| 18 | - | CONFIG = config.h |
|
| 19 | 19 | ||
| 20 | 20 | # flags |
|
| 21 | 21 | CFLAGS = -O3 ${INCS} -DVERSION=\"${VERSION}\" -DCONFIG=\"${CONFIG}\" |
|
| 38 | 38 | .B master |
|
| 39 | 39 | column |
|
| 40 | 40 | .TP |
|
| 41 | - | .B Mod1-k |
|
| 41 | + | .B Mod1-h |
|
| 42 | 42 | Focus previous |
|
| 43 | - | .B window |
|
| 43 | + | .B tag |
|
| 44 | 44 | .TP |
|
| 45 | 45 | .B Mod1-j |
|
| 46 | 46 | Focus next |
|
| 47 | 47 | .B window |
|
| 48 | 48 | .TP |
|
| 49 | + | .B Mod1-k |
|
| 50 | + | Focus previous |
|
| 51 | + | .B window |
|
| 52 | + | .TP |
|
| 53 | + | .B Mod1-l |
|
| 54 | + | Focus next |
|
| 55 | + | .B tag |
|
| 56 | + | .TP |
|
| 49 | 57 | .B Mod1-m |
|
| 50 | 58 | Maximize current |
|
| 51 | 59 | .B window |
|
| 52 | 60 | .TP |
|
| 53 | 61 | .B Mod1-[0..n] |
|
| 54 | 62 | Focus |
|
| 55 | - | .B nth |
|
| 56 | - | tag |
|
| 63 | + | .B nth tag |
|
| 57 | 64 | .TP |
|
| 58 | 65 | .B Mod1-space |
|
| 59 | 66 | Toggle between |
|
| 65 | 72 | .TP |
|
| 66 | 73 | .B Mod1-Shift-[0..n] |
|
| 67 | 74 | Apply |
|
| 68 | - | .B nth |
|
| 69 | - | tag to current |
|
| 75 | + | .B nth tag |
|
| 76 | + | to current |
|
| 70 | 77 | .B window |
|
| 71 | 78 | .TP |
|
| 72 | 79 | .B Mod1-Shift-q |
|
| 79 | 86 | .TP |
|
| 80 | 87 | .B Mod1-Control-[0..n] |
|
| 81 | 88 | Append |
|
| 82 | - | .B nth |
|
| 83 | - | tag to current |
|
| 89 | + | .B nth tag |
|
| 90 | + | to current |
|
| 84 | 91 | .B window |
|
| 85 | 92 | .TP |
|
| 86 | 93 | .B Mod1-Button1 |
|
| 98 | 105 | while dragging |
|
| 99 | 106 | .SH CUSTOMIZATION |
|
| 100 | 107 | .B dwm |
|
| 101 | - | is customized through editing config.h of the source code. This keeps it fast, |
|
| 102 | - | secure and simple. |
|
| 108 | + | is customized by editing the file config.h of the source code. |
|
| 109 | + | This keeps it fast, secure and simple. |
|
| 19 | 19 | ||
| 20 | 20 | KEYS |
|
| 21 | 21 | ||
| 22 | - | static unsigned int valid_mask = 255 & ~(NUMLOCKMASK | LockMask); |
|
| 22 | + | #define CLEANMASK(mask) (mask & ~(NUMLOCKMASK | LockMask)) |
|
| 23 | 23 | ||
| 24 | 24 | static void |
|
| 25 | 25 | movemouse(Client *c) |
|
| 229 | 229 | unsigned int i; |
|
| 230 | 230 | KeySym keysym; |
|
| 231 | 231 | XKeyEvent *ev = &e->xkey; |
|
| 232 | - | ev->state &= valid_mask; |
|
| 233 | 232 | ||
| 234 | 233 | keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); |
|
| 235 | 234 | for(i = 0; i < len; i++) |
|
| 236 | - | if((keysym == key[i].keysym) && ((key[i].mod & valid_mask) == ev->state)) { |
|
| 235 | + | if(keysym == key[i].keysym && |
|
| 236 | + | CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) { |
|
| 237 | 237 | if(key[i].func) |
|
| 238 | 238 | key[i].func(&key[i].arg); |
|
| 239 | 239 | return; |
|
| 335 | 335 | ||
| 336 | 336 | for(i = 0; i < len; i++) { |
|
| 337 | 337 | code = XKeysymToKeycode(dpy, key[i].keysym); |
|
| 338 | + | /* normal */ |
|
| 338 | 339 | XUngrabKey(dpy, code, key[i].mod, root); |
|
| 339 | - | XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root); |
|
| 340 | - | XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root); |
|
| 341 | 340 | XGrabKey(dpy, code, key[i].mod, root, True, |
|
| 342 | 341 | GrabModeAsync, GrabModeAsync); |
|
| 342 | + | /* capslock */ |
|
| 343 | + | XUngrabKey(dpy, code, key[i].mod | LockMask, root); |
|
| 344 | + | XGrabKey(dpy, code, key[i].mod | LockMask, root, True, |
|
| 345 | + | GrabModeAsync, GrabModeAsync); |
|
| 346 | + | /* numlock */ |
|
| 347 | + | XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root); |
|
| 343 | 348 | XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True, |
|
| 344 | 349 | GrabModeAsync, GrabModeAsync); |
|
| 350 | + | /* capslock & numlock */ |
|
| 351 | + | XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root); |
|
| 345 | 352 | XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True, |
|
| 346 | 353 | GrabModeAsync, GrabModeAsync); |
|
| 347 | 354 | } |
|