キー コード マッピングを利用できない、またはその機能が無効になっている場合、Workstation Pro は keysyms を v-scan コードにマッピングします。言語固有のキーボードが Workstation Pro でサポートされていないように思われる場合、使用する keysyms 表を Workstation Pro に指示するプロパティを設定する必要があります。

Workstation Pro は現在使用中の X キーマップをチェックして、使用する表を決定します。ただし、その決定プロセスは完全ではありません。さらに、各マッピングは固定されており、すべてのキーボードや X キー コードから keysym へのマッピングに完全に対応してるわけではありません。たとえば、xmodmap を使用して、<Ctrl> キーと <Caps Lock> キーを交換する場合、リモート サーバ(keysyms マッピング)使用時には仮想マシンのキーは置き換えられますが、ローカル サーバ(キー コード マッピング)使用時には置き換えられないことになります。こうした状況を修正するには、Workstation Pro 内のキーを再マップする必要があります。

keysyms のマッピング方法を構成するには、仮想マシンの構成ファイル(.vmx)または ~/.vmware/config に 1 つ以上のプロパティを追加します。

前提条件

  • 複数のキーのマッピングを変更するには、各キーの keysym 名を特定します。keysym 名を調べるには、xev コマンドまたは xmodmap -pk コマンドを使用します。X ヘッダ ファイル /usr/include/X11/keysymdef.h にも keysyms の完全なリストが含まれています。keysym の名前は、その C 定数から最初の XK_ を除いたものと同じです。
  • 別の keysyms 表を使用するには、使用するマッピング表を特定します。マッピング表は、Workstation Pro インストール ディレクトリ(通常は /usr/lib/vmware)の xkeymap ディレクトリにあります。使用する表は、キーボードのレイアウトによって決定されます。一般的なディストリビューションには、米国およびヨーロッパ諸国向けの PC キーボードと言語の表が含まれています。ほとんどの場合、101 キー(または 102 キー)と 104 キー(または 105 キー)の両方の変数を使用できます。

    完全に正しいマッピング表がない場合は、最適なものを見つけ出し、それを新しい場所にコピーして、個々の keysym マッピングを変更します。

  • v-scan コードについて理解しておく必要があります。v-scan コード表を参照してください。
  • 仮想マシンをパワーオフして、Workstation Pro を終了します。

手順

  • X キー コード マッピングを無効にして、キー コードではなく keysyms を v-scan コードにマッピングする場合は、xkeymap.nokeycodeMap プロパティを追加して、その値を TRUE に設定します。
    例: xkeymap.nokeycodeMap = "TRUE"
  • xkeymap ディレクトリにお使いのキーボードの表が存在するにもかかわらず、Workstation Pro がそれを検出できない場合は、xkeymap.language プロパティを追加して xkeymap ディレクトリ内のいずれかの表に設定します。
    例: xkeymap.language = "keyboard_type"
    キーボード表がお使いのキーボードに完全に対応していないためにキーボードが見つからない場合は、修正した表を作成して、 xkeymap.fileName プロパティを設定する必要があります。
  • xkeymap ディレクトリにはない別の keysym マッピング表を使用する場合は、xkeymap.fileName プロパティを追加し、使用する表へのパスに設定します。
    例: xkeymap.fileName = "file_path"
    このマッピング表には、各キーの keysym が sym=" v-scan_code" という形式で定義されていなければなりません。ここで、 sym の値は X keysym 名、 v-scan_code は C のシンタックスの 16 進数(たとえば 0x001)です。keysym ごとに改行します。
    注: keysym マッピングをすべて自分で作成するのは大変なので、通常は、既存の表を編集して少し手を加えるようにしてください。
  • いくつかのキーの keysyms のマッピングを変更するには、キーごとにそれぞれ別の行で xkeymap.keysym プロパティを入力します。
    例: xkeymap.keysym.sym = "v-scan_code"
    sym の値は X keysyms 名である必要があります。また、 v-scan_code は C のシンタックスの 16 進数(たとえば 0x001)です。