Setup: Win 2004 + WSL (Ubuntu) + VcXsrv
When I press the right enter key (part of the numpad), only keyDown and keyUp events are recorded by the VM, but not any keystroke event. The left enter key, however, works fine, and so does the right enter key on Windows do. Using `HandMorph >> #showEvents:`, the keyUp and keyDown events look the same for both enter keys (character code 13).
I don't have a real Linux machine available at the moment. Can someone tell whether the issue also exists without VcXsrv?
In general, running Squeak works fine with this setup. However, some keys are not mapped correctly. First, I thought this would be a problem of VcXsrv (and [partially](https://sourceforge.net/p/vcxsrv/bugs/134/), this is also true), but then I recognized that gedit recognizes the right enter key correctly through VcXsrv, so this appears to be a problem of OSVM indeed.
---
In sqUnixX11.c, apparently EventKeyDown and EventKeyChar events are always generated together with one exception:
https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/7f69e44dd9cdf5d1fe2d8...
So either `x2sqKey()` or `xkeysym2ucs4()` must be responsible for the bug. However, I have never read these sources before, so probably, I'm completely on the wrong track ... How can I enable `DEBUG_KEYBOARD_EVENTS`?
Looking forward to your help, Christoph
Hey all, just another issue in connection with VcXsrv: On my German QWERTZ keyboard, the circumflex key (`^/°`) is a dead key, i.e. I need to press space after this key in order to actually type a circumflex. This works fine for Squeak in Windows, but in VcXsrv, it doesn't ... Instead of `^`, ` ̂` (sic: `16r20` `16r302`) will be typed. Again, gedit recognizes this key correctly, so I think this could be an issue with `sqUnixX11.c`.
I recorded the following keyboard event trace when pressing "dead_circumflex , space" in Squeak/VcXsrv:
``` keyUp (94) keyDown (32)
keystroke '<space>' (32) keyDown (770) keystroke '̂' (770) keyUp (32) ```
For comparison, in Squeak on Windows, the same keyboard input looks like this:
``` keyDown (220) keyUp (220)
keyDown (32) keystroke '^' (94) keyUp (32) ```
`220` appears to be the dead circumflex key code, I could reproduce this in a browser. It looks as if VcXsrv does not respect this protocol but sends a single undelayed circumflex key down. Or could this be an issue with the `dead_key_case` handling in `sqUnixX11.c`? gedit handles this input correctly. Under Linux, who is responsible for handling dead keys? The X11 server or the X11 client?
Again, it would be great if someone else with a native Linux installation could give some feedback about the behavior with a Qwertz keyboard without VcXrvc emulation. 😅
vm-dev@lists.squeakfoundation.org