Advanced Configuration of the Citrix Receiver

Modify Citrix Receiver's ini files to provide advanced customizations and templates

The Citrix Receiver expects its configuration in a set of .ini files that are of course generated by NoTouch at each Citrix connection start by merging the configuration information with the appropriate templates. The most common files are:

  • module.ini
  • wfclient.ini
  • reg.ini

and, for some connection modes, appsrv.ini. Note that with XenApp and XenDesktop there is no appsrv.ini file any more, instead the client downloads a .ica file from the Citrix web frontend, which is actually just what traditionally the appsrv.ini has been. That means, for modes accessing the Citrix Web frontend of XenApp or XenDesktop, any local modifications to appsrv.ini won't show any effect.


  • This article describes how to do deep modifications of the Citrix INI files. This is not the normal way of configuration - usually you will use the Citrix Receiver configuration. Use these procedures only if you need to set values that are not possible to set via the menu-based Citrix configuration, such as when you are told by Citrix to set some undocumented values.
  • An even deeper method of changing the configuration would be to directly modify Citrix templates. The methods described herein are much more comfortable though.
  • The full expressive power of this system was added in OS 2.36.0. Prior versions have these parameters, but are only able to modify a limited number of Citrix options.

Create a user-defined parameter setting locally

The following example assumes that somebody (e.g. Citrix KB, Citrix support, ...) tells you that you need to set MySpecialKey=100 in section [WFClient] of wfclient.ini.

First, access the NoTouch configuration as usual. Select your connection and then click on "Citrix" to access the Citrix specific parameters.


Then, click on "User defined". The following mask will appear (most probably it will be empty now):


Click on "Add" to add a new user defined Citrix parameter. Click on "Edit" to enter its parameter edit mode:


Fill out the form, make sure you select the file properly and type section, parameter name and value correctly. Type it in exactly as documented by Citrix. Case matters and space characters matter!

After changing, make whatever other changes you may have to make, and finally save the configuration to persistent memory. Next time the connection is started, the new values will be applied to the generated ICA files.

If you don't shy away from the shell prompt, you can check yourself by viewing the .ini files under ~/.ICAclient as shown here:


Create a user-defined parameter setting in NoTouch Center

In NoTouch Center you have all the Citrix parameters also under the "Citrix" section of a Connection. The actual definition of user-defined parameters is a bit different from doing it on the client. In fact, here you only have one parameter, called "User defined parameters" which you find by scrolling down towards the end.

This parameter is a text field that accepts a comma-separated list of parameters in this notation (entries separated by comma, fields separated by pipe symbols):

    inifile.ini|Section|Key|Value,inifile.ini|Section|Key|Value, ...

So our example above, setting set MySpecialKey=100 in section [WFClient] of wfclient.ini would translate to:


as shown here in the screenshot:


User-defined parameter notes

  • User-defined parameters will override parameters that would otherwise been set by the configuration engine. That means, you can define parameters that are already managed by NoTouch and your custom definition will have precedence. So you can override everything you want.
  • If the section name that you specify does not exist in the templates it will be generated. That is good because it allows to have new sections generated on-the-fly, but if you mistype your section name, your parameter will end up in the wrong section.
  • You can actually exclude a parameter from being part of the final templates, even if it would be set by the standard NoTouch configuration. Simply set its value field to the special character string of __HIDE_VALUE__