diff options
-rwxr-xr-x | vmware/defaultwm | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/vmware/defaultwm b/vmware/defaultwm new file mode 100755 index 00000000..62a63cc1 --- /dev/null +++ b/vmware/defaultwm @@ -0,0 +1,102 @@ +#!/bin/sh +# +# session chooser +# +# Michael Janczyk <mj0@uni-freiburg.de> +# +# Last changes: 26-04-2006 +# + + + +x_dialog () { + + xsessions="/usr/share/xsessions" + vmsessions="/var/lib/vmware/vmsessions" + tmpdir="/tmp" + menu= + execute= + + + desktops=( `ls ${xsessions} | grep -x ".*desktop" \ + | grep -v "default.*" 2>/dev/null` ) + xdesktopsnr=$(echo "${#desktops[*]}") + desktops=( `ls ${xsessions} | grep -x ".*desktop" \ + | grep -v "default.*" 2>/dev/null; \ + ls ${vmsessions} | grep -x ".*desktop" 2>/dev/null` ) + desktopsnr=$(echo "${#desktops[*]}") + + + (( args=0 )) + declare -i i=0 + + while [ "${xdesktopsnr}" -gt "${args}" ]; do + # exec in .desktop + execute[${i}]=$(grep -m 1 -i "exec" ${xsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # name in .desktop + execute[${i}]=$(grep -m 1 -i "name" ${xsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-`echo ${execute[${i}-1]} | sed -e "s,-, ,g"`} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # comment in .desktop + execute[${i}]=$(grep -m 1 -i "comment" ${xsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-"No comment"} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + (( args=${args}+1 )) + done + + while [ "${desktopsnr}" -gt "${args}" ]; do + # exec in .desktop + execute[${i}]=$(grep -m 1 -i "exec" ${vmsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # name in .desktop + execute[${i}]=$(grep -m 1 -i "name" ${vmsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-`echo ${execute[${i}-1]} | sed -e "s,-, ,g"`} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + # comment in .desktop + execute[${i}]=$(grep -m 1 -i "comment" ${vmsessions}/${desktops[${args}]} \ + | awk -F "=" '{print $2}') + execute[${i}]=${execute[${i}]:-"No comment"} + menu="$menu \"\${execute[${i}]}\"" + i=${i}+1 + + (( args=${args}+1 )) + done + + # --stderr because of 1>/dev/null + # echoing to file because Xdialog sux when used w/ quotes + echo -e "Xdialog --title \"VMware Image Menu\" \ + --screen-center \ + --fill \ + --no-wrap \ + --stderr \ + --no-tags \ + --ok-label \"START\" \ + --item-help \ + --menubox \"Please choose the image you would like to run:\" 35 80 0 \ + $menu 1>/dev/null" \ + > ${tmpdir}/Xdialog + + . ${tmpdir}/Xdialog + rm -f ${tmpdir}/Xdialog +} + +args_dial=$(x_dialog 2>&1) # 2>&1, see function +exec ${args_dial} + +exit 0 |