# Why is XKeysymToKeycode() making all of my keys lowercase?

 I'm currently having a problem with Xlib where whenever I call XKeysymToKeycode() and pass in an uppercase KeySym, it returns a lowercase KeyCode. Google doesn't really seem to have an answer to this question, or too much documentation at all on the functions I'm using, for that matter. Here's the code I am using: #include #include #include #include #include #include #include int main(void) { Display *display; char *ptr; char c[2] = {0, 0}; KeySym ksym; KeyCode kcode; display = XOpenDisplay(0); ptr = "Test"; while (*ptr) { c[0] = *ptr; ksym = XStringToKeysym(c); printf("Before XKeysymToKeycode(): %s\n", XKeysymToString(ksym)); kcode = XKeysymToKeycode(display, ksym); printf("Key code after XKeysymToKeycode(): %s\n", XKeysymToString(XKeycodeToKeysym(display, kcode, 0))); ptr++; } XCloseDisplay(display); return 0; }  It can be compiled with gcc -o sendkeys sendkeys_min.c -lX11 -lXtst -g -Wall -Wextra -pedantic -ansi (Assuming it has been saved as sendkeys_min.c.) The current output is the following: Before XKeysymToKeycode(): T Key code after XKeysymToKeycode(): t Before XKeysymToKeycode(): e Key code after XKeysymToKeycode(): e Before XKeysymToKeycode(): s Key code after XKeysymToKeycode(): s Before XKeysymToKeycode(): t Key code after XKeysymToKeycode(): t  The expected output, is, of course, that the first T in "Test" is still uppercase after being ran through XKeysymToKeycode(). (Note that this is not my actual program, but a simplified version for posting here. In the actual program, I am sending key events with the resulting keycode, and the keys sent still have the problem exhibited here (They all become lowercase))

 I'm currently having a problem with Xlib where whenever I call XKeysymToKeycode() and pass in an uppercase KeySym, it returns a lowercase KeyCode. Google doesn't really seem to have an answer to this question, or too much documentation at all on the functions I'm using, for that matter. Here's the code I am using: #include #include #include #include #include #include #include int main(void) { Display *display; char *ptr; char c[2] = {0, 0}; KeySym ksym; KeyCode kcode; display = XOpenDisplay(0); ptr = "Test"; while (*ptr) { c[0] = *ptr; ksym = XStringToKeysym(c); printf("Before XKeysymToKeycode(): %s\n", XKeysymToString(ksym)); kcode = XKeysymToKeycode(display, ksym); printf("Key code after XKeysymToKeycode(): %s\n", XKeysymToString(XKeycodeToKeysym(display, kcode, 0))); ptr++; } XCloseDisplay(display); return 0; }  It can be compiled with gcc -o sendkeys sendkeys_min.c -lX11 -lXtst -g -Wall -Wextra -pedantic -ansi (Assuming it has been saved as sendkeys_min.c.) The current output is the following: Before XKeysymToKeycode(): T Key code after XKeysymToKeycode(): t Before XKeysymToKeycode(): e Key code after XKeysymToKeycode(): e Before XKeysymToKeycode(): s Key code after XKeysymToKeycode(): s Before XKeysymToKeycode(): t Key code after XKeysymToKeycode(): t  The expected output, is, of course, that the first T in "Test" is still uppercase after being ran through XKeysymToKeycode(). (Note that this is not my actual program, but a simplified version for posting here. In the actual program, I am sending key events with the resulting keycode, and the keys sent still have the problem exhibited here (They all become lowercase))