Citrix Virtual Apps and Desktops 提供了丰富的针对键盘和输入法编辑器的配置,以支持用户和 IT 管理员的要求(包括语言和平台)。但是,由于 Citrix Workspace 应用程序客户端、操作系统平台等多种因素,正确配置键盘和 IME 可能非常困难。

在这篇文章中,我将指导您正确配置键盘和 IME,以满足各种部署场景的要求。请注意,我将使用术语“键盘”来表示“键盘布局”以及物理键盘,包括 101 键盘、103 键盘和 106 键盘。

键盘同步模式

Citrix Virtual Apps and Desktops 同时支持应用客户端键盘或 VDA 端键盘。一个常见的问题是,应该应用哪一端的键盘。基本规则如下:

  1. 如果客户端是 Windows 的 Citrix Workspace 应用程序,则将应用 VDA 端键盘。
  2. 如果客户端是非 Windows Citrix Workspace 应用程序(Mac、Linux、iOS 或 Android),则将应用客户端键盘。
  3. 如果规则 1 和 2 无效,则可能存在不正确的配置,或者 Citrix Virtual Apps and Desktops 不支持该类型的场景。如果是这种情况,请联系 Citrix Customer Service 部门。

另一个常见的问题是当用户登录或重新连接到会话时,在 VDA 端设置了哪种类型的键盘?它是否使用客户端键盘布局?如果不使用,那么使用哪种键盘布局?这取决于键盘同步模式设置。Citrix Virtual Apps and Desktops 支持四种键盘同步模式:

  1. 登录或重新连接到 VDA 时使用 VDA 端默认键盘:当客户端是 Android 的 Citrix Workspace 应用程序或 iOS 的 Citrix Workspace 应用程序时,此为默认设置。可以通过 StoreFront 中的客户端配置文件ica 文件来配置此设置。在会话中客户端中的任何键盘布局更改都不会同步到 VDA 端。
  2. 登录或重新连接到 VDA 时使用指定键盘:登录或重新连接到 VDA 时,可以通过 StoreFront 中的客户端配置文件ica 文件配置指定键盘布局。在会话中客户端上的任何键盘布局更改都不会同步到 VDA 端。
  3. 仅在登录或重新连接到 VDA 时才将 VDA 端键盘与客户端默认键盘同步:当客户端为 Windows、Mac 或 Linux 的 Citrix Workspace 应用程序时,此为默认设置。在会话中客户端上的任何键盘布局更改都不会同步到 VDA 端。
  4. 在会话中动态同步客户端键盘到 VDA 端:当用户更改客户端键盘时,VDA 键盘将在会话中自动同步。客户端和 VDA 都具有用于启用此模式的设置。

所有四种同步模式都具有排他性,单个客户端只能在其中一种模式下运行。如果用户有多个客户端,不建议为每个客户端单独设置同步模式,即使您可以这样设置。这会使用户通过不同客户端登录和重新连接时该应用哪个键盘而感到困惑。

使用模式 1 和 2 可能会导致客户端键盘与 VDA 端键盘之间出现不一致。例如,客户端键盘可能会显示德语键盘图标,但 VDA 端可能会显示英语键盘图标。模式 1 和 2 通常用于仅使用一种键盘布局类型且客户端不需要更改键盘布局的部署。对于 Windows 操作系统,VDA 端默认键盘取决于 Windows 操作系统语言、当前用户配置文件设置和 Windows 操作系统配置。在模式 1 中,VDA 中的键盘布局未知,因此不建议使用此模式。

客户端 默认同步模式
适用于 Windows 的 Citrix Workspace 应用程序 模式 3:仅在登录或重新连接到 VDA 时才将 VDA 端键盘与客户端默认键盘同步
适用于 Mac 的 Citrix Workspace 应用程序 模式 3:仅在登录或重新连接到 VDA 时才将 VDA 端键盘与客户端默认键盘同步
适用于 Linux 的 Citrix Workspace 应用程序 模式 3:仅在登录或重新连接到 VDA 时才将 VDA 端键盘与客户端默认键盘同步
适用于 Android 的 Citrix Workspace 应用程序 模式 1:使用 VDA 端默认键盘
适用于 iOS 的 Citrix Workspace 应用程序 模式 1:使用 VDA 端默认键盘
适用于 HTML5 的 Citrix Workspace 应用程序 模式 3:仅在登录或重新连接到 VDA 时才将 VDA 端键盘与客户端默认键盘同步

表 1 – Citrix Workspace 应用程序的默认同步模式

模式1:配置“登录或重新连接到 VDA 时使用 VDA 端默认键盘”模式

可以在两个级别配置此模式。一个是通过修改每个用户随 Citrix Workspace 应用程序一起安装的本地配置文件。另一个是通过修改 StoreFront 服务器中的 default.ica。StoreFront 配置的优先级高于客户端本地文件配置。

Citrix Workspace 应用程序 配置
适用于 Windows 的 Citrix Workspace 应用程序 文件路径:%appdata%\ICAClient\WFCLIENT.ini

更改 [WFClient] 中的设置:KeyboardLayout=(Server Default)

适用于 MAC 的 Citrix Workspace 应用程序 文件路径:~/Library/Application Support/Citrix Receiver/Config

更改 [WFClient] 中的设置:KeyboardLayout=(Server Default)

适用于 Linux 的 Citrix Workspace 应用程序 文件路径:~/.ICAClient/wfclient.ini

更改 [WFClient] 中的设置:KeyboardLayout=(Server Default)

适用于 Android 的 Citrix Workspace 应用程序 不支持配置文件
适用于 iOS 的 Citrix Workspace 应用程序 不支持配置文件
适用于 HTML5 的 Citrix Workspace 应用程序 不支持配置文件

表 2 – 本地文件配置中的“使用 VDA 端默认键盘”模式

在 StoreFront 中配置以下设置:

路径:C:\inetpub\wwwroot\Citrix\%StoreName%\App_Data\default.ica

更改 [WFClient] 中的设置:KeyboardLayout=(Server Default)

模式2:配置“登录或重新连接到 VDA 时使用特定键盘”模式

此模式还支持本地文件和 StoreFront 配置。它在配置文件中使用相同的配置项目。用户可以设置附录 A 中列出的特定键盘布局。例如,在登录或重新连接到 VDA 时,将特定键盘设置为“法语”,并更改 [WFClient] 中的以下设置:KeyboardLayout=French

模式3:配置“仅在登录或重新连接到 VDA 时才将 VDA 端键盘与客户端默认键盘同步”模式

此模式将在登录或重新连接到 VDA 时将客户端键盘同步到 VDA 端一次。此模式还支持本地文件和 StoreFront 配置。它在配置文件中使用相同的配置项目。您将更改 [WFClient] 中的以下设置:KeyboardLayout=(User Profile)

并非所有 Citrix Workspace 应用程序都支持此模式,如下表所示:

Citrix Workspace 应用程序 支持
适用于 Windows 的 Citrix Workspace 应用程序
适用于 MAC 的 Citrix Workspace 应用程序
适用于 Linux 的 Citrix Workspace 应用程序
适用于 Android 的 Citrix Workspace 应用程序
适用于 iOS 的 Citrix Workspace 应用程序
适用于 HTML5 的 Citrix Workspace 应用程序 是,但根据浏览器的当前显示语言判断客户端键盘。

表 3 – 支持“仅在登录或重新连接到 VDA 时才将 VDA 端键盘与客户端默认键盘同步”模式的 Citrix Workspace 应用程序

模式4:配置“在 VDA 会话中动态将 VDA 端键盘与客户端键盘同步”模式

每次更改客户端键盘时,此模式都会将客户端键盘同步到会话中的 VDA 端。它将始终保持客户端与 VDA 端之间的键盘一致。如果用户在 VDA 端更改键盘,此模式不支持将 VDA 端键盘同步到客户端。对于 CJK(中文、日语、韩语)用户,此模式将使其能够使用客户端 IME 来代替 VDA 端 IME。此模式又称为“客户端键盘同步和通用客户端 IME”功能,必须同时配置客户端和 VDA 端才能启用此功能。

VDA端配置:

VDA 配置
Windows VDA Windows Server 2012、Windows 10 默认设置为“开”。

Windows Server 2016 和 Windows Server 2019 默认设置为“关”。需要添加以下注册表:HKLM\Software\Citrix\ICA\IcaIme\DisableKeyboardSync 值 = DWORD 0

此设置将启用动态客户端键盘同步和通用客户端 IME。

Linux VDA 默认设置为“关”。

要启用动态客户端键盘同步,请运行以下命令:

/opt/Citrix/VDA/bin/ctxreg update -k “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\LanguageBar” -v “SyncKeyboardLayout” -d “0x00000001”

要启用通用客户端 IME,请运行以下命令:

/opt/Citrix/VDA/bin/ctxreg update -k “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\LanguageBar” -v “SyncClientIME” -d “0x00000001”

表 4 VDA – 针对“在 VDA 会话中动态同步 VDA 端键盘与客户端键盘”模式进行配置

Citrix Workspace 应用程序客户端配置:

Citrix Workspace 应用程序 配置
适用于 Windows 的 Citrix Workspace 应用程序 请参阅“键盘布局”部分(此处)。
适用于 MAC 的 Citrix Workspace 应用程序 请参阅“键盘布局同步”和“Mac 中支持的键盘布局”部分(此处)。
适用于 Linux 的 Citrix Workspace 应用程序 配置文件路径:/opt/Citrix/ICAClient/config/module.ini

[ICA 3.0] 部分:KeyboardSync=On

查找有关“键盘布局同步”和“Linux VDA 的键盘布局支持”的详细信息(此处)。

适用于 Android 的 Citrix Workspace 应用程序 选择“设置”->“键盘”->“启用客户端 IME”和“同步键盘”

查找有关“键盘布局同步”的更多详细信息(此处)。

适用于 iOS 的 Citrix Workspace 应用程序 选择“设置”->“键盘选项”->“键盘布局同步”

查找有关“键盘布局同步”的更多详细信息(此处)。

适用于 HTML5 的 Citrix Workspace 应用程序 不支持。

表 5 – CWA 针对“在 VDA 会话中动态同步 VDA 端键盘与客户端键盘”模式进行配置

为 Windows VDA 启用 Unicode 键盘布局映射

操作系统之间的键盘布局差异可能会导致出现键映射问题。例如,Mac 法国键盘布局与 Windows 不同。Citrix Virtual Apps and Desktops 使用“Unicode 键盘布局映射”技术来使本文前面提及的规则 2 生效。如果用户在使用非 Windows 版本的 Citrix Workspace 应用程序时遇到键输入问题,Windows VDA 需要启用“Unicode 键盘布局映射”功能。请在 Windows VDA 中添加以下注册表以启用此功能

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxKlMap\EnableKlMap 值 = DWORD 1

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxKlMap\DisableWindowHook 值 = DWORD 1

请注意,如果启用了此功能,非 Windows 版本的 Citrix Workspace 应用程序将始终遵循规则 2,即使客户端与 VDA 之间的键盘语言不同亦如此。例如,适用于 Mac 的 Citrix Workspace 应用程序使用美式英语键盘,但 Windows VDA 使用法国键盘布局。键映射将使用美式英语键盘。“在 VDA 会话中动态同步 VDA 端键盘与客户端键盘”模式将始终尝试在 Citrix Workspace 应用程序与 VDA 之间保持尽可能相似的键盘布局,以减少键输入问题。

不同场景中的配置

场景 1:组织中 Citrix Workspace 应用程序和 VDA 中使用相同的语言 – 在此场景中,请使用 Citrix Workspace 应用程序和 VDA 的默认设置。

场景 2:组织中使用许多不同的语言,但用户仅使用一种语言 – 在此场景下,请在键盘同步模式 1 下配置 Citrix Workspace 应用程序。

场景 3:组织中仅使用 Windows 的客户端 Citrix Workspace 应用程序,并且没有移动工作要求 – 在此场景中,适用于 Windows 的 Citrix Workspace 应用程序可以在默认同步模式 3 下运行,如表 1 中所示。用户将使用 VDA 端的键盘布局,并且可以在 VDA 中添加任何键盘。

场景 4:组织中使用安装了适用于 Linux 的 Citrix Workspace 应用程序的瘦客户端计算机 – 如果虚拟桌面在计算机开机时启动并保持全屏,在此场景中,用户无法更改客户端键盘,无论 VDA 端使用何种键盘布局,都将应用客户端键盘布局,并且使用固定键盘布局。IT 管理员应事先设置 Linux默认键盘布局,然后确保Linux 的 Citrix Workspace 应用程序配置为模式 3。如果用户更改 VDA 端的键盘布局,则可能会出现键输入错误。如果允许用户更改客户端键盘,VDA 设置“Unicode 键盘布局映射” 功能并设置键盘同步模式 4。然后,用户可以更改客户端的键盘布局,该布局将同步到 VDA 端。

场景 5:组织中具有适用于各种操作系统的 Citrix Workspace 应用程序 – 在此场景中,请使用键盘同步模式 4 并启用Windows VDA 的“Unicode 键盘布局映射”功能。

面向中文、日语和韩语 (CJK) 用户的通用客户端 IME

如果 CJK 用户希望使用客户端 IME 来代替 VDA 端以获得更好的用户体验,通用客户端 IME 功能可为其提供无缝输入体验。通用客户端 IME 功能随键盘同步模式 4 启用。当用户在客户端选择 IME 时,面向 CJK 语言的 Citrix IME 将在 VDA 端自动启用。了解更多信息(此处)。

Windows 10 中的触摸键盘

Windows 10 具有触摸键盘以支持平板电脑模式。用户可以使用键盘同步模式 4 将触摸键盘同步到VDA 端。另一个相关设置是当使用 Windows 客户端的 Citrix Workspace 应用程序,触摸键盘能够自动弹出。了解更多关于此配置的信息。

其他相关配置

显示/隐藏远程语言栏

此功能仅适用于 Citrix Virtual Apps。对于 Windows VDA,如果远程 VDA 具有多种键盘布局,则VDA端语言栏将默认显示。可以使用以下配置隐藏远程语言栏:

Citrix Workspace 应用程序 配置
适用于 Windows 的 Citrix Workspace 应用程序 “语言栏”部分(此处
适用于 MAC 的 Citrix Workspace 应用程序 “语言栏”部分(此处
适用于 Linux 的 Citrix Workspace 应用程序 不支持
适用于 Android 的 Citrix Workspace 应用程序 不支持
适用于 iOS 的 Citrix Workspace 应用程序 不支持
适用于 HTML5 的 Citrix Workspace 应用程序 不支持

表 6 – 用于显示/隐藏语言栏的配置

对于 Linux VDA,语言栏默认处于隐藏状态。有关详细信息,请单击此处

显示/隐藏键盘布局切换弹出消息框

如果用户在客户端切换键盘布局,在 Windows VDA 中的键盘同步模式 4 下将弹出一个消息框。此弹出消息可以通过 Windows VDA 配置 HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\IcaIme\HideNotificationWindow DWORD = 1 隐藏(在此处搜索“禁止显示弹出窗口”)。

101、103 和 106 键盘

大多数区域国家用户都使用 101 键盘类型。韩国使用的 103 键盘支持两个额外的特殊键。 日本使用 106 键盘。键盘类型是在会话启动时确定的。下表显示了如何配置日语 106 键盘。

Citrix Workspace 应用程序 日语 106 键盘支持
适用于 Windows 的 Citrix Workspace 应用程序 会话启动或配置时自动检测客户端键盘类型:

文件路径:%appdata%\ICAClient\WFCLIENT.ini

更改 [WFClient] 中的设置:KeyboardType=106 Keyboard (Japanese)

适用于 MAC 的 Citrix Workspace 应用程序 文件路径:~/Library/Application Support/Citrix Receiver/Config

更改 [WFClient] 中的设置:KeyboardType=106 Keyboard (Japanese)

适用于 Linux 的 Citrix Workspace 应用程序 文件路径:~/.ICAClient/wfclient.ini

更改 [WFClient] 中的设置:KeyboardType=106 Keyboard (Japanese)

适用于 Android 的 Citrix Workspace 应用程序 不支持
适用于 iOS 的 Citrix Workspace 应用程序 不支持
适用于 HTML5 的 Citrix Workspace 应用程序 不支持

表 7 – 日语 106 键盘支持

附录 A. 支持的键盘名称

配置文件中的键盘名称 Windows 键盘布局标识符 Windows 10 中的键盘名称
比利时荷兰语 0x00000813 荷兰语(比利时)

比利时语(句号)键盘

比利时法语 0x0000080C 荷兰语(比利时)

比利时法语键盘

巴西(ABNT) 0x00000416 葡萄牙语(巴西)

葡萄牙语(巴西 ABNT)键盘

英国 0x00000809 英语(英国)

英式键盘

加拿大英语(多语言) 0x00001009 英语(加拿大)

美式键盘

加拿大法语 0x00000C0C 英语(加拿大)

加拿大法语键盘

克罗地亚语 0x0000041A 克罗地亚语(克罗地亚)

标准键盘

捷克语 0x00000405 捷克语

捷克语键盘

丹麦语 0x00000406 丹麦语

丹麦语键盘

荷兰语 0x00000413 荷兰语(荷兰)

荷兰语键盘

芬兰语 0x0000040B 芬兰语

芬兰语键盘

法语 0x0000040C 法语(法国)

法语键盘

德语 0x00000407 德语(德国)

德语键盘

希腊语 0x00000408 希腊语

希腊语键盘

匈牙利语 0x0000040E 匈牙利语

匈牙利语键盘

冰岛语 0x0000040F 冰岛语

冰岛语键盘

意大利语 0x00000410 意大利语(意大利)

意大利语键盘

意大利语(142) 0x00010410 意大利语(意大利)

意大利语(142)键盘

日语(JIS) 0xe00010410 日语

Microsoft IME

韩语 0xe00010412 韩语

Microsoft IME

拉丁美洲语 0x0000080A 西班牙语(墨西哥)

拉丁美洲语键盘

挪威语 0x00000414 挪威语(博克马尔语)

挪威语键盘

波兰语(程序员) 0x00000415 波兰语

波兰语(程序员)键盘

波兰语(214) 0x00010415 波兰语

波兰语(214)键盘

葡萄牙语 0x00000816 葡萄牙语(葡萄牙)

葡萄牙语键盘

罗马尼亚语  0x00000418 罗马尼亚语(罗马尼亚)

罗马尼亚语(传统)键盘

俄语  0x00000419 俄语

俄语键盘

斯洛伐克语  0x0000041B 斯洛伐克语

斯洛伐克语键盘

斯洛文尼亚语 0x00000424 斯洛文尼亚语

斯洛文尼亚语键盘

西班牙语  0x0000040A 西班牙语(西班牙)

西班牙语键盘

西班牙语变体  0x0001040A 西班牙语(西班牙)

西班牙语变体键盘

瑞典语  0x0000041D 瑞典语(瑞典)

瑞典语键盘

瑞士法语 0x0000100C 法语(法国)

瑞士法语键盘

瑞士德语 0x00000807 德语(瑞士)

瑞士德语键盘

土耳其语(F) 0x0001041F 土耳其语

土耳其语 F 键盘

土耳其语(Q) 0x000041F 土耳其语

土耳其语 Q 键盘

美国  0x00000409 英语(美国)

美式键盘

美国英语-Dvorak 0x00010409 英语(美国)

美国英语-Dvorak 键盘

美国-国际  0x00020409 荷兰语(荷兰)

美国-国际键盘