Вы можете сделать это с расширением XTest, простой пример:
#include <X11/Xlib.h>
#include <X11/Intrinsic.h>
#include <X11/extensions/XTest.h>
#include <unistd.h>
static void SendKey (Display *disp, KeySym keysym)
{
KeyCode keycode = 0;
keycode = XKeysymToKeycode (disp, keysym);
if (keycode == 0) return;
XTestGrabControl (disp, True);
XTestFakeKeyEvent (disp, keycode, True, 0);
XTestFakeKeyEvent (disp, keycode, False, 0);
XSync (disp, False);
XTestGrabControl (disp, False);
}
/* Main Function */
int main ()
{
Display *disp = XOpenDisplay (NULL);
/* A, B */
SendKey (disp, XK_A);
SendKey (disp, XK_B);
return 0;
}
(адаптировано с по этой ссылке )