Citrix Self-Service configuration will be done by a Custom Command creating a personalized script. In the following the different parts of the command will be explained - you will not need to use the complete section but only the parts that are applicable to your solution.


As of IGEL Linux 5.09.100 Citrix Self-Service can be configured easily in IGEL Setup. See Citrix Self-Service in the IGEL Linux 5 Manual.



Comments in the command are tagged with a leading # . The comments can be skipped when copying relevant parts of the script into the Custom Command field.


For more information please refer to Citrix'Linux OEM Guide (see comments below).

Preparation:

  1. Make sure you are using IGEL Linux 5.03.100 or newer on your thin client
  2. Enable Citrix Receiver 13 in Setup > Sessions > Citrix > Citrix Receiver Selection
  3. Go to Setup > System > Firmware Customization > Custom Application
  4. Add new application Citrix Self-Service and set
    Settings > Icon Name = /usr/lib/ICAClient/icons/manager.png
    Settings > Command = /config/sessions/selfservice
  5. Go to Setup > System > Firmware Customization > Custom Commands > Base Commands
  6. Enter applicable parts of the command options below to Custom Command Session Final
  7. Apply settings to the thin client and reboot the device


The following template is available as plain text file as well: Citrix Self-Service Template


#

# The Custom Command template:

#

# IGEL Setup > System > Firmware Customization > Custom Command > Base Commands > Custom Command Session Final

#

# Get Citrix Receiver 13 directory:

ICADIR="/usr/lib/ICAClient"

#

# Create Citrix Receiver 13 cache directory:

mkdir -p /userhome/.ICAClient/cache/

#

# Remove (hide) Citrix Receiver configuration dialog (optional):

rm $ICADIR/util/configmgr

echo "#!/bin/sh" > $ICADIR/util/configmgr

echo "gtkmessage -m \"You are not allowed to open the configuration dialog.\"" >> $ICADIR/util/configmgr

chmod a+x $ICADIR/util/configmgr

#

# Store Citrix Receiver cache permanently (optional):

# The cache is NOT user-specific but cumulates the settings for all users who have logged on to a Citrix server via Citrix Self-Service.

# The cache contains:

# - Configured server URLs

# - Selected published applications for XenApp 6.5 server

# XenDesktop 7.x selections are stored on server side and haven't to be cached.

# It is not necessary to store the cache, if you use Self-Service

# in kiosk mode and the user can not change anything.

if [ ! -d /wfs/user/Stores ] ; then

mkdir -p /wfs/user/Stores

chown user:users /wfs/user/Stores

fi

ln -s /wfs/user/Stores /userhome/.ICAClient/cache/Stores

chown -R /userhome/.ICAClient/cache/

#

# Set one ore more server URLs:

SERVER_URL="http://./citrix/pnagent/config.xml"

SERVER_URL2="https://."

# If using HTTPS connections do not forget to store the SSL certificate on your thin client.

# See IGEL Knowledge Base for more information https://kb.igel.com/igelos/en/deploying-trusted-root-certificates-2720919.html

#

# Create user script /config/sessions/selfservice to be started as Custom Application.

# (Up to next EOF at the end)

# Do not delete the hash sign (#) in the command below!

cat < /config/sessions/selfservice

#!/bin/sh

#

# Storebrowse is not yet working stable, kill the running daemons and

# kill the AuthManagerDaemon, so the credentials of the last user are cleared:

killall storebrowse AuthManagerDaemon ServiceRecord

#

# See Linux-OEM-Guide-13.0-12-13-13.pdf page 58

# for ALL storebrowse options.

#

# Configure server URLs to be used in selfservice (optional:)

# If no URLs are configured, the Citrix Receiver will ask the user to enter a URL.

# See Linux-OEM-Guide-13.0-12-13-13.pdf page 20

# IMPORTANT: Do not forget to install the root certificate for HTTPS connections!

# Configure a DefaultStore. Only one store can be default!

# In the example below STORE2 is set as default:

STORE=\`$ICADIR/storebrowse -a $SERVER_URL\`

#if [ "\$?" = "0" ] ; then

# eval $ICADIR/storebrowse -c DefaultStore=\$STORE

#fi

STORE2=\`$ICADIR/storebrowse -a $SERVER_URL2\`

if [ "\$?" = "0" ] ; then

eval $ICADIR/storebrowse -c DefaultStore=\$STORE2

fi

#

# Delete dispensable server URLs (optional):

# In case the cache directory is stored permanently (see above) and

# a server URL should not be used anymore.

#$ICADIR/storebrowse -d

#

# Configure gateway (optional, see Linux-OEM-Guide-13.0-12-13-13.pdf page 22):

#$ICADIR/storebrowse -g

#

# Preset published applications to be shown in Citrix Receiver (optional):

# Only valid for XenApp 6.5 and previous.

# For XenDesktop 7.x see section below.

# Especially needed if Self-Service runs in kiosk mode and the user can not add

# applications on his own.

# Get the "Resourcename" by running

# "/usr/lib/ICAClient/storebrowse -E "

# in your Linux console (local terminal session).

# Example configuration with Windows Command Prompt (cmd) and Paint preset:

if [ ! -f /userhome/.ICAClient/cache/Stores/PNAApplications.ctx ] ; then

mkdir -p /userhome/.ICAClient/cache/Stores

echo "" > /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

echo -e "\t" >> /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

echo -e "\t\t:cmd" >> /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

echo -e "\t" >> /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

echo -e "\t" >> /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

echo -e "\t\t:Paint" >> /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

echo -e "\t" >> /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

echo "" >> /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

chown user:users /userhome/.ICAClient/cache/Stores/PNAApplications.ctx

fi

#

# Preset published applications to be shown in Citrix Receiver (optional):

# Only valid for XenDesktop 7.x.

# For XenApp 6.5 and previous see section above.

# Especially needed if Self-Service runs in kiosk mode and the user can not add

# applications on his own.

# Get the "desktop or application ID" by running

# "/usr/lib/ICAClient/storebrowse -E "

# in your Linux console (local terminal session).

# Subscribe: $ICADIR/storebrowse -s

# Unsubscribe: $ICADIR/storebrowse -u

# List subscriptions: $ICADIR/storebrowse -S

#

# Add subscriptions which have not been added before:

$ICADIR/storebrowse -S $SERVER_URL2 > /tmp/.subs.\$\$

# Example configuration with Windows Command Prompt (cmd), Calculator and WordPad preset:

grep "'XD71DevSite.Cmd'" /tmp/.subs.\$\$ || $ICADIR/storebrowse -s "XD71DevSite.Cmd" $SERVER_URL2

grep "'XD71DevSite.Write'" /tmp/.subs.\$\$ || $ICADIR/storebrowse -s "XD71DevSite.Write" $SERVER_URL2

grep "'XD71DevSite.Calc'" /tmp/.subs.\$\$ || $ICADIR/storebrowse -s "XD71DevSite.Calc" $SERVER_URL2

rm /tmp/.subs.\$\$

#

# Configure Self-Service GUI options such as full-screen mode (optional):

# See Linux-OEM-Guide-13.0-12-13-13.pdf page 46

$ICADIR/storebrowse -c SharedUserMode=False

$ICADIR/storebrowse -c FullscreenMode=0

$ICADIR/storebrowse -c SelfSelection=True

#

# Configure reconnection options:

# See Linux-OEM-Guide-13.0-12-13-13.pdf page 23.

$ICADIR/storebrowse -c ReconnectOnLogon=False

$ICADIR/storebrowse -c ReconnectOnLaunchOrRefresh=False

#

# Display desktop sessions in full screen or window mode

#$ICADIR/storebrowse -c SessionWindowedMode=True/False

#

# Run command to open the gui

$ICADIR/selfservice

#

# End of user script /config/sessions/selfservice to be started as Custom Application:

EOF

#

# Change access rights for user script (executable):

chmod a+x /config/sessions/selfservice

#

# End of Custom Command template.