summaryrefslogtreecommitdiff
path: root/linux/osd/develop/xkbtest
diff options
context:
space:
mode:
Diffstat (limited to 'linux/osd/develop/xkbtest')
-rw-r--r--linux/osd/develop/xkbtest/Makefile34
-rw-r--r--linux/osd/develop/xkbtest/xkbtest.c29
2 files changed, 63 insertions, 0 deletions
diff --git a/linux/osd/develop/xkbtest/Makefile b/linux/osd/develop/xkbtest/Makefile
new file mode 100644
index 0000000..710c1cd
--- /dev/null
+++ b/linux/osd/develop/xkbtest/Makefile
@@ -0,0 +1,34 @@
+# Makefile
+
+# The compiler to be used
+CC = gcc
+
+# Arguments passed to the compiler: -g causes the compiler to insert
+# debugging info into the executable and -Wall turns on all warnings
+CFLAGS = -g -O2
+
+# The dynamic libraries that the executable needs to be linked to
+LDFLAGS = -lxkbfile
+
+# The Dependency Rules
+# They take the form
+# target : dependency1 dependency2...
+# Command(s) to generate target from dependencies
+
+# Dummy target that is processed by default. It specifies al list of
+# other targets that are processed if make is invoked with no arguments
+# However if you invoke make as "make output-data", it will only try to
+# generate the file output-data and its dependencies, not plot.png
+all : xkbtest
+
+xkbtest : xkbtest.c
+ $(CC) $(CFLAGS) $(LDFLAGS) xkbtest.c -o xkbtest
+
+# The clean target is used to remove all machine generated files
+# and start over from a clean slate. This will prove extremely
+# useful. It is an example of a dummy target, as there will never be a
+# file named clean. Thus "make clean" will always cause the following
+# command to be executed.
+
+clean :
+ rm -f xkbtest
diff --git a/linux/osd/develop/xkbtest/xkbtest.c b/linux/osd/develop/xkbtest/xkbtest.c
new file mode 100644
index 0000000..a5c1412
--- /dev/null
+++ b/linux/osd/develop/xkbtest/xkbtest.c
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <X11/XKBlib.h>
+
+int main(int argc, char *argv[])
+{
+ int event_rtrn = 0;
+ int error_rtrn = 0;
+ int major_in_out = 1;
+ int minor_in_out = 0;
+ int reason_rtrn = 0;
+
+ Display * display = NULL;
+ display = XkbOpenDisplay(NULL, &event_rtrn, &error_rtrn, &major_in_out,
+ &minor_in_out, &reason_rtrn);
+
+ printf("\n Display handle: %#010x\n", (unsigned int) display);
+
+ XkbStateRec state;
+ XkbGetState(display, XkbUseCoreKbd, &state);
+
+ printf("\n mods: %x", state.mods);
+ printf("\n base_mods: %x", state.base_mods);
+ printf("\n latched_mods: %x", state.latched_mods);
+ printf("\n locked_mods: %x", state.locked_mods);
+ printf("\n compat_state: %x", state.compat_state);
+
+ printf("\n\n");
+ return 0;
+}