Magellan Linux

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

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

revision 2454 by niro, Mon Jun 27 12:47:25 2011 UTC revision 5618 by niro, Thu Apr 24 07:42:50 2014 UTC
# Line 59  generate_ica_session_file() Line 59  generate_ica_session_file()
59   # the first address must be named TcpBrowserAddress, but not TcpBrowserAddress1 !!   # the first address must be named TcpBrowserAddress, but not TcpBrowserAddress1 !!
60   [[ ${i} -eq 1 ]] && num=""   [[ ${i} -eq 1 ]] && num=""
61   addconfig "TcpBrowserAddress${num}=${server}"   addconfig "TcpBrowserAddress${num}=${server}"
62     addconfig "HttpBrowserAddress${num}=${server}"
63   done   done
64    
65   addconfig 'ScreenPercent=0'   addconfig 'ScreenPercent=0'
# Line 78  generate_ica_session_file() Line 79  generate_ica_session_file()
79   addconfig "DesiredColor=${ses_colors}"   addconfig "DesiredColor=${ses_colors}"
80   addconfig 'TransportDriver=TCP/IP'   addconfig 'TransportDriver=TCP/IP'
81   addconfig 'WinStationDriver=ICA 3.0'   addconfig 'WinStationDriver=ICA 3.0'
82   addconfig "ClearPassword=${ses__password}"   addconfig "ClearPassword=${ses_password}"
83   addconfig "Username=${ses_username}"   addconfig "Username=${ses_username}"
84   addconfig "Domain=${ses_domain}"   addconfig "Domain=${ses_domain}"
85   addconfig 'UseFullScreen=Yes'   addconfig 'UseFullScreen=Yes'
# Line 162  generate_icon() Line 163  generate_icon()
163   [[ -z ${dest} ]] && dest="${ALX_UNPRIV_HOME}/.idesktop/${name}.lnk"   [[ -z ${dest} ]] && dest="${ALX_UNPRIV_HOME}/.idesktop/${name}.lnk"
164    
165   # use some defaults for icon, dest, {x,y}res   # use some defaults for icon, dest, {x,y}res
166   [[ -z ${xres} ]] && xres=30   [[ -z ${xres} ]] && xres=50
167   [[ -z ${yres} ]] && xres=30   [[ -z ${yres} ]] && xres=50
168   if [[ -z ${icon} ]] || [ ! -f ${icon} ]   if [[ -z ${icon} ]] || [ ! -f ${icon} ]
169   then   then
170   # if no default icon is given use default.png   # if no default icon is given use default.png
# Line 195  generate_all_desktop_icons() Line 196  generate_all_desktop_icons()
196  {  {
197   local session_list="$1"   local session_list="$1"
198   local other_menuitem_list="$2"   local other_menuitem_list="$2"
199     local plugin_list="$3"
200   local res   local res
201   local xres   local xres
202   local yres   local yres
# Line 231  generate_all_desktop_icons() Line 233  generate_all_desktop_icons()
233   install -d ${dest}   install -d ${dest}
234    
235   # default settings   # default settings
236   declare -i x=30   declare -i x=50
237   declare -i y=30   declare -i y=50
238    
239   # ica icons   # ica icons
240   for i in ${session_list}   for i in ${session_list}
# Line 246  generate_all_desktop_icons() Line 248  generate_all_desktop_icons()
248   # new line if x > xres   # new line if x > xres
249   if [ ${x} -ge ${xres} ]   if [ ${x} -ge ${xres} ]
250   then   then
251   x=30   x=50
252   y=$((${y} + 80))   y=$((${y} + 80))
253   fi   fi
254    
# Line 254  generate_all_desktop_icons() Line 256  generate_all_desktop_icons()
256   if [ ${y} -ge ${yres} ]   if [ ${y} -ge ${yres} ]
257   then   then
258   x=$((${x} + 120))   x=$((${x} + 120))
259   y=30   y=50
260    
261   # re-check x   # re-check x
262   [ ${x} -ge ${xres} ] && x=30   [ ${x} -ge ${xres} ] && x=50
263   fi   fi
264    
265   generate_icon \   generate_icon \
266   --name "${cfg_sessions_session}" \   --name "${cfg_sessions_session}" \
267   --command "nice -n 19 wfica ${ALX_ICA_SESSIONS}/$(fix_whitespaces ${cfg_sessions_filename})" \   --command "wfica-launcher ${ALX_ICA_SESSIONS}/$(fix_whitespaces ${cfg_sessions_filename})" \
268   --icon "${ALX_SESSIONS_ICONS}/$(fix_whitespaces ${cfg_sessions_session}).png" \   --icon "${ALX_SESSIONS_ICONS}/$(fix_whitespaces ${cfg_sessions_session}).png" \
269   --dest "${dest}/$(fix_whitespaces ${cfg_sessions_session}).lnk" \   --dest "${dest}/$(fix_whitespaces ${cfg_sessions_session}).lnk" \
270   --xres "${x}" \   --xres "${x}" \
# Line 282  generate_all_desktop_icons() Line 284  generate_all_desktop_icons()
284   # new line if x > xres   # new line if x > xres
285   if [ ${x} -ge ${xres} ]   if [ ${x} -ge ${xres} ]
286   then   then
287   x=30   x=50
288   y=$((${y} + 80))   y=$((${y} + 80))
289   fi   fi
290    
# Line 290  generate_all_desktop_icons() Line 292  generate_all_desktop_icons()
292   if [ ${y} -ge ${yres} ]   if [ ${y} -ge ${yres} ]
293   then   then
294   x=$((${x} + 120))   x=$((${x} + 120))
295   y=30   y=50
296    
297   # re-check x   # re-check x
298   [ ${x} -ge ${xres} ] && x=30   [ ${x} -ge ${xres} ] && x=50
299   fi   fi
300    
301   generate_icon \   generate_icon \
# Line 307  generate_all_desktop_icons() Line 309  generate_all_desktop_icons()
309    
310   y=$((${y} + 80))   y=$((${y} + 80))
311   done   done
312    
313     for i in ${plugin_list}
314     do
315     # abort if empty
316     [[ -z ${i} ]] && continue
317    
318     evaluate_table cfg_plugins "where serial='${ALX_SERIAL}' and id='${i}'"
319     if [[ -x ${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh ]]
320     then
321     eval $(${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh menuitem)
322    
323     # abort if name or exec is empty
324     [[ -z ${PLUGIN_MENUITEM_NAME} ]] && continue
325     [[ -z ${PLUGIN_MENUITEM_EXEC} ]] && continue
326    
327     # new line if x > xres
328     if [ ${x} -ge ${xres} ]
329     then
330     x=50
331     y=$((${y} + 80))
332     fi
333    
334     # new row if y > yres
335     if [ ${y} -ge ${yres} ]
336     then
337     x=$((${x} + 120))
338     y=50
339    
340     # re-check x
341     [ ${x} -ge ${xres} ] && x=50
342     fi
343    
344     generate_icon \
345     --name "${PLUGIN_MENUITEM_NAME}" \
346     --command "${progsh_path}/$(fix_whitespaces ${PLUGIN_MENUITEM_NAME})" \
347     --icon "${ALX_SESSIONS_ICONS}/$(fix_whitespaces ${PLUGIN_MENUITEM_NAME}).png" \
348     --dest "${dest}/$(fix_whitespaces ${PLUGIN_MENUITEM_NAME}).lnk" \
349     --xres "${x}" \
350     --yres "${y}" \
351     --default-icon "default_item.png"
352    
353     y=$((${y} + 80))
354     fi
355    
356     # unset all variables
357     unset PLUGIN_MENUITEM_NAME
358     unset PLUGIN_MENUITEM_EXEC
359     unset PLUGIN_MENUITEM_PARAM
360     unset PLUGIN_MENUITEM_WORKDIR
361     unset PLUGIN_MENUITEM_ICON
362     done
363    
364     # add shutdown, reboot icons
365     for i in shutdown reboot
366     do
367     # new line if x > xres
368     if [ ${x} -ge ${xres} ]
369     then
370     x=50
371     y=$((${y} + 80))
372     fi
373    
374     # new row if y > yres
375     if [ ${y} -ge ${yres} ]
376     then
377     x=$((${x} + 120))
378     y=50
379    
380     # re-check x
381     [ ${x} -ge ${xres} ] && x=50
382     fi
383    
384     case ${i} in
385     shutdown) name="Herunterfahren" ;;
386     reboot) name="Neustarten" ;;
387     esac
388    
389     generate_icon \
390     --name "${name}" \
391     --command "/usr/lib/alxconfig-ng/bin/user_${i}.sh" \
392     --icon "${ALX_SESSIONS_ICONS}/${i}.png" \
393     --dest "${dest}/${i}.lnk" \
394     --xres "${x}" \
395     --yres "${y}" \
396     --icon-width "40" \
397     --icon-height "40"
398    
399     y=$((${y} + 80))
400     done
401    
402   # last but not least gen a icon with some sys informations   # last but not least gen a icon with some sys informations
403   local sysinfo   local sysinfo
# Line 344  config_sessions() Line 435  config_sessions()
435   local all_other_ids   local all_other_ids
436   local CONFIG   local CONFIG
437   local screensaver_passwd_cmd   local screensaver_passwd_cmd
438     local fbinit
439     local fbkeys
440     local progsh_path
441    
442     progsh_path="${ALX_UNPRIV_HOME}/.alxprogs"
443    
444   # get all session ids from database   # get all session ids from database
445   all_ses_ids=$(mysqldo "select id from cfg_sessions where serial='${ALX_SERIAL}'")   all_ses_ids=$(mysqldo "select id from cfg_sessions where serial='${ALX_SERIAL}'")
446   # get all other_menutiem ids from database   # get all other_menuitem ids from database
447   all_other_ids=$(mysqldo "select id from cfg_other_menuitems where serial='${ALX_SERIAL}'")   all_other_ids=$(mysqldo "select id from cfg_other_menuitems where serial='${ALX_SERIAL}'")
448     # get all plugin ids from database
449     all_plugin_ids=$(mysqldo "select id from cfg_plugins where serial='${ALX_SERIAL}'")
450    
451   # get screensaver settings   # get screensaver settings
452   evaluate_table cfg_screensaver   evaluate_table cfg_screensaver
# Line 366  config_sessions() Line 464  config_sessions()
464   # now generate fluxbox config files   # now generate fluxbox config files
465    
466   # fluxbox main config   # fluxbox main config
467   cat ${ALX_SKELETONS}/fluxbox/init > ${ALX_UNPRIV_HOME}/.fluxbox/init   if [ -f ${ALX_SKELETONS}/fluxbox/init ]
468     then
469     fbinit="${ALX_SKELETONS}/fluxbox/init"
470     else
471     fbinit="/usr/share/fluxbox/init"
472     fi
473     cat ${fbinit} > ${ALX_UNPRIV_HOME}/.fluxbox/init
474    
475   # fluxbox autostart   # fluxbox autostart
476   CONFIG="${ALX_UNPRIV_HOME}/.fluxbox/apps"   CONFIG="${ALX_UNPRIV_HOME}/.fluxbox/apps"
# Line 395  config_sessions() Line 499  config_sessions()
499   addconfig "[startup] {nohup xautolock -time ${cfg_screensaver_timeout} -locker 'xlock -mode ${cfg_screensaver_screensaver} ${screensaver_passwd_cmd}' > /dev/null &}"   addconfig "[startup] {nohup xautolock -time ${cfg_screensaver_timeout} -locker 'xlock -mode ${cfg_screensaver_screensaver} ${screensaver_passwd_cmd}' > /dev/null &}"
500   fi   fi
501    
502     # add plugins autostart
503     for i in ${all_plugin_ids}
504     do
505     evaluate_table cfg_plugins "where serial='${ALX_SERIAL}' and id='${i}'"
506     if [[ -x ${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh ]]
507     then
508     eval $(${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh autostart)
509    
510     if [[ ${PLUGIN_AUTOSTART} = 1 ]]
511     then
512     addconfig "[startup] {${progsh_path}/$(fix_whitespaces ${PLUGIN_MENUITEM_NAME}) &}"
513     fi
514     # unset all variables
515     unset PLUGIN_AUTOSTART
516     unset PLUGIN_MENUITEM_NAME
517     fi
518     done
519    
520   # add autostart session   # add autostart session
521   if [[ ! -z ${cfg_autostart_session} ]]   if [[ ! -z ${cfg_autostart_session} ]]
522   then   then
523   # sleep one second to wait until busybox is fully initialized and the screen is really centered   # sleep one second to wait until busybox is fully initialized and the screen is really centered
524   addconfig "[startup] {sleep 1 && nohup nice -n 19 wfica ${ALX_ICA_SESSIONS}/$(fix_whitespaces ${cfg_autostart_session}) &}"   addconfig "[startup] {sleep 1 && wfica-launcher ${ALX_ICA_SESSIONS}/$(fix_whitespaces ${cfg_autostart_session}) &}"
525   fi   fi
526    
527   # fluxbox hotkeys   # fluxbox hotkeys
528   cat ${ALX_SKELETONS}/fluxbox/keys > ${ALX_UNPRIV_HOME}/.fluxbox/keys   if [ -f ${ALX_SKELETONS}/fluxbox/keys ]
529     then
530     fbkeys="${ALX_SKELETONS}/fluxbox/keys"
531     else
532     fbkeys="/usr/share/fluxbox/keys"
533     fi
534     cat ${fbkeys} > ${ALX_UNPRIV_HOME}/.fluxbox/keys
535    
536   # generate a fluxbox menu   # generate a fluxbox menu
537   CONFIG="${ALX_UNPRIV_HOME}/.fluxbox/menu"   CONFIG="${ALX_UNPRIV_HOME}/.fluxbox/menu"
# Line 431  config_sessions() Line 559  config_sessions()
559   --colordepth "${cfg_graphic_depth}"   --colordepth "${cfg_graphic_depth}"
560    
561   # fluxbox menusession   # fluxbox menusession
562   addconfig "[exec] (${cfg_sessions_session}) {nice -n 19 wfica ${ALX_ICA_SESSIONS}/$(fix_whitespaces ${cfg_sessions_filename})}"   addconfig "[exec] (${cfg_sessions_session}) {wfica-launcher ${ALX_ICA_SESSIONS}/$(fix_whitespaces ${cfg_sessions_filename})}"
563   done   done
564    
565   # delete all progs   # delete all progs
  progsh_path="${ALX_UNPRIV_HOME}/.alxprogs"  
566   [ -d ${progsh_path} ] && rm -rf ${progsh_path}   [ -d ${progsh_path} ] && rm -rf ${progsh_path}
567   install -d ${progsh_path}   install -d ${progsh_path}
568    
# Line 466  config_sessions() Line 593  config_sessions()
593   addconfig "[exec] (${cfg_other_menuitems_name}) {${progsh_path}/$(fix_whitespaces ${cfg_other_menuitems_name})} ${cfg_other_menuitems_icon}"   addconfig "[exec] (${cfg_other_menuitems_name}) {${progsh_path}/$(fix_whitespaces ${cfg_other_menuitems_name})} ${cfg_other_menuitems_icon}"
594   done   done
595    
596     # add plugins
597     for i in ${all_plugin_ids}
598     do
599     evaluate_table cfg_plugins "where serial='${ALX_SERIAL}' and id='${i}'"
600     if [[ -x ${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh ]]
601     then
602     eval $(${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh menuitem)
603    
604     # abort if name or exec is empty
605     [[ -z ${PLUGIN_MENUITEM_NAME} ]] && continue
606     [[ -z ${PLUGIN_MENUITEM_EXEC} ]] && continue
607    
608     # now echo config line for fluxbox-menu
609     # make it "configureable" :p
610     if [[ -n ${PLUGIN_MENUITEM_WORKDIR} ]]
611     then
612     workdir="--workdir ${PLUGIN_MENUITEM_WORKDIR}"
613     fi
614     if [[ -n ${PLUGIN_MENUITEM_ICON} ]]
615     then
616     PLUGIN_MENUITEM_ICON="<${PLUGIN_MENUITEM_ICON}>"
617     fi
618    
619     # gen prog startup wrapper
620     generate_program_sh \
621     --name "${PLUGIN_MENUITEM_NAME}" \
622     --exec "${PLUGIN_MENUITEM_EXEC}" \
623     --param "${PLUGIN_MENUITEM_PARAM}" \
624     --dest "${progsh_path}/$(fix_whitespaces ${PLUGIN_MENUITEM_NAME})" \
625     "${workdir}"
626    
627     addconfig "[exec] (${PLUGIN_MENUITEM_NAME}) {${progsh_path}/$(fix_whitespaces ${PLUGIN_MENUITEM_NAME})} ${PLUGIN_MENUITEM_ICON}"
628     fi
629    
630     # unset all variables
631     unset PLUGIN_MENUITEM_NAME
632     unset PLUGIN_MENUITEM_EXEC
633     unset PLUGIN_MENUITEM_PARAM
634     unset PLUGIN_MENUITEM_WORKDIR
635     unset PLUGIN_MENUITEM_ICON
636     done
637    
638   # fluxbox menu footer   # fluxbox menu footer
639   cat ${ALX_SKELETONS}/fluxbox/menu.footer >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   cat ${ALX_SKELETONS}/fluxbox/menu.footer >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
640   # add a newline (maybe there is no crlf in the footer)   # add a newline (maybe there is no crlf in the footer)
641   addconfig   addconfig
642    
643   # now it's a good time to generate *all* icons :)   # now it's a good time to generate *all* icons :)
644   generate_all_desktop_icons "${all_ses_ids}" "${all_other_ids}"   generate_all_desktop_icons "${all_ses_ids}" "${all_other_ids}" "${all_plugin_ids}"
645    
646   # fix permissions   # fix permissions
647   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}
648   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox
649   chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox   chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox
650   chmod 0755 ${ALX_UNPRIV_HOME}/.idesktop   chmod 0755 ${ALX_UNPRIV_HOME}/.idesktop
  chmod 0644 ${ALX_UNPRIV_HOME}/.ideskrc  
651  }  }

Legend:
Removed from v.2454  
changed lines
  Added in v.5618