bumblebee-status/util/layout.c

40 lines
749 B
C
Raw Permalink Normal View History

#include <stdio.h>
#include <stdlib.h>
#include <X11/XKBlib.h>
void err_if(int condition, const char* msg)
{
if (condition) {
fprintf(stderr, "fatal: %s\n", msg);
exit(1);
}
}
int main(int argc, char** argv)
{
Display* display = XOpenDisplay(NULL);
err_if(!display, "unable to open display");
int kbd = argc == 1 ? XkbUseCoreKbd : atoi(argv[1]);
XkbStateRec state;
XkbGetState(display, kbd, &state);
XkbDescPtr desc = XkbGetKeyboard(display, XkbAllComponentsMask, kbd);
char* symbols = XGetAtomName(display, desc->names->symbols);
printf("%s\n", symbols);
#if 0
char *group = XGetAtomName(display, desc->names->groups[state.group]);
XFree(group);
#endif
XFree(symbols);
XFree(desc);
XCloseDisplay(display);
return 0;
}