[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: xdm source .bash_profile



On Fri, 23 Jun 2006 18:46:16 -0400
Derek Martin <code@pizzashack.org> wrote:

> On Sat, Jun 24, 2006 at 12:00:03AM +0200, Pavlos Parissis wrote:
> > Hello all,
> > 
> > I have been trying to make my X to source the .bash_profile in order
> > to set my $PATH variable.
> 
> .xsession is the best place to deal with this, but you need to start
> your X session in this file, or else it will just end.  For example,
> my .xsession file looks like this:
> 
>     #!/bin/bash
> 
>     # start my X session
> 
>     if [ -f ~/.bashrc ]; then
>     	. ~/.bashrc
>     fi
>     xrdb -merge .Xdefaults
>     ssh-agent gnome-session
>     
> This starts gnome, and runs it from ssh-agent.  That's a neat trick
> which makes your ssh agent accessible to all xterms started from
> within your X session.  If you use KDE, replace that with startkde.

Side effect of that approach is that you have to use only one Desktop Environment.
I was trying to avoid to set my Desktop Environment from ~/.xsession because
I like the option to change the D.E. from the xdm/gdm/kdm when I login.
Thus, I didn't follow this approach which is documented in Debian reference.
It seams that I have to take this path anyways.

> The key is, once this script ends, so does your X session.  If you
> just source your .bashrc file, your X session will end before it has a
> chance to start.  ;-)

That's explain why it was not working for me the trick to just source the ~/.bash_profile from ~/.xsession
without starting a window manager/D.E..

> > Since ~/.bashrc is invoked by no login shell I don't really mind to
> > use this trick.  But, I do mind that fact that I have duplicate
> > information, $PATH is set in two files.
> 
> The usual way to handle this is to put environment initialization
> commands only in .bashrc, and source .bashrc from .profile (or
> .bash_profile).  Note that you don't want to put commands which
> generate output in .bashrc -- if you do this, it can cause problems
> for your ssh sessions (particularly using scp, etc.) which will
> receive the output of the .bashrc script, and corrupt the data stream.
> To counteract that problem, only put commands which generate output in
> .profile (or .bash_profile).

It sounds a good a idea and practice to move my environment variables to ~/.bashrc.

Thank you very much,
Pavlos



Reply to: