comparison dev.c @ 51:035617ee18d1

new stuff
author Anselm R. Garbe <garbeam@wmii.de>
date Thu, 13 Jul 2006 19:55:07 +0200
parents 148f25ed0ad7
children d18f6dd0cf23
comparison
equal deleted inserted replaced
50:148f25ed0ad7 51:035617ee18d1
18 }; 18 };
19 const char *browse[] = { "firefox", NULL }; 19 const char *browse[] = { "firefox", NULL };
20 const char *xlock[] = { "xlock", NULL }; 20 const char *xlock[] = { "xlock", NULL };
21 21
22 static Key key[] = { 22 static Key key[] = {
23 { Mod1Mask, XK_Return, zoom, { 0 } }, 23 { Mod1Mask, XK_Return, spawn, { .argv = term } },
24 { Mod1Mask, XK_t, spawn, { .argv = term } },
25 { Mod1Mask, XK_w, spawn, { .argv = browse } }, 24 { Mod1Mask, XK_w, spawn, { .argv = browse } },
26 { Mod1Mask, XK_l, spawn, { .argv = xlock } }, 25 { Mod1Mask, XK_l, spawn, { .argv = xlock } },
27 { Mod1Mask, XK_k, prevc, { 0 } }, 26 { Mod1Mask, XK_k, prevc, { 0 } },
28 { Mod1Mask, XK_j, nextc, { 0 } }, 27 { Mod1Mask, XK_j, nextc, { 0 } },
29 { Mod1Mask, XK_m, max, { 0 } }, 28 { Mod1Mask, XK_m, max, { 0 } },
31 { Mod1Mask, XK_1, view, { .i = Tdev } }, 30 { Mod1Mask, XK_1, view, { .i = Tdev } },
32 { Mod1Mask, XK_2, view, { .i = Tirc } }, 31 { Mod1Mask, XK_2, view, { .i = Tirc } },
33 { Mod1Mask, XK_3, view, { .i = Twww } }, 32 { Mod1Mask, XK_3, view, { .i = Twww } },
34 { Mod1Mask, XK_4, view, { .i = Twork } }, 33 { Mod1Mask, XK_4, view, { .i = Twork } },
35 { Mod1Mask, XK_space, tiling, { 0 } }, 34 { Mod1Mask, XK_space, tiling, { 0 } },
35 { Mod1Mask | ShiftMask, XK_Return, zoom, { 0 } },
36 { Mod1Mask | ShiftMask, XK_space, floating, { 0 } }, 36 { Mod1Mask | ShiftMask, XK_space, floating, { 0 } },
37 { Mod1Mask | ShiftMask, XK_0, tag, { .i = Tscratch } }, 37 { Mod1Mask | ShiftMask, XK_0, tag, { .i = Tscratch } },
38 { Mod1Mask | ShiftMask, XK_1, tag, { .i = Tdev } }, 38 { Mod1Mask | ShiftMask, XK_1, tag, { .i = Tdev } },
39 { Mod1Mask | ShiftMask, XK_2, tag, { .i = Tirc } }, 39 { Mod1Mask | ShiftMask, XK_2, tag, { .i = Tirc } },
40 { Mod1Mask | ShiftMask, XK_3, tag, { .i = Twww } }, 40 { Mod1Mask | ShiftMask, XK_3, tag, { .i = Twww } },
46 /********** CUSTOMIZE **********/ 46 /********** CUSTOMIZE **********/
47 47
48 void 48 void
49 update_keys(void) 49 update_keys(void)
50 { 50 {
51 unsigned int i, len; 51 static unsigned int len = key ? sizeof(key) / sizeof(key[0]) : 0;
52 unsigned int i;
52 KeyCode code; 53 KeyCode code;
53 54
54 len = sizeof(key) / sizeof(key[0]);
55 for(i = 0; i < len; i++) { 55 for(i = 0; i < len; i++) {
56 code = XKeysymToKeycode(dpy, key[i].keysym); 56 code = XKeysymToKeycode(dpy, key[i].keysym);
57 XUngrabKey(dpy, code, key[i].mod, root); 57 XUngrabKey(dpy, code, key[i].mod, root);
58 XGrabKey(dpy, code, key[i].mod, root, True, GrabModeAsync, GrabModeAsync); 58 XGrabKey(dpy, code, key[i].mod, root, True, GrabModeAsync, GrabModeAsync);
59 } 59 }
61 61
62 void 62 void
63 keypress(XEvent *e) 63 keypress(XEvent *e)
64 { 64 {
65 XKeyEvent *ev = &e->xkey; 65 XKeyEvent *ev = &e->xkey;
66 unsigned int i, len; 66 static unsigned int len = key ? sizeof(key) / sizeof(key[0]) : 0;
67 unsigned int i;
67 KeySym keysym; 68 KeySym keysym;
68 69
69 keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); 70 keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
70 len = sizeof(key) / sizeof(key[0]);
71 for(i = 0; i < len; i++) 71 for(i = 0; i < len; i++)
72 if((keysym == key[i].keysym) && (key[i].mod == ev->state)) { 72 if((keysym == key[i].keysym) && (key[i].mod == ev->state)) {
73 if(key[i].func) 73 if(key[i].func)
74 key[i].func(&key[i].arg); 74 key[i].func(&key[i].arg);
75 return; 75 return;