Wie der Link Pfad es schon vermuten lässt ist X11 dafür zuständig.
Siehe /usr/include/X11/XKBlib.h
PHP-Code:
#include <stdlib.h>
#include <stdio.h>
#include <X11/XKBlib.h>
#include <X11/extensions/XKB.h>
int main(void)
{
Display* d = XOpenDisplay(0);
if (d)
{
unsigned n;
XkbGetIndicatorState(d, /* dpy */
XkbUseCoreKbd, /* deviceSpec */
&n); /* pStateRtrn */
printf ( ( (n & 1) ? "Capslock ON\n" : "Capslock OFF\n" ) );
}
return EXIT_SUCCESS;
}
Eine Weitere Variante wäre mit XGrabPointer...
Siehe in einer meiner QX11Grab Klassen.
Lesezeichen