[X2Go-User] x2gothinclient w/o pxe

Jonathan Brown jbssfl at gmail.com
Fri Feb 24 18:59:44 CET 2012


Hi all, (sending this again in plain text; I think it did not make it
through the first time because I had used html formatting)

A cursory reading of the online lit I found relating to x2gothinclient
seems to require that the stations all pxeboot...

I don't want thinclients that pxeboot.. what I need is a minimal OS
that is setup to autologin to X and then pyhoca-cli to the
x2go-server... can the x2gothinclient packages do this say on a
minimal debian install for the thinclient.. ?

Since I did not see this capability, I already built from scratch a
minimal Debian 6 that does an autologin into X using gdm/matchbox wm,
and then created a script that force loops a username/pw graphical
dialog using yad (zenity fork)... suffice it to say this works well...
but I'm thinking if x2gothinclient already had the capability to do
this then I did it all for nought.. except it was definitely a good
exercise...

The steps and scripts that I did do make this pxe-less x2g0
thin-client/kiosk follow ... I'm sure this can be quite improved...
actually the main thing I'd like to improve is to have the matchbox
wm/X on the local thin client be aware when there is no activity in
the x2go session, and if no activity, then kill or suspend the
pyhoca-cli session, thus going back to the yad login prompt, but I
haven't found a way to do this (normal logout of the x2go session of
course works fine and brings you back to the yad login prompt)... I
think the problem is that matchbox wm/X always thinks there is
activity when the x2go session is logged in/active, even when there is
no activity in the x2go session itself...

Any thoughts on any of the above would be appreciated!

Steps/scripts etc for x2g0 thin-client/kiosk:

I sort of used the following as a guide and modified some things:
http://www.alandmoore.com/blog/2011/11/05/creating-a-kiosk-with-linux-and-x11-2011-edition/

and went from there...

After initial Debian squeeze install with only ssh server:

Add x2go sources and install pyhoca-cli
apt-get install xorg
apt-get install gdm --no-install-recommends
apt-get install xautolock feh
wget http://archive.ualinux.com/ubuntu/main/lucid/yad_0.15.0-1~webupd8~lucid_i386.deb
dpkg -i yad_0.15.0-1~webupd8~lucid_i386.deb
(the above is an ubuntu lucid yad deb package but it worked so I
didn't ask any further questions :)  ... there might be a better yad
package for squeeze but I could not find one)
adduser kiosk (my .xprofile etc examples are for user sagotech)
cp -r /home/kiosk /opt/;
cd /opt/kiosk/;
chmod -R a+r .;
touch .xprofile
chmod a+x .xprofile

To enable autologin of user into the minimal X/matchbox, add the
following to /etc/gdm/gdm.conf:

[daemon]
AutomaticLoginEnable=true
AutomaticLogin=USERNAME

my .xprofile:

root at lxtrms-thinclient-colodesk:~# cat /home/sagotech/.xprofile
xset s off
xset -dpms
matchbox-window-manager &
eval `cat /home/sagotech/.fehbg` &
xautolock -secure -time 10 -locker /usr/local/bin/suspend_pyhoca-cli.sh &
while true; do
    rsync -qr --delete --exclude='.Xauthority' /opt/sagotech/ $HOME/
    exec /home/sagotech/start_pyhoca.sh
done

suffice it to say xautolock does not detect non-activity in an x2go
session so the suspend_pyhoca-cli.sh never ran:

root at lxtrms-thinclient-colodesk:~# cat /usr/local/bin/suspend_pyhoca-cli.sh
#!/bin/bash
pyhoca-cli -S

(for background behind the yad login prompt):
root at lxtrms-thinclient-colodesk:~# cat /home/sagotech/.fehbg
feh --bg-scale '/usr/share/wallpaper/custom-bk-2.jpg'

The script that brings up the yad login prompt loop called from
.xprofile follows... so we have this loop inside the loop of the
.xprofile script... not sure if this necessary or a good thing etc.

root at lxtrms-thinclient-colodesk:~# cat /home/sagotech/start_pyhoca.sh
#!/bin/bash
while true; do
frmdata=$(yad --center --undecorated
--image=/usr/share/wallpaper/sago-header-mod.jpg --image-on-top
--button="gtk-ok:0" --title "Login to Sago Linux Terminal Server"
--form --field="AD username" --field="Password:H")
frmusername=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
frmpassword=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')
pyhoca-cli --server X.X.X.X -u $frmusername --password $frmpassword -c
startkde --sound none --kbd-layout us --kbd-type pc105/us -g
fullscreen --add-to-known-hosts
done

The above basically gives you a login prompt and forces you to enter a
login AND password and the password is hidden when you type it it puts
a nice header image at the top of the prompt.. it only gives an OK
button (no cancel)...  then passes off the username/pw to pyhoca-cli

So yeah I would like to improve this so that inactive x2go sessions
get suspended and go back to the yad login prompt... perhaps there is
a pyhoca-cli switch that does this that I'm not aware of... But even
without that feature this works real nice as a non-pxe x2go
thin-client station.

Anyway this is all probably very messy and amateurish, but I am not
exactly a programmer or very proficient bash scripter so.. :)  Also I
might be missing a few steps and if any of the above does not make
sense please advise and I'll try to see if I missed something in the
steps given above...

Any thoughts on any of the above would be appreciated!

--
"It is only when each individual has achieved inner peace that we will
see lasting outer peace in the world"



More information about the x2go-user mailing list