Anleitung fuer xdm Menue mit Window-Manager Auswahlliste
Xsetup_0 / Xsetup_default
#
# $XFree86: Xsetup_0,v 1.62 2003/03/21 12:01:40 elchy Exp $
#
xhost +localhost
xset s off
#xscreensaver -no-splash -timeout 2 -cycle 0 -no-lock-mode -no-capture-stderr -nice 10 \
# -xrm "xscreensaver*programs: xlock -nolock +install +grabmouse -nice 0 -mode flag -cycles 50" &
xconsole -geometry 480x100-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
if [ $DISPLAY = ":0" ]; then
disp=local
else
disp=`echo $DISPLAY | cut -d. -f 1`
fi
XYRES=`xdpyinfo | grep dimensions | head -n1 | awk '{print $2}'`
XRES=`echo $XYRES | cut -dx -f1`
YRES=`echo $XYRES | cut -dx -f2`
case $XYRES in
1024x768)
xpmroot /etc/X11/xdm/pixmaps/daemon1024.xpm
;;
1280x1024)
xpmroot /etc/X11/xdm/pixmaps/daemon1280.xpm
;;
1600x1200)
xpmroot /etc/X11/xdm/pixmaps/daemon1600.xpm
;;
*)
xsetroot -solid SteelBlue
;;
esac
( echo "Choose your favorite Window Manager by pressing"
echo " <F1>: none (xterm)"
echo " <F2>: twm"
echo " <F3>: fvwm"
echo " <F4>: fvwm95"
echo " <F5>: windowmaker"
echo " <F6>: xfce"
echo " <F12>: shutdown-menu"
echo "instead of <Return> after typing your Password."
echo "Pressing <Return> will select your last choice,"
echo "which is saved in ~/.wmrc. Default is \"fvwm95\"." ) | \
xmessage -file - -buttons "" -bg "#c0c0c0" -fg "#181871" -fn 7x13bold -bordercolor "#181871" \
-geometry +$(expr $(expr $XRES / 2) - 172)+$(expr $(expr $YRES / 2) + 100) &
echo $! > /var/run/xmessage-$disp.pidHier wird Der Hintergrund anhand der Aufloesung gesetzt. Ausserdem wird ein "Menue" mit xmessage ausgegeben.
In der Xressources wir die entsprechende Variable zur Funktionstaste gesetzt
! $XFree86: Xresources,v 1.74 2003/11/17 17:27:13 elchy Exp
xlogin*login.translations: #override \
Ctrl<Key>R: abort-display()\n\
<Key>F1: set-session-argument(xterm) finish-field()\n\
<Key>F2: set-session-argument(twm) finish-field()\n\
<Key>F3: set-session-argument(fvwm) finish-field()\n\
<Key>F4: set-session-argument(fvwm95) finish-field()\n\
<Key>F5: set-session-argument(windowmaker) finish-field()\n\
<Key>F6: set-session-argument(xfce) finish-field()\n\
<Key>F12: set-session-argument(shutdown-menu) finish-field()\n\
Ctrl<Key>Return: set-session-argument(xterm) finish-field()\n\
<Key>Return: set-session-argument(default) finish-field()
xlogin*greeting: boron.inotronic.de
xlogin*namePrompt: \040\040\040\040\040\040\040Login:
xlogin*fail: Login incorrect
#if WIDTH > 800
xlogin*greetFont: -adobe-helvetica-bold-r-normal--34-240-100-100-p-182-iso8859-1
xlogin*font: -adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1
xlogin*promptFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-98-iso8859-1
xlogin*failFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-98-iso8859-1
#else
xlogin*greetFont: -adobe-helvetica-bold-o-normal--17-120-100-100-p-92-iso8859-1
xlogin*font: -adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1
xlogin*promptFont: -adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1
xlogin*failFont: -adobe-helvetica-bold-o-normal--14-140-75-75-p-82-iso8859-1
#endif
#ifdef COLOR
xlogin*borderWidth: 1
xlogin*frameWidth: 5
xlogin*innerFramesWidth: 2
xlogin*shdColor: #181871
xlogin*hiColor: #e0e9f2
xlogin*background: #c0c0c0
!xlogin*foreground: darkgreen
xlogin*greetColor: #181871
xlogin*promptColor: #181871
xlogin*borderColor: #181871
xlogin*failColor: red
*Foreground: #b22020
*Background: #fffff0
#else
xlogin*borderWidth: 3
xlogin*frameWidth: 0
xlogin*innerFramesWidth: 1
xlogin*shdColor: black
xlogin*hiColor: black
#endif
#if PLANES >= 8
xlogin*logoFileName: /etc/X11/xdm/pixmaps/FreeBSD-inotronic.xpm
#else
xlogin*logoFileName: /etc/X11/xdm/pixmaps/XFree86bw.xpm
#endif
xlogin*useShape: true
xlogin*logoPadding: 10
XConsole.text.geometry: 480x100
XConsole.verbose: true
XConsole*iconic: true
XConsole*font: fixed
XConsole*Foreground: black
XConsole*Background: #bebebe
Chooser*geometry: 700x500+300+200
Chooser*allowShellResize: false
Chooser*viewport.forceBars: true
Chooser*label.font: *-new century schoolbook-bold-i-normal-*-240-*
Chooser*label.label: XDMCP Host Menu from CLIENTHOST
Chooser*list.font: -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1
Chooser*Command.font: *-new century schoolbook-bold-r-normal-*-180-*
Xmessage*message.scrollVertical: Never
Xmessage*message.ancestorSensitive: False
Xmessage*message.cursorName: left_ptr
Xmessage*message.pointerColor: blackXstartup_0/Xstartup_default
#
# $XFree86: Xstartup_0,v 1.60 2002/10/14 19:44:04 elchy Exp $
#
# Assign ownership of the console to the invoking user
#
# By convention, both xconsole and xterm -C check that the
# console is owned by the invoking user and is readable before attaching
# the console output. This way a random user can invoke xterm -C without
# causing serious grief.
#
# determine the display name and kill startup xmessage
#
if [ $DISPLAY = ":0" ]; then
disp=local
else
disp=`echo $DISPLAY | cut -d. -f 1`
fi
kill `cat /var/run/xmessage-$disp.pid` && \
rm /var/run/xmessage-$disp.pid
chown $USER /dev/console
#xscreensaver-command -exit
xhost -localhost
# allow root to access any user's display
#
if [ ! "${USER}" = "root" ]; then
ln -fs ${HOME}/.Xauthority /root/.Xauthority
fiXsession
#
# $XFree86: Xsession,v 1.81 2003/11/28 21:38:47 elchy Exp $
# redirect errors to a file in user's home directory if we can
for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER"
do
if ( cp /dev/null "$errfile" 2> /dev/null )
then
chmod 600 "$errfile"
exec > "$errfile" 2>&1
break
fi
done
# common settings
#
xset s off
xset m 4 2
xmodmap -e "keysym e = e E currency"
case $# in
1)
# determine the display name
#
if [ $DISPLAY = ":0" ]; then
disp=local
else
disp=`echo $DISPLAY | cut -d. -f 1`
fi
# define resolution values
#
XYRES=`xdpyinfo | grep dimensions | head -n1 | awk '{print $2}'`; export XYRES
XRES=`echo $XYRES | cut -dx -f1`; export XRES
YRES=`echo $XYRES | cut -dx -f2`; export YRES
# read ~/.wmrc or set default window manager
#
if [ "X`cat $HOME/.wmrc`" != "X" ]; then
wmrc=`cat $HOME/.wmrc`
else
wmrc=fvwm95
WM=fvwm95
echo $WM > $HOME/.wmrc
fi
# determine user's favorite window manager
# ($wm is referenced in xsession scripts)
# or call shutdown-menu
#
case $1 in
xterm)
exec xterm -geom 80x24-0-0
;;
twm)
wm=/usr/X11R6/bin/twm
WM=twm
echo $WM > $HOME/.wmrc
;;
fvwm)
wm=/usr/X11R6/bin/fvwm
WM=fvwm
echo $WM > $HOME/.wmrc
;;
fvwm95)
wm=/usr/X11R6/bin/fvwm95
WM=fvwm95
echo $WM > $HOME/.wmrc
;;
windowmaker)
wm=/usr/X11R6/bin/wmaker
WM=windowmaker
echo $WM > $HOME/.wmrc
;;
xfce)
wm=/usr/X11R6/bin/xfce4-panel
WM=xfce
echo $WM > $HOME/.wmrc
;;
shutdown-menu)
xsetroot -cursor_name left_ptr
if [ $disp != "local" ]; then
xmessage -buttons Okay -timeout 10 -bg "#c0c0c0" -fg "#181871" -fn 7x13bold -bordercolor "#181871" \
-center -xrm "*message.scrollVertical:Never" -xrm "*message.borderWidth:0" \
"Shutdown-menu is only available on local displays!"
xmessage -buttons "" -timeout 1 -bg "#c0c0c0" -fg "#181871" -fn 7x13bold -bordercolor "#181871" \
-center -xrm "*message.scrollVertical:Never" -xrm "*message.borderWidth:0" \
"Terminating session..."
exit 1
fi
xmessage -buttons "Halt system:0,Restart system:1,Quit X11:2,Cancel:3" \
-bg "#c0c0c0" -fg "#181871" -fn 7x13bold -bordercolor "#181871" -center \
-xrm "*message.scrollVertical:Never" -xrm "*message.borderWidth:0" \
"<F12> chosen: What do you want exactly?"
xmanswer=$?
case $xmanswer in
0)
xmessage -buttons "" -bg "#c0c0c0" -fg "#181871" -fn 7x13bold -bordercolor "#181871" \
-center -xrm "*message.scrollVertical:Never" -xrm "*message.borderWidth:0" \
"Halt system..." &
sleep 1
sudo shutdown -h now "Halt system chosen from xdm F12 menu"
;;
1)
xmessage -buttons "" -bg "#c0c0c0" -fg "#181871" -fn 7x13bold -bordercolor "#181871" \
-center -xrm "*message.scrollVertical:Never" -xrm "*message.borderWidth:0" \
"Restarting system..." &
sleep 1
sudo shutdown -r now "Restart system chosen from xdm F12 menu"
;;
2)
xmessage -buttons "" -bg "#c0c0c0" -fg "#181871" -fn 7x13bold -bordercolor "#181871" \
-center -xrm "*message.scrollVertical:Never" -xrm "*message.borderWidth:0" \
"Terminating X11..." &
sleep 1
sudo kill `cat /var/run/xdm.pid`
;;
3)
xmessage -buttons "" -bg "#c0c0c0" -fg "#181871" -fn 7x13bold -bordercolor "#181871" \
-center -xrm "*message.scrollVertical:Never" -xrm "*message.borderWidth:0" \
"Restarting Xserver..." &
sleep 1
;;
esac
exit 1
;;
default)
case $wmrc in
twm)
wm=/usr/X11R6/bin/twm
WM=twm
;;
fvwm)
wm=/usr/X11R6/bin/fvwm
WM=fvwm
;;
fvwm95)
wm=/usr/X11R6/bin/fvwm95
WM=fvwm95
;;
windowmaker)
wm=/usr/X11R6/bin/wmaker
WM=windowmaker
;;
xfce)
wm=/usr/X11R6/bin/xfce4-panel
WM=xfce
;;
esac
;;
esac
# for local displays try to load
# ~/.Xdefaults.<WM>
# ~/.Xdefaults
# /etc/X11/xdm/session-defaults/Xdefaults.<WM>
# /etc/X11/xdm/session-defaults/Xdefaults
# and then source
# ~/.xsession.<WM>
# ~/.xsession
# /etc/X11/xdm/session-defaults/xsession.<WM>
# /etc/X11/xdm/session-defaults/xsession
# in the above order.
#
deflt=/etc/X11/xdm/session-defaults
case $disp in
local)
if [ -f $HOME/.Xdefaults.$WM ]; then
xrdb -load $HOME/.Xdefaults.$WM
elif [ -f $HOME/.Xdefaults ]; then
xrdb -load $HOME/.Xdefaults
elif [ -f $deflt/Xdefaults.$WM ]; then
xrdb -load $deflt/Xdefaults.$WM
else
xrdb -load $deflt/Xdefaults
fi
if [ -f $HOME/.xsession.$WM ]; then
. $HOME/.xsession.$WM
elif [ -f $HOME/.xsession ]; then
. $HOME/.xsession
elif [ -f $deflt/xsession.$WM ]; then
. $deflt/xsession.$WM
else
. $deflt/xsession
fi
xset dpms 1800 0 0
;;
# for all other displays try to load
# ~/.Xdefaults.<hostname>.<wm>
# ~/.Xdefaults.<wm>
# ~/.Xdefaults
# /etc/X11/xdm/session-defaults/Xdefaults.<wm>
# /etc/X11/xdm/session-defaults/Xdefaults
# and then source
# ~/.xsession.<hostname>.<wm>
# ~/.xsession.<wm>
# ~/.xsession
# /etc/X11/xdm/session-defaults/xsession.<wm>
# /etc/X11/xdm/session-defaults/xsession
# in the above order.
#
*)
if [ -f $HOME/.Xdefaults.$disp.$WM ]; then
xrdb -load $HOME/.Xdefaults.$disp.$WM
elif [ -f $HOME/.Xdefaults.$WM ]; then
xrdb -load $HOME/.Xdefaults.$WM
elif [ -f $HOME/.Xdefaults ]; then
xrdb -load $HOME/.Xdefaults
elif [ -f $deflt/Xdefaults.$WM ]; then
xrdb -load $deflt/Xdefaults.$WM
else
xrdb -load $deflt/Xdefaults
fi
if [ -f $HOME/.xsession.$disp.$WM ]; then
. $HOME/.xsession.$disp.$WM
elif [ -f $HOME/.xsession.$WM ]; then
. $HOME/.xsession.$WM
elif [ -f $HOME/.xsession ]; then
. $HOME/.xsession
elif [ -f $deflt/xsession.$WM ]; then
. $deflt/xsession.$WM
else
. $deflt/xsession
fi
;;
esac
# we shouldn't get here because xsession scripts
# shoud have exec'd the window manager
#
( echo "Sorry, selected window manager isn't installed yet,"
echo "or \"exec \$wm\" is missing at the bottom of your"
echo "personal ~/.xsession startup script." ) | \
xmessage -file - -buttons shit -center -timeout 20 -bg "#c0c0c0" -fg "#181871" \
-xrm "*message.scrollVertical:Never" -xrm "*message.borderWidth:0" &
exec xterm -geometry 100x30-0-0
esacVielen Dank an Elchy fuer die config.