[vox-tech] bash environment variables (and KDE) resolved!

Jonathan Stickel vox-tech@lists.lugod.org
Mon, 03 May 2004 09:42:55 -0700


Ken Bloom wrote:
> 
> On 2004.04.30 15:11, Jonathan Stickel wrote:
> 
>> Ken Bloom wrote:
>>
>>> On Fri, Apr 30, 2004 at 10:33:28AM -0700, Jonathan Stickel wrote:
>>>
>>>> There are still a couple things in linux that seem to be 
>>>> unnecessarily  convoluted and really bug me.  One is sound, which 
>>>> I've finally managed  to work around using alsa and dmix.
>>>>
>>>> The other is handling user-specified shell environment variables.  
>>>> I  use bash, and by trial and error I've found I can put what I want 
>>>> in . bashrc.  IIRC, I remember reading that this really isn't the 
>>>> place for  custom variables, but this is what has worked for me.  
>>>> Recently, I've  defined $TEXINPUTS, a path variable for tex/latex.  
>>>> When I run latex  from shell, it uses the path I've defined by 
>>>> $TEXINPUTS correctly.  However, if I start Emacs from KDE's kmenu, 
>>>> $TEXINPUTS is NOT read, and  thus running latex from within Emacs 
>>>> doesn't work like I expect.  It  turns out that KDE, when started 
>>>> through xdm/kdm, does not read .bashrc  at all  
>>>> (http://lists.debian.org/debian-kde/2002/debian-kde-200209/msg00083.html).  
>>>> However, .bashrc does get read when starting a shell from within KDE.
>>>>
>>>> So my question is:  what really is the correct place to put user- 
>>>> specific bash variables?  And, how do I make KDE read them when 
>>>> logging  in from kdm?
>>>
>>>
>>>
>>> Well, I use a .xsession script to log in from kdm (my default session
>>> is "Custom" which runs my .xsession). My .xsession uses bash as its
>>> interpreter, which sources .profile, and .profile in turn sources
>>> .bashrc, so everything defined in these files becomes available before
>>> my .xsession starts my window manager.
>>>
>>
>> Could you post your Custom session and .xession files, or at least 
>> the  relevant parts?
> 
> 
> I don't know where this Custom session file lives
> 
> [bloom@kabloom /usr/share/apps/kdm/sessions]$ cat ~/.xsession
> #!/bin/bash --login
> 
<snip>

My kdm session files are in /etc/X11/Sessions.  In here there is a shell 
script called "kde-3.2.1" which is launched when I choose "kde-3.2.1" 
when logging in from kdm.  This script is just one line which calls the 
script /usr/kde/3.2/bin/startkde.  The top line of this script, by 
default, is

#!/bin/sh --login

Changing it to

#!/bin/bash --login
        ^^^^
has resolved my problem!  Now my custom environmental variables are read 
from my ~/.bash_profile or ~/.bashrc at login, and are available when 
launching programs from the kmenu.  Thanks to those who responded and 
gave clues how to fix this!

Jonathan