Do not switch workspace to follow new windows in others
[wmaker-crm.git] / util / wmaker.inst.in
blobae4cceb791b4786f9cda7b9179f99cccfcc566c0
1 #!/bin/sh
3 # Install Window Maker for the current user
6 # xx herbert
7 if test "x$1" = "x--batch" ; then
8 BATCH="1"
9 else
10 BATCH=""
12 # /xx herbert
14 # name of menu file we install (menu, plmenu)
15 inst_menu=""
17 LOCALE=$LANG
18 if [ -z "$LOCALE" ]; then
19 LOCALE=$LC_ALL
22 # directory where system wide configuration is stored
23 GLOBALDIR="#pkgdatadir#"
24 GLOBALDEFDIR="#sysconfdir#"
26 USERDIR=$HOME
28 VERSION="#version#"
30 BINDIR="#bindir#"
32 make_dir() {
33 mkdir $1
34 chmod +rwx $1
37 make_script() {
38 ISCRIPT=$1
40 cat << EOF >> $ISCRIPT
41 # Window Maker default X session startup script
43 PATH="\$PATH:$BINDIR"
45 # If you login from xdm, uncomment this to make error messages appear
46 # in the console window.
48 # tail -f $HOME/.xsession-errors > /dev/console &
50 exec wmaker
52 EOF
53 chmod +rx $ISCRIPT
58 # Copy files considering special cases
60 copy() {
61 source=$1
62 target=$2
63 file=`basename $source`
64 rm -f $target
65 if [ "$file" = "WindowMaker" ]; then
66 sed -e "s|~/GNUstep|$GSDIR|g" $source > $target
67 elif [ "$file" = "WMRootMenu" ]; then
68 if [ "$LOCALE" ]; then
69 if [ -f $GLOBALDIR/plmenu.$LOCALE ]; then
70 source=$GLOBALDIR/plmenu.$LOCALE
71 elif [ -f $GLOBALDIR/plmenu.${LOCALE%.*} ]; then
72 source=$GLOBALDIR/plmenu.${LOCALE%.*}
73 elif [ -f $GLOBALDIR/plmenu.${LOCALE%_*} ]; then
74 source=$GLOBALDIR/plmenu.${LOCALE%_*}
75 elif [ -f $GLOBALDIR/menu.${LOCALE%_*} ]; then
76 source=$GLOBALDIR/menu.${LOCALE%_*}
77 else
78 source=$GLOBALDIR/plmenu
80 else
81 source=$GLOBALDIR/plmenu
83 sed -e "s:#wmdatadir#:$GLOBALDIR:g" \
84 $source > $GSDIR/Defaults/WMRootMenu
85 else
86 if test "x$GNUSTEP_USER_ROOT" = "x"; then
87 sed -e "s:#wmdatadir#:$GLOBALDIR:g" \
88 $source > $target
89 else
90 sed -e "s|\$HOME/GNUstep|$GSDIR|g" \
91 -e "s:#wmdatadir#:$GLOBALDIR:g" \
92 $source > $target
99 echo "Installing WindowMaker $VERSION for current user..."
102 if [ ! -d $GLOBALDIR ]; then
103 echo "Could not find global data files"
104 echo "Make sure you have installed Window Maker correctly"
105 exit 1
108 if [ ! -d $GLOBALDEFDIR ]; then
109 echo "Could not find global configurations files"
110 echo "Make sure you have installed Window Maker correctly"
111 exit 1
114 if [ ! -d "$USERDIR" ]; then
115 echo "Could not find user directory $USERDIR"
116 exit 1
120 if test "x$GNUSTEP_USER_ROOT" = "x"; then
121 cd $USERDIR
122 GSDIR=$USERDIR/GNUstep
123 if [ ! -d $GSDIR ]; then
124 echo "Creating $GSDIR user directory"
125 make_dir $GSDIR
127 else
128 GSDIR=$GNUSTEP_USER_ROOT
129 if [ ! -d $GSDIR ]; then
130 echo "Directory specified in GNUSTEP_USER_ROOT environment variable does not exist"
131 exit 1
133 cd $GSDIR
134 cd ..
138 if [ ! -d "$GSDIR/Defaults" ]; then
139 make_dir $GSDIR/Defaults
142 echo "Copying defaults database..."
144 FILES=`(cd $GLOBALDEFDIR;ls -d *)`
145 all=""
146 for i in $FILES; do
147 if [ ! -d $GLOBALDEFDIR/$i ]; then
148 if [ -f $GSDIR/Defaults/$i -a -z "$BATCH" ]; then
149 echo "The configuration file \"$i\" already exists in your defaults database."
150 echo "Do you wish to replace it? <y/n/a> [n] $all"
151 if [ "$all" != "a" ]; then
152 read foo
153 if [ "$foo" = "a" -o "$foo" = "A" ]; then
154 all="a"
157 if [ "$foo" = "y" -o "$foo" = "Y" -o "$all" = "a" ]; then
158 copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i
160 else
161 copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i
164 done
167 if [ ! -d "$GSDIR/Library/Icons/" ]; then
168 echo "Creating icon library directory $GSDIR/Library/Icons"
169 if [ ! -d $GSDIR/Library ]; then
170 make_dir $GSDIR/Library
172 make_dir $GSDIR/Library/Icons
176 if [ ! -d "$GSDIR/Library/WindowMaker/" ]; then
177 echo "Creating WindowMaker data library directory $GSDIR/Library/WindowMaker"
178 if [ ! -d $GSDIR/Library ]; then
179 make_dir $GSDIR/Library
181 make_dir $GSDIR/Library/WindowMaker
184 if [ ! -d "$GSDIR/Library/WindowMaker/Styles" ]; then
185 echo "Creating style library $GSDIR/Library/WindowMaker/Styles"
186 make_dir $GSDIR/Library/WindowMaker/Styles
190 if [ ! -d "$GSDIR/Library/WindowMaker/Themes" ]; then
191 echo "Creating theme library $GSDIR/Library/WindowMaker/Themes"
192 make_dir $GSDIR/Library/WindowMaker/Themes
196 if [ ! -d "$GSDIR/Library/WindowMaker/Backgrounds" ]; then
197 echo "Creating bg image library $GSDIR/Library/WindowMaker/Backgrounds"
198 make_dir $GSDIR/Library/WindowMaker/Backgrounds
199 else
200 echo "Default Backgrounds directory already exists. Skipping..."
204 if [ ! -d "$GSDIR/Library/WindowMaker/IconSets" ]; then
205 echo "Creating icon setup library $GSDIR/Library/WindowMaker/IconSets"
206 make_dir $GSDIR/Library/WindowMaker/IconSets
207 else
208 echo "Default IconSets directory already exists. Skipping..."
212 if [ ! -d "$GSDIR/Library/WindowMaker/Pixmaps" ]; then
213 echo "Creating pixmap library $GSDIR/Library/WindowMaker/Pixmaps"
214 make_dir $GSDIR/Library/WindowMaker/Pixmaps
215 else
216 echo "Default Pixmaps directory already exists. Skipping..."
220 if [ ! -d "$GSDIR/Library/WindowMaker/Sounds" ]; then
221 echo "Creating sound library $GSDIR/Library/WindowMaker/Sounds"
222 make_dir $GSDIR/Library/WindowMaker/Sounds
223 else
224 echo "Default Sounds directory already exists. Skipping..."
228 if [ ! -d "$GSDIR/Library/WindowMaker/SoundSets" ]; then
229 echo "Creating sound set library $GSDIR/Library/WindowMaker/SoundSets"
230 make_dir $GSDIR/Library/WindowMaker/SoundSets
231 else
232 echo "Default SoundSets directory already exists. Skipping..."
236 if [ ! -d "$GSDIR/Library/WindowMaker/CachedPixmaps" ]; then
237 make_dir $GSDIR/Library/WindowMaker/CachedPixmaps
240 if [ ! -d "$GSDIR/Library/WindowMaker/WPrefs" ]; then
241 make_dir $GSDIR/Library/WindowMaker/WPrefs
244 if test -z "#LITE#" ; then
245 FILES=`(cd $GLOBALDIR; ls menu menu.* plmenu plmenu.?? wmmacros)`
246 for i in $FILES; do
247 # xx herbert
248 if [ -f "$GSDIR/Library/WindowMaker/$i" -a -z "$BATCH" ]; then
249 # /xx herbert
250 echo "The file \"$i\" already exists in $GSDIR/Library/WindowMaker"
251 echo "Do you wish to replace it? <y/n/a> [n] $all"
252 if [ "$all" != "a" ]; then
253 read foo
254 if [ "$foo" = "a" -o "$foo" = "A" ]; then
255 all="a"
258 if [ "$foo" = "y" -o "$foo" = "Y" -o "$foo" = "a" ]; then
259 copy $GLOBALDIR/$i $GSDIR/Library/WindowMaker/$i
261 else
262 copy $GLOBALDIR/$i $GSDIR/Library/WindowMaker/$i
264 done
267 cp $GLOBALDIR/README.themes $GSDIR/Library/WindowMaker
268 cp $GLOBALDIR/README $GSDIR/Library/WindowMaker
270 test -f ~$GSDIR/Library/WindowMaker/autostart || \
271 cp $GLOBALDIR/autostart.sh $GSDIR/Library/WindowMaker/autostart
272 chmod +rx $GSDIR/Library/WindowMaker/autostart
274 test -f ~$GSDIR/Library/WindowMaker/exitscript || \
275 cp $GLOBALDIR/exitscript.sh $GSDIR/Library/WindowMaker/exitscript
276 chmod +rx $GSDIR/Library/WindowMaker/exitscript
278 # xx herbert
279 if test -n "$BATCH" ; then
280 echo "Installation Finished"
281 exit 0
283 # /xx herbert
287 #######################
289 DATE=`date +%b%d.%T`
291 show_end_message() {
293 echo
294 echo "Installation Finished"
295 echo
296 if test -z "#LITE#" ; then
297 echo "There are menus in 2 different file formats. The plain text format and"
298 echo "the property list format. The plain text format is more flexible, but"
299 echo "the menu in the property list format can be edited graphically. The"
300 echo "menu that will be used by default is the property list one. Read"
301 echo " $GSDIR/Library/WindowMaker/README"
302 echo "for information on how to change it."
303 if [ "${inst_menu%.*}" = "menu" ]; then
304 echo "However, since you have locale set to $LOCALE and plmenu for such locale"
305 echo "was not found, your WMRootMenu contains path to text formated menu:"
306 echo " $GSDIR/Library/WindowMaker/$inst_menu"
308 else
309 echo "Your copy of Window Maker is configured especially for KDE."
310 echo "Window Maker application menus are not available."
314 wmaker_found=0
315 for xinit in .xinitrc .Xclients .xsession; do
316 test ! -f "$HOME/$xinit" && continue
317 res="`grep wmaker $HOME/$xinit`"
318 if test "x$res" != x; then
319 wmaker_found=1
320 break
322 done
323 if test $wmaker_found = 1; then
324 echo "Found Window Maker to already be your default window manager."
325 show_end_message
326 exit 0
330 trap "show_end_message;exit" 2
332 echo
333 echo "Now the .xinitrc, .Xclients or .xsession script must be updated so that"
334 echo "it calls wmaker when you start an X session."
335 echo "Type the name of the file that must be changed (normally .xinitrc)."
336 echo "If the file already exists, it will be backed up with a .old.$DATE "
337 echo "extension"
338 echo "If you want to edit it by hand, hit <Control>-C now."
339 read file
341 if test "x$file" = "x"; then
342 echo "Using .xinitrc as a default value"
343 file=.xinitrc
346 if [ -f $USERDIR/$file ]; then
347 mv $USERDIR/$file $USERDIR/$file.old.$DATE
350 make_script $USERDIR/$file
352 show_end_message