diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2013-02-08 13:56:28 +0100 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2013-02-08 15:00:35 +0100 |
commit | d93b32e3ad28f1b46d0ea317d7c72165d63cd805 (patch) | |
tree | beabb5b1ee812e26768edf27a49f20e3218a9c35 /repeat-xi2.c | |
download | presenterctl-d93b32e3ad28f1b46d0ea317d7c72165d63cd805.tar.gz presenterctl-d93b32e3ad28f1b46d0ea317d7c72165d63cd805.tar.bz2 presenterctl-d93b32e3ad28f1b46d0ea317d7c72165d63cd805.zip |
Diffstat (limited to 'repeat-xi2.c')
-rw-r--r-- | repeat-xi2.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/repeat-xi2.c b/repeat-xi2.c new file mode 100644 index 0000000..47c69b1 --- /dev/null +++ b/repeat-xi2.c @@ -0,0 +1,40 @@ +#include <stdlib.h> +#include <X11/X.h> +#include <X11/XKBlib.h> + +int +main(int argc, char *argv[]) +{ + Display *dpy; + XkbDescPtr xkb; + unsigned int id, delay, interval; + + if (argc < 4) + exit(1); + + id = atoi(argv[1]); + delay = atoi(argv[2]); + interval = atoi(argv[3]); + + dpy = XOpenDisplay(NULL); + if (!dpy) + exit(2); + + xkb = XkbGetKeyboard(dpy, XkbControlsMask, id); + if (!xkb) + exit(3); + + /* With X.Org-Server 1.13.1 on Gentoo ctrls is unexpectedly NULL. */ + if (!xkb->ctrls) + XkbGetControls(dpy, XkbRepeatKeysMask, xkb); + + xkb->ctrls->repeat_delay = delay; + xkb->ctrls->repeat_interval = 1000 / interval; + + XkbSetControls(dpy, XkbRepeatKeysMask, xkb); + XkbFreeKeyboard(xkb, 0, True); + + XCloseDisplay(dpy); + + return 0; +} |