359 { |
358 { |
360 static unsigned int len = sizeof(key) / sizeof(key[0]); |
359 static unsigned int len = sizeof(key) / sizeof(key[0]); |
361 unsigned int i; |
360 unsigned int i; |
362 KeyCode code; |
361 KeyCode code; |
363 |
362 |
364 while(XGrabKeyboard(dpy, root, True, GrabModeAsync, |
|
365 GrabModeAsync, CurrentTime) != GrabSuccess) |
|
366 usleep(1000); |
|
367 XUngrabKeyboard(dpy, CurrentTime); |
|
368 |
|
369 for(i = 0; i < len; i++) { |
363 for(i = 0; i < len; i++) { |
370 code = XKeysymToKeycode(dpy, key[i].keysym); |
364 code = XKeysymToKeycode(dpy, key[i].keysym); |
371 XGrabKey(dpy, code, key[i].mod, root, True, |
365 XGrabKey(dpy, code, key[i].mod, root, True, |
372 GrabModeAsync, GrabModeAsync); |
366 GrabModeAsync, GrabModeAsync); |
373 XGrabKey(dpy, code, key[i].mod | LockMask, root, True, |
367 XGrabKey(dpy, code, key[i].mod | LockMask, root, True, |
374 GrabModeAsync, GrabModeAsync); |
368 GrabModeAsync, GrabModeAsync); |
375 XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True, |
369 XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True, |
376 GrabModeAsync, GrabModeAsync); |
370 GrabModeAsync, GrabModeAsync); |
377 XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True, |
371 XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True, |
378 GrabModeAsync, GrabModeAsync); |
372 GrabModeAsync, GrabModeAsync); |
379 } |
373 XSync(dpy, False); |
380 } |
374 } |
|
375 } |