[Vm-dev] "raw" keyboard events form the VM on unix?
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,
> >> 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...
More information about the Vm-dev