Hi All, is there any way to get the unix VM to deliver raw keyboard events, or at least control and shift key presses?
best Eliot
|
On Wed, May 26, 2010 at 02:12:03PM -0700, Eliot Miranda wrote: > > Hi All, > > is there any way to get the unix VM to deliver raw keyboard events, or > at least control and shift key presses? I don't know enough to fully answer this, but I am fairly sure that the answer will turn out to be yes. Assuming that the unix VM is running under X11, the raw information would be in the form of X11 events, which are translated into some more generic Squeak event format in platforms/unix/vm-display-X11/sqUnixX11.c. The low level keyboard event information, including shift key presses, would be represented as XKeyEvents, so I would expect that there is some way to make these available as events in the VM. X11 definitely does understand the shift keys, see for example /usr/include/X11/keysymdef.h. John's API documentation may help: <http://isqueak.org/ioProcessEvents> Dave |
On 27.05.2010, at 04:32, David T. Lewis wrote: > > > On Wed, May 26, 2010 at 02:12:03PM -0700, Eliot Miranda wrote: >> >> Hi All, >> >> is there any way to get the unix VM to deliver raw keyboard events, or >> at least control and shift key presses? > > I don't know enough to fully answer this, but I am fairly sure that > the answer will turn out to be yes. Well I assume Eliot meant "... without hacking the VM" in which case the answer would be "no". Everything else is just ASMOP, but he knows that ;) - Bert - > Assuming that the unix VM is running under X11, the raw information > would be in the form of X11 events, which are translated into some more > generic Squeak event format in platforms/unix/vm-display-X11/sqUnixX11.c. > > The low level keyboard event information, including shift key presses, > would be represented as XKeyEvents, so I would expect that there is > some way to make these available as events in the VM. > > X11 definitely does understand the shift keys, see for example > /usr/include/X11/keysymdef.h. > > John's API documentation may help: <http://isqueak.org/ioProcessEvents> > > Dave > |
On 27 May 2010 10:58, Bert Freudenberg <[hidden email]> wrote: > > On 27.05.2010, at 04:32, David T. Lewis wrote: >> >> >> On Wed, May 26, 2010 at 02:12:03PM -0700, Eliot Miranda wrote: >>> >>> Hi All, >>> >>> is there any way to get the unix VM to deliver raw keyboard events, or >>> at least control and shift key presses? >> >> I don't know enough to fully answer this, but I am fairly sure that >> the answer will turn out to be yes. > > Well I assume Eliot meant "... without hacking the VM" in which case the answer would be "no". Everything else is just ASMOP, but he knows that ;) I would really like to be able handle "raw" key events instead of ones, preprocessed by OS. http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-June/136516.html > > - Bert - > >> Assuming that the unix VM is running under X11, the raw information >> would be in the form of X11 events, which are translated into some more >> generic Squeak event format in platforms/unix/vm-display-X11/sqUnixX11.c. >> >> The low level keyboard event information, including shift key presses, >> would be represented as XKeyEvents, so I would expect that there is >> some way to make these available as events in the VM. >> >> X11 definitely does understand the shift keys, see for example >> /usr/include/X11/keysymdef.h. >> >> John's API documentation may help: <http://isqueak.org/ioProcessEvents> >> >> Dave >> > > > > -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Bert Freudenberg
On Thu, May 27, 2010 at 12:58 AM, Bert Freudenberg <[hidden email]> wrote:
Except that yesterday when I enabled DEBUG_EVENTS in sqUnixX11.c and wrote some code to map keycodes into the XK_Blah define names in /usr/include/X11/keysymdef.h I soon found out that there's a non-obvious mapping going on and that I'll probably have to grok Xorg's keyboard driver, sigh. I find the keyboard event mapping code in sqUnixX11.c distinctly non-obvious. Part of it is that international input complicates things but (I *think*) the root of it is that a keycode in an XKeyEvent (at least on Xorg) is /not/ decoded. The problem for me in these kinds of situations is that I only have one real machine and one virtual machine to hand so finding out what the one true solution for all of X11 is daunting (should I say that I *hate* X11). But at least I now know that (apart from the [fn] key) Xorg delivers all key presses immediately, so as you say Bert, merely ASMOP :)
best Eliot
|
Free forum by Nabble | Edit this page |