summaryrefslogtreecommitdiff
path: root/source/x/x11-skel/scripts/xwmconfig
diff options
context:
space:
mode:
Diffstat (limited to 'source/x/x11-skel/scripts/xwmconfig')
-rw-r--r--source/x/x11-skel/scripts/xwmconfig224
1 files changed, 224 insertions, 0 deletions
diff --git a/source/x/x11-skel/scripts/xwmconfig b/source/x/x11-skel/scripts/xwmconfig
new file mode 100644
index 00000000..944207bf
--- /dev/null
+++ b/source/x/x11-skel/scripts/xwmconfig
@@ -0,0 +1,224 @@
+#!/bin/sh
+# Copyright 1999, 2002 Patrick Volkerding, Moorhead, Minnesota USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# First, let's bail if our being here doesn't make sense:
+if [ ! -d /etc/X11/xinit ]; then
+ exit
+fi
+if [ "`cd /etc/X11/xinit ; echo *.*`" = '*.*' ]; then
+ exit
+fi
+
+if [ "$USER" = "root" ]; then
+ TMP=/var/log/setup/tmp
+else
+ TMP=$HOME/.xwmconfig
+fi
+
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+ chmod 700 $TMP
+fi
+
+# Do we already have an existing default?
+unset PRESELECT
+if [ -L /etc/X11/xinit/xinitrc ]; then
+ CURRENT="`/bin/ls -l /etc/X11/xinit/xinitrc | cut -f 2 -d '>' | cut -b2-`"
+ PRESELECT=" --default-item $CURRENT "
+fi
+
+# Figure out who we are and set up some background information:
+if [ "$USER" = "root" ]; then
+ BACKTITLE="--backtitle \"Setting system-wide default window manager in /etc/X11/xinit/\""
+else
+ BACKTITLE="--backtitle \"Setting default window manager in $HOME/.xinitrc\""
+fi
+
+# This stops --backtitle from cluttering the initial install:
+if [ ! -r /proc/kcore ]; then
+ BACKTITLE=""
+fi
+
+# Remove any previous script:
+rm -f $TMP/tmpscript.sh
+
+# Add the top of the script:
+if [ -r /etc/X11/xinit/xinitrc.gnome -a -r /etc/X11/xinit/xinitrc.kde ]; then
+cat << EOF > $TMP/tmpscript.sh
+#!/bin/sh
+dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR X" $PRESELECT --menu \\
+"Please select the default window manager to use with the X Window \\
+System. This will define the style of graphical user interface \\
+the computer uses. KDE and GNOME provide the most features. People \\
+with Windows or MacOS experience will find either one easy to use. \\
+Other window managers are easier on system \\
+resources, or provide other unique features." 12 74 0 \\
+EOF
+elif [ -r /etc/X11/xinit/xinitrc.kde ]; then
+cat << EOF > $TMP/tmpscript.sh
+#!/bin/sh
+dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR X" $PRESELECT --menu \\
+"Please select the default window manager to use with the X Window \\
+System. This will define the style of graphical user interface \\
+the computer uses. KDE provides the most features, and people \\
+with Windows or MacOS experience will find it easy to use. \\
+Other window managers are easier on system \\
+resources, or provide other unique features." 12 74 0 \\
+EOF
+elif [ -r /etc/X11/xinit/xinitrc.xfce ]; then
+cat << EOF > $TMP/tmpscript.sh
+#!/bin/sh
+dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR X" $PRESELECT --menu \\
+"Please select the default window manager to use with the X Window \\
+System. This will define the style of graphical user interface \\
+the computer uses. XFce provides the most features, and people \\
+with Windows or MacOS experience will find it easy to use. \\
+Other window managers are easier on system \\
+resources, or provide other unique features." 12 74 0 \\
+EOF
+else
+cat << EOF > $TMP/tmpscript.sh
+dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR X" $PRESELECT --menu \\
+"Please select the default window manager to use with the X Window \\
+System. This will define the style of graphical user interface \\
+the computer uses." 12 74 0 \\
+EOF
+fi
+
+# Add KDE as the first and default entry:
+if [ -r /etc/X11/xinit/xinitrc.kde ]; then
+ echo "\"xinitrc.kde\" \"KDE: K Desktop Environment\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Then, we add GNOME:
+if [ -r /etc/X11/xinit/xinitrc.gnome ]; then
+ echo "\"xinitrc.gnome\" \"GNU Network Object Model Environment\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add XFce:
+if [ -r /etc/X11/xinit/xinitrc.xfce ]; then
+ echo "\"xinitrc.xfce\" \"The Cholesterol Free Desktop Environment\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add Enlightenment:
+if [ -r /etc/X11/xinit/xinitrc.e ]; then
+ echo "\"xinitrc.e\" \"Enlightenment\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add Fluxbox:
+if [ -r /etc/X11/xinit/xinitrc.fluxbox ]; then
+ echo "\"xinitrc.fluxbox\" \"The fluxbox window manager\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add Blackbox:
+if [ -r /etc/X11/xinit/xinitrc.blackbox ]; then
+ echo "\"xinitrc.blackbox\" \"The blackbox window manager\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add WindowMaker:
+if [ -r /etc/X11/xinit/xinitrc.wmaker ]; then
+ echo "\"xinitrc.wmaker\" \"WindowMaker\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add FVWM2:
+if [ -r /etc/X11/xinit/xinitrc.fvwm2 ]; then
+ echo "\"xinitrc.fvwm2\" \"F(?) Virtual Window Manager (version 2.xx)\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add FVWM95:
+if [ -r /etc/X11/xinit/xinitrc.fvwm95 ]; then
+ echo "\"xinitrc.fvwm95\" \"FVWM2 with a Windows look and feel\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add icewm:
+if [ -r /etc/X11/xinit/xinitrc.icewm ]; then
+ echo "\"xinitrc.icewm\" \"ICE Window Manager\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add sawfish:
+if [ -r /etc/X11/xinit/xinitrc.sawfish ]; then
+ echo "\"xinitrc.sawfish\" \"Sawfish without GNOME\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add twm:
+if [ -r /etc/X11/xinit/xinitrc.twm ]; then
+ echo "\"xinitrc.twm\" \"Tab Window Manager (very basic)\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add mwm:
+if [ -r /etc/X11/xinit/xinitrc.mwm ]; then
+ echo "\"xinitrc.mwm\" \"Motif WM\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Now, add support for the other window managers:
+( cd /etc/X11/xinit
+ for file in xinitrc.* ; do
+ if [ ! "$file" = "xinitrc.kde" -a ! "$file" = "xinitrc.gnome" \
+ -a ! "$file" = "xinitrc.e" -a ! "$file" = "xinitrc.wmaker" \
+ -a ! "$file" = "xinitrc.fvwm2" -a ! "$file" = "xinitrc.fvwm95" \
+ -a ! "$file" = "xinitrc.icewm" -a ! "$file" = "xinitrc.twm" \
+ -a ! "$file" = "xinitrc.mwm" -a ! "$file" = "xinitrc.xfce" \
+ -a ! "$file" = "xinitrc.blackbox" -a ! "$file" = "xinitrc.fluxbox" \
+ -a ! "$file" = "xinitrc.sawfish" ]; then
+ echo "\"$file\" \"$file\" \\" >> $TMP/tmpscript.sh
+ fi
+ done
+)
+
+# Then, the tail end:
+cat << EOF >> $TMP/tmpscript.sh
+2> $TMP/output
+if [ ! \$? = 0 ]; then
+ rm -f $TMP/output
+ echo "Canceled."
+ exit
+fi
+EOF
+
+sh $TMP/tmpscript.sh
+
+if [ ! -r $TMP/output ]; then
+ rm -f $TMP/tmpscript.sh
+ exit
+fi
+
+OUTPUT=`cat $TMP/output`
+
+# If xwmconfig is run by root, it changes the system-wide default for users
+# that do not have a $HOME/.xinitrc:
+if [ "$USER" = "root" ]; then
+ if [ -r /etc/X11/xinit/$OUTPUT ]; then
+ ( cd /etc/X11/xinit ; rm -f xinitrc ; ln -sf $OUTPUT xinitrc )
+ fi
+fi
+
+# Also set up a new $HOME/.xinitrc:
+if [ -r /etc/X11/xinit/$OUTPUT -a ! "$HOME" = "/" ]; then
+ if [ -r $HOME/.xinitrc ]; then
+ rm -f $HOME/.xinitrc-backup
+ mv $HOME/.xinitrc $HOME/.xinitrc-backup
+ fi
+ cat /etc/X11/xinit/$OUTPUT > $HOME/.xinitrc
+fi
+
+rm -f $TMP/tmpscript.sh $TMP/output
+