Bugzilla – Bug 158480
kdm/gdm session menu doesn't work, only default window manager loads
Last modified: 2006-03-27 16:31:20 UTC
The graphical login session manager doesn't work in either kdm or gdm. Regardless of what window manager is selected, only the window manager configured as the default in sysconfig comes up. This is happening on multiple machines where we've installed SuSE 10.0, and for multiple users. I've tried removing all ~/.??* files/dirs and it still happens.
Please be more verbosive. So this means if you change the default wm in your sysconfig, you can start this wm? How did you perform your installation, was this an update?
This has happened on every machine I've installed 10.0 on, about 5-6 machines, all fresh installations (not updates) onto boxes that were previously running 9.2 or 9.3. I usually choose KDE during installation, but this happens if I choose Gnome also. In either case I select all of the other desktop in the software selection portion of the installation. All users are validated via NIS and have a single home directory automounted on all machines. Regardless of the user's default desktop or the desktop selected in the login menu, only the desktop set as DEFAULT_WM in sysconfig comes up. I think I was able to get into one of the failsafe window managers, but none of the other menu settings work. I tried at least KDE, Gnome, and Windowmaker as DEFAULT_WM, and kdm, gdm, and xdm as DISPLAYMANAGER, and the behavior is the same.
> All users are validated via NIS and have a single home directory > automounted on all machines. This might be the reason. Please try if this also happens with a local user.
I got a chance to try a local user today. I created a local user with an empty home directory, and still had the same problem. With the local user, gdm displays a warning that ~/.dmrc doesn't have the right permissions/ownership. ~/.dmrc didn't exist, but even after I created it and gave it the permissions requested in the warning message, I still got the warning (and I still couldn't start any window manager other than the default). I also tried logging in as root, and root was able to select a different window manager. So it appears to be some sort of permission problem.
So this happens with both kdm and xdm on your system? For a locat user you need to copy the /etc/skel directory to the new user directory and change the permissions accordingly.
It happens for gdm, kdm, and xdm (see comment #2). Copying over the /etc/skel files to the local account doesn't make a difference.
Please attach your /var/log/kdm.log and /etc/sysconfig/windowmanager here.
Created attachment 74800 [details] KDM log
Created attachment 74802 [details] /var/log/gdm/:0.log.4
Created attachment 74803 [details] /etc/sysconfig/windowmanager
Adding several people into CC. Hopefully someone can provide a clue here.
my guess: you have a ~/.xinitrc or ~/.xsession
I've tried a local account with an empty home directory, one with a copy of /etc/skel as home dir, and an NIS account with all ~/.??* files moved out of ~ (see previous comments). The window manager that gets loaded is whatever is set as DEFAULT_WM in all cases (except when logging in as root, that works).
Werner might have an idea what to look for.
This is fixed in 10.1 or openSuSE, from the changelog of aaa_base: * Wed Nov 09 2005 - werner@suse.de - Do not overwrite the user's choise of WINDOWMANAGER simply by replacing within /etc/profile.d/profile.sh the lines test -z "$DEFAULT_WM" && DEFAULT_WM=twm SAVEPATH=$PATH PATH=$PATH:/usr/X11R6/bin:/opt/gnome/bin:/usr/openwin/bin WINDOWMANAGER="`type -p ${DEFAULT_WM##*/}`" PATH=$SAVEPATH export WINDOWMANAGER unset DEFAULT_WM SAVEPATH with if test -n "$DEFAULT_WM" -a -z "$WINDOWMANAGER" ; then SAVEPATH=$PATH PATH=$PATH:/usr/X11R6/bin:/opt/gnome/bin:/usr/openwin/bin WINDOWMANAGER="`type -p ${DEFAULT_WM##*/}`" PATH=$SAVEPATH export WINDOWMANAGER unset SAVEPATH fi unset DEFAULT_WM and within /etc/profile.d/profile.csh the lines #if (! ${?default_wm} ) set default_wm=twm if ( ${%default_wm} == 0 ) set default_wm=twm set default_wm=${default_wm:t} # Do not use the `which' builtin nor set path to avoid a rehash # foreach val ($path /usr/X11R6/bin /opt/gnome/bin /usr/openwin/bin) if ( ${val:q} =~ *.* ) continue set val=${val:q}/${default_wm:q} if ( ! -x ${val:q} ) continue setenv WINDOWMANAGER ${val:q} break end unset val default_wm with # # Do not use the `which' builtin nor set path to avoid a rehash # if (! ${?default_wm} ) set default_wm if ( ${%default_wm} > 0 && ! ${?WINDOWMANAGER} ) then set default_wm=${default_wm:t} foreach val ($path /usr/X11R6/bin /opt/gnome/bin /usr/openwin/bin) if ( ${val:q} =~ *.* ) continue set val=${val:q}/${default_wm:q} if ( ! -x ${val:q} ) continue setenv WINDOWMANAGER ${val:q} break end unset val endif unset default_wm