Hi DRC,

thanks for your response. Currently I'm slightly confused by these many 
different key mappings. And your script solution seems to be not really 
practical to me. I have decided to subsequently transfer all the workspaces 
I currently use inside the VM to its host. So, when this is done, I won't 
need the VM anymore and will delete it. This will be a much better solution 
for me than the script. Until this is done, I can live with the wrong key 
interpretation inside the VM. However, many thanks for your detailed 
analysis on this issue!

Kind Regards
Torsten

Am Montag, 21. Mai 2018 22:35:23 UTC+2 schrieb DRC:
>
> It seems the basic problem is that, by running VirtualBox in a window 
> manager window, an additional level of key mapping is introduced.
>
> To explain how TurboVNC normally works in this regard:
>
> The actual key symbol transmitted to the TurboVNC Server depends on the 
> client's keyboard layout, so if your client has a German layout, pressing 
> the key corresponding to '/' on an English keyboard will send '-', pressing 
> the key corresponding to 'Z' on an English keyboard will send 'Y', and 
> pressing the key corresponding to '[' on an English keyboard will send 
> umlaut U ('ü').  Since the baseline, unextended RFB protocol transmits key 
> symbols instead of key codes, the server will interpret those key events as 
> (respectively) '-', 'Y', and 'ü', regardless of the keyboard layout that is 
> selected in the TurboVNC Server session.
>
> Focusing on just those three keys, what I observe is the following when 
> running VirtualBox in a window manager window:
> - Client layout: English, TurboVNC Server layout: English, Windows guest 
> layout: English
>
>   'Z' key on English keyboard => 'Z' in TurboVNC Server and Windows guest
>   '/' key on English keyboard => '/' in TurboVNC Server and Windows guest
>   '[' key on English keyboard => '[' in TurboVNC Server and Windows guest
>
> - Client layout: German, TurboVNC Server layout: English, Windows guest 
> layout: English
>   'Z' key on English keyboard => 'Y' in TurboVNC Server and Windows guest
>   '/' key on English keyboard => '-' in TurboVNC Server and Windows guest
>   '[' key on English keyboard => 'ü' in TurboVNC Server, nothing in Windows 
> guest
>
> - Client layout: English, TurboVNC Server layout: English, Windows guest 
> layout: German
>   'Z' key on English keyboard => 'Z' in TurboVNC Server, 'Y' in Windows 
> guest
>   '/' key on English keyboard => '/' in TurboVNC Server, '-' in Windows 
> guest
>   '[' key on English keyboard => '[' in TurboVNC Server, 'ü' in Windows 
> guest
> - Client layout: German, TurboVNC Server layout: English, Windows guest 
> layout: German
>   'Z' key on English keyboard => 'Y' in TurboVNC Server, 'Z' in Windows 
> guest
>   '/' key on English keyboard => '-' in TurboVNC Server, 'ß' in Windows 
> guest
>   '[' key on English keyboard => 'ü' in TurboVNC Server, nothing in 
> Windows guest
>
> - Client layout: English, TurboVNC Server layout: German, Windows guest 
> layout: English
>   'Z' key on English keyboard => 'Z' in TurboVNC Server, 'Y' in Windows 
> guest
>   '/' key on English keyboard => '/' in TurboVNC Server, '&' in Windows 
> guest
>   '[' key on English keyboard => '[' in TurboVNC Server, '8' in Windows 
> guest
>
> - Client layout: German, TurboVNC Server layout: German, Windows guest 
> layout: English
>   'Z' key on English keyboard => 'Y' in TurboVNC Server, 'Z' in Windows 
> guest
>   '/' key on English keyboard => '-' in TurboVNC Server, '/' in Windows 
> guest
>   '[' key on English keyboard => 'ü' in TurboVNC Server, '[' in Windows 
> guest
>
> - Client layout: English, TurboVNC Server layout: German, Windows guest 
> layout: German
>   'Z' key on English keyboard => 'Z' in TurboVNC Server, 'Y' in Windows 
> guest
>   '/' key on English keyboard => '/' in TurboVNC Server, '&' in Windows 
> guest
>   '[' key on English keyboard => '[' in TurboVNC Server, '8' in Windows 
> guest
> - Client layout: German, TurboVNC Server layout: German, Windows guest 
> layout: German
>   'Z' key on English keyboard => 'Y' in TurboVNC Server and Windows guest
>   '/' key on English keyboard => '-' in TurboVNC Server and Windows guest
>   '[' key on English keyboard => 'ü' in TurboVNC Server and Windows guest
>
> Conclusions:
> - When running VirtualBox in a window manager window, the keyboard layout 
> in the guest O/S determines which key symbol is actually received by 
> applications running in the guest.  That means that a German keyboard 
> layout must be selected in the Windows guest in order for the guest O/S 
> to properly interpret certain German key symbols.
> - The client keyboard layout must match the TurboVNC Server session's 
> keyboard layout in order to avoid keyboard mapping errors.
>
> You can also run VirtualBox without a window manager, by creating a script 
> and passing it to vncserver using the -xstartup option.  For instance, here 
> is a script I use:
>
> # cat ~/3dscript
> vglrun -nodl VirtualBox --startvm "Windows 7" --fullscreen
>
> # /opt/TurboVNC/bin/vncserver -xstartup ~/3dscript
>
> When started in this manner, the default behavior is the same as if an 
> English keyboard layout had been selected in the (non-existent) window 
> manager, because the TurboVNC Server defaults to a US XKEYBOARD layout 
> (this can be changed in custom TurboVNC Server builds by altering the 
> XKB_DFLT_* CMake variables.)  At run time, you can change the layout to 
> German by adding 'setxkbmap -layout de' to the custom xstartup script prior 
> to launching VirtualBox.
>
> Note that there is a proposed feature (
> https://github.com/TurboVNC/turbovnc/issues/108) that will allow for 
> optionally sending key codes from client to server instead of key symbols, 
> which means that only the keyboard layout in the TurboVNC Server session 
> would matter.  There are benefits to that approach in terms of overall 
> keyboard compatibility, since TurboVNC would not have to translate 
> O/S-specific or Java-specific key events on the client into X11 key 
> symbols.  Sending key codes would most likely prevent this situation with 
> VirtualBox.  At the very least, it should make it so that VirtualBox 
> behaves the same within a TurboVNC Server session as it does on the local 
> display.  Unfortunately, however, that feature is in need of funding, so it 
> won't make it into TurboVNC 2.2.  Hopefully it will be in 2.3.  In the 
> meantime, use the workaround described above.
>
> DRC
>
> On 5/4/18 12:25 PM, torsten wrote:
>
> Hi DRC,
>
> Am Freitag, 4. Mai 2018 16:22:27 UTC+2 schrieb DRC: 
>>
>> I'm not sure I'm clear on exactly what is happening.  When you say 
>> "wrong layout", what is the visible symptom of the problem?  Do you mean 
>> that the keys are not translated correctly between client and server? 
>> Or is the layout within the guest operating system actually changing? 
>>
>
> No, all OSs involved here (the guest OS, the host OS and the Client OS) 
> think, they use the german layout. There is no change in keyboard layout 
> configuration. Fact is, I get the characters in this table (hope you can 
> read this table format):
>
> | Key pressed on keyboard | character appearing in VM |
> | zZ                      | yY                        |
> | &                       | /                         |
> | (                       | )                         |
> | *                       | (                         |
> | \                       | #                         |
> | >                       | :                         |
> | +                       | `                         |
> | #                       | §                         |
> | -                       | ß                         |
> | "                       | Ä                         |
> | /                       | -                         |
> | )                       | =                         |
> | =                       | '                         |
> | ?                       | _                         |
> | '                       | ä                         |
> | _                       | ?                         |
> | :                       | Ö                         |
> | ;                       | ö                         |
> | {                       | Ü                         |
> | [                       | ü                         |
> | ]                       | +                         |
> | }                       | *                         |
> | \                       | #                         |
> | ~                       | °                         |
> | @                       | "                         |
> | yY                      | zZ                        |
>
> Keep in mind to search these keys on a german keyboard! For some of them 
> Shift or AltGr has to be hit additionally. Some keys (like Ä e.g.) normally 
> providing a character do nothing in the VM.
>  
>
>> Also, when you run VirtualBox within TurboVNC, are you running it 
>> exclusively, or are you using a window manager as well?
>
>
> The VM runs in a window managed by the window manager of the host.
>  
>
>>  (what are the 
>> contents of your ~/.vnc/xstartup.turbovnc file?) 
>>
>
> I found this file, but I never did any changes to it. It is in its 
> original state like created by TurboVNC. And it is older than the 
> installation of VirtualBox and the VM. It is attached here.
>
> Kind Regards
> Torsten
>  
>
>>
>> On 5/4/18 5:28 AM, torsten wrote: 
>> > Hi, 
>> > 
>> > on the host I'm connected via TurboVNC I have a VirtualBox VM. Inside 
>> > this VM I obviously get the default english keyboard layout instead of 
>> > the german one I'm really using. When I sit at the console and work 
>> with 
>> > the VM without using the TurboVNC session, all keys are correct. All 
>> > other software on the host accessed via TurboVNC gets the correct keys 
>> > too  The wrong layout comes back, when I use the local TurboVNC Client 
>> > connecting the same session and start the VM within it. Is there a way 
>> > to get the correct keyboard layout in the VM accessed via TurboVNC? 
>> > 
>> > Kind Regards 
>> > Torsten 
>>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "TurboVNC User Discussion/Support" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/turbovnc-users/1d25c323-7eb6-4a41-8dc2-8c049ac0f183%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/turbovnc-users/1d25c323-7eb6-4a41-8dc2-8c049ac0f183%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboVNC User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/turbovnc-users/13e6e91f-385b-43de-aace-14cf593f6157%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to