>>107495047
X11 isn't that bad imo. Creating a window and getting keypress event:
#include <X11/Xlib.h>
#include <stdio.h>
int main(void) {
Display *dpy = XOpenDisplay(NULL);
Window window = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, 200, 200, 1, 0x00000000, 0xffffffff);
XSelectInput(dpy, window, KeyPressMask);
XMapWindow(dpy, window);
XEvent xev;
for(;;) {
XNextEvent(dpy, &xev);
if(xev.type == KeyPress)
fprintf(stderr, "pressed key: %d\n", xev.xkey.keycode);
}
}