summaryrefslogtreecommitdiffstats
path: root/vmware/defaultwm
blob: 9ee81c3b3a5b75d94b8646cefe93ac455aec0ed2 (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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/bin/sh
#
# Description:  Session chooser for kdm/gdm
#
# Author(s):    Michael Janczyk <mj0@uni-freiburg.de>, 03-10-2006
#
# Copyright:    (c) 2003, 2006 - RZ Universitaet Freiburg
#
# Version:      0.2.435
#
################################################################################


# read from machine-setup (for slxgrp)
. /etc/machine-setup


# set X background
res=$(xvidtune -show | grep -wo "\".*\"" | sed "s/\"//g")
if ! [ -f /var/lib/openslx/themes/bootsplash/images/silent-${res}.jpg ]; then
  img=$(ls /var/lib/openslx/themes/bootsplash/images/ | grep -m 1 "silent")
  display -window root /var/lib/openslx/themes/bootsplash/images/${img}
else 
  display -window root /var/lib/openslx/themes/bootsplash/images/silent-${res}.jpg
fi


# Xdailog test
xdialog=$(which Xdialog)
[ -z "${xdialog}" ] && xterm -e 'echo -e "\n\n\n\n\n\n\t\t\tNo Xdialog installed!!!\
  \n\n\t\t\tClosing in 3 seconds."; sleep 3' && exit 1


x_dialog () {

  xsessions="/usr/share/xsessions"
  vmsessions="/var/lib/vmware/vmsessions"
  tmpdir="/tmp"
  menu=
  execute=
  slxgrp=$(echo ${slxgrp} | tr [A-Z] [a-z])
  slxgrptest=
    

  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
    # check for slxgrp
    slxgrptest=$(grep -m 1 -i "slxgrp" ${desktops[${args}]} \
      | awk -F "=" '{print $2}' | tr [A-Z] [a-z])
    if [ -z "${slxgrp}" -o "${slxgrp}" = "${slxgrptest}" -o "${slxgrp}" = "default"  ]; \
      then

      # 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

    fi
  
    (( args=${args}+1 ))
  done

  # test if menu not empty?
  [ -z "${menu}" ] && Xdialog --infobox "No items found to display!!!" 10 30 3000 && exit 1

  # --stderr because of 1>/dev/null
  # echoing to file because Xdialog sux when used w/ quotes
  echo -e "Xdialog --rc-file /var/lib/openslx/themes/Xdialog/gtkrc \
          --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