#!/bin/sh # # Install Window Maker for the current user # # xx herbert if test x"$1" = x"--batch" ; then BATCH="1" else BATCH="" fi # /xx herbert # directory where system wide configuration is stored GLOBALDIR="/usr/share/WindowMaker" GLOBALDEFDIR="/etc/X11/WindowMaker" USERDIR=$HOME VERSION="0.91.0" BINDIR="/usr/bin" make_dir() { mkdir $1 chmod +rwx $1 } make_script() { ISCRIPT=$1 cat << EOF >> $ISCRIPT # Window Maker default X session startup script PATH="\$PATH:$BINDIR" # If you login from xdm, uncomment this to make error messages appear # in the console window. # # tail -f $HOME/.xsession-errors > /dev/console & exec wmaker EOF chmod +rx $ISCRIPT } # # Copy files considering special cases # copy() { source=$1 target=$2 file=`basename $source` rm -f $target mbytes=`echo $LANG | grep -e [zh:ja:ko]` if [ "$file" = "WMRootMenu" ]; then echo \"$GSDIR/Library/WindowMaker/menu\" > \ $target elif [ "$file" = "WindowMaker" ]; then # Multibyte characters aware. if [ x"$mbytes" != x ]; then sed -e "s|MultiByteText = NO|MultiByteText = YES|g" \ -e "s|helvetica-[a-z]*-r-normal-\*-[0-9]*|*-medium-r-normal-*-14|g" \ -e "s|~/GNUstep|$GSDIR|g" $source > $target else sed -e "s|~/GNUstep|$GSDIR|g" $source > $target fi elif [ "$file" = "WMGLOBAL" ]; then if [ x"$mbytes" != x ]; then sed -e "s|MultiByteText = NO|MultiByteText = YES|g" \ -e "s|helvetica-[a-z]*-r-normal-\*-|*-medium-r-normal-*-|g" \ $source > $target fi elif [ "$file" = "WMMail" ]; then if [ x"$mbytes" != x ]; then sed -e "s|helvetica-[a-z]*-|*-medium-|g" \ $source > $target fi else if test "x$GNUSTEP_USER_ROOT" = "x"; then sed -e "s:#wmdatadir#:$GLOBALDIR:g" \ $source > $target else sed -e "s|\$HOME/GNUstep|$GSDIR|g" \ -e "s:#wmdatadir#:$GLOBALDIR:g" \ $source > $target fi fi } echo "Installing WindowMaker $VERSION for current user..." if [ ! -d $GLOBALDIR ]; then echo "Could not find global data files" echo "Make sure you have installed Window Maker correctly" exit 1 fi if [ ! -d $GLOBALDEFDIR ]; then echo "Could not find global configurations files" echo "Make sure you have installed Window Maker correctly" exit 1 fi if [ ! -d "$USERDIR" ]; then echo "Could not find user directory $USERDIR" exit 1 fi if test "x$GNUSTEP_USER_ROOT" = "x"; then cd $USERDIR GSDIR=$USERDIR/GNUstep if [ ! -d $GSDIR ]; then echo "Creating $GSDIR user directory" make_dir $GSDIR fi else GSDIR=$GNUSTEP_USER_ROOT if [ ! -d $GSDIR ]; then echo "Directory specified in GNUSTEP_USER_ROOT environment variable does not exist" exit 1 fi cd $GSDIR cd .. fi if [ ! -d "$GSDIR/.AppInfo" ]; then make_dir $GSDIR/.AppInfo fi if [ ! -d "$GSDIR/Defaults" ]; then make_dir $GSDIR/Defaults fi echo "Copying defaults database..." FILES=`(cd $GLOBALDEFDIR;ls -d *)` all="" for i in $FILES; do if [ ! -d $GLOBALDEFDIR/$i ]; then if [ -f $GSDIR/Defaults/$i -a -z "$BATCH" ]; then echo "The configuration file \"$i\" already exists in your defaults database." echo "Do you wish to replace it? <y/n/a> [n] $all" if [ "$all" != "a" ]; then read foo if [ "$foo" = "a" -o "$foo" = "A" ]; then all="a" fi fi if [ "$foo" = "y" -o "$foo" = "Y" -o "$all" = "a" ]; then copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i fi else copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i fi fi done if [ ! -d "$GSDIR/Library/Icons/" ]; then echo "Creating icon library directory $GSDIR/Library/Icons" if [ ! -d $GSDIR/Library ]; then make_dir $GSDIR/Library fi make_dir $GSDIR/Library/Icons fi if [ ! -d "$GSDIR/Library/WindowMaker/" ]; then echo "Creating WindowMaker data library directory $GSDIR/Library/WindowMaker" if [ ! -d $GSDIR/Library ]; then make_dir $GSDIR/Library fi make_dir $GSDIR/Library/WindowMaker fi if [ ! -d "$GSDIR/Library/WindowMaker/Styles" ]; then echo "Creating style library $GSDIR/Library/WindowMaker/Styles" make_dir $GSDIR/Library/WindowMaker/Styles fi if [ ! -d "$GSDIR/Library/WindowMaker/Themes" ]; then echo "Creating theme library $GSDIR/Library/WindowMaker/Themes" make_dir $GSDIR/Library/WindowMaker/Themes fi if [ ! -d "$GSDIR/Library/WindowMaker/Backgrounds" ]; then echo "Creating bg image library $GSDIR/Library/WindowMaker/Backgrounds" make_dir $GSDIR/Library/WindowMaker/Backgrounds else echo "Default Backgrounds directory already exists. Skipping..." fi if [ ! -d "$GSDIR/Library/WindowMaker/IconSets" ]; then echo "Creating icon setup library $GSDIR/Library/WindowMaker/IconSets" make_dir $GSDIR/Library/WindowMaker/IconSets else echo "Default IconSets directory already exists. Skipping..." fi if [ ! -d "$GSDIR/Library/WindowMaker/Pixmaps" ]; then echo "Creating pixmap library $GSDIR/Library/WindowMaker/Pixmaps" make_dir $GSDIR/Library/WindowMaker/Pixmaps else echo "Default Pixmaps directory already exists. Skipping..." fi if [ ! -d "$GSDIR/Library/WindowMaker/Sounds" ]; then echo "Creating sound library $GSDIR/Library/WindowMaker/Sounds" make_dir $GSDIR/Library/WindowMaker/Sounds else echo "Default Sounds directory already exists. Skipping..." fi if [ ! -d "$GSDIR/Library/WindowMaker/SoundSets" ]; then echo "Creating sound set library $GSDIR/Library/WindowMaker/SoundSets" make_dir $GSDIR/Library/WindowMaker/SoundSets else echo "Default SoundSets directory already exists. Skipping..." fi if test -z "" ; then FILES=`(cd $GLOBALDIR; ls menu menu.* plmenu plmenu.?? wmmacros)` for i in $FILES; do # xx herbert if [ -f "$GSDIR/Library/WindowMaker/$i" -a -z "$BATCH" ]; then # /xx herbert echo "The file \"$i\" already exists in $GSDIR/Library/WindowMaker" echo "Do you wish to replace it? <y/n/a> [n] $all" if [ "$all" != "a" ]; then read foo if [ "$foo" = "a" -o "$foo" = "A" ]; then all="a" fi fi if [ "$foo" = "y" -o "$foo" = "Y" -o "$foo" = "a" ]; then copy $GLOBALDIR/$i $GSDIR/Library/WindowMaker/$i fi else copy $GLOBALDIR/$i $GSDIR/Library/WindowMaker/$i fi done fi cp $GLOBALDIR/README.themes $GSDIR/Library/WindowMaker cp $GLOBALDIR/README $GSDIR/Library/WindowMaker test -f ~$GSDIR/Library/WindowMaker/autostart || \ cp $GLOBALDIR/autostart.sh $GSDIR/Library/WindowMaker/autostart chmod +rx $GSDIR/Library/WindowMaker/autostart test -f ~$GSDIR/Library/WindowMaker/exitscript || \ cp $GLOBALDIR/exitscript.sh $GSDIR/Library/WindowMaker/exitscript chmod +rx $GSDIR/Library/WindowMaker/exitscript # xx herbert if test -n "$BATCH" ; then echo "Installation Finished" exit 0 fi # /xx herbert # ####################### DATE=`date +%b%d.%T` show_end_message() { echo echo "Installation Finished" echo if test -z "" ; then echo "There are menus in 2 different file formats. The plain text format and" echo "the property list format. The plain text format is more flexible, but" echo "the menu in the property list format can be edited graphically. The" echo "menu that will be used by default is the plain text. Read" echo "$GSDIR/Library/WindowMaker/README for information on how to change it." else echo "Your copy of Window Maker is configured especially for KDE." echo "Window Maker application menus are not available." fi } #wmaker_found=0 #for xinit in .xinitrc .Xclients .xsession; do # test ! -f "$HOME/$xinit" && continue # res="`grep wmaker $HOME/$xinit`" # if test "x$res" != x; then # wmaker_found=1 # break # fi #done #if test $wmaker_found = 1; then # echo "Found Window Maker to already be your default window manager." # show_end_message # exit 0 #fi # # #trap "show_end_message;exit" 2 # #echo #echo "Now the .xinitrc, .Xclients or .xsession script must be updated so that" #echo "it calls wmaker when you start an X session." #echo "If the file already exists, it will be backed up with a .old.$DATE " #echo "extension" #echo "Using .xinitrc as a default value" # #file=.xinitrc # #if [ -f $USERDIR/$file ]; then # mv $USERDIR/$file $USERDIR/$file.old.$DATE #fi # #make_script $USERDIR/$file #show_end_message