keyboard input with Xlib

Started by
4 comments, last by Strife 20 years, 8 months ago
Ok, so earlier in my post about Gtk, I mentioned trying to make a MessageBox utility function. Well for various reasons, I''m now attempting to use Xlib. But I''m hitting a snag in that for some reason, I can''t get keyboard input to work. Now, I''ve hardly done anything with Xlib, so I''m sure it''s a stupid mistake, but if anyone has any idea what''s wrong, the code is here. Alternatively, does anyone know of any in-depth articles about Xlib? I have only found a very few, and they don''t usually deal with the input so much, but more the graphics and setting up windows, etc. The Artist Formerly Known as CmndrM http://chaos.webhop.org
Advertisement
Google for "Xlib tutorial". You get quite a few good results, though nothing really comprehensive.

Try to get your hands on a postscript version of the Xlib manual. It doesn''t get any more in depth than that.
---New infokeeps brain running;must gas up!
Yeah, I did Google "Xlib tutorial", and that''s how I got as far as I did. However, none of them that I''ve looked at really talked much about the keyboard input (it was all done in passing), which is the part that I''m having trouble with. I''ll definately be browsing through the manual later, but I don''t know how much that is going to help me out.

The Artist Formerly Known as CmndrM

http://chaos.webhop.org
Well, now I''ve found something interesting out. For whatever reason, if I use the keycode instead of the keysym, I have no problem getting input. But why? It''s kind of a pain in the ass to have to manually find each integer value for the keys I need (luckily in this case there aren''t many).

My guess is it has to do with the index parameter in XLookupKeysym (the second one). But in every example I''ve ever seen, simply 0 is put there, and I can''t actually find anything detailing what exactly the index parameter is or does. Any ideas?

The Artist Formerly Known as CmndrM

http://chaos.webhop.org
I don''t know what''s wrong specificially, but that second parameter has to do with the fact that there''s a many-to-one keysym to keycode relationship, and so the index specifies which of those many is desired.

The relevant sections are 12.7 and 16.1 in the Xlib manual.
---New infokeeps brain running;must gas up!
Well, with the help of a few people in #xlib on irc.freenode.net, I finally figured it out. It turns out that there are both XK_O and XK_o (for example). For some reason, even when I had the shift key and/or the caps lock on when pressing O (or anything else, for that matter), it didn''t work. While I don''t know why that is, it has been solved by having something like this:


case XK_O:
case XK_o:
// code here


The Artist Formerly Known as CmndrM

http://chaos.webhop.org

This topic is closed to new replies.

Advertisement