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