Полагаю, вы имеете в виду «приложение X11» - из вашего описания не совсем понятно, что вы планируете делать. Приведенный ниже фрагмент кода отправит код «паузы» в приложение, которое в настоящее время имеет фокус ввода клавиатуры под X11, используя расширение XTest - из того, что я читал, это наиболее совместимый способ «подделать» события клавиатуры. Посмотрите, можете ли вы применить это к вашему сценарию (не проверяйте, не был ли XOpenDisplay успешным, чтобы упростить его).
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
...
Display *display;
unsigned int keycode;
display = XOpenDisplay(NULL);
...
keycode = XKeysymToKeycode(display, XK_Pause);
XTestFakeKeyEvent(display, keycode, True, 0);
XTestFakeKeyEvent(display, keycode, False, 0);
XFlush(display);
Вам нужно будет связать с -lX11 -lXtst.
Очевидно, что Firefox должен был сосредоточиться в то время.
Однако мне было бы любопытно узнать, какую большую задачу вы пытаетесь выполнить - я подозреваю, что должно быть более элегантное решение, чем подмена событий нажатия клавиш.