#include #include #include #include #include Display *display; void sendsym(KeySym sym) { Window focus = 0; int revert = 0; XKeyEvent event; XGetInputFocus(display, &focus, &revert); event.display = display; event.window = focus; event.subwindow = None; event.time = CurrentTime; event.x = 1; event.y = 1; event.x_root = 1; event.y_root = 1; event.same_screen = 1; event.state = 0; event.keycode = sym; event.type = KeyPress; XSendEvent(event.display, event.window,1, KeyPressMask, (XEvent *)&event); event.type = KeyRelease; XSendEvent(event.display, event.window,1, KeyReleaseMask, (XEvent *)&event); } int main(int argc, char *argv[]) { char *display_name; XrmInitialize(); display_name = XDisplayName(NULL); display = XOpenDisplay(display_name); if (display == NULL) { perror("Error opening display"); exit(EXIT_FAILURE); } sendsym(XK_Up); XFlush(display); XCloseDisplay(display); return EXIT_SUCCESS; }