Mercurial > aewl
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; |