This article contains information about the available configuration settings that can be used to control specific multi-monitor functionality in a Citrix environment. This includes controlling the interaction and display of specified applications and application windows as well as ICA session behavior.
Under most circumstances, the default settings will suffice for the majority of applications. The additional settings described in this article will allow you to have a more granular control over multi-monitor sessions that might be required with some custom applications and/or in some deployments.
Application developers, Citrix server administrators, and help desk personnel.
When working with multi-monitor ICA sessions, it is very important to calculate the amount of ICA session graphics required. This is the memory allocated to each session for its graphics data and it is set to the default of 5120 KB and limited to 8192 KB in the Access Management Console (AMC). It is possible to have a virtual desktop whose session graphics memory is larger than the maximum amount assigned in the AMC. When such an event occurs, either the color depth or resolution is automatically reduced, based on the settings in the AMC (also known as Delivery Services Console).
X-Width of the ICA session window
Y- Height of the ICA session window
Z-Color Depth of the ICA session window (1-8 bit, 2-16 bit, 3-24 bit, 4-32bit)
M-Session Graphics Memory Required
M=X*Y*Z
For example, for a 1024x768x24 bit session, M = 1024*768*3 = 2,359,296 bytes
Note: Adjusting these parameters on your server might affect the scalability of the server because every session can potentially consume more memory.
The steps outlined in the following section allow specifying more memory for ICA session graphics than available in the AMC. These steps require modifying the Presentation Server registry. Such adjustments should be performed only if there are specific server required to raise the session display memory above 8MB.
Caution! Refer to the Disclaimer at the end of this article before using Registry Editor.
For XenApp 4.x, 5.x
Start the AMC and edit the server properties for each server that requires to be adjusted. Open Display settings page and clear Use farm settings.
Note: Without this step, IMA overrides any change made to thinwire’s MaxLVBMem parameter in the registry with the appropriate farm setting.
If X,Y represents the dimensions of bounding rectangle for all monitors, and D is the maximum pixel bit depth, then MaxLVBMem is given by:
X * Y * D / 8
Adjust Window’s SessionPoolSize parameter as required to accommodate increased LVB memory requirements.
MaxLVBMem should ideally consume no more than 35 to 40 percent of the system’s allocated SessionPoolSize. If more than 40 percent of SessionPoolSize would be consumed, then adjust the SessionPoolSize parameter upward in the system registry and restart the system.
SessionPoolSize parameter is held in a DWORD value named SessionPoolSize in system registry at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. It is expressed in megabytes.
Note: Microsoft recommends raising this setting in increments of 16MB.
Default SessionPoolSize for x86 systems is either 16 MB or 32 MB depending upon how much memory your system is configured with.
Default SessionPoolSize for x64 systems is 64 MB.
Note: The system must be restarted for the setting change to take effect.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd\thin16.
Graphics axis is calculated from the top left corner of the virtual ICA desktop. That point is considered X=0, Y=0, where X is horizontal and Y is vertical. Graphical location is calculated by adding positive numbers to X and Y and counting down and to the right from 0,0 location. Thus, for 1024 by 768 monitor, the bottom right corner would be X=1024, Y=768.
The way the ICA multi-monitor virtual desktop is configured is based on the full rectangle and not on the top left corner of the left-most monitor. Thus, the virtual desktop area could be larger than the area covered by the monitors of the client. For example, in the following configuration, the top left corner of the virtual desktop is the top left corner of the rectangle made with the three monitors. However, the area inside the virtual desktop where there is no monitor is still addressable, but cannot be shown and is thus considered a gray area. It is important to include the gray area in calculations of the ICA session size and locations and to calculate ICA session windows to be outside of the gray area.
Windows: In Windows, computer monitors are enumerated from left to right, top to bottom. The first monitor is assigned number zero (0), the next number 1 and so forth.
ICA Session: It is important to note that monitor enumeration inside an ICA session is specific to the monitor the session window is on. Thus, for example, if the session window is on Monitor 0 and Monitor 2 of the preceding example, then enumeration would be Windows Monitor 0 is session Monitor 0, and Windows Monitor 2 is session Monitor 1. If the session window is on Monitors 1 and Monitor 2, the Session Monitor 0 is Windows Monitor 1, and Session Monitor 1 is Windows Monitor 2.
Example 1
Four Monitor Configuration
In the following example, you can see how the coordinates and Windows monitor enumeration would be calculated on a four-monitor configuration. In this example, each client monitor is configured for 1024 by 768 resolution. You can see the gray area not covered by any of the monitors and also see coordinates of all monitor corners and thus be able to calculate the position and size of the ICA session window so that it would be able to take advantage of available screen resources.
The range of pixels contained in monitor 0 is from (0,0) to (1023,767). Note that this is one less than the resolution of the monitor.
Several enhancements were made involving application windows that are created in an ICA session over previous versions of Presentation Server. Test your application behavior in Citrix Presentation Server 4.5 Hotfix Rollup Pack 01 or later, before using the following settings.
Following are the details describing parameters available for configuration of ICA session windows. These parameters can be applied either to the saved ICA files or to the INI files.
Note: These parameters require setting the parameter DesiredWinType=16 in the ICA or INI files.
DesiredVPOS specifies the desired vertical coordinates of the top left corner of the ICA session window.
Note: This number is counted down from top left corner of the virtual desktop (position 0, 0).
DesiredHPos specifies the desired horizontal coordinates of the top left corner of the ICA session window.
Note: This number is counted from left to right from top left corner of the virtual desktop (position 0, 0).
DesiredVRES specifies the desired height of the ICA session window, counting down from the DesiredVPOS location.
DesiredHRES specifies the desired width of the ICA session window, counting to the right from DesiredHPOS location.
Usage Example:
[Desktop 2]
DesiredWinType=16
DesiredHPos=2048
DesiredVPos=0
DesiredHRES=1024
DesiredVRES=1536
In this configuration, on the 4-monitor client configuration shown in the preceding screen shot, the ICA session window would start from top left corner of Monitor 0 (top right monitor). The ICA session window would be 1024 wide and 1536 high (1024x1536) and would cover the Windows Monitor 0 and Monitor 3.
PreferredLaunchMonitor
This setting is only recommended for use with problematic applications.
PreferredLaunchMonitor specifies on which of the session monitors should the applications started inside the ICA session start.
Note: It does not specify the monitor for the session, but for applications started inside the ICA session.
It is important to note that the monitor enumeration for the [Desktop2] ICA session is different and because it has only two monitors used (Windows Monitor 0 and Windows Monitor 2); these monitors become Session Monitor 0 and Session Monitor 1 accordingly. Session Monitor numbers are used with the PreferredLaunchMonitor parameter.
[Desktop 2]
DesiredWinType=16
DesiredHPos=2048
DesiredVPos=0
DesiredHRES=1024
DesiredVRES=1536
PreferredLaunchMonitor=1
In this example, applications started inside the Desktop 2 ICA session window would start on Windows Monitor 2 which is also Session Monitor 1.
DefaultMaximizedPos parameter specifies the location and window size for an ICA session window that is returned from resized or minimized mode.
Usage example – in this configuration, the minimized or resized ICA session window would always be maximized back to its original size.
Note: You can specify different location and window sizes, if required.
DefaultMaximizedPos={2048,0,1024,1536}
The following hot key combinations were introduced in version 10.100 of the Presentation Server for Windows Client.
SHIFT + F2 ‑ Full-Screen to Windowed
The SHIFT + F2 command allows switching an ICA session window from a Full Screen to a Windowed mode and back.
Usage: Inside the ICA session window press SHIFT + F2 on the keyboard and the ICA session switches to Windowed mode. Press SHIFT + F2 and the ICA session window switches back to Full Screen mode.
SHIFT + F11 – Minimize Full Screen ICA session window
The SHIFT + F11 hot key command allows minimizing full screen ICA session window.
Note: This behavior has been reverted in versions 10.214, 10.223, 10.225, 10.230, 11.00 and later so that the default behavior when pressing Shift+F11 no longer minimizes the session; instead, the key sequence is passed to the session (for more information, see the Knowledge Center article - CTX115230 - Understanding Shift+F11 Key Combination Behavior
SHIFT + F12 – Restore Full Screen ICA session
The SHIFT + F12 hot key command restores the minimized or resized ICA session window to its assigned size.
CTX201696 ‑ Support for Monitors Including 4K Resolution and Multi-Monitors
CTX200257 ‑ Screen Issues Connecting to 4K Resolution Monitors
CTX101644 ‑ Seamless Configuration Settings