"raw" keyboard events form the VM on unix?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

"raw" keyboard events form the VM on unix?

Eliot Miranda-2
 
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
Reply | Threaded
Open this post in threaded view
|

Re: "raw" keyboard events form the VM on unix?

David T. Lewis
 
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

Reply | Threaded
Open this post in threaded view
|

Re: "raw" keyboard events form the VM on unix?

Bert Freudenberg

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
>



Reply | Threaded
Open this post in threaded view
|

Re: "raw" keyboard events form the VM on unix?

Igor Stasenko

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.
Reply | Threaded
Open this post in threaded view
|

Re: "raw" keyboard events form the VM on unix?

Eliot Miranda-2
In reply to this post by Bert Freudenberg
 


On Thu, May 27, 2010 at 12:58 AM, 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 ;)

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



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