--- alx-src/branches/alxconf-060/functions/config_sessions.sh 2011/06/14 13:51:20 2381 +++ alx-src/branches/alxconf-060/functions/config_sessions.sh 2011/06/27 12:47:25 2454 @@ -19,6 +19,7 @@ local ses_domain local ses_password local ses_browseradrs + local ses_colors local CONFIG # very basic getops @@ -31,6 +32,7 @@ --password) shift; ses_password="$1" ;; --domain) shift; ses_domain="$1" ;; --server) shift; ses_browseradrs="$1" ;; + --colordepth) shift; ses_colors="$1" ;; esac shift done @@ -65,6 +67,15 @@ addconfig "[${ses_session}]" addconfig "Address=${ses_session}" addconfig "InitialProgram=#${ses_session}" + + # convert to ica session file values + case ${ses_colors} in + 24|32) ses_colors="8";; + 16) ses_colors="4";; + 8) ses_colors="2";; + *) ses_colors="4";; # default to 16bit + esac + addconfig "DesiredColor=${ses_colors}" addconfig 'TransportDriver=TCP/IP' addconfig 'WinStationDriver=ICA 3.0' addconfig "ClearPassword=${ses__password}" @@ -123,6 +134,7 @@ local iheight local deficon local CONFIG + local utility # very basic getops for i in $* @@ -142,15 +154,16 @@ done # some sanity checks: - + # abort if name or command not given [[ -z ${name} ]] && return 1 [[ -z ${command} ]] && return 1 + [[ -z ${dest} ]] && dest="${ALX_UNPRIV_HOME}/.idesktop/${name}.lnk" + # use some defaults for icon, dest, {x,y}res [[ -z ${xres} ]] && xres=30 [[ -z ${yres} ]] && xres=30 - [[ -z ${dest} ]] && dest="${ALX_UNPRIV_HOME}/.xtdesktop/${name}.lnk" if [[ -z ${icon} ]] || [ ! -f ${icon} ] then # if no default icon is given use default.png @@ -162,7 +175,6 @@ clearconfig addconfig 'table Icon' - addconfig ' Type: Program' addconfig " Caption: ${name}" addconfig " Command: ${command}" addconfig " Icon: ${icon}" @@ -172,8 +184,8 @@ # add these only if not zero if [[ ! -z ${iwidth} ]] && [[ ! -z ${iheight} ]] then - addconfig " IconWidth: ${iwidth}" - addconfig " IconHeight: ${iheight}" + addconfig " Width: ${iwidth}" + addconfig " Height: ${iheight}" fi addconfig 'end' @@ -191,6 +203,12 @@ local i local name local progsh_path + local utility + local dest + local rc + + dest="${ALX_UNPRIV_HOME}/.idesktop" + rc="${ALX_UNPRIV_HOME}/.ideskrc" # progsh path progsh_path="${ALX_UNPRIV_HOME}/.alxprogs" @@ -208,11 +226,9 @@ yres="$(( ${yres} - 80 ))" # clean desktop icon location - [ -d ${ALX_UNPRIV_HOME}/.xtdesktop ] && rm -rf ${ALX_UNPRIV_HOME}/.xtdesktop - install -d ${ALX_UNPRIV_HOME}/.xtdesktop - - # basic config - cat ${ALX_SKELETONS}/xtdesktop/xtdeskrc > ${ALX_UNPRIV_HOME}/.xtdesktop/xtdeskrc + [ -d ${dest} ] && rm -rf ${dest} + [ -f ${rc} ] && rm -f ${rc} + install -d ${dest} # default settings declare -i x=30 @@ -248,7 +264,7 @@ --name "${cfg_sessions_session}" \ --command "nice -n 19 wfica ${ALX_ICA_SESSIONS}/$(fix_whitespaces ${cfg_sessions_filename})" \ --icon "${ALX_SESSIONS_ICONS}/$(fix_whitespaces ${cfg_sessions_session}).png" \ - --dest "${ALX_UNPRIV_HOME}/.xtdesktop/$(fix_whitespaces ${cfg_sessions_session}).lnk" \ + --dest "${dest}/$(fix_whitespaces ${cfg_sessions_session}).lnk" \ --xres "${x}" \ --yres "${y}" @@ -284,7 +300,7 @@ --name "${cfg_other_menuitems_name}" \ --command "${progsh_path}/$(fix_whitespaces ${cfg_other_menuitems_name})" \ --icon "${ALX_SESSIONS_ICONS}/$(fix_whitespaces ${cfg_other_menuitems_name}).png" \ - --dest "${ALX_UNPRIV_HOME}/.xtdesktop/$(fix_whitespaces ${cfg_other_menuitems_name}).lnk" \ + --dest "${dest}/$(fix_whitespaces ${cfg_other_menuitems_name}).lnk" \ --xres "${x}" \ --yres "${y}" \ --default-icon "default_item.png" @@ -314,7 +330,7 @@ --name "${sysinfo}" \ --command "exit 0" \ --icon "${ALX_SESSIONS_ICONS}/sysinfo.png" \ - --dest "${ALX_UNPRIV_HOME}/.xtdesktop/sysinfo.lnk" \ + --dest "${dest}/sysinfo.lnk" \ --xres "${xres}" \ --yres "${yres}" \ --icon-width "1" \ @@ -338,6 +354,8 @@ evaluate_table cfg_screensaver # get autostart settings evaluate_table cfg_autostart + # get current color depth + evaluate_table cfg_graphic # now setup fluxbox for user station @@ -351,9 +369,19 @@ cat ${ALX_SKELETONS}/fluxbox/init > ${ALX_UNPRIV_HOME}/.fluxbox/init # fluxbox autostart - cat ${ALX_SKELETONS}/fluxbox/apps > ${ALX_UNPRIV_HOME}/.fluxbox/apps - CONFIG="${ALX_UNPRIV_HOME}/.fluxbox/apps" + # do not show decorations on messages generated with xmessage + if [ -x /usr/bin/xmessage ] + then + addconfig '[app] (xmessage)' + addconfig ' [Deco] {NONE}' + addconfig '[end]' + fi + # add icon utility + [ -x /usr/bin/idesk ] && addconfig '[startup] {nohup idesk > /dev/null &}' + # add numlock utility + [ -x /usr/bin/numlockx ] && addconfig '[startup] {nohup numlockx on &}' + # add screensaver if [[ ! -z ${cfg_screensaver_screensaver} ]] && [[ ! -z ${cfg_screensaver_screensaver_timeout} ]] then @@ -399,7 +427,8 @@ --username "${cfg_sessions_username}" \ --password "${cfg_sessions_password}" \ --domain "${cfg_sessions_domain}" \ - --server "${cfg_sessions_browseradrs}" + --server "${cfg_sessions_browseradrs}" \ + --colordepth "${cfg_graphic_depth}" # fluxbox menusession addconfig "[exec] (${cfg_sessions_session}) {nice -n 19 wfica ${ALX_ICA_SESSIONS}/$(fix_whitespaces ${cfg_sessions_filename})}" @@ -449,6 +478,6 @@ chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME} chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox - chmod 0755 ${ALX_UNPRIV_HOME}/.xtdesktop - chmod 0644 ${ALX_UNPRIV_HOME}/.xtdeskrc + chmod 0755 ${ALX_UNPRIV_HOME}/.idesktop + chmod 0644 ${ALX_UNPRIV_HOME}/.ideskrc }