blob: 5774fa4656d1d226af5dc9a5ebe11c0d80519b71 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#!/bin/sh
#
# session chooser
#
# Michael Janczyk <mj0@uni-freiburg.de>
#
# Last changes: 15-05-2006
#
# set X background
xsetroot -solid "slate grey"
x_dialog () {
xsessions="/usr/share/xsessions"
vmsessions="/var/lib/vmware/vmsessions"
tmpdir="/tmp"
menu=
execute=
xdesktopsnr=( `ls ${xsessions}/*.desktop | grep -v "default.*" \
| wc -l 2>/dev/null` )
desktops=( `ls ${xsessions}/*.desktop | grep -v "default.*" \
| sort -bf 2>/dev/null; \
ls ${vmsessions}/*.desktop | sort -bf 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" ${desktops[${args}]} \
| awk -F "=" '{print $2}')
menu="$menu \"\${execute[${i}]}\""
i=${i}+1
# name in .desktop
execute[${i}]=$(grep -m 1 -i "name" ${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" ${desktops[${args}]} \
| awk -F "=" '{print $2}')
execute[${i}]="| Desktop Environment |
${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" ${desktops[${args}]} \
| awk -F "=" '{print $2}')
menu="$menu \"\${execute[${i}]}\""
i=${i}+1
# name in .desktop
execute[${i}]=$(grep -m 1 -i "name" ${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" ${desktops[${args}]} \
| awk -F "=" '{print $2}')
execute[${i}]="| VMware Image |
${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 \"Desktop / VMware-Image Menu\" \
--screen-center \
--fill \
--no-wrap \
--stderr \
--no-tags \
--ok-label \"START\" \
--item-help \
--menubox \"Which desktop or VMware-image to start?\" 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
|