Multiple window managers with KDM...
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, <werner@suse.de> # # # 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
participants (1)
-
Ondra Hosek