This may seem like overkill, but I wanted two kiosks to be available on our 
ltsp clients on different screens, one for a web browser kiosk, another for a 
vmware view kiosk. The vmware view account is also required to be a member of 
audio, pulse and pulse-access. We're using the VMWare Horizon View client 
(VMware-Horizon-Client-3.5.0-2999900.x64.bundle) supporting PCOIP and USB 
redirection - there may be some library dependencies to be installed and at 
least one library soft link to create.



Add the following three (3) files to the LTSP server (they were copied from 
/usr/share/ltsp/screen.d/kiosk and /usr/share/ltsp/kioskSession, respectively:



(1) /etc/ltsp/screen.d/vmware-view:

* All VIEW* environment variables can set in /var/lib/tftpboot/lts.conf.

* Added VIEW_MESSAGE for echoing a "Please wait"
* Add qoutes around the gecos data ,,, in the adduser line - it may work in the 
script, but it doesn't always work from the command line.
* Add $VIEW_USER to the audio, pulse and pulse-access groups.
* Escaped quotation marks were added to pass VIEW_OPTIONS for su statement in 
vmware-view (and the eval in vmware-view-Session) to work properly

#--- begin /etc/ltsp/screen.d/vmware-view
#!/bin/sh
#
# The following script works for LTSP5.
#
# This software is licensed under the Gnu General Public License.
# The full text of which can be found at http://www.LTSP.org/license.txt
#
#
#       To customize the vmware-view session, you can add "homedir" files
#       to $chroot/usr/local/share/ltspview/home/
#       AND to add startup scripts that run as the user, you can add
#       them as executables or symlinks to executables in:
#       $chroot/usr/local/share/ltspview/startup

PATH=/bin:$PATH; export PATH
. /usr/share/ltsp/screen-x-common

[ -n "$1" ] && VIEW_EXE=$1
[ -n "$2" ] && VIEW_OPTIONS=$2

if [ -z "${VIEW_EXE}" ]; then
    if [ -x "/usr/bin/vmware-view" ]; then
        VIEW_EXE=/usr/bin/vmware-view
    else
        VIEW_EXE=unknown
    fi
fi

if boolean_is_true "${VIEW_DAEMON:-"False"}"; then
    export XINITRC_DAEMON="True"
fi

xinitrc=/usr/share/ltsp/xinitrc

echo ${VIEW_MESSAGE}
sleep 5

VIEW_USER=${VIEW_USER:-"ltspview"}
if [ -z "$(getent passwd ${VIEW_USER})" ]; then
    # create a ltspview user
    adduser --no-create-home --disabled-password --gecos ",,," ${VIEW_USER}
    adduser ltspview audio
    adduser ltspview pulse
    adduser ltspview pulse-access
fi

# Create a tmpdir to be our homedir
TMPDIR=$(mktemp -d /tmp/.view-XXXXXX)
chown ${VIEW_USER} ${TMPDIR}

# Edit passwd homedir entry for programs that look it up from there
sed -i -e '\|'${VIEW_USER}'|s|[^:]*\(:[^:]*\)$|'$TMPDIR'\1|' /etc/passwd

su - ${VIEW_USER} -c "XINITRC_DAEMON=${XINITRC_DAEMON} VIEW_WM=${VIEW_WM} 
VIEW_OPTIONS=\"${VIEW_OPTIONS}\" xinit $xinitrc /etc/ltsp/vmware-view-Session 
${VIEW_EXE} -- ${DISPLAY} vt${TTY} -nolisten tcp ${X_ARGS} -br" >/dev/null

rm -rf ${TMPDIR}
#--- end /etc/ltsp/screen.d/vmware-view


(2) /etc/ltsp/vmware-view-Session:


#--- begin /etc/ltsp/vmware-view-Session
#!/bin/sh


VIEW_EXE=$1
VIEW_HOME=/usr/local/share/ltspview/home
VIEW_STARTUP=/usr/local/share/ltspview/startup

VIEW_USER=${VIEW_USER:-"ltspview"}
VIEW_WM=${VIEW_WM:-"/usr/bin/metacity"}
VIEW_USER_STARTUP="${HOME}/.view-startup"

mkdir -p ${VIEW_USER_STARTUP}

if [ -x "${VIEW_WM}" ]; then
    ln -s ${VIEW_WM} ${VIEW_USER_STARTUP}/00-view-wm
fi

# Copy a default homedir if present
if [ -d  "${VIEW_HOME}" ]; then
    cp -r ${VIEW_HOME}/* ${VIEW_HOME}/.??* ${HOME}
fi

for file in ${VIEW_STARTUP}/* ; do
    if [ -f "${file}" ]; then
        ln -s "${file}" "${VIEW_USER_STARTUP}/$(basename ${file})"
    fi
done

[ -n "${XAUTHORITY}" ] && cp -a ${XAUTHORITY} ${HOME}

for i in ${VIEW_USER_STARTUP}/* ; do
    [ -x "${i}" ] && eval "${i}" &
done

if [ "${VIEW_EXE}" = "unknown" ]; then
    ldm-dialog --message "No program found."
else
    eval ${VIEW_EXE} ${VIEW_OPTIONS} || ldm-dialog --message "Could not start 
program."
fi

[ "$USER" != "root" ] && pkill -u $USER
exit 0
#--- end /etc/ltsp/vmware-view-Session


(3) /etc/vmware/view-default-config:


#--- end 
/etc/vmware/view-default-configview.defaultBroker="YOUR_HORIZON_VIEW_SERVER_FQDN"
view.sslVerificationMode="2"
view.defaultDesktopSize="2"
view.defaultProtocol="PCOIP"
view.defaultDomain="YOUR_DOMAIN"
viewusb.includeFamily="bluetooth;hid;other;physical;storage;unknown;vendor;wireless;wusb"

(You may want to reduce the usb device families included - these work for our 
purposes, which includes Windows-based robotics programming)



Add these lines to the top of lts.conf:

  SCREEN_05=vmware-view
  VIEW_EXE=/usr/bin/vmware-view
  VIEW_OPTIONS="--fullscreen --once --nomenubar -q"
  VIEW_MESSAGE="\nPlease wait up to 30 seconds for the VMWare Horizon View clien


------------------------------------------------------------------------------
_____________________________________________________________________
Ltsp-discuss mailing list.   To un-subscribe, or change prefs, goto:
      https://lists.sourceforge.net/lists/listinfo/ltsp-discuss
For additional LTSP help,   try #ltsp channel on irc.freenode.net

Reply via email to