Red Hat Bugzilla – Bug 20781
Xsession script should be sure session runs as child of user's shell (as a login shell)
Last modified: 2007-03-26 23:37:32 EDT
I have justed installed Redhat 7.0 Guiness, and I have a host of small, but
1) When I step through windows using Alt-Tab, it puts the mouse in the
upper right hand corner of the new window. I am not sure if this is
supposed to be a feature, but the end result is that the mouse jumps into
the corner of the screen and opens up the gnome panel, which takes away the
focus from the window I wanted and generally causes problems.
2) When I log in, a terminal window opens up automatically, as I want it
to, but ls in the terminal doesnt have any colors. If I later open up
terminal windows, sometimes they have colors, sometimes not. I have traced
the problem to the fact that for the colorless windows, SHLVL=1 not 2, as
for the ones with color. Havent a clue why it does this.
There are more, but I will have to save them for another bug.
I also see the behavior described in the second part. Interestingly, it appears
of the scripts in /etc/profile.d are being executed and some are not. In
particular, the variables
set and exported by gnome-ssh-askpass.sh, kde.sh, less.sh and qt.sh are actually
the aliases created by colorls.sh and which-2.sh are not set. I tried defining
a variable in
colorls.sh and verified that it was not set.
If I log in on a console, $SHLVL is 1 but colorls.sh is executed. If the user's
shell is tcsh, the
corresponding .csh files in /etc/profile.d *are* executed. So this seems to
occur only in the
combination of bash and gnome-terminal started from the Gnome panel in runlevel
5. I also
note that every other way I can think of to start a terminal (xterm, rxvt, kterm
fro the Gnome
menu, anything from the comand line, startx from runlevel 3, etc) sets $SHLVL
greater than 1.
For the record, I don't see the behavior described in the first part. In fact
my mouse cursor
doesn't move at all when I change focus with Alt-Tab.
The Alt+Tab thing is a "feature", anyhow it's configurable (look around in the
Sawfish control panels).
If SHLVL is not 1 then we appear to read /etc/profile from /etc/bashrc.
I don't understand why gnome-session launches terminals with SHLVL of 1.
The problem is basically that gnome-session blows away the environment before
*** Bug 37234 has been marked as a duplicate of this bug. ***
I was on crack about gnome-session and the empty environment.
The problem is simply that /etc/X11/xdm/Xsession should do:
exec -l $SHELL -c 'foobar --frobate'
Fixed in rawhide for a while now.