#!/bin/bash
# Copyright (C) 2008 The JuxLala Team <http://jux-net.info/>
# Availability:  http://sources.jux-net.info/juxlala/scripts/lnk_write.sh
# Latest change: Thu Oct 14 15:00:00 CEST 2008
# Authors:  Andrea Mayr  andrea.mayr (at) netbridge (dot) at
#           Sven Guckes  guckes (at) guckes (dot) net
#           Gerfried Fuchs  rhonda (at) deb (dot) at
# Description:
# this script is part of Juxlala.
# It writes idesks .lnk Files for specific Icons. The Image of the Icons 
# should Change every time you log in. Inital intention is to offer this 
# to small children, so that they can search for their favourite program 
# while moving the mouse over the icons on the desktop. This script is 
# intended to be used in combination with an adapted version of idesk 
# which offers a second hidden image below the icon on the screen. 
# This second image tells the child about the program which is getting 
# started by clicking the icon. 
# License: GPL


# First part of the script is about checking for the screen resolution in order to find the exact positioning of the icons.

#DEFWIDTH=1400
#DEFHEIGHT=1050
DEFWIDTH=1280
DEFHEIGHT=1024


# store default and set to C for reliability
defaultlocale=$LC_ALL
export LC_ALL=C

# # extract Width and Height
eval $(xwininfo -root 2>/dev/null | egrep 'Width|Height' | sed -e 's/^[[:space:]]\+//; s/:[[:space:]]*/=/')

if [ -z "$Width" ]; then
        # no Width - set default values
        Width=$DEFWIDTH
        Height=$DEFHEIGHT
fi


# restore default locale
export LC_ALL=$defaultlocale

# the values are now in $Width and $Height ready for use
xscale=$(/bin/echo -e "scale=2\n$Width /$DEFWIDTH " | bc -l)
yscale=$(/bin/echo -e "scale=2\n$Height/$DEFHEIGHT" | bc -l)

echo "width=$Width ($xscale mal default) height=$Height ($yscale mal default)"



# These are the names of the images.
Kids="kid1
kid2
kid3
kid4
kid5
kid6
kid7
kid8
kid9
kid10"

kid=($Kids)   #read into array variable

#count how many elements
num_kids=${#kid[*]}
# test:
echo numkids: $num_kids


# "Output to File: one.lnk"
ONELNK=$HOME/.idesktop/one.lnk

echo "table Icon" 1>$ONELNK
echo "  Caption:" 1>>$ONELNK

#echo -n "hier: ${kid[$((RANDOM%num_kids))]}"

# change the image at every login
rnr=$((RANDOM%num_kids))
#echo $rnr
#weg=$rnr
#onepng=${kid[$((RANDOM%num_kids))]}
onepng=${kid[$rnr]}
#echo ā-${kid[$rnr]}-

# Output 
#
#echo "  Icon: /home/grml/.idesktop/icons/$onepng.png"
echo "  Icon: /home/grml/.idesktop/icons/$onepng.png" 1>>$ONELNK
fiw=$(/bin/echo -e "250*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
fih=$(/bin/echo -e "300*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "was 250 war ist nun: $fiw"
echo "was 300 war ist nun: $fih"
echo "  Width: $fiw" 1>>$ONELNK
echo "  Height: $fih" 1>>$ONELNK
onex=$(/bin/echo -e "747*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
oney=$(/bin/echo -e "574*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $onex" 1>>$ONELNK
echo "  Y: $oney" 1>>$ONELNK
#aaecho "  Command[0]: /usr/share/juxlala/scripts/pysycache.sh" 1>>$ONELNK
echo "  Command[0]: /usr/share/juxlala/scripts/gcompris.sh" 1>>$ONELNK


echo "end" 1>>$ONELNK


# Copy the underlying image to get the referring name to the random image
cp $HOME/.idesktop/icons/ecomp.png $HOME/.idesktop/icons/$onepng.png
wait

#echo ${kid[@]}
#echo kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}
unset kid[$rnr]

#echo nach unset:
#echo kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}

#echo ===========================================

TWOLNK=$HOME/.idesktop/two.lnk

#schnell noch
#AAAnum_kids=${#kid[*]}  #count how many elements
#echo numkids: $num_kids

echo "table Icon" 1>$TWOLNK
echo "  Caption:" 1>>$TWOLNK

rnr=$((RANDOM%num_kids))

while [ "${kid[$rnr]}" == "" ]; do
  #echo variable is null 2
  rnr=$((RANDOM%num_kids))
done

#echo $rnr

onepng=${kid[$rnr]}


#echo "  Icon: /home/grml/.idesktop/icons/$onepng.png"
echo "  Icon: /home/grml/.idesktop/icons/$onepng.png" 1>>$TWOLNK
echo "  Width: $fiw" 1>>$TWOLNK
echo "  Height: $fih" 1>>$TWOLNK
twox=$(/bin/echo -e "323*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
twoy=$(/bin/echo -e "562*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $twox" 1>>$TWOLNK
echo "  Y: $twoy" 1>>$TWOLNK
#aaecho "  Command[0]: /usr/share/juxlala/scripts/tuxtype.sh" 1>>$TWOLNK
echo "  Command[0]: /usr/share/juxlala/scripts/tuxpaint.sh" 1>>$TWOLNK
echo "end" 1>>$TWOLNK


#aacp $HOME/.idesktop/icons/keyb.png $HOME/.idesktop/icons/$onepng.png
cp $HOME/.idesktop/icons/paint.png $HOME/.idesktop/icons/$onepng.png
wait

#echo ${kid[@]}
#echo kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}
unset kid[$rnr]

#echo nach unset:
#echo  kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}

#echo ===========================================


THREELNK=$HOME/.idesktop/three.lnk

#AAAnum_kids=${#kid[*]}  #count how many elements
#echo numkids: $num_kids

echo "table Icon" 1>$THREELNK
echo "  Caption:" 1>>$THREELNK

rnr=$((RANDOM%num_kids))

while [ "${kid[$rnr]}" == "" ]; do
  #echo variable is null 3
  rnr=$((RANDOM%num_kids))
done

#echo $rnr

onepng=${kid[$rnr]}
#echo -${kid[$rnr]}-
#echo "  Icon: /home/grml/.idesktop/icons/$onepng.png"
echo "  Icon: /home/grml/.idesktop/icons/$onepng.png" 1>>$THREELNK
#echo "  Width: 250" 1>>$THREELNK
biw=$(/bin/echo -e "250*$yscale*0.7" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
bih=$(/bin/echo -e "300*$yscale*0.7" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  Width: $biw" 1>>$THREELNK
echo " was 140 war ist nun $biw"
echo " was 170 war ist nun $bih"
#echo "  Height: 300" 1>>$THREELNK
echo "  Height: $bih" 1>>$THREELNK
threex=$(/bin/echo -e "440*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
threey=$(/bin/echo -e "319*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $threex" 1>>$THREELNK
echo "  Y: $threey" 1>>$THREELNK
#aaecho "  Command[0]: /usr/share/juxlala/scripts/tuxpaint.sh" 1>>$THREELNK
echo "  Command[0]: /usr/share/juxlala/scripts/tuxtype.sh" 1>>$THREELNK
echo "end" 1>>$THREELNK

#aacp $HOME/.idesktop/icons/paint.png $HOME/.idesktop/icons/$onepng.png
cp $HOME/.idesktop/icons/keyb.png $HOME/.idesktop/icons/$onepng.png
wait

#echo ${kid[@]}
#echo kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}
unset kid[$rnr]
#echo nach unset:
#echo  kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}

#echo ===========================================

FOURLNK=$HOME/.idesktop/four.lnk

echo "table Icon" 1>$FOURLNK
echo "  Caption:" 1>>$FOURLNK

rnr=$((RANDOM%num_kids))

while [ "${kid[$rnr]}" == "" ]; do
 # echo variable is null 3
  rnr=$((RANDOM%num_kids))
done

#echo $rnr


onepng=${kid[$rnr]}
#echo -${kid[$rnr]}-
#echo "  Icon: /home/grml/.idesktop/icons/$onepng.png"
echo "  Icon: /home/grml/.idesktop/icons/$onepng.png" 1>>$FOURLNK
#echo "  Width: 250" 1>>$FOURLNK
echo "  Width: $biw" 1>>$FOURLNK
#echo "  Height: 300" 1>>$FOURLNK
echo "  Height: $bih" 1>>$FOURLNK
fourx=$(/bin/echo -e "681*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
foury=$(/bin/echo -e "357*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $fourx" 1>>$FOURLNK
echo "  Y: $foury" 1>>$FOURLNK
#aaecho "  Command[0]: /usr/share/juxlala/scripts/gcompris.sh" 1>>$FOURLNK
echo "  Command[0]: /usr/share/juxlala/scripts/pysycache.sh" 1>>$FOURLNK
echo "end" 1>>$FOURLNK

cp $HOME/.idesktop/icons/mouse.png $HOME/.idesktop/icons/$onepng.png
wait

#echo kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}
unset kid[$rnr]
#echo nach unset:
#echo  kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}

#echo ===========================================
#
FIVELNK=$HOME/.idesktop/five.lnk

echo "table Icon" 1>$FIVELNK
echo "  Caption:" 1>>$FIVELNK

rnr=$((RANDOM%num_kids))

while [ "${kid[$rnr]}" == "" ]; do
 # echo variable is null 3
     rnr=$((RANDOM%num_kids))
done

onepng=${kid[$rnr]}
#echo -${kid[$rnr]}-
#echo "  Icon: /home/grml/.idesktop/icons/$onepng.png"
echo "  Icon: /home/grml/.idesktop/icons/$onepng.png" 1>>$FIVELNK
#echo "  Width: 250" 1>>$FOURLNK
echo "  Width: $biw" 1>>$FIVELNK
#echo "  Height: 300" 1>>$FOURLNK
echo "  Height: $bih" 1>>$FIVELNK
fivex=$(/bin/echo -e "962*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
fivey=$(/bin/echo -e "318*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $fivex" 1>>$FIVELNK
echo "  Y: $fivey" 1>>$FIVELNK
echo "  Command[0]: /usr/share/juxlala/scripts/circuslinux.sh" 1>>$FIVELNK
echo "end" 1>>$FIVELNK

cp $HOME/.idesktop/icons/circus.png $HOME/.idesktop/icons/$onepng.png
wait

#echo kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}
unset kid[$rnr]
#echo nach unset:
##echo  kid[0]: ${kid[0]}, kid[1]: ${kid[1]}, kid[2]: ${kid[2]}, kid[3]: ${kid[3]}, kid[4]: ${kid[4]}, kid[5]: ${kid[5]}, kid[6]: ${kid[6]}, kid[7]: ${kid[7]}


#echo ===========================================
##
AUSLNK=$HOME/.idesktop/aus.lnk

echo "table Icon" 1>$AUSLNK
echo "  Caption:" 1>>$AUSLNK

echo "Icon: /home/grml/.idesktop/icons/aus.png" 1>>$AUSLNK
riwh=$(/bin/echo -e "98*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  Width: $riwh" 1>>$AUSLNK
echo "  Height: $riwh" 1>>$AUSLNK
ausx=$(/bin/echo -e "30*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
ausy=$(/bin/echo -e "905*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $ausx" 1>>$AUSLNK
echo "  Y: $ausy" 1>>$AUSLNK
echo "  Command[0]: /usr/share/juxlala/scripts/exitfrage.xdialog"  1>>$AUSLNK
echo "end" 1>>$AUSLNK


#echo ===========================================
###
SETLNK=$HOME/.idesktop/setup.lnk

echo "table Icon" 1>$SETLNK
echo "  Caption:" 1>>$SETLNK

echo "Icon: /home/grml/.idesktop/icons/setup.png" 1>>$SETLNK
echo "  Width: $riwh" 1>>$SETLNK
echo "  Height: $riwh" 1>>$SETLNK
setx=$(/bin/echo -e "1154*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
sety=$(/bin/echo -e "905*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $setx" 1>>$SETLNK
echo "  Y: $sety" 1>>$SETLNK
echo "  Command[0]: /usr/share/juxlala/scripts/setup.xdialog"  1>>$SETLNK
echo "end" 1>>$SETLNK


#echo ===========================================
##
MBBLNK=$HOME/.idesktop/mbb.lnk
echo "table Icon" 1>$MBBLNK
echo "  Caption:" 1>>$MBBLNK
echo "Icon: /home/grml/.idesktop/icons/mbb.png" 1>>$MBBLNK
mbw=$(/bin/echo -e "124*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
mbh=$(/bin/echo -e "257*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  Width: $mbw" 1>>$MBBLNK
echo "  Height: $mbh" 1>>$MBBLNK
mbbx=$(/bin/echo -e "57*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
mbby=$(/bin/echo -e "275*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $mbbx" 1>>$MBBLNK
echo "  Y: $mbby" 1>>$MBBLNK
echo "  Command[0]: /usr/share/juxlala/scripts/xaosrandom" 1>>$MBBLNK
echo "end" 1>>$MBBLNK


#echo ===========================================
###
BABYLNK=$HOME/.idesktop/baby.lnk

echo "table Icon" 1>$BABYLNK
echo "  Caption:" 1>>$BABYLNK
echo "Icon: /home/grml/.idesktop/icons/baby.png" 1>>$BABYLNK
bbw=$(/bin/echo -e "125*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
bbh=$(/bin/echo -e "150*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  Width: $bbw" 1>>$BABYLNK
echo "  Height: $bbh" 1>>$BABYLNK
babyx=$(/bin/echo -e "204*$xscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
babyy=$(/bin/echo -e "406*$yscale" | bc -l | sed -e "s/\(\.[0-9]\).*//g")
echo "  X: $babyx" 1>>$BABYLNK
echo "  Y: $babyy" 1>>$BABYLNK
echo "  Command[0]: /usr/share/juxlala/scripts/baby.sh" 1>>$BABYLNK
echo "end" 1>>$BABYLNK


sleep 3; exec /usr/bin/idesk 


# vim: set ai et ts=2 comments=n\:# isk+=.,\:,/,~,@-@: EOF
