For Linux desktops, you can configure certain options by adding entries to the /etc/vmware/config file or the /etc/vmware/viewagent-custom.conf file.

During Horizon Agent installation, the installer copies two configuration template files, config.template and viewagent-custom.conf.template, to /etc/vmware. In addition, if /etc/vmware/config and /etc/vmware/viewagent-custom.conf do not exist, the installer copies config.template to config and viewagent-custom.conf.template to viewagent-custom.conf. All the configuration options are listed and documented in the configuration files. To set an option, remove the comment and change the value, as appropriate.

For example, the following line in /etc/vmware/config enables the build to lossless PNG mode.
RemoteDisplay.buildToPNG=TRUE

After you make configuration changes, reboot Linux to make the changes take effect.

Configuration Options in /etc/vmware/config

The VMware BlastServer and BlastProxy processes, along with their related plug-ins and processes, use the /etc/vmware/config configuration file.
Note: The following table includes descriptions of each agent-enforced policy setting for USB devices in the Horizon Agent configuration file. Horizon Agent uses these settings to decide whether a USB device can be forwarded to the host machine. Horizon Agent also passes these settings to Horizon Client for interpretation and enforcement. The enforcement is based on whether you specify the merge ( (m)) modifier to apply the Horizon Agent filter policy setting in addition to the Horizon Client filter policy setting, or override the (o) modifier to use the Horizon Agent filter policy setting instead of the Horizon Client filter policy setting.
Table 1. Configuration Options in /etc/vmware/config
Option Value/Format Default Description
appScanner error, warn, info, or debug info

Use this option to specify the level of detail reported in the appScanner log file, which records activity related to remote application sessions. Valid values range from the least detailed "error" level to the most detailed "debug" level.

The appScanner log is located at /tmp/vmware-root/vmware-appScanner-<pid>.log, where <pid> is the ID of the appScanner process.

BlastProxy.log.logLevel error, warn, info, verbose, debug, or trace info

Use this option to specify the level of detail reported in the BlastProxy log file. Valid values range from the least detailed "error" level to the most detailed "trace" level.

The BlastProxy log is located at /tmp/vmware-root/vmware-BlastProxy-<pid>.log, where <pid> is the ID of the BlastProxy process.

BlastProxy.UdpEnabled true or false true Use this option to specify whether BlastProxy forwards UDP requests through secured port 22443 to Horizon Agent. true enables UDP forwarding. false deactivates UDP forwarding.
cdrserver.cacheEnable true or false true Set this option to enable or deactivate the write caching feature from the agent towards the client side.
cdrserver.customizedSharedFolderPath folder_path /home/ Use this option to change the client drive redirection shared folder location from the default /home/user/tsclient directory to a custom directory.

For example, if the user test wants to place the client drive redirection shared folder at /mnt/test/tsclient instead of /home/test/tsclient, the user can specify cdrserver.customizedSharedFolderPath=/mnt/.

Note: For this option to take effect, the specified folder must exist and be configured with the correct user permissions.
cdrserver.forcedByAdmin true or false false Set this option to control whether the client can share additional folders that are not specified with the cdrserver.shareFolders option.
cdrserver.logLevel error, warn, info, debug, trace, or verbose info Use this option to set the log level for the vmware-CDRserver.log file.
cdrserver.permissions R RW Use this option to apply additional read/write permissions that Horizon Agent has on the folders shared by Horizon Client. For example:
  • If the folder shared by Horizon Client has read and write permissions and you set cdrserver.permissions=R, then Horizon Agent has only read access permissions.
  • If the folder shared by Horizon Client has only read permissions and you set cdrserver.permissions=RW, Horizon Agent still has only read access rights. Horizon Agent cannot change the read only attribute set by Horizon Client. Horizon Agent can only remove the write access rights.
Typical uses are as follows:
  • cdrserver.permissions=R
  • #cdrserver.permissions=R (for example, comment it out or delete the entry)
cdrserver.sharedFolders file_path1,R;file-path2,; file_path3,R; ... undefined Specify one or more file paths to the folders that the client can share with the Linux desktop. For example:
  • For a Windows client: C:\spreadsheets,;D:\ebooks,R
  • For a non-Windows client: /tmp/spreadsheets;/tmp/ebooks,;/home/finance,R
Clipboard.Direction 0, 1, 2, or 3 2 Use this option to specify the clipboard redirection policy. Valid values are as follows:
  • 0 - Deactivate clipboard redirection.
  • 1 - Enable clipboard redirection in both directions.
  • 2 - Enable clipboard redirection from the client to the remote desktop only.
  • 3 - Enable clipboard redirection from the remote desktop to the client only.
collaboration.enableControlPassing true or false true Set this option to permit or restrict collaborators from having control of the Linux desktop. To specify a read-only collaboration session, set this option to false.
collaboration.enableEmail true or false true Set this option to enable or deactivate sending of collaboration invitations by using an installed email application. When this option is disabled, you cannot use email to invite collaborators, even if an email application is installed.
collaboration.logLevel error, info, or debug info Use this option to set the log level used for the collaboration session. If the log level is debug, all calls made to collabui functions and the contents of the collabor list are logged.
collaboration.maxCollabors An integer less than or equal to 20 5 Specifies the maximum number of collaborators that you can invite to join a session.
collaboration.serverUrl [URL] undefined Specifies the server URLs to include in the collaboration invitations.
Desktop.displayNumberMax An integer 159

Specifies the upper limit of the range of X Window System display numbers to allocate to user sessions. This feature is not supported on SLED/SLES desktops.

To restrict the allocation to a single display number, set Desktop.displayNumberMax and Desktop.displayNumberMin to the same value.

Note: If you specify a range that includes any of the display numbers 0 through 9, a conflict might occur with X server. Use the workaround described in VMware Knowledge Base (KB) article 81704.
Desktop.displayNumberMin An integer 100

Specifies the lower limit of the range of X Window System display numbers to allocate to user sessions. This feature is not supported on SLED/SLES desktops.

To restrict the allocation to a single display number, set Desktop.displayNumberMax and Desktop.displayNumberMin to the same value.

Note: If you specify a range that includes any of the display numbers 0 through 9, a conflict might occur with X server. Use the workaround described in VMware Knowledge Base (KB) article 81704.
mksVNCServer.useUInputButtonMapping true or false false Set this option to enable the support of a left-handed mouse on Ubuntu or RHEL 7.x. You do not need to set this option on CentOS, which provides native support for a left-handed mouse.
mksvhan.clipboardSize An integer 1024 Use this option to specify the clipboard maximum size to copy and paste.
rdeSvc.allowDisplayScaling true or false false Set this option to enable or deactivate display scaling, which changes the size of text, icons, and navigation elements.
rdeSvc.blockedWindows List of semicolon-separated paths to application executables N/A

Use this option to block specific applications from starting as a remote application session.

Specify the path to each application executable and use semicolons to separate entries in the list. For example: rdeSvc.blockedWindows=/usr/libexec/gnome-terminal-server;

rdeSvc.enableOptimizedResize true or false true Set this option to enable or deactivate optimized window resizing for published application sessions in Horizon Client for Windows. When this option is enabled, Windows client users can resize published application windows without encountering screen artifacts.
RemoteDisplay.allowAudio true or false true Set this option to enable or deactivate audio out.
RemoteDisplay.allowH264 true or false true Set this option to enable or deactivate H.264 encoding.
RemoteDisplay.allowH264YUV444 true or false true Set this option to enable or deactivate H.264 YUV 4:4:4 encoding with High Color Accuracy if the client supports it.
RemoteDisplay.allowHEVC true or false true Set this option to enable or deactivate High Efficiency Video Coding (HEVC).
RemoteDisplay.allowHEVCYUV444 true or false true Set this option to enable or deactivate HEVC YUV 4:4:4 with High Color Accuracy if the client supports it.
RemoteDisplay.allowVMWKeyEvent2Unicode true or false true

Set this option to allow or not allow Horizon Agent to process Unicode events representing keyboard input from clients.

When this option is enabled, client systems send Unicode values representing keyboard input to the remote desktop. Since Linux does not support Unicode input natively, Horizon Agent first converts the Unicode values to KeyCodes and then sends the KeyCodes to the operating system to display the appropriate Unicode characters.

When this option is disabled,Horizon Agent does not handle any Unicode events sent from clients.

RemoteDisplay.buildToPNG true or false false Graphic applications, especially graphic design applications, require pixel-exact rendering of images in the client display of a Linux desktop. You can configure the build to lossless PNG mode for images and video playback that are generated on a Linux desktop and rendered on the client device. This feature uses additional bandwidth between the client and the ESXi host. Enabling this option deactivates the H.264 encoding.
RemoteDisplay.enableNetworkContinuity true or false true Set this option to enable or deactivate the Network Continuity feature in Horizon Agent for Linux.
RemoteDisplay.enableNetworkIntelligence true or false true Set this option to enable or deactivate the Network Intelligence feature in Horizon Agent for Linux.
RemoteDisplay.enableStats true or false false Enables or deactivates the VMware Blast display protocol statistics in mks log, such as bandwidth, FPS, RTT, and so on.
RemoteDisplay.enableUDP true or false true Set this option to enable or deactivate UDP protocol support in Horizon Agent for Linux.
RemoteDisplay.maxBandwidthKbps An integer 1000000 Specifies the maximum bandwidth in kilobits per second (kbps) for a VMware Blast session. The bandwidth includes all imaging, audio, virtual channel, and VMware Blast control traffic. Valid value must be less than 4 Gbps (4096000).
RemoteDisplay.minBandwidthKbps An integer 256 Specifies the minimum bandwidth in kilobits per second (kbps) for a VMware Blast session. The bandwidth includes all imaging, audio, virtual channel, and VMware Blast control traffic.
RemoteDisplay.maxFPS An integer 30 Specifies the maximum rate of screen updates. Use this setting to manage the average bandwidth that users consume. Valid value must be between 3 and 60. The default is 30 updates per second.
RemoteDisplay.maxQualityJPEG available range of values: 1–100 90 Specifies the image quality of the desktop display for JPEG/PNG encoding. The high-quality settings are for areas of the screen that are more static, resulting in a better image quality.
RemoteDisplay.midQualityJPEG available range of values: 1–100 35 Specifies the image quality of the desktop display for JPEG/PNG encoding. Use to set the medium-quality settings of the desktop display.
RemoteDisplay.minQualityJPEG available range of values: 1–100 25 Specifies the image quality of the desktop display for JPEG/PNG encoding. The low-quality settings are for areas of the screen that change often, for example, when scrolling occurs.
RemoteDisplay.qpmaxH264 available range of values: 0–51 36 Use this option to set the H264minQP quantization parameter, which specifies the best image quality for the remote display configured to use H.264 or HEVC encoding. Set the value to greater than the value set for RemoteDisplay.qpminH264.
RemoteDisplay.qpminH264 available range of values: 0–51 10 Use this option to set the H264maxQP quantization parameter, which specifies the lowest image quality for the remote display configured to use H.264 or HEVC encoding. Set the value to less than the value set for RemoteDisplay.qpmaxH264.
UsbRedirPlugin.log.logLevel error, warn, info, debug, trace, or verbose info Use this option to set the log level for the USB Redirection plug-in.
UsbRedirServer.log.logLevel error, warn, info, debug, trace, or verbose info Use this option to set the log level for the USB Redirection server.
vdpservice.log.logLevel fatal error, warn, info, debug, or trace info Use this option to set the log level of the vdpservice.
viewusb.AllowAudioIn {m|o}:{true|false} undefined, which equates to true Use this option to allow or disallow audio input devices to be redirected. Example: o:false
viewusb.AllowAudioOut {m|o}:{true|false} undefined, which equates to false Set this option to allow or disallow redirection of audio output devices.
viewusb.AllowAutoDeviceSplitting {m|o}:{true|false} undefined, which equates to false Set this option to allow or disallow the automatic splitting of composite USB devices.

Example: m:true

viewusb.AllowDevDescFailsafe {m|o}:{true|false} undefined, which equates to false Set this option to allow or disallow devices to be redirected even if Horizon Client fails to get the configuration or device descriptors. To allow a device even if it fails to get the configuration or device descriptors, include it in the Include filters, such as IncludeVidPid or IncludePath.
viewusb.AllowHIDBootable {m|o}:{true|false} undefined, which equates to true Use this option to allow or disallow the redirection of input devices other than keyboards or mice that are available at boot time, also known as HID-bootable devices.
viewusb.AllowKeyboardMouse {m|o}:{true|false} undefined, which equates to false Use this option to allow or disallow the redirection of keyboards with integrated pointing devices (such as a mouse, trackball, or touch pad).
viewusb.AllowSmartcard {m|o}:{true|false} undefined, which equates to false Set this option to allow or disallow smart card devices to be redirected.
viewusb.AllowVideo {m|o}:{true|false} undefined, which equates to true Use this option to allow or disallow video devices to be redirected.
viewusb.DisableRemoteConfig {m|o}:{true|false} undefined, which equates to false Set this option to deactivate or enable the use of Horizon Agent settings when performing USB device filtering.
viewusb.ExcludeAllDevices {true|false} undefined, which equates to false Use this option to exclude or include all USB devices from being redirected. If set to true, you can use other policy settings to allow specific devices or families of devices to be redirected. If set to false, you can use other policy settings to prevent specific devices or families of devices from being redirected. If you set the value of ExcludeAllDevices to true on Horizon Agent, and this setting is passed to Horizon Client, the Horizon Agent setting overrides the Horizon Client setting.
viewusb.ExcludeFamily {m|o}:family_name_1[;family_name_2;...] undefined Use this option to exclude families of devices from being redirected. For example: m:bluetooth;smart-card
If you have enabled automatic device splitting, Horizon examines the device family of each interface of a composite USB device to decide which interfaces must be excluded. If you have deactivated automatic device splitting, Horizon examines the device family of the whole composite USB device.
Note: Mice and keyboards are excluded from redirection by default and do not need to be excluded with this setting.
viewusb.ExcludePath {m|o}:bus-x1[/y1].../ port-z1[;bus-x2[/y2].../port-z2;...] undefined Use this option to exclude devices at specified hub or port paths from being redirected. You must specify bus and port numbers in hexadecimal. You cannot use the wildcard character in paths.

For example:m:bus-1/2/3_port- 02;bus-1/1/1/4_port-ff

viewusb.ExcludeVidPid {m|o}:vid-xxx1_ pid-yyy1[;vid-xxx2_pid-yyy2;..] undefined Set this option to exclude devices with specified vendor and product IDs from being redirected. You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID.

For example: o:vid-0781_pid- ****;vid-0561_pid-554c

viewusb.IncludeFamily {m|o}:family_name_1[;family_name_2]... undefined Set this option to include families of devices that can be redirected.

For example: o:storage; smart-card

viewusb.IncludePath {m|o}:bus-x1[/y1].../ port-z1[;bus-x2[/y2].../portz2;...] undefined Use this option to include devices at specified hub or port paths that can be redirected. You must specify bus and port numbers in hexadecimal. You cannot use the wildcard character in paths.

For example: m:bus-1/2_port- 02;bus-1/7/1/4_port-0f

viewusb.IncludeVidPid {m|o}:vid-xxx1_ pid-yyy1[;vid-xxx2_pid-yyy2;...] undefined Set this option to include devices with specified Vendor and Product IDs that can be redirected. You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID.

For example: o:vid-***_pid-0001;vid-0561_pid-554c

viewusb.SplitExcludeVidPid {m|o}:vid-xxx1_pid-yyy1[;vid-xxx2_pid-yyy2;...] undefined Use this option to exclude or include a specified composite USB device from splitting by Vendor and Product IDs. The format of the setting is vid-xxx1_pid-yyy1[;vid-xxx2_pid-yyy2;...]. You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID.

Example: m:vid-0f0f_pid-55**

viewusb.SplitVidPid {m|o}: vid-xxxx_pid-yyyy([exintf:zz[;exintf:ww]])[;...] undefined Set this option to treat the components of a composite USB device specified by Vendor and Product IDs as separate devices. The format of the setting is vid-xxxx_pid-yyyy(exintf:zz[;exintf:ww]).

You can use the exintf keyword to exclude components from redirection by specifying their interface number. You must specify ID numbers in hexadecimal, and interface numbers in decimal including any leading zero. You can use the wildcard character (*) in place of individual digits in an ID.

Example: o:vid-0f0f_pid-***(exintf-01);vid-0781_pid-554c(exintf:01;exintf:02)

Note: VMware Horizon does not include the components that you have not explicitly excluded automatically. You must specify a filter policy such as Include VidPid Device to include those components.
VMWPkcs11Plugin.log.enable true or false false Set this option to enable or deactivate the logging mode for the True SSO feature.
VMWPkcs11Plugin.log.logLevel error, warn, info, debug, trace, or verbose info Use this option to set the log level for the True SSO feature.
VVC.RTAV.Enable true or false true Set this option to enable/disable audio input.
VVC.ScRedir.Enable true or false true Set this option to enable/deactivate smart card redirection.
VVC.logLevel fatal error, warn, info, debug, or trace info Use this option to set the log level of the VVC proxy node.

Configuration Options in /etc/vmware/viewagent-custom.conf

Java Standalone Agent uses the configuration file /etc/vmware/viewagent-custom.conf.

Table 2. Configuration Options in /etc/vmware/viewagent-custom.conf
Option Value Default Description
CDREnable true or false true Use this option to enable or deactivate the client drive redirection feature.
CollaborationEnable true or false true Use this option to enable or deactivate the Session Collaboration feature on Linux desktops.
DPISyncEnable true or false true Set this option to enable or deactivate the DPI Synchronization feature, which ensures that the DPI setting in the remote desktop matches the client system's DPI setting.
EndpointVPNEnable true or false false Set this option to specify if the client's physical network card IP address or the VPN IP address is to be used when evaluating the endpoint IP address against the range of endpoint IP addresses used in the Dynamic Environment Manager Console. If the option is set to false, the client's physical network card IP address is used. Otherwise, the VPN IP address is used.
HelpDeskEnable true or false true Set this option to enable or deactivate the Help Desk Tool feature.
KeyboardLayoutSync true or false true Use this option to specify whether to synchronize a client's system locale list and current keyboard layout with Horizon Agent for Linux desktops.

When this setting is enabled or not configured, synchronization is allowed. When this setting is deactivated, synchronization is not allowed.

This feature is supported only for Horizon Client for Windows, and only for the English, French, German, Japanese, Korean, Spanish, Simplified Chinese, and Traditional Chinese locales.

LogCnt An integer -1 Use this option to set the reserved log file count in /tmp/vmware-root.
  • -1 - keep all
  • 0 - delete all
  • > 0 - reserved log count.
MaxSessionsBuffer

An integer between 1 and the value specified for Max Sessions Per RDS Host in the farm configuration wizard.

5 When configuring farms and multi-session desktop pools, use this option to specify the number of pre-launched desktops per host machine.
NetbiosDomain A text string, in all caps When configuring True SSO, use this option to set the NetBIOS name of your organization's domain.
OfflineJoinDomain pbis or samba pbis Use this option to set the instant-clone offline domain join. The available methods to perform an offline domain join are the PowerBroker Identity Services Open (PBISO) authentication and the Samba offline domain join. If this property has a value other than pbis or samba, the offline domain join is ignored.
RunOnceScript

Use this option to rejoin the cloned virtual machine to Active Directory.

Set the RunOnceScript option after the host name has changed. The specified script is run only once after the first host name change. The script is run with the root permission when the agent service starts and the host name has been changed since the agent installation.

For example, for the winbind solution, you must join the base virtual machine to Active Directory with winbind, and set this option to a script path. The script must contain the domain rejoin command /usr/bin/net ads join -U <ADUserName>%<ADUserPassword>. After VM Clone, the operating system customization changes the host name. When the agent service starts, the script is run to join the cloned virtual machine to Active Directory.

RunOnceScriptTimeout 120 Use this option to set the timeout time in seconds for the RunOnceScript option.

For example, set RunOnceScriptTimeout=120

SSLCiphers A text string !aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES Use this option to specify the list of ciphers. You must use the format that is defined by the OpenSSL standard. To find information about the OpenSSL-defined format, type these keywords into an Internet search engine: openssl cipher string.
SSLProtocols A text string TLSv1_1:TLSv1_2 Use this option to specify the security protocols. The supported protocols are TLSv1.1 and TLSv1.2.
SSODesktopType UseGnomeClassic or UseGnomeFlashback or UseGnomeUbuntu or UseMATE or UseKdePlasma N/A

This option specifies the desktop environment to use, instead of the default desktop environment, when SSO is enabled.

You must first ensure that the selected desktop environment is installed on your desktop before specifying to use it. After this option is set in an Ubuntu desktop, the option takes effect regardless if the SSO feature is enabled or not. If this option is specified in a RHEL/CentOS 7.x desktop, the selected desktop environment is used only if SSO is enabled.

Note: This option is not supported on RHEL/CentOS 8.x desktops. VMware Horizon supports only the Gnome desktop environment on RHEL/CentOS 8.x desktops.
SSOEnable true or false true Set this option to enable/deactivate single sign-on (SSO).
SSOUserFormat A text string [username] Use this option to specify the format of the login name for single sign-on. The default is the user name only. Set this option if the domain name is also required. Typically, the login name is the domain name plus a special character followed by the user name. If the special character is the backslash, you must escape it with another backslash. Examples of login name formats are as follows:
  • SSOUserFormat=[domain]\\[username]
  • SSOUserFormat=[domain]+[username]
  • SSOUserFormat=[username]@[domain]
Subnet A value in CIDR IP address format [subnet] Set this option to a subnet which other machines can use to connect to Horizon Agent for Linux. If there is more than one local IP address with different subnets, the local IP address in the configured subnet is used to connect to Horizon Agent for Linux. You must specify the value in the CIDR IP address format. For example, Subnet=123.456.7.8/24.
DEMEnable true or false false Set this option to enable or deactivate smart policies created in Dynamic Environment Manager. If the option is set to enable, and the condition in a smart policy is met, then the policy is enforced.
DEMNetworkPath A text string

This option must be set to the same network path that is set in the Dynamic Environment Manager Console. The path must be in the format similar to //10.111.22.333/view/LinuxAgent/DEMConfig.

The network path must correspond to a public, shared folder which does not require user name and password credentials for access.

Note: The VMwareBlastServer process uses the SSLCiphers, SSLProtocols, and SSLCipherServerPreference security options. When starting the VMwareBlastServer process, the Java Standalone Agent passes these options as parameters. When Blast Secure Gateway (BSG) is enabled, these options affect the connection between BSG and the Linux desktop. When BSG is disabled, these options affect the connection between the client and the Linux desktop.