aboutsummaryrefslogtreecommitdiff
path: root/keyboard_writer.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard_writer.c')
-rw-r--r--keyboard_writer.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/keyboard_writer.c b/keyboard_writer.c
new file mode 100644
index 0000000..66196ba
--- /dev/null
+++ b/keyboard_writer.c
@@ -0,0 +1,39 @@
+#include "keyboard_writer.h"
+#include <stdio.h>
+#include <X11/X.h>
+#include <X11/Xlib.h>
+#include <X11/extensions/XTest.h>
+
+
+int x11_key(char *zh){
+ Display *dpy;
+ dpy = XOpenDisplay(NULL);
+
+ KeySym sym = XStringToKeysym(zh);
+ KeyCode code = XKeysymToKeycode(dpy,sym);
+ XTestFakeKeyEvent(dpy, code, True, 1);
+ XTestFakeKeyEvent(dpy, code, False, 1);
+
+ XFlush( dpy );
+ XCloseDisplay( dpy );
+
+ return 0;
+}
+
+int x11_key_shift(char *zh){
+ Display *dpy;
+ dpy = XOpenDisplay(NULL);
+
+ KeySym sym = XStringToKeysym(zh);
+ KeyCode code = XKeysymToKeycode(dpy,sym);
+ XTestFakeKeyEvent(dpy, 50, True, 1);
+ XTestFakeKeyEvent(dpy, code, True, 1);
+ XTestFakeKeyEvent(dpy, code, False, 1);
+ XTestFakeKeyEvent(dpy, 50, False, 1);
+
+ XFlush( dpy );
+ XCloseDisplay( dpy );
+
+ return 0;
+}
+