I turned on the VNC server on my virtual machine (host is Linux, and in this case the guest is Windows, but I have the same problem with any guest OS), and when I use a VNC client on an iPhone, I cannot get any of the shifted characters (capital letters and symbols) to appear.
After doing some additional research, I found the following (http://www.realvnc.com/docs/rfbproto.pdf):
The difference between upper and lower case keysyms is significant. This is
unlike some of the keyboard processing in the X Window System which treats
them as the same. For example, a server receiving an uppercase ’A’ keysym
without any shift presses should interpret it as an uppercase ’A’. Again this may
involve an internal “fake” shift press.
According to this, it is the server's responsibility to do a "fake" shift press if necessary, and the client does not have to send a "shift" key event along with the keysym. I have attached a TCP tunnel trace from the iPhone to the VMWare VNC server showing the "bar" keyboard event, but no shift keyboard event before it.
Does anyone know if there are any settings in the .vmx that I can enable in order to produce a "fake" shift press when an upper case keysym is received?
Thanks!