summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xvmware/defaultwm102
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