[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