Keyboard
Keyboard behavior
To generate a remote Ctrl+Alt+Delete key combination:
- Decide which key combination creates the Ctrl+Alt+Delete combination on the remote virtual desktop.
- In the WFClient section of the appropriate configuration file, configure UseCtrlAltEnd:
- True means that Ctrl+Alt+End passes the Ctrl+Alt+Delete combination to the remote desktop.
- False (default) means that Ctrl+Alt+Enter passes the Ctrl+Alt+Delete combination to the remote desktop.
Generic redirection
Configuring the Bloomberg v4 keyboard through Generic USB Redirection on the client side:
As a prerequisite, the policy must be enabled in the Domain Delivery Controller (DDC).
-
Find the vid and pid of the Bloomberg keyboard. For example, in Debian and Ubuntu run the following command:
lsusb
-
Go to $ICAROOT and edit the usb.conf file.
-
Add the following entry in the usb.conf file to allow the Bloomberg keyboard for USB redirection, and then save the file.
ALLOW: vid=1188 pid=9545
-
Restart the
ctxusbd
daemon on the client. For example, in Debian and Ubuntu run the following command:systemctl restart ctxusbd
-
Launch a client session. Make sure that the session has focus while plugging in the Bloomberg v4 keyboard for redirection.
Note:
You can add the following configuration to disable the
selectconfiguration
command:
ALLOW: vid=1100 pid=0101 disableselectconfig=1
.The
selectconfiguration
is a command used in VDA to configure USB devices.
Selective redirection
This feature allows the use of the Bloomberg keyboard v4 and v5 interface across multiple sessions. This functionality provides flexibility to use the keyboard in all remote sessions except the fingerprint and audio interfaces. The fingerprint and audio interfaces are redirected to single sessions as before.
To enable the feature:
-
Edit the BloombergRedirection section as follows in the
$HOME/.ICAClient/wfclient.ini
file.BloombergRedirection=true <!--NeedCopy-->
-
Do all the steps mentioned in Generic redirection.
To disable the feature:
-
Edit the BloombergRedirection section as follows in the
$HOME/.ICAClient/wfclient.ini
file.BloombergRedirection=false <!--NeedCopy-->
-
Do all the steps mentioned in Generic redirection.
Note:
Setting the value to false reverts the functionality to the behavior present in earlier versions of the client, where all the interfaces are redirected to a single session.
Support for keyboard shortcut to switch between Full-screen and Window mode
Previously, you could use either the Window or Full-screen button on the Desktop Viewer to toggle between Full-screen and Window mode.
Starting with the Citrix Workspace app 2308 release, you can use a keyboard shortcut Ctrl+F2 to switch between Full-screen and Window mode. For example, when the desktop session is in Full-screen mode, if you press “Ctrl+F2”, the desktop session exits from the Full-screen mode.
This feature is disabled by default.
To enable this feature:
-
If
.ICAClient
is already present in the home folder of the current user when the new Citrix Workspace app for Linux version is installed:Delete the All_Regions.ini file. Or Retain the All_Regions.ini file and add the following lines at the end of the [Client Engine\Application Launching] section:
FullScreenShortcutSupport=* <!--NeedCopy-->
-
Navigate to the /opt/Citrix/ICAClient/config/All_Regions.ini file and modify the value of FullScreenShortcutSupport as follows:
FullScreenShortcutSupport=true <!--NeedCopy-->
By default, the keyboard shortcut is Ctrl+F2.
You can also customize the shortcut key. The shortcuts are composed of two different parts such as KeyPassthroughEscapeShift and KeyPassthroughEscapeChar in the All_Regions.ini
file.
The two keys that you’re using must be from the following list:
Name | Section | Value |
---|---|---|
KeyPassthroughEscapeShift | [Virtual Channels\Keyboard] in All_Regions.ini | [Alt, Ctrl, Shift, Alt+Ctrl, Alt+Shift, Ctrl+Shift, Alt+Ctrl+Shift], Default value: Ctrl |
KeyPassthroughEscapeChar | [Virtual Channels\Keyboard] in All_Regions.ini | [F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, Minus, Plus, Tab, Pause], Default value: F2, Note: Minus and Plus are the keys on the numeric pad. |
For example, if you want to use “Ctrl+Shift+F3” as the keyboard shortcut, the configuration items must be as follows:
- KeyPassthroughEscapeShift=Ctrl+Shift
- KeyPassthroughEscapeChar=F3
Limitation:
- If you use a keyboard combination that conflicts with the client OS shortcuts or contains a system shortcut, the Full-screen toggle might not work because the client OS takes precedence on using this shortcut. For example, if you use “Ctrl + F3” as a Linux OS system shortcut, you can’t use “Ctrl + F3” or “Shift + Ctrl + F3” as the Citrix Workspace app Full-screen toggle.
-
Ctrl+Alt+F'*'
orAlt+Ctrl+F'*'
(F'*'
refers to F1-F12) are keyboard shortcuts used to switch between Virtual Terminals in Linux. These shortcuts must not be used for Full-screen toggle. - Alt+Ctrl+Plus or Alt+Ctrl+Minus (Plus and Minus are the keys on the numerical keyboard) are mapped to the symbols XF86Next_VMode/XF86Prev_VMode in the Linux system and not available for shortcuts. So, these combinations must not be used for Full-screen toggle.
Keyboard layout synchronization
Keyboard layout synchronization enables you to switch among preferred keyboard layouts on the client device. This feature is disabled by default. After you enable this feature, the client keyboard layout automatically synchronizes to the virtual apps and desktops.
Starting with version 2203, Citrix Workspace app supports the following three different keyboard layout synchronization modes:
-
Sync only once - when session launches – Based on the
KeyboardLayout
value in the wfclient.ini file, the client keyboard layout is synchronized to the server when the session launches. If theKeyboardLayout
value is set to0
, the system keyboard is synchronized to VDA. If theKeyboardLayout
value is set to a specific language, the language-specific keyboard is synchronized to VDA. Any changes you make to the client keyboard layout during the session do not take effect immediately. To apply the changes, sign out and sign in to the app. Also, the changes take effect if you sign in again or reconnect to the VDA session. The Sync only once - when session launches mode is the default keyboard layout selected for the Citrix Workspace app. - Allow dynamic sync - This option synchronizes the client keyboard layout to the server when you change the client keyboard layout.
- Don’t sync - Indicates that the client uses the keyboard layout present on the server.
Prerequisite:
-
Enable the Unicode Keyboard Layout Mapping feature on the Windows VDA. For more information, see Knowledge Center article CTX226335.
- Enable the Dynamic Keyboard layout sync feature on the Linux VDA. For more information, see Dynamic keyboard layout synchronization
- Keyboard layout synchronization depends on XKB lib.
- When you use a Windows Server 2016 or Windows Server 2019, navigate to the
HKEY_LOCAL_MACHINE\Software\Citrix\ICA\IcaIme
registry path. And then, add a DWORD value with key nameDisableKeyboardSync
and set the value to0
. -
If
.ICAClient
is already present in the home folder of the current user:Delete the All_Regions.ini file
or
To retain the
All_Regions.ini
file, add the following lines at the end of the[Virtual Channels\Keyboard] section:KeyboardSyncMode=
KeyboardEventMode=
Configure keyboard layout
Citrix Workspace app provides both UI and configuration settings to enable the three different keyboard layout synchronization modes.
To configure keyboard layout synchronization using the graphical user interface:
-
From the Citrix Workspace app icon in the notification area, select Preferences.
Or,
Open the terminal, navigate to the installation path, and run the following command:
util/configmgr
The Citrix Workspace – Preferences dialog appears.
-
Click the Keyboard tab.
The Keyboard layout synchronization settings page appears.
-
Select from one of the following options:
- Sync only once - when session launches - Indicates that the keyboard layout is synced to the VDA only once at the session launch. Unicode keyboard input mode is the recommended option for the Sync only once – when session launches mode.
- Allow dynamic sync - Indicates that the keyboard layout is synced dynamically to the VDA when the client keyboard is changed in a session. Unicode keyboard input mode is the recommended option for the Allow dynamic sync mode.
- Don’t sync - Indicates that the client uses the keyboard layout present on the server, irrespective of the keyboard layout that is selected in the client. Scancode keyboard input mode is the recommended option for the Don’t sync mode. You must make sure that the client keyboard layout is the same as the keyboard layout on the VDA if you select Unicode for the Don’t Sync option.
-
Click Save and Close.
To configure keyboard layout synchronization using configuration file settings:
Modify the wfclient.ini
configuration file to enable the required keyboard layout.
Sync only once – when session launches:
With this feature enabled, when launching a session, the active keyboard layout on the client device is synchronized to VDA. Based on the KeyboardLayout
value in the wfclient.ini
file, the client keyboard layout is synchronized to the server when the session launches. If the KeyboardLayout
value is set to 0
, the system keyboard is synchronized to VDA. If the KeyboardLayout
value is set to a specific language, the language-specific keyboard is synchronized to VDA.
To select this mode, do the following:
- Navigate to the
$HOME/.ICAClient/wfclient.ini
configuration file. -
Add the following entries:
KeyboardSyncMode=Once KeyboardEventMode=Unicode (or KeyboardEventMode= Scancode) <!--NeedCopy-->
Unicode keyboard input mode is the recommended option for the Sync only once – when session launches mode.
Allow dynamic sync:
With this feature enabled, when the keyboard layout changes on the client device during a session, the keyboard layout of the session changes correctly.
To select this mode, do the following:
- Navigate to the
$HOME/.ICAClient/wfclient.ini
configuration file. -
Add the following entries:
KeyboardSyncMode=Dynamic KeyboardEventMode=Unicode (or KeyboardEventMode= Scancode) <!--NeedCopy-->
Unicode keyboard input mode is the recommended option for the Allow dynamic sync mode.
Don’t sync:
With this feature enabled, the VDA side keyboard layout is used, irrespective of the keyboard layout that is selected in the client device.
To select this mode, do the following:
- Navigate to the
$HOME/.ICAClient/wfclient.ini
configuration file. -
Add the following entries:
KeyboardSyncMode=No KeyboardEventMode= Scancode (or KeyboardEventMode= Unicode) <!--NeedCopy-->
Scancode keyboard input mode is the recommended option for the Don’t sync mode. You must make sure that the client keyboard layout is the same as the VDA side keyboard layout if you configure to Unicode for Don’t Sync option.
Note:
When you set
KeyboardSyncMode=""
(empty) in thewfclient.ini
file, the mode reverts to the earlier behavior. In the earlier behavior, the keyboard layout is read from the$HOME/.ICAClient/wfclient.ini
file. And, send this value to the VDA along with other client information when the session starts.
Keyboard Input Mode
Citrix recommends the following keyboard input mode for the different keyboard layout sync options:
- Scancode mode for Don’t Sync option.
- Unicode mode for Allow dynamic sync and Sync only once - when session launches options.
You can change the configuration of KeyboardEventMode
in the wfclient.ini
file. However, for best performance, use the Citrix-recommended modes for different scenarios, physical keyboards, and client devices.
Keyboard input mode enhancements
Previously, you were able to enable different keyboard input modes only by updating the value of KeyboardEventMode
in the configuration file. There was no UI option to select the keyboard input mode.
Starting with Citrix Workspace app 2309, you can configure different keyboard input modes from the newly introduced Keyboard input mode settings section. You can select Scancode or Unicode as keyboard input mode.
To configure keyboard input mode by using the GUI, do the following:
- From the Citrix Workspace app icon in the notification area, select Preferences. The Citrix Workspace – Preferences dialog box appears.
-
Click Keyboard. You can see the Keyboard input mode settings section.
-
Select one of the following options:
- Scancode – Sends the key position from the client-side keyboard to VDA and VDA generates the corresponding character. Applies server-side keyboard layout.
- Unicode - Sends the key from the client-side keyboard to VDA and VDA generates the same character in VDA. Applies client-side keyboard layout.
By default, the Keyboard input mode setting is selected as Unicode. For more information on keyboard input mode, see the Configure keyboard layout section in the Keyboard layout synchronization documentation.
- Click Save and Close.
Note:
The keyboard configuration changes take effect once you reconnect to the application. If you change the keyboard input mode in the UI, the parameter value of the
KeyboardEventMode
in thewfclient.ini
file is also updated automatically.
For example, consider a scenario where you’re using a US international keyboard layout and the VDA is using the Russian keyboard layout.
When you choose Scancode and type the key next to Caps lock, the scancode 1E
is sent to the VDA. The VDA then uses 1E
to display the character ф
.
If you choose Unicode and type the key next to Caps lock, the character a
is sent to the VDA. So, even if the VDA uses the Russian keyboard layout, the character a
appears on the screen.
Support for extended keyboard layouts
Starting with Citrix Workspace app for Linux version 2309, the Scancode keyboard input mode supports the following extended keyboard layouts:
- Japanese 106 keyboard
- Portuguese ABNT/ABNT2 keyboards
- Multimedia keyboards
The Scancode keyboard input mode supports the extended keyboard layouts along with all keyboard layout synchronization modes.
This support is enabled by default. However, perform the following extra steps to configure the “Japanese 106 keyboard”:
- Navigate to the
$HOME/.ICAClient/wfclient.ini
configuration file. -
Add the following entries:
KeyboardType=106 Keyboard (Japanese) <!--NeedCopy-->
Client IME for East Asian languages
Client Input Method Editor (IME) feature enhances input and display experience with Chinese, Japanese, and Korean (CJK) language characters in Citrix Workspace app for Linux. You can choose to use the Client IME when you have a favorite IME in Linux Client or IME is not available from the remote server.
To enable this feature, do the following:
- Navigate to the
$HOME/.ICAClient/wfclient.ini
configuration file. -
Add the following entries:
KeyboardEventMode=Unicode UseLocalIM=True <!--NeedCopy-->
If your client Linux distribution doesn’t have a working iBus, you must set the KeyboardLayout
value. You must explicitly set this value according to your IME language in the wfclient.ini configuration file as follows:
- For Chinese IME -
KeyboardLayout=Chinese (PRC)
- For Japanese IME -
KeyboardLayout=Japanese (JIS)
- For Korean IME -
KeyboardLayout=Korean
Enhancement to support keyboard layout synchronization for GNOME 42
Starting with the 2305 version, Citrix Workspace app for Linux supports keyboard layout synchronization for desktops like Ubuntu 22.04 which uses the GNOME 42
desktop environment and later versions.
Keyboard layout support for Windows VDA and Linux VDA
Linux Client Keyboard Description | Linux Client Keyboard Layout | Linux Client Keyboard Variant | Syncs to | Windows Locale ID | Windows VDA Keyboard Layout (ID) | Linux VDA Keyboard Layout | Linux VDA Keyboard Variant |
---|---|---|---|---|---|---|---|
Arabic | ara |
- | → |
ar-SA |
00000401 | ara |
- |
Arabic (AZERTY) | ara |
azerty |
→ |
ar-DZ |
00020401 | ara |
azerty |
German (Austria) | at |
- | → |
de-AT |
00000407 | at |
- |
Belgian (alt. ISO) | be |
iso-alternate |
→ |
fr-BE |
0000080c |
be |
iso-alternate |
Belgian | be |
- | → |
nl-BE |
00000813 | be |
- |
Bulgarian | bg |
- | → |
bg-BG |
00030402 | bg |
- |
Bulgarian (traditional phonetic) | bg |
phonetic | → |
bg-BG |
00040402 | bg |
phonetic |
Bulgarian (new phonetic) | bg |
bas_phonetic |
→ |
bg-BG |
00020402 | bg |
bas_phonetic |
Portuguese (Brazil) | br |
- | → |
pt-BR |
00000416 | br |
- |
Belarusian | by |
- | → |
be-BY |
00000423 | by |
- |
English (Canada) | ca |
eng |
→ |
en-CA |
00000409 | ca |
eng |
Canadian Multilingual | ca |
multix |
→ |
fr-CA |
00011009 | ca |
multix |
French (Canada, legacy) | ca |
fr-legacy |
→ |
fr-CA |
00000c0c | ca |
fr-legacy |
French (Canada) | ca |
- | → |
fr-CA |
00001009 | ca |
- |
French (Switzerland) | ch |
fr |
→ |
fr-CH |
0000100c | ch |
fr |
German (Switzerland) | ch |
- | → |
de-CH |
00000807 | ch |
- |
Chinese (Simplified) | cn |
- | → |
en-US |
00000409 | us |
- |
Czech | cz |
- | → |
cs-CZ |
00000405 | cz |
- |
Czech (QWERTY) | cz |
qwerty |
→ |
cs-CZ |
00010405 | cz |
qwerty |
German | de |
- | → |
de-DE |
00000407 | de |
- |
German (Macintosh) | de |
mac |
→ |
de-DE |
00000407 | de |
mac |
Danish | dk |
- | → |
da-DK |
00000406 | dk |
- |
Estonian | ee |
- | → |
et-EE |
00000425 | ee |
- |
Spanish (Latin American) | es |
- | → |
es-ES |
0000040a | es |
- |
Spanish (Macintosh) | es |
mac |
→ |
es-ES |
0000040a | es |
mac |
Finnish | fi |
- | → |
fi-FI |
0000040b | fi |
- |
French | fr |
- | → |
fr-FR |
0000040c | fr |
- |
French (Macintosh) | fr |
mac |
→ |
fr-FR |
0000040c | fr |
mac |
English (UK) | gb |
- | → |
en-GB |
00000809 | gb |
- |
English (Macintosh) | gb |
mac | → |
en-GB |
00000809 | gb |
mac |
English (UK, extended, with Win keys) | gb |
extd |
→ |
en-GB |
00000452 | gb |
extd |
Greek | gr |
- | → |
el-GR |
00000408 | gr |
- |
Croatian | hr |
- | → |
hr-HR |
0000041a | hr |
- |
Hungarian | hu |
- | → |
hu-HU |
0000040e | hu |
- |
Irish | ie |
- | → |
en-IE |
00001809 | ie |
- |
Hebrew | il |
- | → |
he-IL |
0002040d | il |
- |
English (India, with rupee) | in |
eng |
→ |
en-IN |
00004009 | in |
eng |
Iraqi | iq |
- | → |
ar-IQ |
00000401 | iq |
- |
Icelandic | is |
- | → |
is-IS |
0000040f | is |
- |
Italian | it |
- | → |
it-IT |
00000410 | it |
- |
Japanese | jp |
- | → |
en-US |
00000409 | us |
- |
Japanese (Macintosh) | jp |
mac |
→ |
en-US |
00000409 | us |
mac |
Korean | kr |
- | → |
en-US |
00000409 | us |
- |
Spanish (Latin American) | latam |
- | → |
es-MX |
0000080a | latam |
- |
Lithuanian | lt |
- | → |
lt-LT |
00010427 | lt |
- |
Lithuanian (IBM LST 1205-92) | lt |
ibm |
→ |
lt-LT |
00000427 | lt |
ibm |
Lithuanian (Standard) | lt |
std |
→ |
lt-LT |
00020427 | lt |
std |
Latvian | lv |
- | → |
lv-LV |
00020426 | lv |
- |
Norwegian | no |
- | → |
nb-NO |
00000414 | no |
- |
Polish | pl |
- | → |
pl-PL |
00000415 | pl |
- |
Polish (QWERTZ) | pl |
qwertz |
→ |
pl-PL |
00010415 | pl |
qwertz |
Portuguese | pt |
- | → |
pt-PT |
00000816 | pt |
- |
Portuguese (Macintosh) | pt |
mac |
→ |
pt-PT |
00000816 | pt |
mac |
Romanian (standard) | ro |
std |
→ |
ro-RO |
00010418 | ro |
std |
Serbian | rs |
- | → |
sr-Cyrl-RS |
00000c1a | rs |
- |
Serbian (Latin) | rs |
latin | → |
sr-Latn-RS |
0000081a | rs |
latin |
Russian | ru |
- | → |
ru-RU |
00000419 | ru |
- |
Russian (typewriter) | ru |
typewriter |
→ |
ru-RU |
00010419 | ru |
typewriter |
Russian (Macintosh) | ru |
mac |
→ |
ru-RU |
00000419 | ru |
mac |
Swedish | se |
- | → |
sv-SE |
0000041d | se |
- |
Swedish (Macintosh) | se |
mac |
→ |
sv-SE |
0000041d | se |
mac |
Slovenian | si |
- | → |
sl-SI |
00000424 | si |
- |
Slovak | sk |
- | → |
sk-SK |
0000041b | sk |
- |
Slovak (QWERTY) | sk |
qwerty |
→ |
sk-SK |
0001041b | sk |
qwerty |
Thai | th |
- | → |
th-TH |
0000041e | th |
- |
Thai (Pattachote ) |
th |
pat |
→ |
th-TH |
0001041e | th |
pat |
Tajik | tj |
- | → |
tg-Cyrl-TJ |
00000428 | tj |
- |
Turkish | tr |
- | → |
tr-TR |
0000041f | tr |
- |
Turkish (F) | tr |
f |
→ |
tr-TR |
0001041f | tr |
f |
Chinese (Traditional) | tw |
- | → |
en-US |
00000409 | us |
- |
Ukrainian | ua |
- | → |
uk-UA |
00000422 | ua |
- |
English (US) | us |
- | → |
en-US |
00000409 | us |
- |
English (Macintosh) | us |
mac |
→ |
en-US |
00000409 | us |
mac |
English (Dvorak) | us |
dvorak |
→ |
en-US |
00010409 | us |
dvorak |
English (Dvorak, left-handed) | us |
dvorak-l |
→ |
en-US |
00030409 | us |
dvorak-l |
English (Dvorak, right-handed) | us |
dvorak-r |
→ |
en-US |
00040409 | us |
dvorak-r |
English (US, intl., with dead keys) | us |
intl |
→ |
nl-NL |
00020409 | us |
intl |
Vietnamese | vn |
- | → |
vi-VN |
0000042a | vn |
- |
VDA keyboard layout
The VDA keyboard layout feature helps you use the VDA keyboard layout regardless of the client’s keyboard layout settings. It supports the following types of keyboard: PC/XT 101, 102, 104, 105, 106.
To use the server-side keyboard layout:
-
Launch the wfclient.ini file.
-
Change the value of the
KeyboardLayout
attribute as follows:KeyboardLayout=(Server Default)
The default value for the
KeyboardLayout
attribute is (User Profile). -
Relaunch the session for the changes to take effect.
Synchronize multiple keyboards at session start
Previously, only the active keyboard on the client was synchronized with VDA after the session started in full-screen mode. In this scenario, if you configured Sync only once - when session launches on your Citrix Workspace app, and you had to change to a different keyboard, you have to manually install the keyboard on your remote desktop. This feature is used mostly when the client side keyboard input mode is scancode input mode. Users can select a keyboard layout in a remote session as the active keyboard layout which is synchronized from the client keyboard layout list.
Starting with 2402, all available keyboards on the Linux client are synchronized with VDA after the session starts in full-screen mode. You can select the required keyboard from the list of installed keyboards on the VDA, after the session starts in full-screen mode.
Prerequisites:
On Citrix Workspace app for Linux:
Enable Sync only once - when the session launches in the keyboard preference setting. For more information, see the Keyboard layout synchronization.
On VDA:
Enable the following VDA policies:
- Unicode Keyboard Layout Mapping. For more information, see Enable Unicode keyboard layout mapping or Keyboard and Input Method Editor (IME)
- Client keyboard layout synchronization and IME improvement. For more information, see Keyboard and Input Method Editor (IME)
Configuration on Citrix Workspace app for Linux:
This feature is applicable only on virtual desktops. This feature is disabled by default. To enable this feature, do the following:
- Navigate to the
/config
folder and open theAll_Regions.ini
file. -
Go to the
[Virtual Channels\Keyboard]
section and add the following entry:SyncKbdLayoutList=TRUE <!--NeedCopy-->
To disable this feature, set the value of SyncKbdLayoutList
to False.
Configuration on VDA:
The feature Synchronize multiple keyboards at session starts is enabled by default on VDA. Update the VDA registry setting to disable it when needed:
- Open the Registry editor and navigate to
HKEY_LOCAL_MACHINE\Software\Citrix\IcaIme
. - Create the DWORD entry DisableKbdLayoutList and set its value to 0. Setting the value to 1, disables the Synchronize multiple keyboards at session start feature.
- Restart the session for the changes to take effect.