Bugzilla – Bug 158283
Gnome fails to work properly with 'tcsh' as default shell
Last modified: 2006-04-03 12:48:23 UTC
I'm using 'gdm' as login manager. After having done "chsh" to '/bin/tcsh' (and logging in again), gnome is not working properly any more. (Already in SuSE 10.0, I noticed that - with tcsh as login shell - session couldn't be really selected: though "windowmaker","kde" or "fvwm" was chosen, always "gnome" came up. Probably wrong variable settings?) Symptoms are at least missing menus and icons. For instance, the gnome-terminal is not accessible via menu.
Could you attach your ~/.xsession-errors?
Created attachment 73819 [details] '.xsession-errors' file with tcsh as login shell Additional info: German language setting is lost when using tcsh
Created attachment 73820 [details] Screenshot after tcsh-login This is what my screen looks like after logging in with tcsh (in gdm)
Created attachment 73821 [details] screen with bash as default shell This is what my screen looks alike when switching (back) to bash.
*** Bug 160459 has been marked as a duplicate of this bug. ***
Stanislav, I think this might because the gnome session script is exporting several things, most importantly icon themes. Sound right?
/usr/X11R6/bin/gnome is executed by bash in any case and these variables should be correctly imported. Also variables from /etc/profile.d should be correctly imported, if there is no mistake. The log looks like missing XDG_DATA_DIRS. Could you verify this variable?
Created attachment 76033 [details] Environment variables with gdm + gnome-session + tcsh This is the output of printenv with tcsh as default shell in gdm / gnome-session.
Created attachment 76034 [details] Non-environment-variables in tcsh (output of 'set') Probably less important values of variables obtainable via command 'set' (in tcsh).
Created attachment 76035 [details] Environment variables in BASH For comparison purposes of probably other important variables I add the BASH-equivalent here. (Output of 'printenv' in bash)
Created attachment 76036 [details] Variables in BASH (for ease of comparison) This is the output of the 'set' command when using BASH.
I cannot find a variable called XDG_DATA_DIRS using tcsh. I hope, the attachments I made above are helpful to you (you can view both tcsh-output and bash-output). Probably you can find other variables that aren't exported properly to tcsh (such as XDG_CONFIG_DIRS ?).
Stanislav, I think there is a logic error in xdg-environment and some of the other gnome related environment scripts, we have: if ( ${?XDG_DATA_DIRS} ) then instead of: if ( ! ${?XDG_DATA_DIRS} ) then Does that look right?
Yes for both conditions in /etc/profile.d/xdg-enviroment.csh. Both should be "if string is empty" then define it. To reporter: Could you confirm, that adding "!" to both conditions fixed both your problems? Reassigning to aaa_base maintainer. Please fix both conditions in /etc/profile.d/xdg-enviroment.csh.
ok, fixed.
It's working. Thank you!
This also needs to be fixed in glib2.csh, gnome-filesystem.csh, gtk2.csh, pkgconfig.csh
glib2: Seems to be OK. Missing G_FILENAME_ENCODING was a problem of bad order. Now renamed to zzz-glib2.*. gnome-filesystem: Seems to be OK. csh code has reversed if/else branches. gtk2: Seems to be OK. csh code has reversed if/else branches. pkgconfig: Seems to be OK. csh code has reversed if/else branches.