當按鍵代碼映射無法使用或被禁用時,Workstation Player 會將鍵盤符號映射到 v-scan 代碼。如果特定於語言的鍵盤看上去不受 Workstation Player 的支援,您可能需要設定一個屬性,告知 Workstation Player 要使用哪個鍵盤符號表。

Workstation Player 可通過檢查當前的 X 鍵映射確定要使用的表。但這種決策過程有時也會失敗。另外,每個映射都是固定的,不保證對任何給定的鍵盤和 X 按鍵代碼-鍵盤符號映射都正確無誤。例如,如果使用者使用 xmodmap 互換 Ctrl 和 Caps Lock 按鍵,那麼在使用遠端伺服器時虛擬機中的按鍵將互換(鍵盤符號映射),但在使用本地伺服器時將取消互換(按鍵代碼映射)。為了修正此問題,您必須在 Workstation Player 中重新映射按鍵。

要配置鍵盤符號的映射方式,您需要將一個或多個屬性添加到虛擬機配置 (.vmx) 檔或 ~/.vmware/config 中。

必要條件

  • 要更改某些按鍵的映射,需要確定每個按鍵的鍵盤符號名稱。要查找鍵盤符號名稱,請使用 xevxmodmap -pk 命令。X 標頭檔 /usr/include/X11/keysymdef.h 同樣具有完整的鍵盤符號清單。鍵盤符號的名稱與其 C 常量相同,但沒有 XK_ 前綴。
  • 要使用其他鍵盤符號表,需要確定要使用的映射表。這些表位於 安裝目錄的 xkeymapWorkstation Player 目錄,通常是 /usr/lib/vmware。您所需使用的表由鍵盤布局決定。常規的分發版本中包含了美國和歐洲一些國家及語種使用的PC鍵盤所對應的表。其中大部分都可以使用各種 101 鍵(或 102 鍵)和 104 鍵(或 105 鍵)設備。

    如果沒有完全正確的映射表,請查找最合適的一個,將其複製到新的位置,然後更改單個鍵盤符號映射。

  • 熟悉 v-scan 代碼。請參閱V-Scan 代碼表
  • 關閉虛擬機並退出 Workstation Player

程序

  • 要禁用 X 按鍵代碼映射以將鍵盤符號而不是按鍵代碼映射到 v-scan 代碼,請添加 xkeymap.nokeycodeMap 屬性並將其設定為 TRUE。
    例如: xkeymap.nokeycodeMap = "TRUE"
  • 如果 Workstation Playerxkeymap 目錄中有一個用於您的鍵盤的表,但無法檢測到該表,請添加 xkeymap.language 屬性並將其設定為 xkeymap 目錄中的某個表。
    例如: xkeymap.language = "keyboard_type"
    如果無法檢測鍵盤的原因是該表對您來說不完全正確,您可能需要創建一個經過修改的表並使用 xkeymap.fileName 屬性。
  • 要使用 xkeymap 目錄以外的其他鍵盤符號映射表,請添加 xkeymap.fileName 屬性並將其設定為表所在的路徑。
    例如: xkeymap.fileName = "file_path"
    該表必須通過使用 sym=" v-scan 代碼" 形式列出每個按鍵的鍵盤符號,其中 sym 的值是 X 鍵盤符號名稱, v-scan 代碼是符合 C 語法的十六進位數,如 0x001。每個鍵盤符號佔用一行。
    備註: 因為編譯完整的鍵盤符號映射非常困難,所以一般情況下應該編輯現有表,只進行小幅更改。
  • 要更改少數按鍵的鍵盤符號映射,可以在單獨的行上為每個按鍵鍵入 xkeymap.keysym 屬性。
    例如: xkeymap.keysym.sym = "v-scan_code"
    sym 的值必須是 X 鍵盤符號名稱, v-scan 代碼必須是符合 C 語法的十六進位數,如 0x001。