I decided to install Tumbleweed after some years with Debian, and I saw that GDM, KDM, and SDDM couldn’t start GNOME and KDE. It took me a while to find the reason; it’s quite strange, and I thought it would be a good idea to post here.
Display managers take information about the available sessions from a list of *.desktop files in the directory /usr/share/xsessions. This, for example, is the gnome.desktop file:
[Desktop Entry]
X-SuSE-translate=true
Encoding=UTF-8
Type=XSession
Exec=gnome
TryExec=gnome
Name=GNOME
DesktopNames=GNOME
Comment=The GNU Network Object Model Environment. A complete, free and easy-to-use desktop environment
This doesn’t work. This, on the other side, works:
[Desktop Entry]
X-SuSE-translate=true
Encoding=UTF-8
Type=XSession
Exec=/usr/bin/gnome
TryExec=/usr/bin/gnome
Name=GNOME
DesktopNames=GNOME
Comment=The GNU Network Object Model Environment. A complete, free and easy-to-use desktop environment
So it seems that the display managers don’t see files in /usr/bin. Very confusing.
Any idea?
Yes, that’s strange indeed.
It works fine here and probably on most other users’ systems… 
How did you install? Did you format the root partition?
How did you switch display managers?
Did you keep your home directory?
There might be some user-specific startup script that deletes the PATH or something like this.
IOW, try a fresh user account.
Did you mess with the shell startup files ("/etc/bash.bashrc", “/etc/profile” and similar)?
I’m guessing that $PATH is wrongly set at X startup.
That was the intention, yes. Actually I format all the partitions I use: root, boot, EFI
Yast and edit of /etc/sysconfig/displaymanagers
no, wiped out by the format of root
starting from .xsession (via XDM or KDM custom session) is actually the only thing that seems to work correctly. My user account should be fine. The impression is that it really is in the display manager
definitely not.
yes, that’s my feeling, but I wouldn’t know how. I’ll see if I can investigate it further. It’s getting a bit tough though.
Thanks for the answers
Very annoyingly it seems to work now, and I don’t know why. I must have done something stupid somewhere.