[Vm-dev] "raw" keyboard events form the VM on unix?

Eliot Miranda eliot.miranda at gmail.com
Thu May 27 16:02:54 UTC 2010

On Thu, May 27, 2010 at 12:58 AM, Bert Freudenberg <bert at freudenbergs.de>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 ;)

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
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


> - 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
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20100527/77b8c60f/attachment.htm

More information about the Vm-dev mailing list