author | Anselm R. Garbe <garbeam@wmii.de> |
Wed, 12 Jul 2006 16:40:37 +0200 | |
changeset 28 | 3dceb132082d |
parent 27 | f96fb3fd8203 |
child 29 | 8ad86d0a6a53 |
permissions | -rw-r--r-- |
8 | 1 |
/* |
2 |
* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> |
|
3 |
* See LICENSE file for license details. |
|
4 |
*/ |
|
5 |
||
6 |
#include "wm.h" |
|
7 |
||
8 |
#include <X11/keysym.h> |
|
9 |
||
14 | 10 |
static const char *term[] = { |
20 | 11 |
"xterm", "-bg", "black", "-fg", "white", "-fn", |
14 | 12 |
"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", 0 |
13 |
}; |
|
14 |
||
15 |
static const char *proglist[] = { |
|
27
f96fb3fd8203
added grid mode on Mod1Mask g
Anselm R. Garbe <garbeam@wmii.de>
parents:
23
diff
changeset
|
16 |
"sh", "-c", "exec `ls -lL /bin /sbin /usr/bin /usr/local/bin 2>/dev/null " |
f96fb3fd8203
added grid mode on Mod1Mask g
Anselm R. Garbe <garbeam@wmii.de>
parents:
23
diff
changeset
|
17 |
"| awk 'NF>2 && $1 ~ /^[^d].*x/ {print $NF}' | sort | uniq | gridmenu`", 0 |
14 | 18 |
}; |
19 |
||
8 | 20 |
static Key key[] = { |
14 | 21 |
{ Mod1Mask, XK_Return, run, term }, |
22 |
{ Mod1Mask, XK_p, run, proglist }, |
|
27
f96fb3fd8203
added grid mode on Mod1Mask g
Anselm R. Garbe <garbeam@wmii.de>
parents:
23
diff
changeset
|
23 |
{ Mod1Mask, XK_k, sel, "prev" }, |
f96fb3fd8203
added grid mode on Mod1Mask g
Anselm R. Garbe <garbeam@wmii.de>
parents:
23
diff
changeset
|
24 |
{ Mod1Mask, XK_j, sel, "next" }, |
f96fb3fd8203
added grid mode on Mod1Mask g
Anselm R. Garbe <garbeam@wmii.de>
parents:
23
diff
changeset
|
25 |
{ Mod1Mask, XK_g, arrange, NULL }, |
28 | 26 |
{ Mod1Mask, XK_m, max, NULL }, |
27
f96fb3fd8203
added grid mode on Mod1Mask g
Anselm R. Garbe <garbeam@wmii.de>
parents:
23
diff
changeset
|
27 |
{ Mod1Mask | ShiftMask, XK_c, kill, NULL }, |
f96fb3fd8203
added grid mode on Mod1Mask g
Anselm R. Garbe <garbeam@wmii.de>
parents:
23
diff
changeset
|
28 |
{ Mod1Mask | ShiftMask, XK_q, quit, NULL }, |
8 | 29 |
}; |
30 |
||
31 |
void |
|
32 |
update_keys() |
|
33 |
{ |
|
34 |
unsigned int i, len; |
|
35 |
KeyCode code; |
|
36 |
||
37 |
len = sizeof(key) / sizeof(key[0]); |
|
38 |
for(i = 0; i < len; i++) { |
|
39 |
code = XKeysymToKeycode(dpy, key[i].keysym); |
|
40 |
XUngrabKey(dpy, code, key[i].mod, root); |
|
41 |
XGrabKey(dpy, code, key[i].mod, root, True, GrabModeAsync, GrabModeAsync); |
|
42 |
} |
|
43 |
} |
|
9
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
44 |
|
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
45 |
void |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
46 |
keypress(XEvent *e) |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
47 |
{ |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
48 |
XKeyEvent *ev = &e->xkey; |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
49 |
unsigned int i, len; |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
50 |
KeySym keysym; |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
51 |
|
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
52 |
keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
53 |
len = sizeof(key) / sizeof(key[0]); |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
54 |
for(i = 0; i < len; i++) |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
55 |
if((keysym == key[i].keysym) && (key[i].mod == ev->state)) { |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
56 |
if(key[i].func) |
14 | 57 |
key[i].func(key[i].aux); |
9
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
58 |
return; |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
59 |
} |
d567f430a81d
fixed several stuff (gridwm gets better and better)
Anselm R. Garbe <garbeam@wmii.de>
parents:
8
diff
changeset
|
60 |
} |