Magellan Linux

Diff of /alx-src/branches/alxconf-060/functions/config_sessions.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

alx-src/trunk/alxconfig-ng/functions/config_sessions.sh revision 246 by niro, Wed Apr 13 16:09:53 2005 UTC alx-src/branches/alxconf-060/functions/config_sessions.sh revision 2035 by niro, Wed May 11 09:11:02 2011 UTC
# Line 1  Line 1 
1  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_sessions.sh,v 1.5 2005-04-13 16:09:53 niro Exp $  # $Id$
2  # configures ica-sessions on the host via mysql db settings  # configures ica-sessions on the host via mysql db settings
3    
4  get_sessions_settings()  get_sessions_settings()
5  {  {
6   local x i all count   local x i all count
7    
8   #all arrays:   # all arrays:
9   # ->  session1 session2 ... sessionN   # ->  session1 session2 ... sessionN
10    
11   #get settings from database   # get settings from database
12   all=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   all=$(mysqldo "select filename from cfg_sessions where serial='${ALX_SERIAL}'")
  "select filename from cfg_sessions where serial='${ALX_SERIAL}'")  
  #"select session from cfg_sessions where serial='${ALX_SERIAL}'")  
13    
14   #split'em up and put in an array (only if $all not zero)   # split'em up and put in an array (only if $all not zero)
15   declare -i i=0   declare -i i=0
16   if [ -n "${all}" ]   if [ -n "${all}" ]
17   then   then
# Line 27  get_sessions_settings() Line 25  get_sessions_settings()
25   count=0   count=0
26   fi   fi
27    
28     # get settings from database
29     ALX_PROGRAMS=$(mysqldo "select name from cfg_other_menuitems where serial='${ALX_SERIAL}'")
30    
31   export ALX_SESSIONS   export ALX_SESSIONS
32     export ALX_PROGRAMS
33  }  }
34    
35  get_autostart_settings()  get_autostart_settings()
36  {  {
37   #get settings from database   # get settings from database
38   ALX_AUTOSTART=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ALX_AUTOSTART=$(mysqldo "select session from cfg_autostart where serial='${ALX_SERIAL}'")
  "select session from cfg_autostart where serial='${ALX_SERIAL}'")  
39    
40   export ALX_SESSIONS   export ALX_AUTOSTART
41    }
42    
43    get_screensaver_settings()
44    {
45     ALX_SCRN_SAVER=$(mysqldo "select screensaver from cfg_screensaver where serial='${ALX_SERIAL}'")
46     ALX_SCRN_TIMEOUT=$(mysqldo "select timeout from cfg_screensaver where serial='${ALX_SERIAL}'")
47     ALX_SCRN_PASSWD=$(mysqldo "select password from cfg_screensaver where serial='${ALX_SERIAL}'")
48    
49     export ALX_SCRN_SAVER
50     export ALX_SCRN_TIMEOUT
51     export ALX_SCRN_PASSWD
52  }  }
53    
54  generate_ica_session_files()  generate_ica_session_files()
# Line 44  generate_ica_session_files() Line 56  generate_ica_session_files()
56   local all_ids   local all_ids
57   local i   local i
58   local x   local x
59   local k   local browser_address_num
60   local server   local server
61   local ses_session   local ses_session
62   local ses_filename   local ses_filename
# Line 52  generate_ica_session_files() Line 64  generate_ica_session_files()
64   local ses_domain   local ses_domain
65   local ses_password   local ses_password
66   local ses_browseradrs   local ses_browseradrs
67     local ses_colors
68     local CONFIG
69    
70   #get settings from database   # get settings from database
71   all_ids=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   all_ids=$(mysqldo "select id from cfg_sessions where serial='${ALX_SERIAL}'")
  "select id from cfg_sessions where serial='${ALX_SERIAL}'")  
72    
  declare -i x=0  
73   for i in ${all_ids}   for i in ${all_ids}
74   do   do
75   # get settings   # get settings
76   ses_session[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ses_session=$(mysqldo "select session from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
77   "select session from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")   ses_filename=$(mysqldo "select filename from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
78     ses_username=$(mysqldo "select username from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
79   ses_filename[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ses_domain=$(mysqldo "select domain from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
80   "select filename from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")   ses_password=$(mysqldo "select password from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
81     ses_browseradrs=$(mysqldo "select browseradrs from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
82   ses_username[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \  
83   "select username from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")   # get the right colors
84     ses_colors=$(mysqldo "select depth from cfg_graphic where serial='${ALX_SERIAL}'")
85   ses_domain[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   # convert to ica session file values
86   "select domain from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")   case ${ses_colors} in
87     24) ses_colors="8";;
88   ses_password[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   16) ses_colors="4";;
89   "select password from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")   8) ses_colors="2";;
90     *) ses_colors="2";;
91   ses_browseradrs[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   esac
  "select browseradrs from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")  
92    
93   # write session files   # write session files
94   echo '[WFClient]' > ${ALX_ICA_SESSIONS}/${ses_filename}   CONFIG=${ALX_ICA_SESSIONS}/${ses_filename}
95   echo 'Version=2' >> ${ALX_ICA_SESSIONS}/${ses_filename}   clearconfig
96    
97     addconfig '[WFClient]'
98     addconfig 'Version=2'
99   OLD_IFS="$IFS"   OLD_IFS="$IFS"
100   IFS=";"   IFS=";"
101   declare -i k=0   declare -i x=0
102   for server in ${ses_browseradrs[${x}]}   for server in ${ses_browseradrs}
103   do   do
104   (( k++ ))   (( x++ ))
105   echo "TcpBrowserAddress${k}=${server}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   browser_address_num="${x}"
106     # support newer ica-clients:
107     # the first address must be named TcpBrowserAddress, but not TcpBrowserAddress1 !!
108     [[ ${x} -eq 1 ]] && browser_address_num=""
109     addconfig "TcpBrowserAddress${browser_address_num}=${server}"
110   done   done
111   IFS="${OLD_IFS}"   IFS="${OLD_IFS}"
112   unset k   unset x
113   unset OLD_IFS   unset OLD_IFS
   
  echo 'ScreenPercent=0' >> ${ALX_ICA_SESSIONS}/${ses_filename}  
114    
115   echo '[ApplicationServers]' >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig 'ScreenPercent=0'
116   echo "${ses_session[${x}]}=" >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig '[ApplicationServers]'
117     addconfig "${ses_session}="
118   echo "[${ses_session[${x}]}]" >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig "[${ses_session}]"
119   echo "Address=${ses_session[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig "Address=${ses_session}"
120   echo "InitialProgram=#${ses_session[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig "InitialProgram=#${ses_session}"
121   echo 'DesiredColor=3' >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig "DesiredColor=${ses_colors}"
122   echo 'TransportDriver=TCP/IP' >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig 'TransportDriver=TCP/IP'
123   echo 'WinStationDriver=ICA 3.0' >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig 'WinStationDriver=ICA 3.0'
124   echo "ClearPassword=${ses_password[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig "ClearPassword=${ses_password}"
125   echo "Username=${ses_username[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig "Username=${ses_username}"
126   echo "Domain=${ses_domain[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig "Domain=${ses_domain}"
127   echo 'UseFullScreen=Yes' >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig 'UseFullScreen=Yes'
128   echo 'NoWindowManager=True' >> ${ALX_ICA_SESSIONS}/${ses_filename}   addconfig 'NoWindowManager=True'
129   done   done
130    }
131    
132   (( x++ ))  # generates a sh file to start programs
133    generate_program_sh()
134    {
135     local dest
136     local name
137     local exec
138     local workdir
139     local CONFIG
140    
141     # very basic getops
142     for i in $*
143     do
144     case $1 in
145     --name|-n) shift; name="$1" ;;
146     --exec|-x) shift; exec="$1" ;;
147     --dest|-d) shift; dest="$1" ;;
148     --workdir|-w) shift; workdir="$1" ;;
149             esac
150     shift
151     done
152    
153     # abort if name, dest or exec not given
154     [ -z "${name}" ] && return 1
155     [ -z "${exec}" ] && return 1
156     [ -z "${dest}" ] && return 1
157    
158     CONFIG=${dest}
159     addconfig "#!/bin/sh"
160     [ -n "${workdir}" ] && addconfig "cd ${workdir}"
161     addconfig "exec ${exec}"
162    
163     chmod 0755 ${dest}
164    }
165    
166    get_other_menuitems()
167    {
168     local x i progsh_path name exec icon workdir
169    
170     # all arrays:
171     # ->  session1 session2 ... sessionN
172    
173     # get settings from database -> now stored in ALX_PROGRAMS
174    
175     # abort if empty
176     [ -z "${ALX_PROGRAMS}" ] && return 0
177    
178     progsh_path=${ALX_UNPRIV_HOME}/.alxprogs
179     [ -d ${progsh_path} ] && rm -rf ${progsh_path}
180     install -d ${progsh_path}
181    
182     # gen menu items
183     for x in ${ALX_PROGRAMS}
184     do
185     # to be sure
186     unset name
187     unset exec
188     unset workdir
189     unset icon
190    
191     name=$(mysqldo "select name from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")
192     exec=$(mysqldo "select exec from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")
193     workdir=$(mysqldo "select workdir from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")
194     icon=$(mysqldo "select icon from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")
195    
196     # now echo config line for fluxbox-menu
197     # make it "configureable" :P
198     [ -n "${workdir}" ] && workdir="--workdir ${workdir}"
199     [ -n "${icon}" ] && icon="<${icon}>"
200    
201     # gen prog startup wrapper
202     generate_program_sh \
203     --name "${name}" \
204     --exec "${exec}" \
205     --dest "${progsh_path}/${name}" \
206     "${workdir}"
207    
208     echo "[exec] (${name}) {${progsh_path}/${name}} ${icon}"
209     done
210    }
211    
212    # helper functions for generate all desktop icons
213    generate_icon()
214    {
215     local name
216     local icon
217     local command
218     local dest
219     local yres
220     local xres
221     local iwidth
222     local iheight
223     local deficon
224     local CONFIG
225    
226     # very basic getops
227     for i in $*
228     do
229     case $1 in
230     --name|-n) shift; name="$1" ;;
231     --command|-c) shift; command="$1" ;;
232     --icon|-i) shift; icon="$1" ;;
233     --dest|-d) shift; dest="$1" ;;
234     --xres|-x) shift; xres="$1" ;;
235     --yres|-y) shift; yres="$1" ;;
236     --icon-width|-w) shift; iwidth="$1" ;;
237     --icon-height|-h) shift; iheight="$1" ;;
238     --default-icon) shift; deficon="$1" ;;
239             esac
240     shift
241     done
242    
243     # some sanity checks :
244    
245     # abort if name or command not given
246     [[ -z ${name} ]] && return 1
247     [[ -z ${command} ]] && return 1
248    
249     # use some defaults for icon, dest, {x,y}res
250     [[ -z ${xres} ]] && xres=30
251     [[ -z ${yres} ]] && xres=30
252     [[ -z ${dest} ]] && dest="${ALX_UNPRIV_HOME}/.xtdesktop/${name}.lnk"
253     if [[ -z ${icon} ]] || [ ! -f ${icon} ]
254     then
255     # if no default icon is given use default.png
256     [[ -z ${deficon} ]] && deficon="default.png"
257     icon="${ALX_SESSIONS_ICONS}/${deficon}"
258     fi
259    
260     CONFIG=${dest}
261     clearconfig
262    
263     addconfig 'table Icon'
264     addconfig '  Type: Program'
265     addconfig "  Caption: ${name}"
266     addconfig "  Command: ${command}"
267     addconfig "  Icon: ${icon}"
268     addconfig "  X: ${xres}"
269     addconfig "  Y: ${yres}"
270    
271     # add these only if not zero
272     if [[ ! -z ${iwidth} ]] && [[ ! -z ${iheight} ]]
273     then
274     addconfig "  IconWidth: ${iwidth}"
275     addconfig "  IconHeight: ${iheight}"
276     fi
277    
278     addconfig 'end'
279    }
280    
281    generate_all_desktop_icons()
282    {
283     local res
284     local xres
285     local yres
286     local icon_list
287     local x
288     local y
289     local item
290     local basename_item
291     local progsh_path
292    
293     # get the resolution
294     res=$(mysqldo "select resolution from cfg_graphic where serial='${ALX_SERIAL}'")
295    
296     # split res to x & y
297     xres="$(echo ${res} | cut -dx -f1)"
298     yres="$(echo ${res} | cut -dx -f2)"
299    
300     # top left edge of the icon is given in config file
301     # remove a little bit to simulate the bottom-right edge
302     xres="$(( ${xres} - 120 ))"
303     yres="$(( ${yres} - 80 ))"
304    
305     # basic config
306     cat ${ALX_SKELETONS}/xtdesktop/xtdeskrc > ${ALX_UNPRIV_HOME}/.xtdeskrc
307    
308     # clean desktop icon location
309     [ -d ${ALX_UNPRIV_HOME}/.xtdesktop ] && rm -rf ${ALX_UNPRIV_HOME}/.xtdesktop
310     install -d ${ALX_UNPRIV_HOME}/.xtdesktop
311    
312    
313     # default settings
314     declare -i x=30
315     declare -i y=30
316    
317     # first all ica sessions
318     local count=${#ALX_SESSIONS[*]}
319     for (( i=0; i < count; i++ ))
320     do
321     # filenames !
322     icon_list="${icon_list} ${ALX_SESSIONS[${i}]}"
323     done
324    
325     for item in ${icon_list}
326     do
327     # abort if empty
328     [[ -z ${item} ]] && continue
329    
330     # new line if x > xres
331     if [ ${x} -ge ${xres} ]
332     then
333     x=30
334     y=$((${y} + 80))
335     fi
336    
337     # new row if y > yres
338     if [ ${y} -ge ${yres} ]
339     then
340     x=$((${x} + 120))
341     y=30
342    
343     # re-check x
344     [ ${x} -ge ${xres} ] && x=30
345     fi
346    
347     # ica icons
348     # get basename (.ica must be suffix)
349     basename_item="$(basename ${item} .ica)"
350     generate_icon \
351     --name "${basename_item}" \
352     --command "nice -n 19 wfica ${ALX_ICA_SESSIONS}/${item}" \
353     --icon "${ALX_SESSIONS_ICONS}/${basename_item}.png" \
354     --dest "${ALX_UNPRIV_HOME}/.xtdesktop/${basename_item}.lnk" \
355     --xres "${x}" \
356     --yres "${y}"
357    
358     y=$((${y} + 80))
359     done
360    
361    
362     # generate program icons
363     icon_list="${ALX_PROGRAMS}"
364    
365     progsh_path=${ALX_UNPRIV_HOME}/.alxprogs
366    
367     for item in ${icon_list}
368     do
369     # abort if empty
370     [[ -z ${item} ]] && continue
371    
372     # new line if x > xres
373     if [ ${x} -ge ${xres} ]
374     then
375     x=30
376     y=$((${y} + 80))
377     fi
378    
379     # new row if y > yres
380     if [ ${y} -ge ${yres} ]
381     then
382     x=$((${x} + 120))
383     y=30
384    
385     # re-check x
386     [ ${x} -ge ${xres} ] && x=30
387     fi
388    
389     generate_icon \
390     --name "${item}" \
391     --command "${progsh_path}/${item}" \
392     --icon "${ALX_SESSIONS_ICONS}/${item}.png" \
393     --dest "${ALX_UNPRIV_HOME}/.xtdesktop/${item}.lnk" \
394     --xres "${x}" \
395     --yres "${y}" \
396     --default-icon "default_item.png"
397    
398     y=$((${y} + 80))
399     done
400    
401    
402    
403     # last but not least gen a icon with some sys informations
404     local sysinfo
405     local hostname
406     local osversion
407    
408     osversion="$(< /etc/mageversion)"
409     hostname=$(mysqldo "select hostname from cfg_network where serial='${ALX_SERIAL}'")
410     sysinfo="Hostname: ${hostname} Serial: #${ALX_SERIAL} OS: alx-${osversion} Kernel: $(uname -r)"
411    
412     # now get the right position:
413     # restore orig values of xres
414     xres="$(( ${xres} + 120 ))"
415     # default y pos (full yres -22 = cur yres + 58 !)
416     yres="$(( ${yres} + 58 ))"
417     # middle of the screen
418     # (no txt - length required, xtdesk manage that itself)
419     xres="$(( ${xres} / 2))"
420    
421     generate_icon \
422     --name "${sysinfo}" \
423     --command "exit 0" \
424     --icon "${ALX_SESSIONS_ICONS}/sysinfo.png" \
425     --dest "${ALX_UNPRIV_HOME}/.xtdesktop/sysinfo.lnk" \
426     --xres "${xres}" \
427     --yres "${yres}" \
428     --icon-width "1" \
429     --icon-height "1"
430  }  }
431    
432  config_sessions()  config_sessions()
# Line 120  config_sessions() Line 434  config_sessions()
434   # generate ica session files   # generate ica session files
435   generate_ica_session_files   generate_ica_session_files
436    
437   #first of all get the vars   # first of all get the vars
438   get_sessions_settings   get_sessions_settings
439   get_autostart_settings   get_autostart_settings
440     get_screensaver_settings
441    
442   local count=${#ALX_SESSIONS[*]}   local count=${#ALX_SESSIONS[*]}
443   local icon   local icon
444     local i
445   # DEBUG   local CONFIG
 # declare -i i=0  
 # echo count=${count}  
 # echo "Number of new sessions: ${count}"  
 # for ((i=0; i < count; i++))  
 # do  
 # echo "${i} - ${ALX_SESSIONS[${i}]}"  
 # done  
446    
447   # now setup fluxbox for user station   # now setup fluxbox for user station
448    
# Line 152  config_sessions() Line 460  config_sessions()
460   cat ${ALX_SKELETONS}/fluxbox/apps \   cat ${ALX_SKELETONS}/fluxbox/apps \
461   > ${ALX_UNPRIV_HOME}/.fluxbox/apps   > ${ALX_UNPRIV_HOME}/.fluxbox/apps
462    
463     CONFIG=${ALX_UNPRIV_HOME}/.fluxbox/apps
464     # add screensaver
465     if [[ ! -z ${ALX_SCRN_SAVER} ]] && [[ ! -z ${ALX_SCRN_TIMEOUT} ]]
466     then
467     local ALX_PASSWD_CMD
468    
469     if [[ -z ${ALX_SCRN_PASSWD} ]] || [[ ${ALX_SCRN_PASSWD} = NULL ]]
470     then
471     ALX_PASSWD_CMD="-nolock"
472     else
473     ALX_PASSWD_CMD="-cpasswd $(cryptpw -m des ${ALX_SCRN_PASSWD})"
474     fi
475    
476     addconfig "[startup] {nohup xautolock -time ${ALX_SCRN_TIMEOUT} -locker 'xlock -mode ${ALX_SCRN_SAVER} ${ALX_PASSWD_CMD}' > /dev/null &}"
477     fi
478    
479   # add autostart session   # add autostart session
480   if [[ ${ALX_AUTOSTART} != "" ]]   if [[ ! -z ${ALX_AUTOSTART} ]]
481   then   then
482   echo "[startup] {wfica ${ALX_ICA_SESSIONS}/${ALX_AUTOSTART}}" \   addconfig "[startup] {nohup nice -n 19 wfica ${ALX_ICA_SESSIONS}/${ALX_AUTOSTART} &}"
  >> ${ALX_UNPRIV_HOME}/.fluxbox/apps  
483   fi   fi
484    
485   # fluxbox hotkeys   # fluxbox hotkeys
486   cat ${ALX_SKELETONS}/fluxbox/apps \   cat ${ALX_SKELETONS}/fluxbox/keys > ${ALX_UNPRIV_HOME}/.fluxbox/keys
487   > ${ALX_UNPRIV_HOME}/.fluxbox/keys  
488     # generate a fluxbox menu
489     CONFIG=${ALX_UNPRIV_HOME}/.fluxbox/menu
490     clearconfig
491    
492   # fluxbox menu header   # fluxbox menu header
493   cat ${ALX_SKELETONS}/fluxbox/menu.header \   cat ${ALX_SKELETONS}/fluxbox/menu.header >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
494   > ${ALX_UNPRIV_HOME}/.fluxbox/menu  
495     # now fix it with proper messages :P
496     local ver="$(< /etc/mageversion)"
497     sed -i "s:@CHANGEME@:alx-${ver}  #${ALX_SERIAL}:g" ${ALX_UNPRIV_HOME}/.fluxbox/menu
498    
499   # add a newline (maybe there is no crlf in the header)   # add a newline (maybe there is no crlf in the header)
500   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   addconfig
501    
502   # fluxbox menu sessions   # fluxbox menu sessions
503   for (( i=0; i < count; i++ ))   for (( i=0; i < count; i++ ))
504   do   do
505   echo "[exec] ($(basename ${ALX_SESSIONS[${i}]} .ica)) {wfica ${ALX_ICA_SESSIONS}/${ALX_SESSIONS[${i}]}}" \   if [[ ! -z ${ALX_SESSIONS[${i}]} ]]
506   >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   then
507     addconfig "[exec] ($(basename ${ALX_SESSIONS[${i}]} .ica)) {nice -n 19 wfica ${ALX_ICA_SESSIONS}/${ALX_SESSIONS[${i}]}}"
508     fi
509   done   done
510    
511     # add other menuitems
512     addconfig $(get_other_menuitems)
513    
514   # fluxbox menu footer   # fluxbox menu footer
515   cat ${ALX_SKELETONS}/fluxbox/menu.footer \   cat ${ALX_SKELETONS}/fluxbox/menu.footer >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
  >> ${ALX_UNPRIV_HOME}/.fluxbox/menu  
516    
517   # add a newline (maybe there is no crlf in the footer)   # add a newline (maybe there is no crlf in the footer)
518   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   addconfig
519    
520   # now we generate the desktop icons   # now it's a good time to generate *all* icons :)
521   cat ${ALX_SKELETONS}/idesk/ideskrc \   generate_all_desktop_icons
  > ${ALX_UNPRIV_HOME}/.ideskrc  
   
  # whipe out old stuff and install a fresh directory  
  [ -d ${ALX_UNPRIV_HOME}/.idesktop ] && rm -rf ${ALX_UNPRIV_HOME}/.idesktop  
  install -d ${ALX_UNPRIV_HOME}/.idesktop  
   
  local name  
  for (( i=0; i < count; i++ ))  
  do  
  name="$(basename ${ALX_SESSIONS[${i}]} .ica)"  
   
  if [ -f ${ALX_SESSIONS_ICONS}/${name}.png ]  
  then  
  icon="${ALX_SESSIONS_ICONS}/${name}.png"  
  else  
  icon="${ALX_SESSIONS_ICONS}/default.png"  
  fi  
   
  echo "table Icon  
 Caption: ${name}  
 Command: wfica ${ALX_ICA_SESSIONS}/${name}.ica  
 Icon: ${icon}  
 end" > ${ALX_UNPRIV_HOME}/.idesktop/${name}.lnk  
  done  
522    
523   # set correct permissions   # set correct permissions
524   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}
525   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox
526   chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox   chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox
527   chmod 0755 ${ALX_UNPRIV_HOME}/.idesktop   chmod 0755 ${ALX_UNPRIV_HOME}/.xtdesktop
528   chmod 0644 ${ALX_UNPRIV_HOME}/.ideskrc   chmod 0644 ${ALX_UNPRIV_HOME}/.xtdeskrc
   
529    
530   # unset vars   # unset vars
531   unset ALX_SESSIONS   unset ALX_SESSIONS
532     unset ALX_PROGRAMS
533     unset ALX_SCRN_SAVER
534     unset ALX_SCRN_TIMEOUT
535     unset ALX_SCRN_PASSWD
536  }  }

Legend:
Removed from v.246  
changed lines
  Added in v.2035