VMware und die Tastatur

Nach der Installation von VMWare Workstation auf meinem Laptop unter Intrepid Ibex wollten die VMs nicht erkennen, welches Tastaturlayout ich eingestellt habe. Alle Versuche, dies über die xorg.conf oder über Gnome in [System] [Einstellungen] [Tastatur] zu richten, schlugen fehl. Nach einiger Zeit kam ich darauf, dass ich auf dem Laptop die [Fn] Taste gedrückt halten muss und die „Nummerntastatur“ verwenden muss, um den Cursor zu steuern. Zeichen wie € und @ konnte ich aber jedesmal von Neuem suchen, weil ich mir einfach nicht merken konnte, wo nun welches Zeichen liegt.

Am Anfang brachte auch Google nicht viel – ich verwendete immer die falschen Suchbegriffe. Erst eine Suche in den Foren von ubuntuusers.de brachte nun den gewünschten Hack zum Vorschein. VMware hat so seine Probleme bei der Interpretation von Tasten. Allerdings lässt sich dies auf sehr einfache Weise richten (wenn man Glück hat). Dieser Blogeintrag war für mich die Lösung, die ich hier mal auf Deutsch übersetzt ablege.

Offensichtlich handelt es sich um ein Problem mit dem evdev input driver. Dank des Posts von „doranikov“, ist aber die Lösung einfach: Teile VMWare mit, was Deine Tastatur wirklich tut! Lege hierzu die Datei ~/.vmware/config an:

xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menudone!

Die Datei ~/.vmware/config existierte bei mir noch nicht – was aber nichts weiter ausmacht: Einfach neu anlegen.

Sollte dies nicht den erwünschten Erfolg bringen, dann führt der oben schon verlinkte Artikel weiter aus, dass mit Hilfe von xev die Keycodes gefunden werden können:

Um die für Deine Tastatur passenden keycodes in Erfahrung zu bringen, startest Du xev in einem Terminal. Setze Deinen Cursor in das xev Fenster und drücke dann eine Taste auf Deiner Tastatur (im folgenden Fall die rechte STRG Taste).

Im Terminal sind nun Ausgaben wie die Folgende zu sehen:

KeyPress event, serial 33, synthetic NO, window 0x3200001,
root 0x1cb, subw 0x0, time 749698, (167,181), root:(1793,706),
state 0x10, keycode 105 (keysym 0xffe4, Control_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x3200001,
root 0x1cb, subw 0x0, time 749810, (167,181), root:(1793,706),
state 0x14, keycode 105 (keysym 0xffe4, Control_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

Entscheidend sind die Werte nach keycode – im Schnipsel oben fett. Für die Taste [Strg] -Rechts ist das in diesem Fall 105. Verändere nun in der ~/.vmware/config den xkeymap.keycode. auf 105:

xkeymap.keycode.105 = 0x11d # Control_R

0x11d ist der scan code.

… und es tut tatsächlich, auch wenn es im dümmsten Fall eine ganze Weile dauert, die Anpassungen vorzunehmen.