/* gcc -I/usr/X11R6/include -L/usr/X11R6/lib -o xnumlock xnumlock.c -lX11 -lXtst */

#include <X11/extensions/XTest.h>
#include <X11/keysym.h>

int main()
{
    Display *dpy = XOpenDisplay(NULL);

    if (dpy) {
        XTestFakeKeyEvent(dpy,
            XKeysymToKeycode(dpy, XK_Num_Lock), True, CurrentTime);
        XTestFakeKeyEvent(dpy,
            XKeysymToKeycode(dpy, XK_Num_Lock), False, CurrentTime);
        XCloseDisplay(dpy);
        return 0;
    } else {
        return 1;
    }
}
