How to redirect local keyboard layout in Citrix sessions

Issue

In some Citrix Virtual Apps and Desktops (former XenApp/XenDesktop) environment, every time a Citrix VDA server is rebooted or even at random times the keyboard layouts appearing inside the Citrix session change. This is because Citrix Workspace App client is making use of the keyboard layouts defined in the Citrix VDA server on top of the keyboard layouts defined in the local machine. In cases where users are making use of non-US keyboards this can be disturbing and will need to be fixed.

Resolution

The above issue can be resolved by configuring the Citrix server and workspace app client to only redirect the local keyboard layouts and ignore the Citrix VDA server keyboard layouts. This can accomplished by following the steps below.

Bear in mind that this article is primarily focused on users running Citrix Workspace App client in a supported Windows local machine. If the end user is running a non-Windows version of Citrix Workspace App (former Receiver) they will probably need to take extra configuration steps. For more details, refer to the Sources section of this article.

The below configuration changes must be made to allow local client keyboard layout redirection to a Citrix Virtual Apps and Desktops session.

Citrix VDA server configuration

The following registry keys must be configured (can be done via GPO for all VDA servers).

On the affected Citrix VDA servers, set the following values:
1) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout –> Create REG_DWORD, name=IgnoreRemoteKeyboardLayout value=0
2) HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Ica\IcaIme –> Create REG_DWORD, name=DisableKeyboardSync value=0

Citrix client for Windows configuration (mandatory, if windows client locally)

In the following local configuration file %AppData%\ICAClient APPSRV.INI (= C:\Users\%UserName%\AppData\Roaming\ICAClient APPSRV.INI)
set the following parameters exactly as shown below:
LocalIME=1
KeyboardLayout=(User Profile)

Citrix Workspace app for Windows File path: “%appdata%\ICAClient\WFCLIENT.ini”

Set the following parameter value:

KeyboardLayout=(User Profile)

After the above changes right click the Citrix Workspace App and choose “Advanced Preferences –> Keyboard and Language bar”. Ensure that the following options are checked:
1) Display the language bar in Citrix session
2) Yes, use the local keyboard layout.

Citrix Client for Mac (mandatory, if Mac client locally)

Citrix Workspace app for MAC File path: “~/Library/Application Support/Citrix Receiver/Config”
open the Config file in the ~/Library/Application Support/Citrix Receiver/Config folder, locate the “EnableIMEEnhancement” setting and turn the feature on or off by setting the value to “true” or “false,” respectively.

Change setting in [WFClient]: KeyboardLayout=(Server Default) or KeyboardLayout=(User Profile)

To control this feature alone, open the Config file in the ~/Library/Application Support/Citrix Receiver/ folder, locate the “EnableIMEEnhancement” setting and turn the feature on or off by setting the value to “true” or “false,” respectively.

Note: The setting change takes effect after restarting the session.

To enable keyboard layout synchronization, go to Preferences > Keyboard and select “Use local keyboard layout, rather than the remote server keyboard layout.”

More details on Citrix Workspace app for MAC  (https://docs.citrix.com/en-us/receiver/mac/current-release/configure.html)

Registry setting for Unicode languages (optional, for non-windows versions of Workspce app)

The difference in keyboard layout among operating systems can cause key mapping issues. For example, the Mac France keyboard layout is different from Windows. Citrix Virtual Apps and Desktops uses “Unicode Keyboard Layout Mapping” technology. Windows VDAs need to enable “Unicode Keyboard Layout Mapping” feature if users have key input issue when using a non-Windows version of Citrix Workspace app. Add the following registries in Windows VDA to enable this feature

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

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

You can find more detailed guidance and step-by-step procedures for analyzing and troubleshooting Citrix Virtual Apps and Desktops organized by category in my Citrix Virtual Apps and Desktops Troubleshooting e-book.

Sources

https://www.citrix.com/blogs/2020/04/22/citrix-virtual-apps-and-desktops-keyboard-and-ime-configurations/

Was this article helpful?

Related Articles