I have SuSE Linux Personal 9.1 and am running KDE. I wanted to try
some other window manager recently, but the damned configuration somehow
only loads KDE. What do I have to edit in these files to be able to
switch window manager sessions at login using KDM?
Copies of the files:
kdmrc:
[General]
AuthDir=/var/lib/xdm/authdir/authfiles/
ConfigVersion=2.0
PidFile=/var/run/kdm.pid
Xservers=/etc/X11/xdm/Xservers
[Shutdown]
HaltCmd=/sbin/halt
LiloCmd=/sbin/lilo
LiloMap=/boot/map
RebootCmd=/sbin/reboot
UseLilo=false
[X-*-Core]
AllowNullPasswd=true
AllowRootLogin=true
AllowShutdown=Root
AuthNames=XDM-AUTHORIZATION-1,MIT-MAGIC-COOKIE-1
AutoReLogin=false
HideMenu=true
Reset=/etc/X11/xdm/Xreset
Resources=/etc/X11/xdm/Xresources
Session=/etc/X11/xdm/Xsession
Setup=/etc/X11/xdm/Xsetup
Startup=/etc/X11/xdm/Xstartup
TerminateServer=true
[X-*-Greeter]
AdminSession=YaSTadminSession
AntiAliasing=true
BackgroundCfg=/etc/opt/kde3/share/config/kdm/backgroundrc
ColorScheme=SuSE
DefaultUser=timby
EchoMode=OneStar
FaceSource=AdminOnly
FailFont=SUSE Sans,12,-1,5,74,0,0,0,0,0
FocusPasswd=false
GUIStyle=
GreetFont=SUSE Sans,17,-1,5,48,0,0,0,0,0
GreetString=Welcome to %h.
GreeterPosFixed=false
GreeterPosX=100
GreeterPosY=100
HiddenUsers=root,nobody,bigsister,gguru
Language=en_US
LogoArea=Clock
LogoPixmap=
MaxShowUID=65000
MinShowUID=500
PreselectUser=None
SelectedUsers=
SessionTypes=default,kde,failsafe
ShowUsers=NotHidden
SortUsers=true
StdFont=SUSE Sans,12,-1,5,48,0,0,0,0,0
UseBackground=true
[X-:*-Core]
AllowNullPasswd=true
AllowRootLogin=true
AllowShutdown=All
NoPassEnable=false
NoPassUsers=
[X-:*-Greeter]
AdminSession=YaSTadminSession
HideMenu=true
[X-:0-Core]
AutoLoginEnable=false
AutoLoginUser=timby
NoPassEnable=false
NoPassUsers=
[X-:0-Greeter]
AdminSession=
LogSource=/dev/xconsole
[Xdmcp]
Enable=false
Willing=/etc/X11/xdm/Xwilling
Xaccess=/etc/X11/xdm/Xaccess
-----------------------------------------------------
XSession:
#!/bin/sh
#
# Xsession: Setup the xsession and start the xsession
# script of the user.
#
# Copyright (c) 1998-2000 SuSE GmbH Nuernberg, Germany.
# please report bugfixes or comments at http://www.suse.de/feedback.
#
# Author: Werner Fink,
#
#
# What we do if we are signaled or do not leave this
# script with an appropriate exec call.
#
: ${failsafe="xterm -ls -T Failsafe -geometry 80x24+0+0"}
readonly failsafe
trap "exec $failsafe" EXIT SIGHUP SIGINT SIGPIPE SIGTERM SIGIO
#
# Save our arguments, maybe some of users call
# `set' in their profile files.
#
argv="$@"
#
# Handle the NoChange option of wdm
#
/sbin/pidof -s wdm > /dev/null 2>&1
if test $? -eq 0; then
if test -z "$argv"; then
if test -s $HOME/.wmrc; then
argv=$(<$HOME/.wmrc) #use wm from previous session
fi
else
echo "$argv" > $HOME/.wmrc #save wm
fi
fi
readonly argv
#
# Disable graphical login if normal login is disabled
#
login=false
while read sh; do
if test "$sh" = "$SHELL"; then
login=true
break
fi
done < /etc/shells
if test "$login" != "true" -o "$SHELL" = "/bin/false"; then
trap "exec xmessage -timeout 10 -button okay:1 -center \
\"${0##*/}: Login for $USER is disabled.\"" \
EXIT SIGHUP SIGINT SIGPIPE SIGTERM SIGIO
exit 1
fi
unset sh login
#
# Some bash (1 and 2) settings to avoid trouble with
# personal profile or bashrc files and failed exec calls.
#
test -n "$BASH" && set +o posix
no_exit_on_failed_exec=1
type shopt &> /dev/null && shopt -s execfail
set +e &> /dev/null
#
# Redirect errors to the standard user log files.
#
: ${TMPDIR=/tmp}
for errfile in "$HOME/.xsession-errors" \
"$TMPDIR/xses-$USER" \
"/tmp/xses-$USER"
do
#
# Avoid bad symbolic links
#
case "$errfile" in
/tmp/*|$TMPDIR/*) rm -f $errfile;;
esac
if (rm -f -- "$errfile" && /bin/mktemp "$errfile") 2> /dev/null; then
exec > "$errfile" 2>&1
break
fi
done
#
# Danger: What will the user do with some of the used variables?
# I do not like that ... but even if we source user's files
# we want to find our files and use correct variables.
#
__HOME="$HOME" # Users HOME determined by xdm
__DISPLAY="$DISPLAY" # The DISPLAY set by xdm for this session
__XAUTHORITY="$XAUTHORITY" # Should be empty in the most cases
readonly __HOME __DISPLAY __XAUTHORITY
#
# Read the default system settings.
#
test -r /etc/profile && { . /etc/profile > /dev/null 2>&1; }
set +u > /dev/null 2>&1
#
# Some system defaults
#
: ${XLIBDIR=/usr/X11R6/lib/X11}
: ${OPENWINHOME=/usr/openwin}
readonly XLIBDIR
#
# the users ~/.profile
#
test -r ${HOME}/.profile && { . ${HOME}/.profile > /dev/null 2>&1; }
set +u > /dev/null 2>&1
#
# Restore
#
HOME="$__HOME"
DISPLAY="$__DISPLAY"
XAUTHORITY="$__XAUTHORITY"
TERM=xterm
#
export OPENWINHOME TERM DISPLAY HOME
test -z "$XAUTHORITY" && unset XAUTHORITY || export XAUTHORITY
#
# Check path (paranoid)
#
type -p xdm > /dev/null 2>&1 || PATH=$PATH:/usr/X11R6/bin
#
# Handle arguments given by xdm.
#
set -- $argv
if test $# -ge 1; then
case "$1" in
failsafe)
shift
exec $failsafe
;;
*)
#
# KDM may overwrites this
#
WINDOWMANAGER=$1; export WINDOWMANAGER
if test $# -ge 2 && test -n "$2"; then
LANG=$2; export LANG
fi
shift $#
;;
esac
fi
#
# Some common user and system files,
# do not use `: ${xx=yy}' here.
#
xdefaults=$HOME/.Xdefaults
xresources=$HOME/.Xresources
xmodmap=$HOME/.Xmodmap
session=$HOME/.xsession
xinitrc=$HOME/.xinitrc
openwin=$OPENWINHOME/bin/openwin
errinit=$XLIBDIR/xinit/xinitrc
errsess=$XLIBDIR/xdm/sys.xsession
# errsess=/opt/kde3/share/config/kdm/Xsession
#
# Handle the users Xmodmap and Xresources
#
test -r "$xmodmap" && xmodmap "$xmodmap"
if test -r "$xdefaults" ; then
if test -r "$XLIBDIR/Xresources"; then
xrdb -load -retain "$XLIBDIR/Xresources"
xrdb -I$HOME -merge "$xdefaults"
else
xrdb -I$HOME -load -retain "$xdefaults"
fi
test -r "$xresources" && xrdb -I$HOME -merge "$xresources"
elif test -r "$xresources"; then
if test -r "$XLIBDIR/Xresources"; then
xrdb -load -retain "$XLIBDIR/Xresources"
xrdb -I$HOME -merge "$xresources"
else
xrdb -I$HOME -load -retain "$xresources"
fi
elif test -r "$XLIBDIR/Xresources"; then
xrdb -load -retain "$XLIBDIR/Xresources"
fi
# User session
# If the user doesn't have their own xsession, then run
# xinitrc if they exist
readonly XSESSION_IS_UP=yes
export XSESSION_IS_UP
if test -f $session; then
test -x $session && exec $session
exec /bin/sh $session
elif test -f $xinitrc; then
test -x $xinitrc && exec $xinitrc
exec /bin/sh $xinitrc
elif test -f $errsess; then
test -x $errsess && exec $errsess
exec /bin/sh $errsess $WINDOWMANAGER
elif test -f $errinit; then
test -x $errinit && exec $errinit
exec /bin/sh $errinit
elif test -f $openwin; then
test -x $openwin && exec $openwin
exec /bin/sh $openwin
else
test -n "$WINDOWMANAGER" && exec $WINDOWMANAGER
fi
#
# Call failsafe
#
exit 1
What do I have to edit to make things work? Is there some other file I
should post?
Thx in advance,
--WT